敏捷开发
应对快速变化的需求。
相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面沟通(认为比书面文档更有效),频繁交付新的软件版本、紧凑而自我组织的团队、能够很好的适应需求变化的代码编写和团队组织方法,也是更注重软件开发中人的作用。
人和人的交互优于过程和工具。
客户协作优于合同谈判
随时应对变化优于循规蹈矩
原则:
最重要的是通过尽早和不断交付有价值的软件满足客户需要。
经常交付可以工作的软件,从几个星期到几个月不等,时间尺度越短越好。
可以工作的软件是进度的主要度量标准
业务人员和开发者应该在整个项目过程中始终朝夕在一起工作
每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为
在开发小组中最有效率也是最有效果的信息传达方法是面对面的交谈。
围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。
敏捷过程提倡可持续开发,出资人、开发人员和用户应该总是维持不变的节奏。
对卓越技术与良好设计的不断追求将有助于提高敏捷性。
简单---尽可能减少工作量的艺术至关重要
最好的架构、需求和设计都源自自我组织的团队
极限编程(Extreme Programing 缩写XP):是敏捷开发中最有成效的一种,xp与传统方法学本质的不同在于它更强调适应性而不是预测性。
应对快速变化的需求。
相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面沟通(认为比书面文档更有效),频繁交付新的软件版本、紧凑而自我组织的团队、能够很好的适应需求变化的代码编写和团队组织方法,也是更注重软件开发中人的作用。
人和人的交互优于过程和工具。
客户协作优于合同谈判
随时应对变化优于循规蹈矩
原则:
最重要的是通过尽早和不断交付有价值的软件满足客户需要。
经常交付可以工作的软件,从几个星期到几个月不等,时间尺度越短越好。
可以工作的软件是进度的主要度量标准
业务人员和开发者应该在整个项目过程中始终朝夕在一起工作
每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为
在开发小组中最有效率也是最有效果的信息传达方法是面对面的交谈。
围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。
敏捷过程提倡可持续开发,出资人、开发人员和用户应该总是维持不变的节奏。
对卓越技术与良好设计的不断追求将有助于提高敏捷性。
简单---尽可能减少工作量的艺术至关重要
最好的架构、需求和设计都源自自我组织的团队
极限编程(Extreme Programing 缩写XP):是敏捷开发中最有成效的一种,xp与传统方法学本质的不同在于它更强调适应性而不是预测性。
软件需求的不断变化是很自然现象,是项目开发中不可避免的,也是应该接受的,和传统的在项目起始阶段定义好需求,再费尽心思去控制变化方法相比,有能力在项目周期的任何阶段去适应变化,将是更加现实更有有效的办法。
测试驱动开发:
极限编程中的一种方法,倡导先写测试程序,然后编码。
目的:取得快速反馈
其是戴两顶帽子思考的开发方式:先戴上实现功能的帽子,在测试的辅助下,快速实现其功能,再戴上重构的帽子,在测试的保护下,通过去除冗余的代码,提高代码质量。即对于代码已经有了标准可以更好的把握全局,知道什么地方可以重构优化。
局限:对于GUI,资料库,Web应用而言,构造单元测试比较困难,发果强行构造会给维护带来困难。
有时也会导致单元测试的覆盖度不够,比中可能缺乏边界测试。
因为一切以测试为驱动,所以更考验测试的设计。
行为测试开发:
敏捷软件开发的一种,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。包括验收测试和客户测试驱动等。