敏捷开发的精髓在于快速响应。
响应什么?相应变化。
谁的变化?需求的变化。
如果我们能够每隔一秒钟就从用户那里重新获得需求,然后进行分析、设计、编码、测试,那么我们就不会抱怨用户的需求总是变化了。因为在这一秒钟的时间段里,用户的需求没有任何变化。但是显然,这不可能。
不可能的地方有两个,一是我们不能每一秒钟就重新获得一次需求。二是我们不可能每次都对用户的需求重新分析、设计。
但是我们可以找到一个相对平衡的时间段和需求块,尽管不是完美的平衡。时间段有多长?取决于用户需求变化的速率。需求变化得越快,那么获取的频率应该越高。每次对多少需求进行分析和设计?这取决于我们拥有多少时间以及我们的工作效率。(对这句话我还不是特别肯定)。
为什么需要重构?因为它会使代码更灵活,拥有更好的反应能力。
为什么要拒绝腐化的代码?因为死人是永远不会做出响应的。