敏捷开发介绍
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直可使用状态。
敏捷建模的价值观包括了XP的四个价值观:沟通,简单、反馈、勇气,此外,还扩展了第五个价值观:谦逊。
敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。除了原则和实践,模式也是很重要的,多研究模式及其应用可以使你更深层次的理解敏捷开发。
沟通
建模不但能够促进你团队内部的开发人员之间沟通、还能够促进你的团队和你的project stakeholder之间的沟通。
反馈
过度自信是编程的职业病,反馈则是其处方。
原则
- 通过尽早和不断交付有价值的软件满足客户需要
- 需要欢迎需求的变化
- 经常交付可以工作的软件,从几星期到几个月,时间尺度越短越
- 业务人员和开发者应该在整个项目过程中始终朝夕在一起工作
- 敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏
- 对卓越技术与良好设计的不断追求将有助于提高敏捷性
- 每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为
对比其他的方法
对比迭代方法
相比于迭代式开发两者都强调在较短的开发周期提交软件,敏捷方法的周期可能更短,并且更加强调队伍中的高度协作。
对比瀑布式开发
瀑布式模式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等。
瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺对后期需求的变化难以调整,代价高昂。瀑布式方法在需求在不明并且在项目进行过程中可能变化的情况下基本是不可行的。
相对来讲,敏捷方法则在几周或者几个月的时间内完成相对的较小的功能,强调的是能将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强。
在敏捷方法其独特之处以外,他和其他的方法也有很多共同之处,比如迭代开发,关注互动沟通,减少中介过程的无谓资源消耗。