什么是敏捷软件开发?
什么是敏捷软件开发?
敏捷软件开发是一套方法,可以为您的客户快速而频繁地提供价值。它通过高度协作的跨职能团队促进精心策划的小型迭代。敏捷方法提供了传统上与瀑布相关的顺序开发和长期发布周期的替代方案。
敏捷适合任何规模的企业(从创业到企业),任何规模的团队(从小到大)和大多数项目。也就是说,采纳敏捷的组织必须在文化上为变革做好准备,并致力于指导或培训。
为什么敏捷很重要
◼ |
更大的透明度 从利益相关者到工作团队(测试人员,开发人员,设计人员,项目经理等)的每个人都参与并明确了目前正在进行的工作以及还需要完成的工作。 |
|
◼ |
更大的可预测性 工作显然是优先考虑的,时间紧张,理想情况下是1-2周的时间。作为持续交付周期的一部分,新功能经常出货,而且更具可预测性。 |
|
◼ |
极大的灵活性 当由于反馈或新业务需求而改变优先级时,可以立即在积压中插入和重新排列故事。 |
|
◼ |
专注于商业价值 利益相关者决定功能的建立顺序,使团队清楚业务最重要的部分。 |
|
◼ |
关注用户 用户故事旨在满足真实用户的需求。每个设计和开发的功能都可以提供增值服务。 |
|
◼ |
注重质量 由于所有的工作都分解成可管理的单元和频繁的构建,所以测试和评论更为集中。由于能够更容易和更快地定位和修复缺陷,质量得到了改善。 |
考虑敏捷?要记住什么
尽管世界正在从传统的瀑布方法转向敏捷软件开发,但成功采用敏捷技术需要改变工作流程的思维方式和对常见陷阱的认识。开始之前,得到一些答案:
敏捷是一个非常合作的过程。因为这不是一个强有力的,自上而下的工作流程,需要在各个层面上采用。让人激动。解释这将如何使组织和他们受益,并向他们保证,这不仅仅是一种时尚。敏捷方面的投资推动了创新,灵活性和更短的开发周期。
如果你是,停下来。找出您的团队中对采用敏捷工作流程熟悉且兴奋的人员。让敏捷在基层实施,并提供足够的发起人支持,以解决此类变更可能对其他团队,管理层和业务合作伙伴造成的任何可能的阻力。理想情况下,聘请一名顾问帮助事情开始并朝着正确的方向前进。这将有助于降低风险并增加采用的时间。
你需要一个计划来训练你的团队。减少进程的承诺可能导致执行不力。敏捷是一套必须学习和遵守才能成功的团队。但是比单纯的训练更重要的是让你的团队通过干练来学习。让他们在一个实际的项目上工作,以非常有形的方式学习和强化敏捷的好处。
您目前使用哪些产品管理工具,是否适合敏捷?您是否准备好实施测试驱动开发(TDD),持续集成(CI)和持续部署(CD)?你包括你的设计和用户体验团队吗?组织越大,你就需要把更多的心灵和思想联系在一起。采用敏捷是非常可行的,但做得很好,变化贯穿于整个组织。
共同的情况 |
敏捷方法 |
瀑布方法 |
---|---|---|
项目经理希望在开发过程中添加一个新功能 |
附加功能在每周冲刺期间添加,以确保产品符合最新的客户和业务要求。 |
开发商已经完成了开发的设计和施工阶段,直到下一个六个月的项目计划阶段才开始添加新功能。 |
在测试过程中发现一个显示塞子错误 |
这个bug是在每周冲刺结束时发现的。为了预料会发现一些小问题,开发团队在下周的冲刺日历中加入了修补程序,项目按时按预算进行。 |
这个错误是在开发的最后阶段发现的,影响了整个项目编写代码的方式。意料之外的重新安排时间来修复错误和上游代码将意味着该项目会迟到,超出预算。 |
客户或客户提供反馈 |
在下一次冲刺运行之前,反馈会被协同并逐步地融入到设计中。 |
反馈是有记录的,但是直到下一个版本才会被纳入到项目中。 |
极限编程被认为是敏捷的一种风格,它独特地适应了开发团队的需求。Extreme的元素包括:成对编程,所有代码的自动化测试,在实际需要之前避免对功能进行编程,代码的简单性和清晰性,随着时间的推移需要改变客户需求,并且问题得到更好的理解,客户和程序员之间。