突破:程序员如何练就领导力
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

8.2 解决方案和实施步骤

要解决上面提到的三个团队目标确定中的问题,下面总结的“三步闭环目标制定法”是一个经过不同团队验证行之有效的方法。

第一步:从制定中长期目标开始,并逐步分解至短期目标。只对可见时间的短期目标进行详细规划

按照“以终为始”的思路,团队需要从中长期目标制定开始整个目标确定的过程,因为这样才不至于失去全局观。接下来,团队应该利用“金字塔原理”中“以上统下”的思想,将中长期目标逐步分解为短期目标。特别需要注意的是,在整个过程中,只需要对可见时间内的短期目标进行详细的规划。这么做的原因在于:第一,实践证明,中长期计划在大多数情况下都是会发生改变的。因此,对中长期目标和任务进行规划的核心,在于让团队统一前进方向,识别前进过程中的有利因素、风险、障碍,以及资源配置情况等信息。第二,对于可见时间范围内(例如接下来一个月或者一个迭代开发周期),虽然变化仍然会发生,但是团队可以很大程度上对变化发生的因素和影响进行识别和评估,并在详细规划中充分考虑。也就是说,长期目标的确定重在明晰方向,而分解之后的短期目标重在详细规划。只有在二者间达成了平衡,才能最高效率的平衡目标规划和总是发生的变化之间的矛盾。

在敏捷软件开发的ScrumScrum,迭代式增量软件开发过程,通常用地敏捷软件开发。Scrum是一种流程和方法。实践中,开发周期被分为长度固定的迭代(Sprint)周期,通常团队会使用2~3周作为一个迭代周期。在Scrum的规划实践中,产品经理会维护一个产品级别的规划,这可以理解为中长期的目标。而团队只会在每个迭代周期开始时,对本次迭代进行详细规划(Sprint Backlog)。这种工作方式背后的理念就是充分认识到变化会发生,但是对于可见时间范围内(未来2~3周)的规划,则需要做到尽可能详细,并且通过提前识别变化发生的因素,降低变化所产生的影响。

而在另一种称为看板的敏捷实践中,甚至都不会对中长期进行目标确定和规划,所有团队需要完成的工作,都会进入团队的“待办事项列表”中,并按照工作的优先级触发一轮新的规划。这样的方式更进一步地提供了团队规划的灵活度。

第二步:为分解之后的短期目标确定验收标准

“以终为始”的思想还有另外一个非常重要的应用,就是为每一个分解之后的短期目标确定验收标准验收标准Definition of Done,简称DoD。。验收标准,顾名思义,就是定义了在该项目标达成之后,从客户的角度,应该满足什么样的条件。这里有两个需要特别提醒注意的地方:第一,验收标准应该是从客户的角度去描述目标是否实现,而不是从团队作为目标的实施者的角度去描述。例如,如果某团队制定的短期目标是提升客户满意度,则验收标准应该是基于本行业标准的客户满意度测评CPI(Customer Perceived Index)结果比上一年度提升10%。然而,有些团队会错误的用自己的视角制定验收标准,例如,在团队内部完成N个客户满意度提升项目,增加M次客户拜访。对比这前后两个验收标准,我们可以清晰地看到,前者是从客户的角度描述如何判断目标是否达到,这也是这个目标制定的最终目的;而后面的验收标准,更多的是从实施者的角度描述“做了什么”,即使这些验收标准都达到了,却并不一定能够保证客户的满意度得到提升,也就是说“终”还是没有实现。第二,验收标准一定是可以衡量的、可观察的。例如例子中的“客户满意度测评CPI指数比上一年度提升10%”,就是可以衡量的验收标准;而如果制定的验收标准是“客户对产品的好感提升10%”,则很难进行衡量,因此并不是一个好的验收标准。

表3是一个可供参考使用的目标分解和验收模板。利用此模板,可以促使团队对目标进行从上到下的分解,同时提醒团队为分解之后的小目标提供验收标准。

表3

在敏捷软件开发实践中,验收标准是非常重要的一个环节。在Scrum敏捷实践中,可以定义不同层次的验收标准。

迭代的验收标准

对于一个为期两周的迭代,常见的迭代验收标准条款如下。

(1)所有承诺的用户故事得到产品经理的验证。

(2)所有的代码在代码质量管理平台中进行检查,并确保没有“严重”级别的错误。

(3)所有新增代码都有人工代码审核。

(4)所有完成的用户故事都有对应的测试,并在QC工具中进行记录。


用户故事的验收标准

针对每一个用户故事,完成的标准如下。

(1)功能满足需求,包括没有尚未关闭的故障,代码满足组织的代码质量标准,性能、安全等非功能指标,等等。

(2)功能是被完善测试的,包括:单元测试100%通过,通过集成和系统测试,测试用例被记录,以及可追溯,等等。

(3)有适当的文档对功能进行描述,包括:提供必要的客户文档,提供完善的API文档,提供内部技术文档,等等。

在优秀的敏捷实践中,在每一个迭代的最后,整个团队都需要对迭代的验收标准进行检查,并将结果作为迭代回顾会的重要输入。而对每一个用户故事,产品经理都需要和团队一起,逐一对用户故事验收标准DoD进行检查,然后才能做出是否验收合格的决定。

第三步:定期对目标进行回顾,并根据最新情况对目标进行动态更新

在项目管理上,美国质量管理专家戴明提出了一个非常著名的PDCA(Plan-Do-Check-Act)循环,也称为“戴明环”,如图13所示。PDCA循环是全面质量管理思想和方法的依据。在PDCA循环中,四个行为——计划(Planning)、执行(Do)、检查(Check)和采取行动(Action)——在整个项目执行过程中不停顿地周而复始运转。虽然PDCA来源于项目管理,但是其背后所蕴含的思想,即不断对目标、计划的执行情况进行检查,并随时做出必要的调整,再开始新一轮的执行,却可以被应用在更广泛的领域。同样,对于团队目标的执行,也可以使用PDCA的理念,定期对目标的执行情况进行回顾和检查,然后适时进行调整。

图13 PDCA戴明环

具体来说,定期对目标的回顾和检查,可以利用“六顶思考帽”,采取如下结构化的方式引导团队进行讨论。

(1)白色帽子(事实)——基于之前制定的目标,现在执行情况如何?从上一次回顾会议到现在,有什么新的变化?

(2)黑色帽子(风险)——是否有新的变化可能会导致团队目标发生变化?有什么风险或者障碍?

(3)绿色帽子(创意)——目标是否需要更新?

(4)红色帽子(感觉)——团队对更新的目标或者保持不变的目标的满意程度如何?是否大家都觉得这个目标已经充分考虑了最近的变化?

(5)绿色帽子(创意)——利用金字塔原理,问题(差距)= 目标 – 现状,现在距离目标的差距如何?要解决这些差距,应该制定哪些分解小目标?这些分解之后的小目标的验收标准如何?

(6)红色帽子(感觉)——最后,团队对更新的目标,以及分解的小目标的认可度如何?团队成员是否都愿意投入工作去实现这些目标?