可变的计划 | 敏捷的哲学
估算,是在敏捷中一个反直觉的词汇,某种程度上代表着未知、不可控进而失去安全感的语境。相比较而言,计划在一直以来的传统软件语境下,意味着深思熟虑,可靠,看得见的结果。然而根据众多的经验,比如软件危机,我们都会了解,即便计划面面俱到,完美到无懈可击,但现实的结局不会如我们所愿,也就是常见的失控局面。这是敏捷带来的一个需要被改变的认知之一,而理解估算以及它的目的,会是一个不错的起点。
我们尽管需要在项目的开端根据有限的经验和上下文,给出大致工作量的数字化表示。但更重要的是,团队在不断的迭代进行中,以时间作为维度之一,结合自身对技术和业务的能力,工作吞吐量,需求和人员的变更程度,甚至休假频度,给出在此之上做可靠计划的综合依据。在那里,估算才具有相对准确的可能,以及更积极的意义。
所以,在开端做任何意义上的计划,不论是令人振奋还是沮丧的,如果就此完全信赖,遵循,也必然会导向到僵化,守旧,直到偏离。
除了估算作为必须接受计划具有可变性的切入点,我们还看到其他一些敏捷语境的词汇,启发对这种理解的可能性。当然首当其冲的,是敏捷宣言中的拥抱变化,这不是一句空洞的口号,必然会以某些细致入微的具体体现在日常中。比如必然会变动的需求,持续不断进出的人员,自然也会引发伴随计划的调整,我们都不得不拥抱它们,别无他法。
然后是软件的迭代和增量的本质,需要依据市场和用户的反馈进行调整变化。这都会需要它在一个更小的时间盒子内,做快速的计划并据此采取行动。相对一个冗长僵硬的长期计划,这个短期而且灵活变动的计划显然更会带来信心。是的,我们仍然需要一个本质固定的计划,只是这个计划的周期很短,短到我们宁愿认为它可变的特点,以此来强化我们对这种方法的认可。
关于可变计划的最后但也很重要的一点是,可变的计划要由在现场的人来制定,而不是坐在自己办公室里,面对屏幕颐指气使,但不愿挪动屁股半寸的那个人。原因也很简单,在现场的人,对变化具有最直接的感知,在资源充沛的前提下(这个时候就需要那个不愿挪动屁股的人了),可以做出最快的应对,而不是需要官僚的汇报而贻误了时机。