[运营专题]零预算引爆个人和企业品牌【原文链接】
Selenium 自动化测试从零实战【原文链接】
原来这样做,才能向架构师靠近【原文链接】
Cordova App 打包全揭秘【原文链接】
TensorFlow on Android:物体识别【原文链接】
TensorFlow on Android:训练模式【原文链接】
说在前面:达人课是GitChat的一款轻阅读产品,由特约讲师独家发布。每一个课程你都可获得6-12篇的深度文章,同时可在读者圈与讲师互动交流。GitChat达人课,让技术分享更简单。进入我的GitChat
温馨提示:本篇文章较长,点击原文阅读
GlenWang,敏捷教练,致力于打造卓越个人和组织。经历过三个行业:通信,电子制造,金融 IT。三个职业:开发人员,经理,精益和敏捷教练。译著有《特斯拉:电气时代的开创者》。敏捷之旅讲师,认证 Scrum Master 课程 Co-Trainer。
虎头锤,旅居墨尔本的程序猿,十年 Coding,区块链比特币ing,手绘进阶ing。
在互联网时代快速变化的今天,传统管理方式已经失效并且逐渐被社会淘汰,我们需要全新的方法来适用于不同规模的团队。敏捷教练和 Scrum Master 是一种专业的职业。其职责是帮助团队和组织做到更好(本课程视 Scrum Master 和敏捷教练为同一职业的不同发展阶段)。敏捷能力的培养并不是简单了解后就可以速成的,但如同任何其他职业一样,成为一名敏捷教练是有一套可以刻意练习出来的基本功。
本课程按“目标-储备-技巧-实战”四部曲,介绍敏捷教练和 Scrum Master 的基本功:
对精益敏捷框架和基础知识的扎实理解
对团队在敏捷应用过程中所处阶段的理解
模式及 Scrum 中的各种子模式
敏捷教练的内在修养、教练方法和自我提升方法
持续改善与系统思考方法
敏捷教练需要了解的技术实践
敏捷教练在团队中一个典型的教练周期
敏捷教练是一个职业。Scrum Master 和敏捷教练是同一职业的不同阶段。当一个人能带好一个 Scrum 团队时,他是一个 Scrum Master。当他能带各种不同类型的团队,并持续追求更好,他就是一个敏捷教练。
Scrum Master 职责的范围和边界相对确定,敏捷教练职责的范围和边界相对不确定。但从学习的角度,他们所需要的基本功是一致的。本课程中对这两个角色,在大多数时候不太区分。鉴于这两个角色既有相似处又有区别,大家在使用时对这两个名称的理解上又有变异,所以课程的名称中就把这两个名称并称,以求相对准确地表达这个课程所要服务的角色。就算是您所采用的敏捷方法不是 Scrum,依然可以从本课程中受益。
如同任何其他职业,敏捷教练有它的技能,也需要并且能够通过练习达到精通。我们可以通过四部曲的结构理解敏捷教练这个职业及其技能:
“追求更好”旅途的守护者
我们从敏捷的历史来看一下,敏捷教练这个角色是如何诞生的、这个角色对组织意味着什么。
敏捷方式可以追溯到1620年弗朗西斯·培根(Francis Bacon)科学方法的发源时期。更合理一点的起点可能是在20世纪30年代,那时候贝尔实验室的物理学家和统计学家沃特·阿曼德·休哈特(Walter A. Shewhart)开始使用计划-执行-学习-调整(PDSA)循环对产品和过程进行改善。
休哈特把这种反复渐进的开发过程教给了他的学员戴明(W.Edwards Deming),后者在二次大战后的日本大量使用了该方法。戴明将 PDSA 改造为 PDCA。丰田公司雇用了戴明来培训公司中数百名经理,并在他的经验之上创立了著名的丰田生产体系——这也是如今精益思想的最初由来。这种反复渐进的方式对于20世纪50年代的 X-15 超音速飞机的制造也是贡献巨大。
丰田模式的关键,以及使丰田有杰出表现的原因并不是任何个别要素,而是一个由各要素组成的 4P 体系:
长期理念(philosophy):重视着眼于长期的思维,公司高层注重为顾客及社会创造与提升价值,这个目的主导了该公司的长期方法——建立学习型组织,投资于人员、产品与工厂,以及绝不松懈地坚持质量,以适应环境的变迁,成为高效的组织。
正确的流程(process):正确的流程方能产生优异成果,流程是以低成本,高安全性与高昂的士气达成最佳质量的关键。
借助员工与合作伙伴(people and partner)的发展,为组织创造价值:丰田公司管理层的看法是,他们打造的是“人”,不是汽车。尊重员工的智慧和能力,并不断激励他们做得更好。
持续解决根本问题(problems)是组织型学习的驱动力:丰田模式的最高境界是组织型学习,丰田的持续学习制度重心在于辨识问题的根源,并预防问题的发生,持续改善。
此体系必须每天以贯彻一致的态度实行,而非只是一阵旋风。这个体系成功的秘诀是,经理即教练。培养深谙公司理念的领袖,使他们能教导其他员工。这是我们今天思考敏捷教练职责的最重要参照物。丰田的 4P 模式,也能帮助我们从根本上去思考什么是敏捷。
大野耐一是将丰田生产方式体系化的重要人物。大野耐一退休后,与其弟子创建了 NPS(New Production System),为其他企业服务。精益教练诞生,教练与经理分离。这也预示着在今天敏捷教练和管理者通常是分离的职位。
Scrum 的另一根植于日本的基础,是1986年野中郁次郎和竹内弘高在哈佛商业评论上发表的名为《新的新产品开发游戏》的文章。通过研究那些比竞争者更快发布新产品的制造商们,比如富士-施乐的复印机,本田的摩托车引擎,佳能的照相机,定义了以团队为基础的新的产品设计和研发过程。这种过程不是通常在产品开发中的“接力赛”——一组专家完成产品部分功能并将项目传递到下一组专家手中。这种方式被野中郁次郎和竹内弘高称作为“橄榄球”方式,“团队试图作为一个整体完成所有任务,将球传来传去。”
在1993年,Jeff Sutherland 面临一项似乎是不可能完成的挑战:Easel 是一家软件公司,需要在半年之内开发一款新产品来替代它的传统产品。Jeff Sutherland 通晓很多方法,比如快速应用程序研发,面向对象设计,PDSA 循环,专案工作等等。他希望在公司总部建立一个类似于专案工作的文化氛围,将组织分割和合并的好处结合起来。他开始学习任何和提高组织效率相关的知识。通过阅读上百篇研究报告和顶尖的产品管理专家面谈,他脑海中逐渐有了一些有煽动力的想法。
这中间有一个想法来自于贝尔实验室的关于 Borland Quattro Pro 团队的文章。该文章主张,每天短的团队会议能显著增加团队效率。而 Jeff Sutherland 的核心概念则来自于竹内弘高和野中郁次郎的“橄榄球”方式,虽然该方法更关注制造过程而不是软件开发过程。通过借鉴哈佛商业评论文章中的关键想法和进行一些特别的试验,Jeff Sutherland 创建了一种新的软件开发方法,归功于橄榄球带来的灵感,Sutherland 将这种方法称为“争球”(Scrum)。Scrum 方式最后确保了他准时完成了似乎不可能的任务,也没有超出预算,程序漏洞比之前版本还要少很多。Sutherland 随后就长时间和 Ken Schwaber 对该方法进行长期研究,并在1995年两人首次在公众面前发布 Scrum 的方法。
在2001年,17位自称“有组织的无政府主义者”在美国犹他州的雪鸟滑雪场会面,分享他们的想法。Jeff Sutherland 和其它 Scrum 的先驱也在其中。参与者们分享了互相竞争的几种方式:极限编程(XP)、水晶方法、自适应软件开发(ASD)、特性驱动开发(FDD)、动态系统开发方法(DSDM)。所有这些方式都是“轻量版”的框架,因为这些方法使用更少、更简单的规则来适应快速变化的环境。不少与会者都觉得“轻量”这个术语挺适用的。
虽然与会者不能在方法上达成一致,但是他们还是为这个运动取了个名字:敏捷。这个词是一位参与者提出的,他当时正在读《敏捷竞争者和虚拟组织:给客户更多的策略》一书。书中列举了100家公司的例子——包括 ABB, 联邦快递,波音,博士和哈雷戴维森,这些公司正在创建适应动荡市场的新方法。有了这个名字,参与者达成一致,发布了“敏捷软件开发宣言”,该宣言中突出了每个人都同意的4个关键价值。稍后在会议中,以及之后的几个月中,他们发展了12个原则,被称为“敏捷宣言背后的原则”。 从2001年开始,所有的开发框架,以及与之匹配的价值观和原则就被称作为敏捷技术。
同时,敏捷方法继续演化。在20世纪80年代后期和90年代前期,MIT 的研究学者们开始研究日本的制造体系,特别是丰田生产体系。他们借用了名词“精益”来描述改善效率的这套体系,包括消除浪费(muda), 减少波动(mura)和降低负荷(muri)。虽然精益方法并没有在雪鸟会议上被表述成敏捷方法,但是精益和看板软件开发系统在后来被并入敏捷系统。在开始时候,一些纯粹的敏捷主义者拒绝承认精益方法。 但是精益宣传该方法能关注客户协作,最终更多的敏捷践行者开始接受精益,看板,还有混合方法(比如 Scrumban 和 Lean scrum),作为敏捷价值和原则合法的应用。
这些新方法论的创始人们是精通技术的管理者,和管理者中的思想者。敏捷宣言的17位创始人,是敏捷思想的传道者,可以被认为是最早的敏捷教练。他们所创造的这些方法的本质,不是一些死板的规定,而是在追求“更好”的旅途中,作为承载“更好”的载体。这些方法论的落地,以及作为这些方法论内在精神的追求“更好”,不会自动发生。
一种可能的逻辑是,由管理者来承担落实新方法论的责任。管理者可以转型为教练,重拾作为精益鼻祖的丰田的精神。对于管理者无法承担教练职责但又想追随敏捷潮流的组织,则需要专职的敏捷教练。
守破离的概念来自日本,大致可以理解为遵守、突破和脱离。这个概念在敏捷界被广泛运用,含义也会有所变迁。下面这个关于组织所处阶段的守破离,来自于 Scrum 之父 Jeff Sutherland。
瓶颈通常在瓶子的上部,一个公司最大的瓶颈是 CEO。作为一个敏捷教练,针对所处的组织形态,可以采取运用敏捷基本功加上变通的方法来开展工作。
至于团队,也会有三种形态。
在设计本课程之前,针对一部分敏捷从业人员和经历者做了一个小调查,想了解他们对 Scrum Master 职责的理解。这个调查虽然样本较小,不具备统计意义,但依然可以帮助我们了解跟我们处在同样角色的人对这个问题怎么看。调查结果如下:
- 精通管理规则,精通业务梳理,极强的沟通协作能力,技术熟练,懂业务管理。
- 敏捷教练确保 Scrum 被正确的运用和贯彻,同时保护团队和引导新的想法落地。
- Scrum Master 是牧羊犬的作用,让团队在一个迭代中不受打扰,同时他应该对敏捷的流程、理念有深入的了解,具有较强的管理能力。
- 引导团队进行效率的提升,通过各种工具的导入,来实现项目目标。但是,究竟是否要像传统团队一样,也要引导团队进行项目交付,并解决依赖问题,这个要商榷。
- 保证团队资源,保证各个角色及职责协作,解决团队开发中的障碍,协调解决沟通问题,保证开发过程按计划进行。
- 指导 Scrum 小组成员理解为什么、知道如何参与 Scrum 实践的每一个环节,把控好 Scrum 实践的产出,为整个小组的 Scrum 迭代/计划结果负责。
- 基于对 Scrum 角色的了解,以及对项目和资源的认识,帮助 stakeholder 决定最佳的按照 Agile 路线来实施项目的教练。
- 培训和指导团队践行敏捷实践;关注项目的度量数据,及时带领团队调整,加速或稳步前进;关注成员的状态,激励督促团队前进;带领和辅导团队按照敏捷和精益的方式做事,打造优秀自组织团队。
- 牧羊犬守护团队,流程;教练,培训,引导团队,PO,相关人知识,技能;推动过程改进,促进变革;提升团队,组织效能。
在敏捷团队中推进敏捷开发模式和流程,是团队的组织者,保证团队资源,协调内外部关系,解决出现的问题。- 帮助团队进行敏捷实践落地,梳理流程,减少外部干扰,鼓舞士气,提高团队作战能力。提高工作效率。
- 传播敏捷思想,指导团队,指导 PO,组织敏捷会议,排除团队干扰。
- 指导团队按 Scrum 方式运转,传播 Scrum 思想,指导敏捷实践,提高效率。
- 保证团队资源完全可被利用并且全部是高产出的。保证各个角色及职责的良好协作。解决团队开发中的障碍。做为团队和外部的接口,屏蔽外界对团队成员的干扰。保证开发过程按计划进行,组织 Daily Scrum,Sprint Review and Sprint Planning meetings。
- Scrum Master 是 Sprint 的负责人,Sprint 做得好不好的终责者。负责计划,执行 Sprint,并使团队团结及有自主创造能力。
- 搭建 team 架构,分配各个角色成员,开展 scrum 常规的事项,并让敏捷的理念深入人心。帮助团队更好的按照 Scrum 框架有效的运行,对团队遇到的问题和障碍提供帮助,协助扫清研发过程中的障碍,打造高效能的团队。
- 组织项目团队,承诺项目开发,回顾项目过程,总结项目经验教训,组织每日站会,制定 Sprint 计划。
- Facilitate everything and eventually retire,留下一个自组织团队,悄然离去,深藏功与名。激励团队,coach,team lead,life tutor。
- Scrum Master 应该是作为团队初步接触敏捷时作为流程与套路教授和规范。在团队逐步成熟后,Scrum Master 的职责可以旁落,而专职 Scrum Master 可以取消。
《敏捷教练》一书的作者之一,瑞秋·戴维斯(Rachel Davies)对敏捷教练的观点:
概括地说,敏捷教练帮助团队在工作中应用敏捷实践,从而帮助团队发展的更健壮。接受这些变化需要时间,所以没法通过“点到即止”的方法立即让它们生效。你需要与团队长时间呆在一起,并帮他们,让他们更加关注工作流程、关注如何更有效地协作。你对团队的目标是在你离开后,让他们能“自我指导”并且擅长应用敏捷。这样不会限制敏捷教练向组织引进敏捷,以及建立新敏捷团队。
< Coaching Agile Teams > 的作者 Lyssa Adkins 对敏捷教练的观点:
敏捷教练确实非常重要,因为现在有许多人在运用一堆蹩脚的敏捷工作方式。即使运用了,它们只是更快地产出了平庸的结果,我知道,那并不是他们运用所谓“敏捷”工作方式的主要意图。我认为教练是帮助团队取得惊人成果所不可或缺的组成部分,因为所有的成果都是人互相交互所产生的。敏捷框架中没有说明如何处理人与人交互的部分。为了使敏捷框架良好运作,它当然会提供可让其正常运行的结构和容器。但是在敏捷框架之外,还有很多事情要做,还有很多东西需要带给团队,针对不同的规则,需要给团队很多建议——如冲突管理、敏捷促进、教导及指引人、专业指导等等。
要履行这些职责,需要理解敏捷,这是本课程基本功的储备部分;要能够在组织中用敏捷影响他人,这是基本功中技能的部分;要体会真实环境中的敏捷运用,这是本课程基本功中的实战部分。
敏捷是敏捷教练的代码
敏捷的历史是一场不断追求更好的历史,在这个过程中,先行者们为我们留下了众多可供参考和让我们无须重新发明轮子的书籍。
本节以类库、框架、架构,和编辑、编译、链接、运行的视角解析敏捷和敏捷教练,以及如何运用先行者们留下的书籍。
敏捷是一种代码,2001年2月,17人在美国犹他州的雪鸟滑雪场,解码和发明了这门语言,并贡献了敏捷基础类库。
Chip & Dan Heath (《瞬变》)
Jurgen Appelo
而在设计敏捷工作方法的架构时,可以基于上面提到的敏捷框架中的一个或多个。可以使用的思维线索有:
敏捷工作方法的编码就是用上面的各种类库和框架,生成适合组织和团队的可执行的敏捷方法,包括架构和详细实现。执行的环境是团队中每个人的大脑。
编辑,是把方案细化的过程:
链接,是处理与现状和与已有工作方法的冲突:
编辑、编译、链接、运行会反复多次进行,跟程序员写代码没有区别。
敏捷教练和 ScrumMaster 的基本功,来自于众多大师的智慧和作者的实践,为我们提供了扩展的大脑。该体系已为您整理好,是按下继续前进按钮的时候了
介绍 Scrum 的书虽然还没有达到汗牛充栋的程度,但已经是著作等身了——所有著作加起来能够等同于一个人的身高了。本文并不是对 Scrum 理论的简单重复,而是立意能做到两点:
首先简要谈一下敏捷产生的历史背景,以及由 Scrum 及其众多兄弟方法共同抽象出的敏捷宣言。
敏捷产生的历史背景,在于世界变化越来越快。人们不断产生更多更新的需求,技术因此不断进步,两者交相辉映,使得变化越来越快。
以通信行业为例,从 1G 到 5G 呈现出一种升级越来越快的状态。
1986年,作为 1G 标志的使用模拟信号的世界上第一套移动通信系统在美国芝加哥诞生。
1995年,诺基亚崛起,进入数字调制的 2G 时代。
2009年左右,CDMA 大行其道,进入数据传输速率更高的 3G 时代。
2013年左右,伴随移动互联网,移动通信进入网速更高的 4G 时代。
最近一两年,随着 AR、VR、车联网、物联网的诞生,5G 的商用化指日可待。
在这种变化越来越快的环境之下,传统的软件开发方法不再奏效。敏捷先驱们开始探索一些新的方法,对丰田生产方式、组织模式等进行了大量学习,发明了 Scrum、XP 等各种方法论。2001年,新方法论的创始人们聚首一堂,总结了各家方法论的共同点,提出了敏捷软件开发宣言。
敏捷宣言有4个价值观和12个原则,它们也是 Scrum 的基础。对4个价值观要能够背诵下来,对12个原则也要熟悉,以便达到遇到实践情况时能容易对照的目的。我们为您精制了手绘版的敏捷宣言价值观和原则,可以打印张贴备查。
我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此我们建立了如下价值观:
也就是说,尽管右项有其价值,我们更重视左项的价值。
我们力求把方法论介绍到可操作的程度。
从方便理解和记忆的角度,Scrum 方法论可以被概括为3355
3个角色
3个物件
5个会议
5个价值观
勇气,承诺,专注,开放,尊重。
Scrum 由上述四种要素及背后的规则粘合起来。
3个角色各有担当又通力合作。 3个简单的物件统摄产品层面与迭代层面的交付物。 5个会议贯通产品层面与迭代层面的计划与执行活动。 5个价值观作为方法论的一部分,体现了 Scrum 以价值观为方法论的特色。
Scrum Master 的职责最难讲得清楚。有一个思路是参照卡诺模型。日本教授把产品需求分为三类:
按照这个思路,我们可以把 Scrum Master 的职责分为三类:
产品负责人职责
管好产品列表。理解了什么是好的产品列表,也就理解了产品负责人的职责。后面会讲产品列表。
团队职责
与传统团队职责不太一样的主要有两点:
在现实的团队中,有专职人员,也可能有浮动人员,不管是专职人员还是浮动人员,几个共同的基础是:自动化与及时化,每个人都做好本职工作,彼此之间良好配合;每个人都理解团队的产品目标和迭代目标;每个人都了解团队的工作方式和节拍。
浮动人员的类别
一类浮动人员,例如架构师和设计师,有全局影响,但又不是全职参与。有两种变通的参与方式,一是跟专职人员一样,参加 Scrum 会议,二是在团队中指定他的影子,与他密切协作保证他能及时贡献到团队的目标。
二类浮动人员,如固定在两个团队之间共享的测试人员。
三类浮动人员,如在一段时间之内有部分时间花在该 Scrum 团队的人员。与一类浮动人员相比,这类人员的全局影响相对小,更多是因为技能或资源问题而导致的安排。其变通的参与方式与一类浮动人员类似。
四类浮动人员,如尚不能独立工作的新员工。变通的方法是由其导师协助领取任务。
团队之要
Team 在 Scrum 中的活动
Team 特征
3个物件
产品列表(Product Backlog)是产品列表项(Product Backlog Item,简称PBI)的列表。PBI 包括特性、故障、技术工作和知识学习。
好的产品列表要满足 DEEP 原则:
迭代列表由从产品列表中选出当前迭代要完成的 PBI,及由 PBI 分解产生的任务构成。对于任务的估算,可以采用天或小时估算,也可以不估算。采用哪种方式,以团队能够做出靠谱的迭代承诺,以及在迭代工作的每一天方便监测趋势为标准。
产品增量是一个迭代结束时,输出的用户可用的新功能。产品增量要达到潜在可交付状态,即如果用户需要,可以快速部署给用户使用。
5个价值观
5个价值观的落实与否,是 Scrum 团队形成的重要标志。
对于5个价值观的运用,可以由团队一起讨论,每个价值观分别意味着什么,并进而把价值观转化为可执行的团队规范。利用迭代回顾会议,审视团队规范的执行情况。
5个会议
对于5个会议,主要讲述每个会议的目的、流程和辅助物。
产品列表精化会
目的:准备好。准备好的意思是,经过精化,PBI 达到可估算可计划和可执行的状态。开发人员可以对之进行开发工作了。
流程:
主要是围绕 DEEP 标准
辅助物件:
为了保证产品列表精化达到准备好的标准,可以制定一个叫做准备好的定义(Definition of Ready,简称DoR)的检查列表。DoR 列表示例如下:
迭代计划会
目的:在计划会结束时,给出靠谱的迭代承诺。
流程:
辅助物件:
为了对完成有统一的标准,需要完成的定义(Definition of Done,简称DoD)检查列表。DoD 检查列表示例如下:
可以用 A1 纸和便利贴辅助计划会议:
Scrum 的两个要点是:人的有效参与,做事的有效轨道。这个计划会的设计,是以有效的轨道辅助人的主动参与。
贴出一张 A1 大白纸。
左边第一列是故事,由 PO 用同一种颜色的便利贴书写和表达。字要大,用白板笔写,保证不用站得很近也能看清楚。故障,新特性或任何要交付的事情统称故事。
故事右边,用另一种颜色的便利贴列出任务。任务是为完成故事所要做的事,由团队书写。可以写上任务的执行人与估算。
整个会议,一次围绕一个焦点,即当前讨论的故事。以故事为单位流动起来。
PO 的注意事项:清晰讲述。随着会议的焦点流动,把故事讲得让团队明白。
SM 的注意事项:适度引导。控制焦点与流动,一个故事充分讨论完并分解成任务,再进行下一个。保持紧凑的节奏和整体时间盒。
团队注意事项:主动参与。一是对故事不清楚的主动提问,而是主动参与任务分解、估算、认领。
全部故事讨论完和分解成任务后,统计每人工作量,看工作量与容量是否平衡,个人之间工作是否能置换以达到每个人的工作相对均衡。
最后是团队决定是否能对迭代计划和目标承诺。
每日站会
目的:围绕目标同步进度,掌握对于完成目标的趋势。
流程:
站会中细颗粒度的协作:
关于站会中的发散讨论:
迭代评审会
目的:了解过去一个迭代完成了什么,并对下一步做出预测。
流程:
迭代回顾会
目的:团队建设,发掘和计划改善。
流程:
Scrum Master 要观察团队互动中的交互情况,如果有分歧点,就是改善点。比如说在 Demo 中,PO 对验收标准的理解与团队不一致。这就是需要改善的地方。改善的讨论和进行,可以在日常与相关人员讨论,也可以放到回顾会议。
除了团队的回顾会议,还可以有一对一的回顾会议:
最后用十论 Scrum 就是知行合一对 Scrum 作个小结:
本章首先介绍了敏捷宣言,然后按3355框架介绍了 Scrum 中最核心的东西。下一章介绍伴随 Scrum 的一个重要物件——用户故事。
作者撰写中…
作者撰写中…
作者撰写中…
作者撰写中…
作者撰写中…
作者撰写中…