本文同时发表于 ThoughtWorks洞见。
不一样的旅程
ThoughtWorks是一家极具创造力的公司,在这里,人才是最重要的资产。如果你以应届生的身份加入TW,你将获得5周的出国留学机会(ThoughtWorks University,简称TWU),如果你通过社招加入TW,你会获得为期三天的TWI。除了TWU、TWI,TW还提供诸如NHO、Session、Workshop、Buddy/Sponsor、TL、极光计划(领导力)等数不胜数的培训。所有这些培训都在让你的职业之旅变得不一样。
而更不一样的是,TW北京Office联手思沃学院推出了一个Local项目人才培养计划,针对某Local项目刚刚入职的5位新人(应届生)进行 "封闭式"
脱产培训。旨在通过为期四周的高强度培训,帮助新人快速融入到项目中。作为Coach,我来说说它到底不一样在哪里。
受思沃学院以学习者为中心的教学 启发,我给此次培训起名为 以学习者为中心 的项目驱动培训,一来培训目标很明确 -- 新人更好更快地上项目实战,二来以项目为驱动力的培训是一种强有效的能力培养方式。
不一样培训体系
不同于象牙中以老师为中心 的填鸭式教学,以学习者为中心 强调的是以学生为中心的启发式教学。然而,初出象牙塔的新人可能仍然保留了较为强烈的 学生-老师
的象牙塔意识。所以对于Coach,我们首要任务是识别出他们的 意识形态
,并帮助其调整。
整个培训贯穿一个宗旨 -- 新人通过培训后能够更快、更好 地为项目做贡献。在大目标的指引下,制定合理且可以落地的验收标准,以可验收的目标为导向
。
ThoughtWorks的特色文化(敏捷)时刻在督促我们:在培训过程中坚持持续 反馈优化
并将 敏捷实践渗透
到培训中。同时,通过 教学过程的反馈环
来强化技能成长。别出心裁的是,我们推崇辅以 运动健身
来提高培训的可持续性和高效性。
以学习者为中心的项目驱动培训 的培训体系涉及以下几大方面:
意识形态的更新
意识形态,某种意义上又回到了认知的问题。对于刚从象牙塔中走出来的新人,他们对学习的认知会直接影响他们的学习方式和学习效率。
削弱象牙塔意识
之前当小Buddy的经验告诉我,刚步入职场的新人思维中往往充斥着较强的象牙塔意识。典型的表现是在遇到问题后的第一时间是跟老师索要答案,而非自己先冷静下来去跟问题对话。作为Coach,如果每次遇到这样的求助之后都无条件的给与帮助,只会助长其这种意识。面对这种问题,我们会采取以下措施:
- 拒绝出现
老师
词汇。从平时语言交流形式上淡化老师还在
的心里暗示,从而帮助摆脱依赖心理。 - 传授解决问题的套路。扭转他们的意识需要通过一些新的工具去帮助他们养成新的习惯。
关于 解决问题的套路
大致可以分为如下几步:
- 冷静下来与问题对话,了解问题是什么(核心)。
- 找出关键错误信息,尝试独立解决(互联网/问题库)。
- 在预期时间内没有解决,尝试寻求他人帮助,并带上自己的调研结果。
-
"放弃"
。当上述三条都没有奏效的时候,起身活动,让大脑放松后再开始。
削弱象牙塔意识是一个持久战,我们会在培训过程中不断地施加引导。比如,在遇到这种现象时可以反复问他们:问题的关键信息是什么? 可不可以快速验证一下你的猜测? 应该去哪儿能找到答案? 谁可以提供帮助? 通过这些问题激发他们去思考改变。
建立Owner意识
左边做减法,右边做加法。此时应该抓住机会培养他们的责任意识。像 Retro
、Code Review
、Standup
这些日常敏捷实践可以交由他们去Drive。而一旦作为Owner,他们除了自己快速地掌握,还会去思考它们背后的本质。更重要的是,Owner意识的提高会驱使他们不断地自我学习,突破自己,追求卓越,给他们未来的成长打好基调。
明确且可验证的目标
某些项目(Account)在培训新人的时候,针对检验目标,通常是抽象模糊的,比如 能够进行良好的团队协作
。对于培训,在开始之前我们得回答两个问题:新人将具备什么能力? 能通过什么检验? 这两个问题本身没有标准答案,我们会把握住一个核心点:基于项目的需求因地制宜。所以,目标的制定需要PM/TL的参与,我们邀请了PM/TL以及长期从事应届生培训的思沃学院的老师共同来落地这些目标。下图是针对5位新人制定的目标和Checklist:
有了目标,还需要一个循序渐进的培训计划针来达成目标。在做计划之前,Coach会先画出一条技能培养主线,后续的每日计划沿着主线推进,并根据知识点的依赖性安排先后顺序。
关于目标,我们会做到公开、公平以及共享,即让每一位新人明确培训的目标。
围绕项目的技能树
Coach在培训开始前花时间将项目上相关的技能进行梳理,并通过一些工具(比如思维导图)可视化出来。下面是我们项目的技能树:
下一步是要针对这些技能划分优先级,通过不同的Flag标记出来,比如图中橙色星星表示在培训中重点讲解和实践的,红色星星需要了解,蓝色会被提及。构建项目技能树可以遵循一个方针: 技能树的枝枝叶叶都源于项目,两个关注点:关注技术栈 && 关注业务分析。
那么如何让新人消化并吸收技能树枝叶的营养对Coach来说是一项具有挑战的任务。除了需要大量时间去准备,还要非常用心,但也不是没有套路可循。
教学反馈环
针对每项技能的教学,Coach会按照 讲解 -> 演示 -> 练习 -> 巩固 -> 拓展 -> 反馈 【分享】
的模式展开。
讲解。授人鱼不如授人以渔,最好的方式是莫过于让新人掌握技术框架的实现原理。比如在讲解Spring IOC的时候,可以使用Java反射、注解来实现一个IOC容器。然而,在较大的时间压力下,新人接受度达不到预期的效果,这就要求Coach要学会讲故事,借用通俗的比喻来介绍知识点,通过必要的可视化工具(比如时序图)来提高讲解接受度。
演示。Coach提前准备一些演示习题,在讲解完后通过习题来演示技能的应用。
练习。Time-box限时编程练习,建议使用表格记录下新人每次完成时间。通过反复的限时练习来培养他们编码的感觉并形成肌肉记忆,不用在意他们优秀的记忆力,因为后面还有验收环节。
巩固。布置一定量的课后作业,一方面是为了巩固学习,另一方面是不让他们松懈。实践证明,适当的忙碌和压力能够增强新人的安全感,但要当心过于繁重的作业影响睡眠和第二天的培训。
拓展。这是激发新人自我驱动去扩展知识的好机会。比如,绘制概念图 -- 他们在绘制概念图的时候会扩展学习不少相关的技能。
反馈。针对编码训练,Coach会通过验收习题(不同于练习题和作业)来Time-box获取小伙们对知识掌握的反馈。验收习题会 回归项目,从项目代码库中找出相关技能应用场景来验证。
分享。分享作为一个附加环节,针对重要知识点,我们会鼓励新人进行Session分享,在分享过程中检验学习成果,同时可以激发他们集体思考和讨论。
上述的反馈环帮助Coach高效地传授和验收知识技能点,同时也对Coach提出了较大的挑战,如何让这个过程发挥更好的效果?如何准备有针对性的习题?如何将习题有效的串起来? 等的都需要Coach花大量时间去思考和总结。最后,提倡在整个教学过程中:多用肯定词,少用或尽量不用否定词
。
持续改进的反馈
持续改进是ThoughtWorks的优良传统。很多时候我们在 收集/给与 大家的反馈,目的是让自己和对方更好地成长。这在培训过程中也不应该有例外。在开始阶段新人的反馈意识并不强,Coach会有意识地给与引导,引导他们去提出有效的反馈。对于Coach,我们将尝试以下几点:
- 提醒新人随时针对培训和Coach提出反馈,以及互相之间给与和收集反馈,提高他们的反馈意识。
- 肯定和赞美新人的进步和良好表现,提高他们的自信心和积极性。
- 及时指出新人的不良编码习惯和学习方式,纠正他们的编码习惯,千万不要错过这个良机。
对于新人,他们同样可以给出有效的反馈:
- 对培训整体的适应程度,帮助Coach调整培训强度和进度。
- 对知识点讲解的接受度,帮助Coach优化知识讲解的方式。
除了及时的反馈,定期的Retro也是有助于持续改进的优秀实践。
特色的敏捷文化
敏捷跟ThoughtWorks关系就像社会主义跟中国的关系。
以敏捷著称的ThoughtWorks,敏捷是我们的特色文化,就像家常便饭存在于日常工作中。所以在培训我们不是把敏捷挂在口头上,而是让它们渗透在各个环节中。Coach自身要对于日常的敏捷实践了如指掌,并能够担任敏捷教练职责。
Standup
、Code Review
、Retro
、TDD
、Pair
、IPM
、Kick-off
、Desk-check
等敏捷实践都可以植入到培训中。关于这点,要把握的核心宗旨是:敏捷无处不在。Coach在开始担任敏捷教练,之后交由新人去Drive,让他们逐步具备成为敏捷教练的能力。
需要特别强调的是 TDD
和 Code Review
(TDD
没有作为Check point)。TDD
对于新人会有较大的挑战,甚至引起一些抵触心理,但它非常值得为之付出努力。而 Code Review
是一个发现和纠正新人不良编码习惯的好时机。这两点对于他们日后成为优秀的程序员至关重要。
我在ThoughtWorks中的敏捷实践 一文对敏捷实践做了详细的介绍。
保持运动健康的状态
作为程序员,辛苦是不可否认的事实,如何在辛苦的状态下持续快乐下去(痛快)。我们得拥有一个健康的体魄,并且不要吝啬让身体回归自然 -- 生命在于运动。
说到运动健身,大家第一反应可能是 健身卡
、速干衣
、跑步鞋
、蛋白粉
、功能饮料
等。有人会雇专业的健身教练指导,我更建议将运动融入到工作生活中。如果能将 久坐8小时之后去健身房锻炼1小时
转换成 8小时每隔1小时运动7分钟
,便可以杜绝 腰椎盘突出
、颈椎病
、肩周炎
等职业病。
在培训过程中除了保持合理的节奏,预留出休息活动的时间,我们会在办公室空旷区域开展集体的运动,比如 平板支撑
、开合跳
等。更重要的是,加强身体锻炼有利于Coach授课的可持续性和高效性。
我在 改善程序员生活质量的 3+10 习惯 中提到的一些小的习惯可以帮助你保持健康的状态。
不一样的宗旨
以学习者为中心,它与象牙塔中以老师为中心的填鸭式教学区分开来,如何找准这个中心,我们始终把握住以下三点:
- Coach应尽量少讲课,多去引导启发学习者去思考和学习,并提供足够的辅导,通过必要的测试来收集和给与有价值的反馈。
- 学习者应清楚学习理由和学习目标,并明确自己的目标(具体、公开、共享)。旨在提高学习者对学习目标的重要性认识,从而进行有效的自主学习。
- Coach通过必要的课堂知识分享,并充分赋予学习者选择学习的权力,培养他们对自身学习成长的责任意识。
期待不一样的你
在 ThoughtWorks ,学习是一件终身大事,培养人更是我司的立足之本。以学习者为中心能够激发学习者高效学习成长,以项目为驱动力有助于打造一个短期内专注度极高的目标。
如此不一样的职业之旅,我想你一定会喜欢,如果你已经心动了,赶紧行动起来吧。聚集了一群优秀小伙伴 的ThoughtWorks期待不一样的你。