敏捷开发的推理
如图所示,简单是软件开发的起点,也是软件开发的终点。
说它是起点,是因为,如果开发的东西还是复杂的,那就有必要把概念弄得简单一些。这包含两个方面的行动:一、把复杂的系统砍掉一半的功能(广度上);二、尽可能对各个功能进行抽象(深度上,参考前面音乐软件的例子)。
接下来,我们拿着简单的软件(或者软件原型)进入沟通环节。我们可以在两个方面进行沟通:一、与用户沟通软件的逻辑是否满足要求;二、与开发者沟通软件是否在技术上代价很高,如何权衡。
沟通之后,我们可以得到现实的反馈,在现实的反馈之下,我们才有勇气进行改变,使用我们的软件继续维持其简单性。这就完成了软件的一个迭代。
敏捷开发不仅是一种开发方法,更是训练自己心智的手段。敏捷开发所训练的是:让人做符合现实的事情。在做这样的事情的时候,人更尊重的是活生生的现实而非权威(你尊重现实),人得到的是对现实敏锐的反应能力(现实回敬你礼物)。