1. 做事:针对的是事情,而不是人。寻求增加开发时间的方法,无异于寻找铅线来纺织救生衣。
2. 欲速不达:编码时,经常对数组进行+-1来修正,最后导致大规模问题,建议不孤立编码,同时进行单元测试。
3. 对事不对人:不能否定个人能力,指出缺点,询问提出疑惑。引导让他提出一个疑问,让他自己意识到问题。
4. 前进:有勇气承认自己的问题,有勇气修复,有魄力承认。
5. 跟踪变化:增量学习。成为某个领域的专家,也将很快成为某些领域的专家,因为使用了同样的方法。
6. 对团队投资:要使自己始终成为整个团队中最差的队员,借以学习。
7. 懂得丢弃:有人拒绝花500块买构建机器,而宁愿花几万元人工费。
8. 问到底:从地上的油渍开始,不停问为什么,直到引导根本原因。
9. 开发节奏:不知道下一个演习日期,30天不改需求。上帝发明时间就是为了防止事情同时发生。控制开发节奏,不可太快,精疲力竭。
10. 客户做决定:要么现在让用户决定,要么现在开发,迟些让用户决定,不过要付出较高的成本。准备好可供选择的方案,不从技术,而从业务角度,介绍优缺点,以及潜在的成本和利益,讨论其预算和影响。
11. 设计指导而不是操纵开发:设计分为战略和战术,战略设计不应该具体化,而只是地图。不要费时间规划如何过一条你从没见过的河。设计是正确的,而不是精确的,是目标而不是处方。计划是没有价值的,但做计划的过程是必不可少的。
12. 合理使用技术:注意“简历驱动”的设计。新技术要进行原型验证,同时注意新技术的可取消性,最后不要开发你能下载的东西。
13. 保持可以发布:控制进入不可发布状态的频率。提交流程:可编译、过单元测试、过其他测试,检出最新代码、再编译测试、提交。如果长期不能发布,就做一个分支版本来搞开发,千万别既不能修改,又不能撤销
14. 提早频繁集成:可以使用mock对象来测试集成情况。代码集成是主要风险来源,要规避这个风险,只有提早进行集成、持续有规律的进行集成。
15. 提早实现自动化部署:即使项目没有开始,我们就有了单元测试和基于窗口的安装工具,持续部署和CD刻录机就连在一起。