- 人性化:人是软件开发的本源,不能以牺牲生活作为工作代价;区分私人生活和工作
- 经济:必须有买单,否则“技术成功”而不是商业成功
- 互惠互利:如果你想要人们接受你的意见,那你就应该解决更多问题,而不是制造更多问题
- 自相似:试着将一个解决方案的结构复制到一个新环境中,即使它们的粒度不同。
- 改进:“完美”是个动词,而非形容词。完美的过程是不存在,完美的设计是不存在。卓越是通过改进达到的。
- 多样性:团队需要多样性,需要有益的冲突
- 反思:反省紧跟着行动,学习是反省的行为。
- 流程:倾向于活动的连续流,而不是离散的阶段。
- 机遇:有意识地将每个问题转化为机遇:个人成长的机遇、关系升华的机遇、软件改进的机遇。
- 冗余:软件开发中关键的困难问题应该有不同解决方案。如果一种方案最终失败,其他的方案阻止灾难的发生
- 失败:失败不是浪费吗?不是,如果它能够产生知识的话。知识是有价值的。失败好过(无休止的)讨论。
- 质量:通过牺牲质量来控制的手段是没有效率的。质量不是一个控制变量。
- 循序渐进:相比于团队取消失败的、大的改变引起的浪费,多个小步前进的代价要小得多。
承担责任:责任不能被指定,只能被接受。如果有人试图给你责任,只有你自己能够决定是否承担这个责任。