软件开发是一个不断更改、不断调试、不断修正的过程,在这一系列复杂的过程中,是不是程序员撸起袖子代码一敲就开始改了呢?显然,并不是这样。小的项目可能感觉很方便,但规模大后,这样野蛮修改简直就是一件无法忍受的事情,结果只会逼疯开发人员,“改代码”这么“廉价”的劳动,变成了纯粹的体力活,需求修改变得没完没了,代码结构变得越来越烂。这种情况的存在,逼迫软件开发必须有一套“监控体系”与整个开发过程同步执行。这套“监控体系”就被叫做“设计开发更改控制流程”,是由质量监管、产品经理、项目经理、测试人员、开发人员共同参与的一个小的闭环。
软件设计开发的每次修改,必须严格依据“设计开发更改控制流程”,这个流程可以根据实际情况放宽遵守流程的形式,但绝不能跳过。一旦跳过一次,就会跳过二次、三次、一百次,几百次,导致设计开发的更改野蛮生长到失控状态(见风控部分)。
软件开发的过程,因为有了人的参与,也是考验人性的过程。在这个过程中,贪婪和懒惰一直在对抗(详见Seven deadly sins:pride, greed, lust, envy, gluttony, wrath and sloth),不断平衡和打破平衡。一方面是想满足所有人的所有需求,另一方面又想在最短的时间内出最优解;一方面是不停的思考不断变化的需求,另一方面是不断推迟的deadline,一对对的矛盾就像太极图中的阴阳鱼,没完没了的旋转,生生不息。
为了避免以上情况,“设计开发更改控制流程”以“安全卫士”的身份出现了,“安全卫士”的设计可以完全参照数字卫士(真的不是广告,周鸿祎是个伟大的产品经理),实际操作过程一定不能有卡机的感觉(德芙般丝滑是不存在的,卡顿至少要在可接受范围内),否则很快会被用户卸载!
当前的设计开发更改流程:
- 更改提出者填写《设计更改开发申请表》,提出申请;(提出者不一定是产品,可以是项目相关的任何人)
- 项目负责人召集相关人员开会,对该申请行进评审,并填写《会议记录表》,《危害分析、风险评价、风险控制措施记录表》;
- 相关人员填写申请意见;(由不同的风险风险级别定谁来填写)
“不以规矩,不能成方圆。”
----《孟子·离娄上》