极限编程(Extreme Programming),简称XP。
基本定义如下:
- 在技术和习惯上不要默守陈规,勇于接受新事物,目的只有一个,提升生产率
- 个人需要认清自己,找到合适的位置,提升团队效率
- 合作关系和技术能力同等重要,处理好人际关系,把控工作情绪。
- 尽力而为,不要畏惧,暴露自己,勇于承担后果,对个人还是团队后续提升都很大
- 也是一种价值观,也是一套实践可归纳的方法论
可参考的实践:
- 开发周期短,有可持续的、具体的反馈
- 增量迭代,增量开发,增量发版
- 灵活应对需求的变化,响应及时
- 自动化测试,测试驱动
- 敏捷在于沟通,不必在沟通上浪费过多时间
- 架构编码设计是不断演化的,贯穿整个生命周期
- 团队成员可以没有猛虎,但是要有积极的群狼
- 兼顾团队成员的短期情绪和团队的长期利益
项目风险的处理:
- 开发模式 - 小版本迭代,高优先级
- 期限管理 - 最小发布,满足最重要的功能,保证软件的最大价值
- 质量把关 - 自动测试,快速问题修复
- 缺陷率 - 提高测试覆盖率,既包含方法,也包含业务
- 业务协作 - 业务产品技术一起参与开发的不断改进和设计
- 业务变更 - 小版本迭代可以很快调整方向
- 人员变动 - 情绪上照顾,并对新员工鼓励,承担更多责任
- 其他问题 - 把握高优先级任务的原则
总结:之前认为只有团队必须都是精英,这样才好推动XP,现在发现并不是,XP是一套方法论,适用于个人发挥和团队效率提升。