寻找驱动力

ThoughtWorks北京Office和思沃学院联手推出了一个Local项目人才培养计划,针对某Local项目即将接纳的5位新人(应届生)进行”封闭式”脱产培训。经历四周左右的高强度培训,新人已经顺利加入项目。作为Coach,我想分享一些关于此次培训的经验和心得。

受思沃学院以学习者为中心的教学 启发,我给此次培训起名为 以学习者为中心的项目驱动培训,一来培训目标很明确 – 新人更好更快地上项目实战,二来以项目为驱动力的培训是一种强有效的能力培养方式。


构筑培训体系

不同于象牙中以老师为中心 的填鸭式教学,以学习者为中心 强调的是以学生为中心的启发式教学。然而,初出象牙塔的新人可能仍然保留了较为强烈的 学生-老师 的象牙塔意识。所以对于Coach,首要任务是识别出他们的 意识形态,并帮助其调整。

整个培训贯穿一个宗旨 – 新人通过培训后能够更快更好 地为项目做贡献。在大目标的指引下,制定合理且可以落地的验收标准,以可验收的目标为导向

ThoughtWorks的特色文化(敏捷)告诉我,在培训过程中坚持持续 反馈优化,并将 敏捷实践渗透 到培训中,通过教学过程的反馈环 来强化技能成长。另外,辅以运动健身来提高培训的可持续性和高效性。

以学习者为中心的项目驱动培训 的培训体系涉及以下几大方面:


意识形态的更新

意识形态,某种意义上又回到了认知的问题。对于刚从象牙塔中走出来的新人,他们对学习的认知会直接影响他们的学习方式和学习效率。

削弱象牙塔意识

之前当小Buddy的经验告诉我,刚步入职场的新人思维中往往充斥着较强的象牙塔意识。典型的表现是在遇到问题后的第一时间是跟老师索要答案,而非自己先冷静下来去跟问题对话。作为Coach,如果每次遇到这样的求助之后都无条件的给与帮助,只会助长其这种意识。面对这种问题,可以采取以下措施:

  • 拒绝出现 老师 词汇。从平时语言交流形式上淡化 老师还在 的心里暗示,从而帮助摆脱依赖心理。
  • 传授解决问题的套路。扭转他们的意识需要通过一些新的工具去帮助他们养成新的习惯。

关于解决问题的套路大致可以分为如下几步:

  • 冷静下来与问题对话,了解问题是什么(核心)。
  • 找出关键错误信息,尝试独立解决(互联网/问题库)。
  • 在预期时间内没有解决,尝试需求他人帮助,并带上自己的调研结果。
  • "放弃"。当上述三条都没有凑效的时候,起身活动,让大脑放松后再开始。

削弱象牙塔意识是一个持久战,需要Coach在培训过程中不断地施加引导。比如,在遇到这种现象时可以反复问他们:问题的关键信息是什么? 可不可以快速验证一下你的猜测? 应该去哪儿能找到答案? 谁可以提供帮助? 通过这些问题激发他们去思考改变。

建立Owner意识

左边做减法,右边做加法。此时应该抓住机会培养他们的责任意识。像RetroCode ReviewStandup这些日常敏捷实践可以交由他们去Drive。而一旦作为Owner,他们除了自己快速地掌握,还会去思考它们背后的本质。更重要的是,Owner意识的提高会驱使他们不断地自我学习,突破自己,追求卓越,给他们未来的成长打好基调。


明确且Verifiable的目标

某些项目(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需要对于日常的敏捷实践了如指掌,并能够担任敏捷教练职责。

StandupCode ReviewRetroTDDPairIPMKick-offDesk-check等敏捷实践都可以植入到培训中。关于这点,要把握的核心宗旨是:敏捷无处不在。Coach在开始担任敏捷教练,之后交由新人去Drive,让他们逐步具备成为敏捷教练的能力。

需要特别强调的是TDDCode ReviewTDD没有作为Check point)。TDD对于新人会有较大的挑战,甚至引起一些抵触心理,但它非常值得为之付出努力。而Code Review是一个发现和纠正新人不良编码习惯的好时机。这两点对于他们日后成为优秀的程序员至关重要。

我在ThoughtWorks中的敏捷实践 一文对敏捷实践做了详细的介绍。


保持运动健康的状态

作为程序员,辛苦是不可否认的事实,如何在辛苦的状态下持续快乐下去(痛快)。我们得拥有一个健康的体魄,并且不要吝啬让身体回归自然 – 生命在于运动

说到运动健身,大家第一反应可能是健身卡速干衣跑步鞋蛋白粉功能饮料等。有人会雇专业的健身教练指导,我更建议将运动融入到工作生活中。如果能将久坐8小时之后去健身房锻炼1小时转换成8小时每隔1小时运动7分钟,便可以杜绝腰椎盘突出颈椎病肩周炎等职业病。

在培训过程中要保持合理的节奏,预留出休息活动的时间,不妨在办公室空旷区域开展集体的运动,比如平板支撑开合跳等。更重要的是,加强身体锻炼有利于Coach授课的可持续性和高效性。

我在 改善程序员生活质量的 3+10 习惯 中提到的一些小的习惯可以帮助你保持健康的状态。


找准中心,回归初始

以学习者为中心,它与象牙塔中以老师为中心的填鸭式教学区分开来,如何找准这个中心,把握住三点:

  • Coach应尽量少讲课,多去引导启发学习者去思考和学习,并提供足够的辅导,通过必要的测试来收集和给与有价值的反馈。
  • 学习者应清楚学习理由和学习目标,并明确自己的目标(具体、公开、共享)。旨在提高学习者对学习目标的重要性认识,从而进行有效的自主学习。
  • Coach通过必要的课堂知识分享,并充分赋予学习者选择学习的权力,培养他们对自身学习成长的责任意识。

在ThoughtWorks里,学习是一件终身大事,培养人更是我司的立足之本。以学习者为中心能够激发学习者高效学习成长,以项目为驱动力有助于打造一个短期内专注度极高的目标。

此次培训也是Local项目的首次探索,可行性得到证实 – 五位新人已经顺利地Billable。欢迎每位TWer参与到后续类似的培训中,更欢迎分享你宝贵的经验。


Posted by Yuan Shenjian • October 23rd, 2017

版权声明:自由转载•非商用•非衍生•保持署名 | Creative Commons BY-NC-ND 3.0

原文链接:http://sjyuan.cc/project-driven-student-centralized-training/
支持原创

⤧  Next post ThoughtWorks给你不一样的入职之旅 ⤧  Previous post XSS的那些事儿