2
建立一个扔掉vs第二系统效果
一方面,有一条建议说“建一个要扔掉”。只有在完成软件系统并查看最终产品之后,我们才能意识到设计阶段出了什么问题,并了解我们应该如何真正做到这一点。 另一方面,存在“第二系统效应”,它表示设计的同一类型的第二系统通常比第一个系统差。有许多功能不适合第一个项目,而被推入第二个版本通常会导致过于复杂和过度设计。 这些原则之间不是在这里有些矛盾吗?对这些问题的正确看法是什么,两者之间的边界在哪里? 我认为,这些“好的做法”是在弗雷德·布鲁克斯(Fred Brooks)的开创性著作《神话人月》中首次得到推广的。 我知道其中一些问题已通过敏捷方法解决,但从深处看,问题仍然是原则。例如,在上线之前,我们不会对3个Sprint进行重要的设计更改。