为什么优秀实践不足以带来下一次进步?
- 已做对的事: 我们可以通过遵循优秀而不是拙劣的实践得到良好的设计, 而且优秀的设计是可以传授的;
- 已有举措: 新课程、新文献、软件工程研究所(SEI)等新机构, 都是为了把实践从不足提升到更高水平;
- 作者的判断: 低劣设计与良好设计之间的区别可能在于设计方法学的完善性, 但良好设计与卓越设计之间的区别肯定不是如此;
- 结论: 卓越设计来自卓越的设计人员; 完备的方法学可以培养和释放创造性思维, 但无法孕育或激发创造性的过程;
- 类比: 差别就像萨列里和莫扎特;
卓越设计人员和一般设计人员差距多大?
- 数据: 一个接一个的研究显示, 非常卓越的设计者产生的成果更快、更小、更简单、更优雅, 实现的代价更少;
- 幅度: 卓越和一般之间的差异接近于一个数量级;
- 历史观察: 很多杰出、实用的软件系统由很多人共同设计开发, 但那些激动人心、拥有广大热情爱好者的产品往往是一个或少数伟大设计师的思想;
- 例子(激动人心的产品): Unix、APL、Pascal、Modula、Smalltalk 的界面、甚至 Fortran;
- 对照(由委员会/多人产生的产品): Cobol、PL/I、Algol、MVS/370 和 MS/DOS;
机构应该怎样对待杰出设计人员?
- 首要建议: 每个软件机构必须决定和表明, 杰出的设计人员和卓越的管理人员一样重要, 他们应该得到相同的培养和回报;
- 回报范围: 不仅仅是薪资, 还包括各个方面的认可--办公室规模、安排、个人的设备、差旅费用、人员支持等, 必须完全一致;
- 现实差距: 大多数机构花费大量时间和精力寻找和培养管理人员, 但没有任何一家在寻求和培育杰出设计人员上投入相同资源;
- 后果: 产品的技术特色最终依赖这些设计人员;
- 招聘现实: 卓越的管理人员和设计人员都非常缺乏, 公司可能缺少良好管理人员, 但良好设计人员的需求更加迫切;
如何培养杰出的设计人员?
- 识别: 尽可能早地、有系统地识别顶级的设计人员; 最好的通常不是那些最有经验的人员;
- 导师: 为设计人员指派一位职业导师, 负责他们技术方面的成长, 仔细地为他们规划职业生涯;
- 职业计划: 为每个方面制订和维护一份职业计划, 包括与设计大师的、经过仔细挑选的学习过程、正式的高级教育和短期课程;
- 交叉培养: 上述内容都应穿插在设计和技术领导能力的培养安排中;
- 交流: 为成长中的设计人员提供相互交流和学习的机会;