目标。没有一个系统化的方法可以说明目标。什么学科都首先讲究目标,却难以说明目标之前的东西是什么。目标就像个奇点,可以一直说到人的产生,却难以说明它自身之前的。人为什么活着,这个问题一直刺激着人类。很多软件产品在立项时,就是在赌,因为成功是模糊的。所以,如何产生一个目标,比达成这个目标更重要。因此,若是一个目标不合适的软件,可能终归是个浪费,使用CMMI5了可能只是浪费少一点;这样浪费的项目多了,利害关系人可就不认CMMI是个啥了!
量化。有两个核心要素:1、量化模型是否正确、易于使用;2、软件开发的数据是关于脑力活动的数据。数据收集、分析地越完备,收集模型、分析模型就越正确;但是,数据越难以收集、越难以分析。这点好像是导火线,数据是关于脑力活动的才成为火药,二者一碰就“Big Bang”。首先不可能从脑子内部采集数据,其次人的外部行为难以跟踪,再次软件研发的产出可复用性差(数据难以在软件项目之间复用)。听说工业生产线早就有数据支持8小时工作制是最可靠的,因此资本家才不要求员工加班加点;可至今,软件企业不加班不加点就不能生存,这个想法还是被很多老板和职员认可。
承诺。承诺关系到对目标的认可,可这个脑力活动根本就不可能被量化。因此,即使实施了CMMI5,也不是说承诺是有效的。反过来,很多CMMI1的企业、团队,效率也非常高、成本非常低,目标也明确,因为大家都非常信任。
没有最好、只有更好,CMMI也力图在目标、量化、承诺上找到更好的法子,这些法子值得好好学习。