-- 自由人,足球术语,由意大利球队首度创造,又名清道夫,指在足球比赛中的特定人选,根据场上形势灵活变换位置与职责,因而得名。

 

    当CPU(中央处理器)在执行一条现行指令时。收到高优先级任务指令的中断信号后,暂停执行当前的程序指令,跳转到负责处理这个信号的处理程序中。完成对这个信号的处理后再跳回到刚才被打断的程序指令。该逻辑由中继系统完成,过程主要有请求中断、中断响应、关闭中断、保护断点、中断源识别、保护现场、中断服务、恢复现场、中断返回。

 

    可见应对一个中断,CPU要处理的逻辑要比正常运算逻辑复杂几倍。换成人也类似,打断当前任务,执行高优先级任务,完成后再继续处理原任务,这个过程也和CPU的中继处理过程类似。但人的切换却要比CPU切换困难的多,慢的多。

 

    有这样一个场景,一个提出的功能需求,2个月就能改完。但是每半个月或者1周会提出修正需求。这种变更需求算不上新功能,只是原有功能的完善或优化或补充。而且提出本身也是必要的、合理的,变化后确实能满足现实要求,或功能优化或体验提高。但这种变化多了,会对人员产生频繁“中断”效应,会深刻影响既有功能任务的开发进度。如果是同类需求的变化还好,如果加入的是另外一些不相干的需求。则势必要引起分析、开发人员的思路频繁切换,严重的影响整体任务进度和进展。

 

在经分敏捷的团队中,针对以上情况,我们设立了一种角色,即自由人。该角色由经验丰富,从业时间较长,横向和纵向知识体系较为完备一个或几个人组成。他们会在实施的敏捷迭代开发实施中,根据情况灵活变换职责和工作内容。主要的作用是应对本迭代实施中新加入的需求分析、开发、或是任务支援。屏蔽或减少迭代过程中新增变化对原有团队既定的迭代计划和开发目标的影响。保障整体开发节奏和进展的按计划进行。

 

    就像兵团攻坚一样,主力部队要按照既定的协同作战方案和计划按部就班的推进,而预备队或后备兵力,要根据实际情况,机动的组织保障、支援和掩护,避免主力部队受到不必要的袭扰,保障主力部队按计划推进,也或根据需要临时赋予相应作战任务,且一经使用,需尽快重新组建。

    经分敏捷团队中的自由人就是类似预备队角色,其角色行使的过程是:

    在迭代计划会(用以决定下一迭代完成的任务内容)上,自由人们会参与计划决策。看产品backlog,听需求,分析故事,了解重要程度,凭借自身经验,协助决策,确定优先级和人员安排,明确复杂需求实施方案。然后再根据实际情况,明确此次迭代过程中由哪个或哪几个人担当自由人角色。

 

    然后自由人优先认领任务,一般选择的任务均为非关键路径任务,尽量短小,没有前置依赖,也不会对其他任务产生后置约束,来做为自由人的正常迭代开发任务。在之后的开发过程中,自由人会和其他组员一样进行相应开发任务。而当遇到复杂问题或疑难问题,组员无法有效应对时,自由人会参与讨论,凭借资深经验进行分析、判断,并给出具体解决办法、建议。然后再继续自身的原有既定任务。

 

    当有新增的重要或紧急需求加入或需求变化时(比如领导的紧急需求,市场部的重要需求),经过产品经理分析并决定必须插入此迭代完成时。自由人将会进行“中断”处理,搁置当前执行任务,转而对新增需求进行分析和开发。此时自由人角色会转为组员,专门应对新加入任务。此时,团队将会考虑认定另一合适人选为继任自由人,保证预备队的尽快组建。若此时已没有合适人选,则团队达到了饱和效能状态,再有变化需求,则会考虑传统敏捷的常用应对方式,如:延迟决策(deferral decision)、时间盒子(time box)、变更成本透明等策略、需求置换,或是将变化需求安排至下一迭代计划中。

 

    以上就是经分敏捷团队中自由人的实践和使能过程,在不同的开发迭代里中也会进行轮换。这种方式在实际过程中确实起到了实际作用,比如今年为支撑BES项目改造及割接,相当一部分开发骨干被抽调至BES项目支撑中,剩下的人员相互顶替,应对由此产生的业务需求积压。在最艰难的11月下旬,人力资源几近枯竭,不得以,将团队中部分资深测试人员确定为自由人,并充当产品经理角色,直接参与相关需求澄清任务中,完成了11个新增需求的澄清、分析和方案提交等任务,确保了经分新业务开发团队持续的保持着每周600人日-650人日的开发效能,维持了近6周+,使得近4000+人日需求积压,在1个半月里基本追平。

 

    其实这些自由人在实际工作中,工作会更琐碎、有趣,比如帮组员们收快递、倒水、订盒饭,他们彼此笑称这是“敏捷服务”。这让我回想起另一个开发团队,没有版本管理工具、没有持续集成环境,组员们用最原始的文件共享的方法合入各自完成的组成代码,但仍保持着每次提交100%编译通过。因为他们知道发现版本编译错误会被领导骂死,所以自发的进行着谨慎但极其有效的协同与协作。

 

    人,特别是自动自发的人,有时会弥补资源、技术的不足甚至是缺失,行业内有句唯心的话,“当一个人想尽力做一件事时,全世界都会帮他”。这些也都引起了我的思考,并再次加深了敏捷4句宣言中的第一条“个体和互动 重于 流程和工具”的理解。

 

                                                                                                                             陈雷  2016.12.22