敏捷项目的多层面规划
导语
“不做计划的人注定要失败。” ——匿名
“今天把计划做好,胜过明天把计划做完美。” ——匿名
“你的计划没做好,不会让我的工作变糟糕。” ——匿名
“当机会遇上计划,就会变成好运气。” ——发明家 托马斯·爱迪生
“计划只有马上变成努力工作,才能算是好想法。” ——管理学大师 彼得·德鲁克
“正确的准备,产生出众的表现。” ——著名橄榄球四分卫 Charlie Batch 【译注1】 “你永远无法根据过去规划未来。” ——爱尔兰政治家 埃德蒙·博克 【译注2】
“响应变化重于遵循计划”,这是敏捷的核心价值观之一,可是它有时会被人错误诠释为敏捷项目中不需要规划。然而,真实情况根本并非如此。在适应性敏捷项目中,规划的次数要远多于在预先规定好计划的(predictive)【原注1】项目中做规划的次数,因为我们要将必然会出现的诸多变化纳入到考虑之中。适应性项目的特点就是不确定性,主要存在于以下领域:
- 需求:所有的项目都需要绝对清晰的目标和方向,然而,要达到这些目标需要实现很多具体需求细节,这些细节在一开始很难完全理解透彻,而且很容易在项目的生命周期中改变。
- 对问题域的理解:要知道我们的理解不可能完全正确,而且随着我们深入了解问题域的现实,我们对于解决方案最初的想法很可能会改变。
- 交付率:适应性项目其本质是创造性工作,而且团队试图在解决方案没有完全想清楚之前开始解决问题,解决方案的产生需要发明和创意。人和人之间的差异导致彼此无法完全替换,而且各人的工作效率也不完全一样。
适应性项目需要对应的适应性的方法,这样一来,在项目的生命周期中,我们对于项目的理解不断加深,产品也会逐步演变。敏捷项目中采取迭代和增量式的工作方法,就能提供必要的反馈机制【原注2】,以此交付适应性项目。
尽管敏捷项目的本质是适应性,管理层还是希望了解“项目成本如何?需要多少时间?”这样的要求合理而现实。要向项目中分配组织资源,要完成哪些工作也需要相关决策。这就意味着我们要在某些层面上提供反馈,以回答项目开始时的一些问题,并定期提供相关信息,确保我们可以利用组织的投资交付最好的价值。
要达到这个目标,我们需要在多个层面规划。
以下是规划会发生的两个宽泛层面:
- 最高层面的规划,往往在团队之外进行,而且与应该资助哪些行动方案相关——“做正确的工作”。
- 一旦某个项目通过了“我们应该做这个项目吗?”这个问题,我们就需要将重点放在“把工作做正确”之上。此时,就需要在5个层面上做项目规划。
做正确的工作
这里的流程主要是要选择出投资哪些项目,可以看下面的幻灯片:
创新和问题
所有组织都需要一种鼓励机制,鼓励大家产生各种好主意、发现问题。在开始的主意和问题辨识阶段,应该尽量不做过滤,组织的所有成员都可以指出某个未处于最佳效率的工作环节,识别组织需要解决的问题(比如市场中的某些变化或是新颁布了某条组织必须遵守的法律),或是提出某种能够完成的全新事物。
当很多主意提出之后,需要有一种粗略的过滤机制——想想这个想法是否值得深入考虑。很多时候,可以对这些主意进行成本-收益分析和可行性评估。有些主意会自动通过第一次过滤(比如:为了符合某条法规的变化,某个项目必须要完成),有些很快就被抛弃了(成本不允许,或是与组织的战略目标完全不符),有些还需要深入研讨。
得到自动通过和值得深入研讨的主意将会进入“项目组合规划”流程。
项目组合规划
“项目组合规划”是监管层面的活动,其目的是要选出组织应该投入资源完成的项目组和项目。毫无疑问,希望完成的项目要多于能够投入的项目,项目组合管理流程就是要选出可以投入资源的项目。
判断要完成哪些工作,应该依据组织的使命和目标:只有交付物符合组织最高战略层面要求的项目和工作,才能得到投资。项目组合规划是基于风险-回报的活动,组织的风险管理策略有助于选择投资哪些项目。
“项目组合规划”应该在公司的职能层面的组织架构之上进行,以确保端到端的影响,并且选择出来的工作的价值也得到分析。在这个组织架构层面之上,项目将会影响多个职能领域,还要避免发生“争地盘”的情况,这一点很重要。这个层面上,任何重大的工作还会要求组织中多个职能领域提供资源(比如:全新客户自服务系统的上线不仅仅是IT项目,是会有IT方面的工作,不过市场部要宣传提倡大家使用自服务系统网站,服务部门要给知识引擎提供内容,等等)。
各个组织的“项目组合规划”流程各自不同,但是都应该遵循理解透彻的流程,还要为下列步骤提供指导方针【原注3】:
- 构建所有项目的项目组合
- 定量和定性评估项目
- 判断现在投资哪些项目
- 为项目组合排序
- 维护项目的backlog,并基于新项目需求和已完成的工作主动管理backlog
当工作需要跨越组织的多个职能领域进行时,可将其拆分为相关但是独立的、合理的工作活动流,并将这一系列项目作为项目组管理。
项目组管理
要对项目组做更多协调工作,以保证互相关联的工作流程得以同步。当软件完成时,广告营销活动要准备好对外发布;在广告营销活动启动前,呼叫中心的人员要雇佣到位,而且完成培训;在广告营销活动启动前,软件要部署在生产环境服务器上。诸如此类工作要保证完成。
项目组经理是专有职位,此人对于所有的相关工作项目有战略视角,以确保整体的项目组得以顺利交付。项目组经理为不同项目团队提供统一的愿景,这些团队会完成不同的工作项目。
项目组经理是所有项目团队最终的客户,并设置整体的优先级和里程碑。
项目组管理是适应性流程,其中各个项目要响应组织不断变化的现实,以及其他项目团队的产出和交付物。
应该制定出整体的项目组规划,当事情发生变化时,还要调整该规划。项目组规划的关键要素包括(【译注3】):
- 产品整体大致需求,要交付的目标和关键特性
- 项目组承诺完成的组织目标
- 项目组各方面的成本-收益分析
- 市场投入和方法
- 销售方法
- 整个产品生命周期预期可能带来的收入
- 要交付所有工作的预估成本
- 服务、支持和维护成本
- 内部和外部人员培训
- 项目组的关键里程碑和大致日程,包括进行中的发布周期
- 不同项目和时间段涉及的人员档案
- 整个项目组的整体风险登记册
项目组管理需要为各个子项目提供方向。理想情况下,“产品愿景”要提供这方面信息,而且所有团队都要对其完全理解,并做出承诺。
把工作做正确
这是说:要确保团队要交付的产品符合产品愿景。就是在这个过程中,适应性敏捷团队基于迭代和增量的方式来交付业务价值。
下图展示了规划活动如何在越来越详细的层面上进行。
产品愿景
在产品愿景中,我们从监管和组织级战略决策层面转向战术上的产品交付层面,并改变组织中人们的工作方式。
产品愿景是至关重要的工具,向团队传达为什么要工作,他们的工作方向,以及他们的工作要服从