6月12号到9月30号,一共111天,在印度当了2届TWU教练,体验了普内的雨季和夏季,印度宗教文化和慢节奏的生活以及无比忙碌的五周培训。

说到我为什么要去印度当教练,就不得不谈谈什么是TWU。TWU是ThoughtWorks University的缩写,它是针对ThoughtWorks在全球招聘录取的毕业生在印度IT重镇Pune(文中用普内代替)做的一个为期5周的入职培训。

初识印度

刚来印度的时候,由于飞机晚点,加上香港机场太大又不熟悉,没能赶上飞普内的航班,还好3小时后还有飞孟买的航班,只好选择孟买作为终点站。 幸运的是我们TW的行政人员尤其高效而且人性的,在这么短时间告知下,都能为我预订好机票,安排好接机的师傅。 从孟买到普内的三个小时的车程里,我极不适应这里破乱的街道和满地的垃圾,内心无比的沮丧,为什么我要来这个地方! 由于担心司机开夜车会睡着,我也一直不敢睡觉,陪着司机聊天,遗憾的是整个车程我们几乎都不能听懂对方在说什么,我也分不清他说的是印度语还是英语,对我略有打击,整晚的印度BGM,最终到了住宿的公寓Fortaleza,颇有点人在囧途的意思。 india

Coach培训

TWU的讲师可不是随随便便就能上去讲课的,得培训后才能上岗! 所有的讲师们从全球不同地方提前两周到达印度进行课前培训,这两周培训,时间过的很快,基本上忙到忘记了自己在哪,只有在闲暇之余向窗外望去,看到天空中盘旋的黑鹰才知道自己身在印度。 前三天TWU介绍性session结束后,紧接着就是dry run环节,简单来讲就是彩排。让一些上一届的教练扮演学生,我们拿着设计好了的PPT去给他们讲。 由于这些session大多数内容都跟我日常工作内容和社区活动经验有大量交叉交集,比如说TW 支柱, TDD, OO, Marketing 等等,所以准备起来还算顺手,例子也是信手拈来,但这并不意味着真正开始的时候你就可以讲好。

咱们的目标不是把PPT的内容都搞明白,而且要衍生出很多个人实战经验以及原理在里面,最有挑战的是这些毕业生技术背景层次不齐,有刚毕业的,有不是计算机专业的,还有几个30多岁转行过来的,没有CS背景的,所以要确保每个人都能理解,足够通俗但又不缺思考就显得尤为难以把握。 所以这两周剩下的时间就是在和这些有经验的教练在搏斗,他们会想一些奇奇怪怪的问题问我们,然后还不忘补上一句上一届有的学生就会问这个问题,真的对他们的执着及负责任的态度感到钦佩。 这两周的dry run让我搞清楚了每个PPT里要传递的重要信息,以及如何在合适的时机提出适合问题让大家思考有及其大的帮助,并且让我们充满信心,准备十足的状态迎接来自全球13个国家的68个毕业生的到来。 india

正式授课

授之以渔的时候到了,正式开课的第一周早上,所有教练被要求每人带着一个彩色领带,然后去学生的公寓接大家去公司,这种小的细节不仅方便学生认识教练,也方便他们识别寻求帮助的人。特别是西方人,你懂的,美国和澳洲的毕业生会拿各种你觉得很常识的问题来问你,比如出门需不需要把贵重物品放在公寓,转接头能不能用,出门要不要抽冰箱电源之类的,让你觉得他们确实很细心,但有些问题又确实让人无语。 不过TWU快节奏的安排,立马让毕业生体会到课程的紧张和繁重。就这样,一天八个小时,满满当当的4个1.5小时的session由不同的教练一个接着一个安排妥当的进行着。回过头想想这头两周的课程虽然满满当当,但是所有的session 似乎都有明确的顺序和存在的道理,先易后难,先游戏后理论,先具体后抽象,并且穿插着很多小组讨论,让学生自己悟道,而不是传统的教练给出所谓的标准答案。这种方式能够让大家的记忆更加深刻,并且有一个平稳上升的学习曲线。

实际操练

光说不练都是纸老虎,真理往往需要大量的实践才能得到验证和认可。后三周的时间就是要让他们把课上学到的概念运用到日常交付中。这个阶段,我们为学生准备了一个模拟项目,麻雀虽小,五脏俱全。伴随着项目的开始大家开始自发组织了第一次站会,我还记得我们项目组第一次站会居然开了40分钟!大家各自更新别人听不懂的细节,而且也不观察其他成员的反馈,最后实在是对大家的语言能力感到倾佩,同时也为他们对时间观念感到担忧。 我们13个人的团队,更新同样多的信息,每多花10分钟,团队就少了2个小时还多的时间资源。除此之外,大家也自然的把Story kickoff和 Story desk check也运用到日常工作流当中。至于开发,结对编程绝对是毕业生的最爱,我的每个学生都对结对编程充满好感和渴望,而且非常期待教练演示结对编程,结对编程绝对是互相学习的,互相提高的绝佳方式。在TWU一般有两种结对编程的方式,第一种是打乒乓,一个人写测试,另一个人写实现,然后交换。通过这种方式把解决方案驱动出来,并且能够保证两个人都能理解上下文,同时也确保了代码的健壮性。另一种方式是Driver & Navigator 模式,通俗来说就是老司机告诉新人该怎么开(写什么),然后十分钟后互换老司机角色。这种方式比较需要双方都要对代码有一定的熟悉度,这样双方都能快速知道对方的意图,通过有效的信息交换与碰撞,写出完善功能的代码。

TWU为了学生能够体验到真实项目的整个环节,我们还特意为学生准备了产品负责人(PO) 和运维部署团队,让团队切身体验到如何面对PO(一个完全不懂技术的业务master),如何把PO的业务转化成可以开发并且交付的功能,以及如何面对一些线上产品的突发状况。毕业生经常会陷入到与PO沟通不及时,不能按时交付,大量没有和PO确认过的假设,对PO不透明进度,隐瞒Bug,以及不能根据客户优先级来工作等等问题中。 有了这些问题的发生,团队合作出了问题,大家在Showcase中连客户最基本的要求都达不到,大家因此垂头丧气,而作为教练的我们却漠然的观察着这一切的发生。 india

正所谓在挫折中成长,你没有尝试过失败的经历,你就不能体会别人给你分享的经验和教训。 等他们感觉到痛,发现原来臆想是行不通的,这样印象才会深刻。然而作为教练,我们的职责也就是让他们在失败中获得成长,帮助他们战胜困难,获取成功。 比如说在站会上指出问题团队日常的问题,或是帮助团队主持站会,避免陷入无底洞式的讨论当中。在回顾会议里,抛出团队面临问题,虽然不能一定能找到解决方案,但至少让问题无处藏身,让团队集思广益,找出短期内可执行的解决方案,并且落实到个人。 或是和毕业生进行结对编程,解决技术难点等等……

如果剧情发展的顺利,团队在每次迭代结束后进行回顾会议,指出团队的问题,可能是优先级,可能是沟通不及时,可能是团队协作问题,把他们摆在桌面上出来讨论,并且对事不对人(Retro的价值观就是相信团队中每个人在自己能力范围内付出了最大的努力),最后当团队不再讨论这个问题的时候,团队就已经有了改进。 终于到最后一次Showcase了。大家努力的工作,优先级高的需求成功交付,精心的会议准备,成功部署,这一切都是一个满意的PO不能缺少的部分。

团队成长

那么团队交付成功了,就能代表每一个人都成功完成了TWU了吗?答案是否定的。就像我之前提到的,大家的教育背景,语言能力,基础,以及以后的工作需求都不相同,所以度量学习的效果,所以在TWU,我们更强调的是自我的对比,这样更加公平。 在TWU,每一个毕业生在第一周会“随机”分配一个教练,每周都有一对一 coaching,帮助毕业生更加客观的了解自己的状况和TW的期望,包括技术能力,沟通能力,团队协作以及TW文化契合度。 让教练监督并验证学习成果,从而完成一个学习闭环,以迭代的方式,短平快,走出舒适区,挑战自我,从而获得不断的成长。

短短的5周的时间里,大家学习了公司文化,敏捷价值观,各角色必备的技能,团队合作,以及项目交付的完整闭环。 麻雀虽小,五脏俱全,紧张快速的节奏,再加上纯英文的工作环境,着实让很多毕业生吃不消,生病也常有发生。 但从最后一天的TWU经验报告会上,我能感受到他们的收获是深夜一起奋战的异国小伙伴,课上严肃课下搞怪的教练,印度独特风土人情回忆,丰富的知识,以及项目交付的经验和教训india

个人收获

到此TWU之旅也结束了,大家该回到自己的办公室去做项目了。我的故事也分享完了。

不对,好像还差点什么,这整个7周,对教练带来的价值是什么,我的期望又是什么?TWU有达到我的期望了吗? 我想如果能够回答这两个问题,也能够帮助大家提供一个参考,从而选择是否也接受这样一个教书育人或是Role Model的重要的角色。

来TWU之前,我对它的期望其实很简单,就是能给大家用纯英语讲Session。 这之前我在技术社区用中文讲Session的时候都会很紧张,声音有时候都会颤抖,要在TWU我是要给外国人讲,而且还要回答他们的课堂提问和组织讨论,想想都有些挑战,所以能够讲好Session就是我第一期的期望。 这个期望在我第二期TWU的时候得到了验证,我讲的Session收到好的反馈,我还承担了给新讲师反馈的责任,并且帮助其他教练更好的适应到角色,更加细致,针对性的观察学生不同的维度。 如果说期望得到满足是情理之中,那么另一些收获就是意料之外了。 和国外的教练(程序员)合作的过程中,明细能够感受到在工程实践上的细致和灵活和客观。要不然怎么会发明敏捷宣言,个体和互动胜于工具和流程,相应变化高于遵循计划! 相对于自己的提高,除了能够讲好Session之外,我也收获了一些软技能,比如如何控制讨论的主题不跑偏,给别人一些建设性反馈,排列优先级等等,最终还收获了一份信任和感谢。

Become by doing it,这是一个教练对我说的话,我的理解是害怕什么就去做它,当你真正做了,你就无所畏惧了。现在的心态和3个月前相比,少了份对未知的恐惧,多了份平和。你愿意接受这份挑战吗? india


Alex Yang

Developer

技术改变生活