最近的项目要用scrum,所以顺带也研究了下敏捷软件开发的理论

敏捷软件开发原则:

(1)强调个人和交互的价值,大量进行面对面交互式沟通而不是只利用文档沟通。

(2)将时间花费在编写软件上而不是编写各种文档上。

(3)将精力集中在与客户的合作上。

(4)专注于对变化的反应,而不是创造某计划然后遵循这个计划。

 

敏捷软件开发的实践(就我自己的经验看):

(1)和客户共同制定需求,直到达成一致,然后将发布的内容和交付时间记录在文档中。

(2)使用增量或者迭代的方法来让系统尽早交付一些功能,然后后续版本对功能进行改进和扩展。

(3)测试驱动开发,先编写测试用例,再写功能模块。测试每天都执行。

(4)重构,重新审视需求和设计,或者重新组织代码,而不扰乱系统的外部行为。重构必须很好的配合单元测试,从而保证不影响系统行为。

(5)结对编程

(6)持续集成,这样可以按照“日”为单位为客户提供可运行版本,可以利用Hudson(Jenkins)来做这件事情。

(7)统一代码标准和风格,让团队的所有开发人员整体上看像是一个人在编写的。

 

敏捷开发的实践:

就我个人看,我只用过Scrum(公司新项目也在用Scrum),它用迭代的方法,吧每30天一次的迭代成为一个Sprint,并且按照需求的优先级来实现产品。有日常会议或者周会来保证彼此的协调。