- 论坛徽章:
- 0
|
second system syndrome
The failure of a second system coined in “The Mythical Man Month” by Fred Brooks. It refers to a condition that occurs after a first system has been implemented. When it seems to be working well, designers turn their attention to a more elaborate second system, which is often bloated and grandiose and fails due to its over-ambitious design. In the meantime, the first system may also fail because it was abandoned and not continually refined.
意思就是在做好第一个初步的系统之后,为了将项目做得更完美立刻进行第二个系统的制作,但是由于将第二个系统的目标定位得太过复杂,导致短时间无法实现或者非常难于实现,在制作者的精力和动力被消磨光之后,第二个系统流产,连带第一个系统也被荒废,这就是第二系统综合症了。
此现象多见于某些追求完美的技术人员,常见的情景为某人为了完成某一任务写了一个简短的小程序,虽然粗糙但是可用,接下来此人为了完美这个程序又给自己提出了更高的目标,并且可能连带想实现更眩更酷的进一步的功能,然而就在这个实现过程中越走越远,东西也越做越复杂,最终因为失去兴趣而失败了,同时最初的第一个小程序可能也因此而扔掉了。
第二个系统是设计师们所设计的最危险的系统。而当他着手第三个或第四个系统时,先前的经验会相互验证,得到此类系统通用特性的判断,而且系统之间的差异会帮助他识别出经验中不够通用的部分。
人月神话中提到:
结构师如何避免画蛇添足——开发第二个系统所引起的后果(second-system effect)?是的,他无法跳过二次系统。但他可以有意识关注那些系统的特殊危险,运用特别的自我约束准则,来避免那些功能上的修饰;根据系统基本理念及目的变更,舍弃一些功能。
一个可以开阔结构师眼界的准则是为每个小功能分配一个值:每次改进,功能x不超过m字节的内存和n微秒。这些值会在一开始作为决策的向导,在物理实现期间充当指南和对所有人的警示。
项目经理如何避免画蛇添足(second-system effect)?他必须坚持至少拥有两个系统以上开发经验结构师的决定。同时,保持对特殊诱惑的警觉,他可以不断提出正确的问题,确保原则上的概念和目标在详细设计中得到完整的体现。 |
|