计划是困难的,Barry Boehm做的一份调查显示,除非到了代码提交,plan的准确性总是不可能的。做一个两周的计划,如果偏差是20%,那么很有可能就要2周半才能完成,如果是一个4周的计划,那么就要5周才能完成。无论你怎么做,至少在我们这个复杂的项目,计划的准确性只能是个神话。所以计划之后,每一个人所应该做的是全力以赴,记下真实的情况,而不用太在乎原有计划的准确性。
说计划精确是个神话,不是说不必考虑未来,不必深思熟虑即将到来的障碍,而是说不必受此困扰。潜藏基因里的想法是每个人希望自己是个前后一致的人,计划和实际一样会显得我很高明。但现实是我们的估算能力基本上就是狗屎。大多数人会高估每年死于自然灾害,死于飞机意外的人,却不知道游泳池和汽车才是更危险的。只有足够小,足够简单的事情估算才靠谱那么一点点,目前对于绝大多数人,项目里不清楚的东西远远多于清楚的东西。
人获得最多信息的时候是你在做某件事的时候,而不是什么都没做的时候。什么时候人还会做计划呢?通常是在开始之前,那可是做任何重大决定最糟糕的时候,现实是,我们不得不即兴发挥。Scrum team的精髓不是计划,而是不断做小计划。Scrum的输出不是验证谁是倒霉蛋,而是要寻找能更好做事的方法,提交更高质量的代码。在Scrum team里没有人需要隐瞒些什么,把你在真实世界里学到的那些表演扔一边去吧。
明白这点很重要,时间估计不准是人类的问题,不是任何人的个人问题,估算精度可以提高但无法精确。计划是猜想,长期的计划是幻想,有太多的事实证明那是超出人的掌控的,市场环境,对手,顾客,经济政策,灾难,生死。做计划让人有种觉得一切尽在掌握但实际上你没有。所以不如把计划的真实命名为猜测,现在可以不必为此那么紧张,他们不值得。
所以第一步,让我们诚实地面对现实。
参考
1 Rework