1、客户至上
从客户的角度出发,客户首先会把焦点集中在产品开发的真正价值,其他方面(例如概念、需求、技术等等)在项目中是次要的。
2、代码质量
即使代码质量是一些非常主观性的东西,(甚至有人说所有的代码都有问题),它却影响着很多重要的方面,比如:如何去维护应用程序,或者如何去带一个新手程序员。
代码质量的指标在于:简单性、可读性、健壮性和可测试性。其他特性,例如外观或者可扩展性,如果没有要求的话,在你的应用程序中可以灵活设计。
3、集成
集成是软件开发的主要问题。在项目后期或者大型功能模块完成后,等着集成是一个令人纠结的过程。
持续的集成是保证每部分委托的代码在系统中自动集成的过程。请记住,持续集成优先于持续编译。
4、迭代
迭代提供了持续的反馈信息。持续反馈很重要,因为它降低了软件开发的不稳定性。
虽然迭代经常与敏捷方法有关系,不过有其他方法例如RUP,也使用迭代,他们却不是敏捷方法家族中的一员,记住这一点很重要。
5、自动化测试
允许重构和递归,给开发者带来自信,如果得到有效贯彻的话,会提高最终产品的正确性。对于自动化测试,你可以考虑与测试有关的一些情况和如何编写一个良好测试组件的建议。
6、重构
不管你如何关注编码,在你迈出第一步的时候,你将会走错路。重构是我们用来保持代码修改的做法,以满足系统说明的必要更迭。