天儿真好,
虽然在这里考虑过这个问题,但是对于可能的未来变化进行了过度设计,这让我想到了.
您可以提供哪些理由反对那些坚持要求设计的人,因为"他们可能希望在未来的某个阶段将其用于其他地方"?
同样地,当人们接受这些要求然后回来时,你会做出什么样的臃肿设计以及你没有要求的额外"花里胡哨"?
当您知道现在或在不久的将来存在的需求或可能的用途时,我可以理解扩展设计.而且我并不主张只是轻率地接受一系列要求并明确地实施,而不提供任何关于你认为可能缺失的反馈.
我在谈论当人们坚持添加或拥有无关功能时该做什么,以便"我们可能会在未来的某个阶段将其用于其他地方?"
维基百科有很多好的理由.
http://en.wikipedia.org/wiki/You_Ain%27t_Gonna_Need_It
- 花费的时间来自添加,测试或改进必要的功能.
- 必须调试,记录和支持新功能.
- 任何新功能都会对将来可以执行的操作施加限制,因此现在不必要的功能可能会阻止以后实现必要的功能.
- 在实际需要该功能之前,很难完全定义它应该做什么并进行测试.如果未正确定义和测试新功能,即使最终需要,也可能无法正常工作.
- 它导致代码膨胀; 软件变得更大,更复杂.
- 除非有规范和某种版本控制,否则可能无法使用该功能的程序员可以使用该功能.
- 添加新功能可能会提示其他新功能.如果这些新功能也得到实施,这可能会导致雪球效应逐渐蔓延.
另见:http://en.wikipedia.org/wiki/KISS_principle