软件的一个主要分歧是要做多少预先设计。对于应该什么时候做设计和应该做多少,人们是非常两极化的。以我和软件团队工作的经验,基本上有以下几类观点: “在开始编码之前,我们需要预先做好所有的软件架构”;“软件架构不需要预先完成,我们会逐步演化它”;“嗯,我们拥有一支优秀的团队,不需要做软件架构”。这些不同的观点引出了一个有趣的问题,你需要预先做多少架构?