敏捷是一个术语,描述软件开发方法,强调增量交付、团队协作、持续规划和持续学习。敏捷软件开发是基于敏捷宣言定义的价值观和原则的一系列方法和实践的总称。自组织、跨职能团队运用适合他们自身环境的实践进行演进得出解决方案。
一、什么是敏捷
敏捷是一种通过创造变化和响应变化在不确定和混乱的环境中取得成功的能力。敏捷是一个术语,描述软件开发方法,强调增量交付、团队协作、持续规划和持续学习。 敏捷术语于 2001 年在敏捷宣言中创造。 宣言旨在制定原则,指导更好的软件开发方法。 宣言的核心是声明四个值语句,这些语句表示敏捷运动的基础。 宣言指出:
我们要重视:
- 个人和对流程和工具的交互。
- 有效用的软件胜过全面的文档。
- 客户协作胜过合同协商。
- 响应对遵循计划进行更改。
二、什么是敏捷方法
敏捷方法是一种从20世纪90年代开始逐渐引起关注的新型软件开发方法,是面向高频变化需求的一种软件开发方法。相对于“非敏捷”方法,它更要求程序开发人员、业务人员、客户方之间紧密协作、面对面沟通、频繁交付新的软件版本。敏捷方法不是指某一种具体的方法、过程或框架,而是一组价值观和原则。敏捷方法的四个价值观包括:个体和交互重于过程和工具;工作的软件重于详尽的文档;客户合作重于合同谈判;响应变化重于遵循计划。敏捷方法的12条原则分别为:
- 为满足客户,尽早并持续交付高价值软件。
- 积极面对需求变化,即使是在软件迭代后期,敏捷方法依然是帮助客户获得市场竞争优势的重要手段。
- 频繁交付可用的软件,交付周期越短越好。
- 在项目过程中,业务人员、开发人员应当保持高度合作关系。
- 为软件开发人员提供必要的环境和技术支持。
- 保证高效的面对面交谈机会。
- 软件可用性是衡量软件开发进度的首要标准。
- 敏捷流程倡导可持续开发。软件供应的甲方和乙方要保持长期稳定的合作关系。
- 持续地追求技术卓越和良好的设计,增强敏捷能力。
- 简单是敏捷流程的根本,尽最大可能减少不必要的工作。
- 强调软件开发过程需要形成优异架构、需求和设计方案。
- 软件开发团队要以提升效率为目的,及时调整工作方式。
三、敏捷的优点
- 更快交付价值:敏捷是基于价值驱动交付,项目团队要频繁的且尽快的给客户交付可以使用的产品,并尽早的让让产品投入市场可以尽早的验证其商业模式和商业价值,这是敏捷提倡的核心价值之一。
- 更低的风险:敏捷提倡优先交付高价值、高风险的需求,然后交付高价值、低风险的需求、再交付低价值、高风险、最后低价值、低风险的需求。这样的好处是把较高风险的需求在项目的初期就开始做,可以较早发现该产品是否可行(通常只要1~4周)。如果因为市场、技术或者其它原因失败了,可以及时停止该项目,降低项目风险。即使这个项目失败了,这个失败的代价相对来说小一些。
- 拥抱变化:在VUCA 迭代开发的后期也接受变更。因为市场在变化,用户的期望和要求在变化,客户的需求也会随着这些因素的变化而变化,只有及时响应这些变化,并尽快予以实施,才能帮助客户在瞬息万变的市场中保证竞争力和吸引力。而敏捷能够帮助团队在小步快跑的过程中能够快速的响应变化。
- 更好的质量:敏捷提倡高频率的交付有价值的产品。每天的例会、迭代计划会议、迭代评审会、迭代回顾会议都在对可交付成果质量上进行层层把关,因为在这几个会议中会频繁讨论遇到的问题/解决方案,验收标准,DoD等等。同时,也会邀请项目干系人参加迭代评审会并对可交付成果验收和反馈,这样团队可以及时予以调整,以确保质量。
- 持续改进:敏捷提倡不断调整和优化,并在每个迭代的迭代回顾会议进行分析、讨论、总结敏捷当前迭代开发过程中需要改进或者要提升的地方,进而在下个迭代中改进、调整和优化。这是整个团队成员不断学习,不断提升自己经验、技能的一个很好的机会。另外,因为敏捷强调客户参与的重要性,对于客户的反馈意见和建议,开发团队也会及时给与相应以及反馈,让双方可以更好的合作,建立更加信任的合作关系。
- 更高的客户满意度:敏捷提倡尽早和频繁的为客户交付有价值的产品,以确保更高的质量,更高的成功率,为客户尽早带来商业投资回报率的机会。
- 更高的团队满意度:敏捷提倡仆人式的领导,SM需要给团队工作上的指导、帮助和支持,扫除团队成员工作上遇到的问题和障碍。重视并尊重团队成员的想法和意见,授权团队并引导团队成员自组织和自管理。更重要的是,团队成员可以决定要做什么、怎么做、什么时候做,并自己监控和管理工作进展,对结果负责;团队成员可以一起讨论并确认工作协议,确保考虑并接纳每个人的意见;团队成员可以一起评估故事点;同时,SM要引导团队成员之间相互协作并促进合作。通过这些,团队成员可以更高效的工作,交付的质量也会提高,团队成员的满意度也会大大提高,”A happy employee is a productive employee”,不是吗?
- 更大的灵活性:敏捷基于价值驱动,它的项目范围是可以灵活调整的,这就给项目干系人很多的灵活性来根据市场不断调整需求范围、变更以及优先级等等。另外,敏捷提倡频率与团队和客户沟通交流,并不断根据反馈和意见调整管理方法、需求流程、开发流程以及运维流程等等。还有,验收标准,DoD都可以根据实际情况进行调整。
延伸阅读
什么是Scrum
Scrum和敏捷不一样,但scrum是敏捷过程之一。它们基于迭代开发。通过跨职能团队和自组织团队之间的关联获得的敏捷要求和解决方案,以及在正确实施时,可以通过逐步交付具有较高价值的产品同时降低风险来帮助团队解决复杂问题。Scrum涉及及时检查和调整,通过领导哲学,问责制和自组织,工程的优异实践来增强团队合作,这有助于提供及时的高质量软件。
文章标题:敏捷是什么,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/36285