今天上班的路上听了下微软的webcast,是王为老师讲的极限编程,
回顾了下自己的项目中用到的极限编程,就在这整理一下。
此项目是自己在2年多之前做的,也算是第一次接触到极限编程。
我逐一说明该项目中如何应用极限编程的一些要求来完成开发的。
此项目组成员为7人,工作环境相对集中,完全可应用极限编程.
极限编程最佳实践:
①客户作为团队成员:
虽然客户无法最为团队成员共同开发,但是每周会有两次通过电话的方式,全体与客户沟通,平时的时候使用即时通讯软件联络,如果有紧急问题,可随时联络。
②用户素材 :没印象。
③短交付周期:
基本上每周都会进行交付,每天下班之间都进行构建,进行迭代开发
④验收测试:
本身就有个可运行的系统的雏形,基本上每完成一部分功能,自己都可以先进行测试。
而且采取逐步交付的过程,每完成一部分模块,交互一次。
⑤结对编程:
2人一组,完成有关联功能模块。技能与性格匹配
⑥测试驱动开发:
根据用户用例,先完成测试case
⑦集体所有权:
所有人都对代码负责这点,没有按照此项进行
⑧持续集成:
每天都进行构建
⑨可持续的开发速度:
只有持久才能保证质量,基本没加班。任务的制定上,精确到了0.5天。
⑩开放的工作时间:
采用弹性工作制度
⑪计划
制定未来两周的计划,未来3个月的计划有个大概的印象。
⑫简单的设计
有简单的设计,保持变化。
⑬重构:
会进行重构。将代码简单化。
⑭隐喻:没印象
极限编程的2个弱点:
①文档太少
②XP强调协作与共享,少了些竞争机制。
用户用例和测试文档可代替文档,并可适当引入竞争机制