软件工程之敏捷软件开发及规模化

许多企业都在全球化、快速变化的环境中运行,他们必须响应新的机会和市场,响应不断变化的经济环境以及竞争产品和服务的出现。快速的软件开发和交付对于大多数业务系统而言都是最关键的要求。因为企业运行在一个不断变化的环境中,因此在实践中不可能定义出一个稳定的需求的完整集合。需求会发生变化,因为客户发现无法预测系统将会如何影响他们的工作实践、系统将如何与其他系统交互,以及哪些用户操作应该自动化。只有当一个系统已经被交付并且用户获得相关的系统经验之后,真实的需求才会变得清晰。即使到了这个时候,外部因素仍然会驱使需求变化。

计划驱动的软件开发过程并不适用于快速的软件开发。对于某些类型的软件,例如安全攸关的控制系统,其中完整的系统分析必不可少,计划驱动的方法仍是正确的选择。

快速软件开发以及可以处理需求变化的过程逐渐被称为敏捷开发或敏捷方法。这些敏捷方法的设计目的是快速产出有用的软件。敏捷方法的特点是:1、规格说明、设计和实现过程交织在一起。没有详细的系统规格说明,设计文档被最小化或者由用于实现系统的编程环境自动生成。2、系统按照一系列增量进行开发。最终用户和其他利益相关者参与每个增量的规格说明和评估。3、使用广泛的工具来支持开发过程,可以使用的工具包括自动化测试工具、支持配置管理和系统集成的工具、用户界面自动化构造工具。

敏捷方法是一种增量的开发方法,其中的增量很小,通常每两三周就能创建新的版本并交付给客户。敏捷软件开发方法将设计和实现视为软件过程的中心活动,将其他开发活动如需求抽取和测试融入设计和实现中。

敏捷方法背后的哲学在由方法的主要提出者所发表的敏捷宣言中体现出来。其原则包括客户参与、拥抱变化、增量交付、保持简洁、以人而不是过程为中心。

极限编程实践包括:将需求表达为用户故事、共同所有权、持续集成、增量规划、现场客户、结对编程、重构、简单设计、小的发布、可持续的步调、测试先行的开发。

Scrum Master并不是正式的项目经理,但在实践中可以扮演项目经理的角色,向高层报告进度,参与长期的计划和项目预算,参与行政管理以及硬件和软件采购。

敏捷方法的有效性有很多趣闻,敏捷方法对于大型系统和组织的生产力提升被夸大了,一个向敏捷方法转型的组织的合理期望是三年内生产力提升15%,产品缺陷数量下降15%。

当使用敏捷方法时,合同问题会是一个主要问题。其他问题还有:缺少产品文档、保持客户参与、开发团队的延续性。

敏捷规模化需要拥抱核心敏捷开发,同时解决规范化的敏捷交付,和规模化的相关问题。需要将一些基于计划的实践与敏捷实践相集成从,这些实践包括预先考虑需求、多个客户代表、更多的文档、整个项目团队采用同样的工具、在团队之间发布版本的同步。

3f46643d2ca78641a35569f3fad93d49.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值