1. 什么是极限编程 Extreme Programming XP
- 极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。
- 它的核心价值是交流、简单、反馈和勇气。即,任何一个软件项目都可以从四个方面入手进行改善加强交流;从简单做起;寻求反馈;勇于实事求是。
- XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。
- Extreme Programming(极限编程,简称XP)是由Kent Beck在1996年提出的,
- XP是一个轻量级的、灵巧的软件开发方法,是一种软件工程方法学,强调程序设计师团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软体版本、紧凑而自我组织型的团队、能够很好的适应需求变化的代码编写和团队组织方法,也更注重做为软体开发中人的作用。
2. 极限编程交付实践
是一种基于频繁交付周期的软件开发方法,旨在改进软件项目成果的整套实践
持续集成 Continuous Integration
无论产品如何,都要频繁地将工作集成到整筹中,然后再进行重新测试,以确定整个产品仍按照预期期工
在不同层面测试
对端到端信息使用系统级测试,对构建块使用单元测试(Unit Test)。在两者之间,了解是否需要进行集成测试(Integrated Test)。以及在何处进行测试。团队发现冒烟测试(Smoking Test)有助于测试工作产品是否良好。团队发现,决定何时以及对哪些产品运行回测试测(Regression Test),可以帮助他们在维护产品质量的同时,良好地构建性能,敏捷团队偏爱自动化测试(Automate Test),因此他们可以借此构建和保持交付的势头。
验收测试驱动开发 (ATDD)
在ATDD中,整个团队聚集一堂讨论工作产品的收标准。然后,团队创建测试,这让团队能够编写足够的代码,进行自动化测试,满足标准要求。对于非软件顶目,要考虑怎样在团队完成大量价值时对工作进行测试。
测试驱动开发 (TDD) 和行为驱动开发 (BDD)
在编写/创建产品之前编写自动化测试,实际上可以帮助人员设计产品,防范产品错误。对于非软件项目,要考虑如何的过“测试驱动”团队的设计。硬件和机械类项目经常使用模拟进行设计的中间測试。
刺探 SPIKE(一个短暂时间盒,研究或实验,如果失败就撤离)
刺探对学习很有用,可以在诸如评怙、收标准定义以及通过产品了解用户行为的流程中使用。在团队需要学习一些关键技木或功能要素时,刺探会很有帮助
4. Extreme Programming at a glance
5. XP实践 XP Practices
6. XP迭代
XP不做过多长远规划,只要保证每一天、每分、每秒都在做最重要、最有价值的事情就可以,至于项目是否继续做,这是由客户或管理层决定的事情。
七个迭代周期:
- 月迭代:发布计划 Release Plan
- 一周迭代:迭代计划 Sprint Plan
- 数日迭代:验收测试 Acceptance Test
- 每日迭代:每日站会 Daily Scrum Meeting
- 小时级迭代:结对讨论 Pair Discussion
- 分钟级迭代:自动测试 Automatic Test
- 秒级迭代:结对编程 Pairing Program