缘起
常常会被问起,敏捷教练是做什么的? 这让我常常想起敏捷宣言的第一句话:“我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人,由此我们建立了敏捷价值观” 。个人认为任何认同敏捷价值观,身体力行敏捷开发实践,并乐于&善于帮助他人的人都可以是敏捷教练。
敏捷价值观
传统的基于计划驱动的开发方法常常被称为瀑布开发,开发工作按照顺序依次执行:需求分析,方案设计,开发编码,测试验收,上线运行,各个阶段之间通常通过繁杂的文档传递知识,常常要求在开始前有全面而完整的需求和计划,拒绝后期的变化或变化的成本较高。对于简单,明确定义,可预测,且不可能发生重大变更的问题,计划驱动的瀑布开发模式也是适合的。 然而产品开发变得越来越复杂,产品开发的周期变的越来越短,当今的世界是一个易变的,不确定的,复杂的以及模糊的世界。敏捷价值观承认产品研发是一个复杂的工作,在研发过程中存在种种的不确定性,客户的不确定性,产品的不确定性,技术的不确定性以及方法的不确定性,以及由不确定性带来的各种变化。与计划驱动不同,敏捷方法基于经验过程控制,偏好适应性,探索性的方法,通过持续不断的快速交付客户价值,持续的与客户合作,对重要的假设进行快速验证;通过透明,检视以及不断调整的方式优化可预见性并控制风险,构建多个认知循环持续快速获得产品,技术,方法的反馈,即时调整;通过小批量的工作方式降低价值交付周期,更灵活的适应变化。敏捷是一种更快,更好,更频繁交付价值,更灵活适应变化,不断检视调整改进的能力。
作为一个敏捷教练需要深刻的理解敏捷的价值和原则,并将这些价值和原则融入于自己的日常工作思维中!
技术实践
知易行难,真知往往来源于实践。
如上图所示产品研发过程可以分为探索域和交付域,每个领域有不同的敏捷实践方法。在探索域你可能需要知道如何使用精益画布和精益数据模型给产品画像,定义产品目标;知道如何使用影响地图,用户故事地图等产品组织产品待办需求列表,如何定义拆分符合INVEST原则的用户故事;在交付域你也许需要知道如何估算用户故事,如何采用结对编程,TDD,ATDD,测试自动化,持续集成,DevOps,Mob Programming等工程实践;在这之上你还需要深刻理解如精益,Scrum,KANBAN,LeSS,SAFe等框架将相关的活动组织在一起;实施的过程中也会涉及到人,团队以及组织的组织和协同,如构建自组织团队,feature team,甚至是组织变革等;最后还需要更套路的认知这个世界,如系统思考等。全部精通似乎很难,敏捷教练可以根据自身的经验以及兴趣,发展路径有可以成为 Technical Mastery,Business Mastery或者Transformation Mastery。
敏捷教练在深刻的理解敏捷的价值观的基础上,同时需要具备丰富的敏捷技术实践经验,以及拥有基于团队的实际情况采用合适的敏捷实践的能力。同时随着时间的推移,敏捷教练还需要持续不断的扩展自己的知识体系工具箱,完成自己的知识循环:learning,doing and being。
助人为乐
无论是内部的或者外部的敏捷教练,一个重要的目标应该是当你离开的时候,被帮助的人不仅仅是doing agile,更重要的是being agile,从而他自己可以在不断的变化的世界中持续的检视,调整,改进。这里他人的范围可能是不同的:个人,团队,产品线,整个组织。敏捷教练重要的在于辅导他人思维模式的转变而不仅仅是工作方式的改变。
敏捷教练需要什么样的能力才能更好的帮助其他人?
美国敏捷教练学院的院长Lyssa Adkins定义的敏捷教练能力框架提供了最好的参考,如下图所示:
Agile-Lean practitioner,Technical mastery,Business mastery,Transformational mastery在前面敏捷技术实践中已经提到,不在赘述,简单看一下下面四种能力:
Teaching
在团队不知道他不知道的时候,Teaching是一个很好的开始。Teaching是在正确的时间通过正确的方式提供正确的知识给正确的人。帮助他认识另外一个世界。
Mentoring
当团队知道他不知道的时候,Mentoring可以出场了。仅仅通过Teaching是无法真正让团队掌握敏捷技术实践的,敏捷教练可以作为Mentor对敏捷的角色进行辅导,比如Scrum框架中的Product Owner,Scrum Team,管理层等,促进团队学习,掌握敏捷技术实践,进而取得团队的成长。一个好的Mentor不仅仅提供HOW,也要提供WHY,在过程中潜移默化将敏捷的思想传递给团队。
Coaching
当团队不知道他知道的时候,Coaching相信团队的能力,相信他们是最熟悉自己当前环境的,相信他们可以自己选择对自己最合适的工作方式和方法,此时敏捷教练作为一个团队的镜子,给团队提供观察和反馈,激发团队自身的能力。
Facilitating
当团队知道他知道的时候,Facilitating更多的在于引导,团队的各种会议,比如Scrum中的Daily meeting,Sprint planning,Sprint review,Retrospetive meeting,团队之间的合作/协作模式,团队冲突解决等,引导团队做出适合自己的决定。
一个好的敏捷教练,不仅本身认同敏捷价值观,实践敏捷方法,也必然是乐于&善于帮助他人的。
个人成长
记得来网易做敏捷教练之前和吕毅有过一次聊天,非常感谢吕毅给了我一个非常好的建议:个人周期性的反思。作为教练,可以是一周,双周或一个月,需要停下来问问自己,观察到了什么,做了什么,结果如何,学到了什么,只有不断的总结和反思才能不断的去刻意的练习,才能真正将习得的东西内化到自己的思维和行动中,才能更好的帮助他人。
敏捷教练之路将是一个痛并快乐的过程,一方面你需要去面对各种各样的挑战,一方面在各种挑战中不断的学习收获成长。路漫漫其修远兮,吾将上下而求索!希望你也成为一个认同敏捷价值观,身体力行,并乐于帮助他人的敏捷教练。
本文来自微信公众号“网易杭研项目管理”(ID:NeteasePM),作者 于旭东。
管理圈经授权发布,如需转载请联系原作者。
敏捷教练修炼之道系列合集: