长期的设计不足,会使软件开发节奏变成"快,慢,更慢",可能造成这样的后果:
1)系统的1.0版很快交付了,但是代码质量很差
2)系统的2.0版也交付了,但是质量低劣的代码使我们慢了下来
3)在企图交付未来版本的时候,随着拙劣代码的倍增,开发速度越来越慢,最后人们对系统、程序员乃至使大家陷于这种境地的整个过程都失去了信心
4)到了4.0版时,或者之后,我们意识到这样肯定不行,开始考虑推倒重来。
--以上摘自<重构与模式>
这种事情在软件行业或者各个公司都是很常见的,其代价之高也是显而易见,但是还有很多公司和团队乐此不疲的进行这个尝试和循环。有没有好的办法解决呢?
是有的: 测试驱动开发和持续重构!
其中导致设计不足的另一个原因可能是需求变更无法控制。但这个是在所有项目中都不可避免的,除了做好需求变更的控制管理之外,我们在程序中要做的就是尽量将控制核心业务的代码和模块划分的足够细,将业务的变更和底层的代码逻辑很好的划分开来,我想这样即使重构了底层部分代码,也不会造成整个流程的不可控。