在国外一博客上发现的一篇很早之前发布的一篇文章,文中提到的敏捷开发的12条原则很有借鉴意义,原文地址:http://www.svpg.com/agile-development-processes/

1、最重要的是通过尽早地、频繁地交付有价值的软件来满足客户——尽早交付有价值的软件。 2、频繁地交付可运行的软件,数周或者数月交付一次——频繁发布新版本。 3、可运行的软件是衡量进展的主要标准——软件比文档更重要 4、接受需求变更,即便是在开发最后阶段——倾听,并快速学习 5、项目期间业务人员与开发者共同工作——紧密协作 6、找积极主动的人来开发项目——为他们提供所需的环境和支持,相信他们能做好自己的工作 7、开发团队里最节省时间最有效的信息传递方式是面对面的交流 8、自发组织的团队才能做出最好的架构、和设计——架构要敏捷,好主意无处不在 9、持续关注先进的技术和优秀的设计能促进敏捷性——频繁地重构 10、敏捷过程促进可持续的开发——此举应能维持相对稳健的节奏——而不是导致失败 11、简洁是一切的基础——少即是多 12、团队定期反思如何提高效率,并调整工作流程——事后反思

极限编程概览

要阐述遵循敏捷方法到底意味着什么,不妨看看敏捷方法中最为流行的极限编程的详细规范。该方法的发明者强调,极限编程并非万能,应该有选择性地加以使用。其主要原则如下。

-结对编程——两位程序员使用同一台电脑开发同一款软件 -简单设计——只设计和开发你现在就需要的东西,不考虑将来的潜在需求 -现场客户——客户代表入驻开发团队,他代表了所有产品的需求,在开发过程中不断的说明需求并帮助决策 -增量开发——频敏小规模发布产品,快速推动产品进入理想状态 -做好规划——工程师只做评估,客户决定每次发布的功能和时间 -持续评审代码——基于结对编程的模式,两位开发者相互评审对方的工作 -持续测试——开发者在编码时就撰写单元测试,客户则撰写用例中规定的功能测试,这些测试均是自动、持续地进行 -持续构建——持续开发和整合软件,这样能及早发现问题,系统也一直处于可构建的状态 -持续重构——软件开发人员不懈努力,通过重构代码来简化和改进工作,同时保证所有测试正常运行 -代码共有——与每个开发人员”独享”自己的代码这一模式不同的是,极限编辑模式中每个开发人员只要认为有机会有必要,就可以优化系统中任意处的任意代码 -开放的工作场所——指整个团队都在一个在房间里共同工作,其中开发人员坐在中间 -每周工作40小时——限制加班以提高工作质量 -代码即文档——最有用的文档就是软件本身,整个团队应该遵循编码规范