程序设计很多思维是来自自然的,什么这个模型那个模型,或许就是自然中的一个现象。
最近看了CMMI的介绍,发现和进化是何其相似。
我们程序员/工程师的作品是随着迭代而进化的,如何设计出可以进化的程序呢?
那就是怎么知道现有问题?
放到实际环境中去试,得到实际使用者的反馈。更多是要通过日志或者设计合理的埋点,来监测关键指标是不是按照预期的。
再就是借助工具,比如冗余设计,日志记录,在线监测(iot应用),换个思路验证(比如我们如何确定13-5=8 是正确的,可以知道差一定是小于被减数的,换个思路来验证,而不是沿用原来的思路重复验证)
借助工具,可能是示波器,来观察我们输出的周期频率是否预期的
借助工具,也可能是做一个工具软件(比如上位机),模拟快速响应、重复交互,以及协助长时间的运行,是否存在内存或者关键指标的变化。
最重要一点的是态度,兴趣,敬畏之心。
敬畏带来好的程序设计,而态度是我们是否用心实现的关键,兴趣或许才是更长远的坚持。
既然已经知道了问题点了,那么距离下一次进化就是coding了
最后回到cmmi的理解,enjoy
CMMI 1:
没有管理,没有标准,过程是凭借个人管理实现的,跟开发者很有关系。能满足目标,但是不可复制。
CMMI 2:
有项目管理了,也有计划。基本能按照计划完成了。
CMMI 3:
在2的基础上,整了一个模型,指导文件,类似研发流程。从开发输入到输出。有了标准,满足基础开发要求。
CMMI 4:
更加量化,有反馈,整个流程在什么地方是什么指标,有了量化后。就可控了。止于至善
CMMI 5:
增加了优化机制,可以从研发角度考虑,也可以从客户满意度考虑
因为有了前面数据量化积累,知道哪里不足,针对性可以改善了。生生不息