敏捷开发又称敏捷软件开发, 是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。
它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务人员之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。
其主要特征为:
1、人和交互重于过程和工具。
2、可以工作的软件重于求全而完备的文档。
3、客户协作重于合同谈判。
4、随时应对变化重于循规蹈矩。
5、人员彼此信任,人少但是精干,可以面对面的沟通。
在过去的几十年中,大多数企业都是使用传统的“瀑布”方法进行应用程序开发。这种方法通常用于管理整体软件项目,但出于某种原因,敏捷开发在应用程序开发领域变得越来越突出。
下面,让我们看看软件项目的传统瀑布方法,以及敏捷开发如何成为新标准。
1、瀑布法
瀑布方法是一种具有不同顺序阶段的开发模型,用于将应用程序从概念到交付。
通常,用户填写一份全面的需求定义文档,这将成为高级设计的基础。一旦获得批准,编码过程就开始了。这个阶段通常需要几个月的时间——然后是一个可以持续相同时间长度的测试和修订周期。准备了详细的文件,在对应用程序进行全面审查后,必须获得用户的同意才能投入生产。
瀑布技术是有纪律和负责任的,但也很慢。对于大型企业的部门来说,他们设计的项目需要等待一年或更长时间才能完成的情况并不少见。届时,规范和要求将经常发生变化。
组织未来构建的应用程序类型将与过去大不相同。许多将是单一目的、短暂的,并打算随着时间的推移被更好的东西所取代。想想你手机上的应用程序:大多数应用程序每两个月更新一次,并在该领域反复进化,所以你今天使用的版本看起来与去年完全不同。错误更容易容忍,因为它们可以通过简单的更新来修复。
国际数据公司(International Data Corp.)预计将在未来两年内打造好这款手机,相比传统的单一机型,它将更接近手机类比。同样,应用程序开发过程的工作方式也在发生变化。应用程序越来越多地由松散耦合的微服务组成,而不是封装在单个代码库中。通过插入服务来添加新功能,这允许软件继续发展。
2、进入敏捷开发
敏捷开发是一种正在席卷应用程序开发社区的构建软件的新方法。数字人工智能 2020 年敏捷状态报告发现 95% 的组织都有某种形式的敏捷过程,尽管大多数组织仍处于学习阶段。
敏捷方法和瀑布方法在一些基本方面有所不同。敏捷应用程序开发过程利用一组最基本的目标并假设事情会发生变化,而不是完整的需求定义声明。项目被分解成小组件,每个组件都可以在一个月或更短的时间内以“冲刺”的形式交付。
开发人员在称为Scrum的团队中工作,包括项目所有者、开发人员、测试人员、数据库设计人员和支持人员。这些团队经常围着一张大会议桌一起工作,非常重视每天通过10 分钟的“站立式”审查会议与用户进行面对面的交流。由于假设需求会发生变化,因此该过程旨在适应新想法,而不是拒绝它们。
与瀑布技术严格关注流程和文档相反,敏捷应用程序开发避开流程并支持创造力。重点是速度、灵活性和团队合作。指导原则是最好交付有效的东西并不断改进,而不是等待完美的解决方案。文档通常仅限于基本信息,正如敏捷宣言所建议的那样,“使用软件而不是综合文档”。
3、敏捷开发并不是灵丹妙药
尽管敏捷应用程序开发可能是有益的,但它并不适合所有场景。按照规范建造的大型项目,例如通常在政府合同中规定的项目,更适合瀑布技术。但是,毫无疑问,敏捷开发“方兴未艾”,更能兼容新兴的积木软件架构。
数字人工智能报告的受访者列出了敏捷开发的五个优势: 1、提高管理不断变化的优先事项的能力 2、更好的项目可见性 3、提高业务/信息技术的一致性 4、更快的交付 5、更好的团队士气
从传统的开发过程转向敏捷的开发过程就像要求一家专门从事摩天大楼的建筑公司转而建造独栋房屋。工具、策略和时间框架完全不同,这就是为什么超过一半的数字AI调查受访者表示,他们在使用敏捷实践方面“仍在成熟”,只有16%的人表示具有高水平的能力。
如果开发组织有使用时间和范围限制合同的历史,那么敏捷可能会有点令人震惊。并非所有团队成员都愿意与最终用户密切合作,因此需要定义角色和期望以帮助每个人保持满意和高效。职位描述也会发生变化。习惯于设计大型和综合测试套件的软件测试人员需要适应递归方法,在构建时测试单个模块以及所有工作的总和。创建文档可能需要更少的人。
然而,毫无疑问,敏捷开发能更好地适应了快速变化的软件应用世界。尚未加入的组织应该为未来几年更加重视敏捷开发做好准备。
结语:
合理并且有效地运用敏捷开发,不仅可以让我们工作高效地运行,还能最大程度保证团队目标的达成。我推荐使用织信低代码快速开发平台,它内置100+标准应用模板,覆盖:OA协同办公、CRM客户管理、ERP进销存、MES生产管理、流程审批、人事绩效、企业服务、个人及组织等多个应用场景。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。