相关资讯

怎样成长为DevOps的教练?

发布时间:2018-09-29 点击数:32

简介:

   随着企业对DevOps需求的不断增加,预计DevOps教练会像敏捷教练一样,未来为企业大量所需,但目前很多人还不了解DevOps教练做什么。本文分析了DevOps教练的三个层级的职责要求,提供了一个典型的职位描述作为参考,并在文末给出通过快速学习成长为DevOps教练的建议。

DevOps


1. 企业DevOps转型取决于组织中人的能力

根据Gartner的数据,70%的IT市场现在都集中在DevOps上。下图的谷歌搜索趋势也反映了DevOps从诞生(2009年)到现在越来越火爆的势头。

DevOps

不管是组织还是个人能力的成长,都有一定的规则:

>任何技能的掌握都有一个学习了基本技能之后,通过不断努力练习可以达成的由“不会”到”会“临界线。比如游泳,当你掌握了基本的打腿、划臂、呼吸等技巧之后,如果能比较好的把这些动作组合起来,就可以在游泳池里游上个100米。那么我们可以认为游100米是个区分“不会游泳“和“会游泳”的临界线。

>当然具备“会”的能力之后,离真正的高手还是有很大距离。比如在游泳池里游100米和在海水里自如地(不需要大量体力消耗)游上1千米是有很大区别的。我们可以把“在开放水域自由地游1千米”作为“会游”和“游得好”的分界线。

>组织的DevOps能力发展和以上个人能力的发展路径是类似的:

DevOps

能力成长的可能路径

>我们往往期待的是A路径:从开始采用DevOps到组织具备高绩效的DevOps能力的线性发展的过程。

>但很常见的比如B路径:组织尝试引入DevOps实践之后感觉困难太多,领导不支持或者目前的项目人员能力不足等,从而退回到原点。

>或者C路径:取得了早期成功,但在继续往更高绩效水平推进的时候由于要偿还的技术、文化债务较多,无法有效地克服此类问题,则会导致退回到原点。

>也有D路径的情况:取得一定的成功,并且可以维持在该水平绩效。但一直无法取得下一步突破,也无法真正达到组织和客户所期待的业务价值。

 DevOps说到底是系统性的改变,其中最重要的当然是。工具是由人引入、使用的,变革由人来推动,制度流程由人建立并执行,当然识别和解决问题更是要靠人。没有任何一个组织可以通过“购买”或“外包”DevOps而实现持久的成功。

 对于希望成功变革的组织来讲,很重要的是要识别、保护和支持有创新能力和意愿的那群“领头雁”(创新者和早期使用者)。通过这群人的成功,引领组织获得早期成功,跨越中级绩效陷阱,并不断推动DevOps在整个组织中的规模化和达成更高的绩效。

DevOps

技术采纳生命周期曲线


2. DevOps的教练做些什么?

在组织DevOps转型所依赖的人才团队中,DevOps教练是一个极为重要的关键角色。那么,什么是DevOps教练,团队又为什么需要DevOps教练?

这里可以参考敏捷教练的定义来说明,即:DevOps教练帮助团队或个人采用并改进DevOps方法和实践。DevOps教练帮助人们重新思考和改变他们交付软件的方式(关注价值流的方方面面)。教练的角色一部分是嵌入在团队内的培训师,一部分是咨询。

雅虎一项针对敏捷的研究表明,没有教练支持的Scrum团队可以提高35%的生产力,而有教练支持的Scrum团队则提高了300%甚至更多。既然敏捷教练已经为大家所熟悉和认可,那么作为敏捷2.0的DevOps必然更需要教练的支持。

DevOps教练可以大体分为两类:管理教练技术教练。在下图Nationwide的DevOps登山图中,这两者分别被命名为DevOps Leaders(DevOps领导者)和Tech Consulting(技术咨询师 - 这个角色应该对软件架构、部署流水线构建优化、软件交付整体质量等负责)。本文聚焦于前者 - 偏管理类的DevOps教练一职(注:管理教练也需有对技术的一定理解)。

DevOps

全美互惠保险的DevOps登山图

根据DevOps教练职责范围,从小到大有三个不同的层级。

* 第一级:团队级别教练

在团队级别上,DevOps教练所做的工作可以对应Scrum团队里的Scrum Master。当然DevOps目前并没有像敏捷中Scrum一样的一套方法。下图是参考EXIN DevOps Master课程中对DevOps团队角色定义(白皮书下载:https://www.exin.com/certifications/exin-devops-master-exam)。其职位名称为流程主管(Process Master)。

DevOps


EXIN DevOps Master课程里定义

DevOps团队各个角色

其中Process Master可以认为是团队级别的DevOps教练

严格来讲,成熟团队里的Process Master和标准DevOps教练还是有些区别的(教练要求为整体项目的成功提供支持),但其核心职责是类似的。

EXIN DevOps Master课程体系中对这一角色有明确定义:

>领导并促进团队,这个角色类似于在Scrum中 的Scrum Master。

对整个过程实施可视化管控,力求建立单件流作业(one-piece flow)的流水线式的流程。

>可视化管控意味着“在不需要解释的情况下,通过信息板是否每个人都能很容易的理解当前的情形?”它不并显示状态。但它可以用来表达是否有问题出现。

>经验需求:Scrum Master,敏捷项目领导(Agile Project Leader)。


* 第二级:多团队级别教练

这个级别的DevOps教练指导多个DevOps团队,让团队内部和外部的力量参与进来,解决阻碍DevOps实施的问题。在这个层级上,教练的四项核心技能需要充分发展:教授(teaching),辅导(mentoring),协调(facilitating),以及专业教练(professional coaching)。下图即为跨多个团队指导的DevOps教练一职(在DevOps Master的角色定义中,也被称作流程主管 Process Master,不过是跨团队的)。这里的跨团队教练角色和上一级的教练可以一起合作。

DevOps

EXIN DevOps Master课程里定义的跨团队的DevOps教练角色

指导多个团队的DevOps实践


* 第三级:企业级DevOps教练

可以有效制定企业DevOps转型的整体战略,保障试点项目的成功,引导DevOps实践的规模化发展,引入行业最佳实践,制定企业跨部门的DevOps流程实践,发展高绩效组织文化实践,协助DevOps技术咨询师制定适合的工具集,等等

这一角色在某些企业中是敏捷/DevOps变革领导小组的关键成员。下图来自张乐老师的《某大型互联网金融项目百人团队持续交付转型实践》一文。


DevOps

某大型互联网项目里的专门推进变革的小组

企业级DevOps教练应该是其中的关键角色(虽然职位的具体名称可能不同)


3. 一个典型的DevOps教练职位描述

认为属于DevOps教练的核心能力用蓝色字体标出。

职位描述 - DevOps 教练:


一、工作职责(Responsibilities)

>DevOps方法方面专家,能够要求团队成员以规范的方法来推进开发和运维的能力

>通过变革来指导组织,帮助识别和克服限制团队生产力和质量的阻碍

>对构建和部署过程给出建议以确保最佳实践

>指导团队如何更好地使用DevOps工具

>帮助平台团队实现平台自动化

>培养团队精神和遵守规范

>在需要的时候进行一对一的指导,特别是对刚刚接触DevOps思维的成员

>评估团队DevOps成熟度并提供进度反馈

>预测和识别问题,并提供解决障碍和问题改善的建议

>参与或领导复杂问题的解决,以定义问题,评估当前状态的根本原因,设计和测试解决方案,并实施能产生预期结果的解决方案


二、成功担任这一职务所需的资质(Qualifications)

>理解精益和敏捷流程背后的原则和价值SAFe/Scrum/看板经验者优先

>善于与组织中各种技能和角色的人沟通,包括技术工程师和有成本意识的高管人员

>从运维/客户服务的角度对价值流有很强的理解

>具有使用CI/CD工具(如Jenkins、Deploy、Ansible等)自动化工作流和流程的经验

>能够解释内部和外部业务挑战并实施最佳实践以改进产品、流程或服务

>能够领导复杂的项目并承担风险

>在解决技术、运营和组织方面的挑战时具有判断能力

>具备管理团队的能力,包括识别和招聘人才,管理绩效,以及决定资源分配

>有能力影响他人采用新的角度,能够有技巧地处理人际关系问题。


三、经验要求(Experience)

>至少6年敏捷环境中工作的经验,最好是开发或IT运维角色

>至少3年以上指导多支团队的经验

>在开发生命周期中使用DevOps工具的经验(GitHub, GoCD, Jenkins, AWS, Azure, Docker, Splunk)

>在运维领域有经验,例如变更和发布管理、网络、安全和托管


四、能力(Competencies)

>能够使相关方跨职能参与,以减轻团队的障碍

>较强的沟通能力,能够处理和解释复杂的技术概念,并在决策上协调组织

>协作、高效、创新

 

五、能够指导任何DevOps实践(Practices)培训,包括但不限于:

>XP实践

>测试驱动的基础设施

>ATDD / TDD / BDD核心

>持续集成/交付

>分布式安全实践

>静态分析(代码质量检查)


4. 成长为DevOps教练的建议

从以上JD可以看到,DevOps教练对能力的要求是非常全面,从技术、管理、流程、业务、组织文化、个人领导力都有要求,而这并非该职位描述的过度要求或不切实际的期望。实际上,由于DevOps的复杂度和系统性,确实要求DevOps教练具备职位描述里提及的各项能力。从另一方面讲,这样的复杂度也会有效地建立起较高职业屏障。其实,通过有效的集中式学习,是可以快速建立起相关能力的。

根据你自己的工作经验来选择学习成长路径:

如果你是敏捷/精益教练,因为敏捷/精益和DevOps有很多共通之处,这对成长为DevOps教练很有帮助。而你的沟通和领导能力可能也是强项。你主要需要补全的是:持续交付相关的工程技术实践、IT服务管理等方面的知识。敏捷教练和DevOps教练的差异可以参考这篇文章 Can any Agile coach lead a DevOps implementation?http://agilopedia.blogspot.com/2017/11/what-role-of-devops-coach-part-4-can.html)

如果你是技术专家,你的技术知识可以使你更多的把精力集中在敏捷/精益方面,以及教练/咨询的能力。下图的敏捷教练模型,展示的各个技能项可以作为DevOps教练的参考。

DevOps

敏捷教练所需要的技能

在教练技术上,DevOps教练的要求也是相通的。技术岗位的学习者需要不断磨练。

针对其它的非技术岗管理者,比如项目经理PMO产品经理质量和过程保证部门人员、也包括一线或中层职能部门经理人,你的长处在于管理和沟通、组织文化、业务以及领导力,你最需要学习的是跟持续交付相关的技术实践,以及敏捷、精益、ITSM这些流程管理实践。

5. 结语

就像初学游泳者首先需要有一套"基础技能包“反复练习一样,要从你现在的岗位成长为DevOps教练也有一套初学者必会的技能组合(Starter set of a few half-assed skills)。通过集中的训练,是可以做到在知识和能力上的快速成长,尽快突破第一层的绩效临界线。帮助不同背景的学员快速掌握成为DevOps教练的核心能力,是我当下最重要的目标。


6.作者:许峰老师


> DevOps讲师、咨询师

> 超过20年的IT服务交付、管理经验

> 历任国内及世界500强IT公司总监、副总裁等管理职务

> 英国威尔士大学 计算机科学 硕士

> DevOpsDays中国区核心组织者

> 国际最佳实践管理联盟(IBPA)特邀专家

> 英国国际专业管理公会认证职业培训师 (CIPT) 


【咨询培训客户】:

兴业银行、太平洋保险、交通银行、 百安居、

神州数码、赛诺菲、耐克、中国移动通信等招商银行、

富国基金、中国金融期贷交易所、海通证券、诺基亚、腾讯、上海保交所、国泰君安证券等。


【授课课程】:

EXIN认证课程系列(以下讲师资格均为中国首批授权):

> DevOps Master讲师(2016)

> DevOps Pre-Mater讲师(精益IT、敏捷/Scrum,及ITSM)(2017)

> DevOps Professional讲师(2017)

> SIAM (集成服务管理)讲师(2018)

> VeriSM(数字化服务管理)讲师(2018)

> 企业内训类课程

> DevOps企业导入实战课程

> DevOps领导力

> GamingWorks沙盘课程系列

> DevOps沙盘《凤凰项目》讲师(2016)

> 项目管理沙盘《挑战埃及》讲师 2016)

> 敏捷服务管理沙盘《火星登陆器)讲师(2018) 


咨询热线:

DevOps