最近在CC2E中看到,在软件开发中更多的是一种迭代式的开发。一开始我们没有合适的解决方案,但是我们会找一个解决方案。即使有缺陷,但是随着方案的执行,我们会看到方案中存在的优缺点,自己也会有根深的体会与经验。此时反而可以再重头来尝试问题的解决,这时所提出的方案,一定会比前一个更好,但是它也可能并不是足够好,但是它有很大可能比第一个好。在这个迭代中,我们会逐步提高我们自身的知识,同时会找到更好的解决方案。
如果将整个开发过程当做一个系统,则迭代式的开发相当于构成了一个闭环的系统,每一次在开发过程中得到的经验教训,就是这个系统的负反馈因素。从而使这个过程所产出的结果——软件,有更高的质量。从系统的角度看,迭代式的开发符合负反馈系统。因而,也就是为什么,一次性开发会比较难。因为这个开发过程相当于一个开环系统,里边任意一个小的误差,最终都会导致结果(软件)有很大的误差(质量低下)。
很多时候,当我们重复做一件事情的时候,就是出于以后反馈机制的系统中。如果把事情做好,就要建立一套有效地负反馈机制,让我们在做的过程中,看到优缺点,得到经验,以便在下一次做的时候,对前一次的方案,做一定的调整,更适合这个问题的解决,即一个更好的方案。
如果我们没有建立一个负反馈机制(即得到的与目标的偏差,进而进行校正),而是处于一个正反馈机制或者开环系统中,我们更多的时候会得到一个比较糟糕的结果。
但因为,当第二次再做一件事情的时候,所有的因素并不会呵第一次完全相同,所以第一次的经验在第二次是,不一定会一定好用。因此,在第二次的过程中,做的一些调整所得出的方案,不一定会一定比第一次更好。但是从整体趋势上,下一次解决方案会优于前一次。