首先,在我的理解,可以把软件开发周期粗略地分为构造框架和代码编程两个部分。
就好比和跑步一样,假设要跑10公里,前面七八公里可能可以匀速慢慢跑完,但到了剩下的一两公里,随着跑步时间的增加,我们所消耗的能量也越来越多,所剩余的力气也越来越少,很有可能在最后一公里就止步休息。
前期的构造框架可能可以很顺利的进行,但是到了实践代码编写的时候,就会出现各种各样的问题,“在什么地方应该怎么样做才能更便捷“,“这里为什么不能这样编写”,“这样编写会不会导致出现bug”,每当随着编写程序的时间的增加,程序员就可能变得更加浮躁,可能就会出现不细心的编程错误,从而导致最后的编写阶段很难完成。
所以当我们在构造完框架之后,可能就会产生“这次构造框架进行的比较顺利,程序应该能很快开发出来”的想法,而遇到以上所说的许多问题之后,就会使我们的实际完成周期比预估周期要多上2~3倍。