追时间

Yak shaving during web development, thoughts...from Jijie Chen

亲历者说:ThoughtWorks 新开发人员的心路历程


前几日有出差归来的朋友跟我聊到团队中的一些实践,我们相互了解彼此所在团队在各种实践方面的异同。末了,同事问我,你还有什么想了解的吗?正好最近项目团队中又加入了一批新人,于是我向他取经:“你们是对加入团队的新人有怎样特殊的关怀呢?”同事反应过来,这是一个重要的方面,并饶有兴趣地向我聊起了与新人结对和分享业务知识的种种细节。
回想起我自己作为新入加入公司和项目的过程,虽然最终顺利度过试用期,也慢慢受到团队认可,但我很清楚对于自己来说,在公司的这些日子里我遇到了怎样的挑战,而自己又有了哪些变化。


心理状态逐步稳定

作为活跃在技术社区一线的公司,ThoughtWorks 一直是心里向往的地方。当真的来到办公室,心理活动其实比当初的纯粹的向往要复杂得多。

一方面,庆幸自己实现愿望,甚至还会感觉一些不太真实的感觉。那一阵,背着公司的背包,都会神采奕奕,感觉自己萌萌哒。另一方面,心态卑微进了泥土里。毕竟,公司的形象一直是那么高大上,身边的同事一个个身怀绝技,团队里其他人随便一个都对系统的业务和技术都如数家珍。我一直对同事们饱满的精神状态、精益求精的工作态度、专业高效的方法运用印象深刻,并且至今它们都是让我坚持拒绝平庸的勇气的源动力。
在这些之外, 还有一种心理状态,是当时刚从另外一家公司跳槽过来的我非常真实的部分:如今我已经加入了这家公司,它真的是我期望的样子吗?我真的要继续在这里呆下去吗?ThoughtWorks 内部的活动很多,不是一般的多。眼花缭乱的感觉。而我,则在刚入职两天、还没反应过来情况的时候,就被推荐去担任“三周三页面”活动的讲师。那段时间,是茫然的。

刚加入团队,接到的第一个功能需求就是涉及到与第三方系统集成的较复杂功能,大家持续讨论了几天才有了定论。当时有同事私下安慰我说“你放心,持续讨论这么长时间还没有动手实践的情况并不多见”。她大概担心我作为刚加入公司和团队的新人,会以为大家只是“空谈误国”之辈,我私下里感激她的细心之余,其实也十分认同这样的工作方式:只有大家都对设计思路有了清晰而一致的认知,才能高效地协作开发。这样的讨论不光有助于对业务和技术的理解,也能让大家更充分地交流。无论是技术讨论还是日常的结对编程,亦或是计划会议,在整个团队里各种角色之间的互动是十分丰富的,每天的工作充实而富有收获。


轻松融入企业文化

在一些企业里,“企业文化”一词往往跟“价值观”联系到一起,似乎虚无飘渺、似有而无。客观来讲,不管与企业管理者制定的思路相符与否,企业的发展过程中,确实会形成它独有的文化氛围。而刚加入的新人,对一切都感到新奇的同时,也会因为对企业文化的体验和认识的欠缺在一些场合比较被动,有时不能充分地发挥才智,有时发生一些共识性问题差异的状况。

在开发上文中所述的功能期间,关于一项敏感信息的存储,大家有了分歧。于是我们向全项目组发邮件寻求建议和帮助。这引发了好几位同事的关注,有来自其他团队的开发和测试人员,也有项目组技术负责人。第一次面对这种状况,心情除了激动之外,就是略有慌张——这下闹大了,怎么收场?下意识地,我开始组织几位持典型观点的同事讨论,并且第一次用全程英文介绍背景来龙去脉,当了一回主持人……全场只有一个认识的同事与我来自同一个团队,大家关注点各有不同,讨论很热烈。结尾阶段,大家仍然没有得出一致的方案。
技术负责人问道:“那接下来你准备怎么做?”
这个突然的发问,令我一时不知所措。我本能地回答:“我不知道呀”。
“‘不知道’是什么意思?”没想到又被问了回来。
对话一下子陷入了尴尬。是的,我真的不清楚这种情况该如何收场,加入公司之前,我从来没有组织过类似讨论,更遑论以 ThoughtWorks 的方式了。在旁边的同事看出我的窘迫,连忙帮助圆场:“我们会一起整理刚才的讨论,并征求客户的意见,并随时与大家更新最新进展”。
会后,在总结这场讨论的内容的同时,我也在反省自己的表现。意外的是,团队里的同事鼓励我说,能主动组织这样的讨论做的很好;还有参与讨论的同事为自己严苛的措辞表示歉意。

在之后的日子里,我渐渐适应了 ThoughtWorks 的工作作风:提出想法,组织讨论,确定思路和方案;用务实的态度和专业的技能,有条不紊地开展工作;主动承担责任推动计划向前进行,直到完成;接受反馈,并主动给予反馈;总结回顾,一同进步;分享经验,让更多人受益。在之后一次与入职导师的交流中,我们聊道:“真不知道 ThoughtWorks 是如何发展起来的”。


快速熟悉业务和技术实践

去年即将迈入大学的表妹回国,她问我 “在工作中,你怕不怕犯错?” 这是一个有意思的问题。我快速回放了一下从刚加入公司到当时的整个过程:从来没有害怕过。从入职之初开始,我感受到的就是前所未有的安全感,有一种“岁月静好”的错觉。
在来到项目组之前,完全不知道这个项目从事的是什么,以至于在跟另一位一同入职的同事挑选各自的团队时,我完全是蒙了一个。不过,当天下午就有团队里的开发人员给我讲了一圈业务。后来,又有测试人员组织我  们一批新人开始学习业务知识,了解系统的结构。我感到不解的是,这位测试人员貌似是其他团队的,她为什么也会对我所在团队的业务那么熟悉呢?后来我才发现,实际上,整个项目组里,除了像我这样新来的菜鸟,其他人都对业务相当熟悉。很快,我便打消了对业务不熟悉的担心——我随时都可以找到乐于为我解答的同事。

在技术实践方面,在刚加入的公司和项目团队的时间里,说底气十足肯定是假的。我加入时,这个项目已经持续开发五六年之久,各项设施比较完备,对于我这样一个新人来说,不管是团队日常,还是项目代码,要学的东西实在太多。如何快速为实战做好准备?同事最直接的帮助当然最为有效���这种帮助不是平常一针一线般的小恩小惠,而是手把手的教,面对面的聊。结对编程的工作方式令反馈周期缩短到实时水平,在开发中同事们及时纠正我的问题,分享他们的技巧,并鼓励我立即尝试那些技巧;即使在站会和回顾会这样的集体活动,大家也是鼓励新人多尝试担任关键角色去体验,即使新人的不熟悉多少肯定会影响整体效率。

另一方面,“入职导师” Buddy 这个角色的降临令我对度过试用期这件小事完全放下心来。我的理解是,Buddy 就是帮助我更快更好地融入团队和公司的最直接负责人。在同一团队中的 Buddy 不光在日常结对编程中向我分享业务和技术实践,还会收集同事们对我的建议和反馈,帮我制定学习计划,向大家传达我的想法,并协调其他人更有效地帮我成长等等。
后来在 HR 团队发出恭喜我通过试用期的邮件时,不少人共同的反应都是 “你怎么才转正,感觉你都来好久了!” 看来,那时候,我已经与大家融入的不错了。


放得下偏执,挑得起项目

如果这篇文章只是记录入职、转正的回顾的话,去年就早该写了。之所以到现在才成文,就是需要补充这一部分。
作为典型的技术人员,我有着明显的工程师思维的烙印。然而在过去,那烙印是我的牵绊,它让我执著于盲目的批判、无修止的优化,并以这种倾向为荣,认为那是一个工程师理所应当的样子。这种风格令我缺乏风险意识,忽略价值取舍,几乎沉醉在自己的小世界中自娱自乐。然而,旁人却看的很清楚,这种状态就是人们所称的 “走火入魔”,只不过或许以我的水平还不足以用它来形容罢了。

我经常反省一个曾经我一度深感委屈的项目。在以前的工作中,我曾花六周时间,独自开发了一套具有完善功能的通信系统。它不光能发送邮件和手机短信等常规消息,还能将消息推送到手机推送通知;此外,它甚至还支持与微信公众号集成,以及基于 WebSocket 的多种实时双向通信。从投入产出来看,花六周时间来完成这样一个功能完备的产品并不是不能接受的,问题在于基于我的开发方法,几乎只有到了最后一周我们才能体验最终的成品,在整个开发过程中,缺乏功能优先级的沟通,没有使用持续交付。到了最后,人们看到成品的感受是各有不同的:工程师们敬仰这样一个了不起的产品,老板却只能哭笑不得地表示“成功了就好”。对于这样的研发完成,显然并非所有人都那么开心。首先,也许当初并没有想做这样大的计划;即使做了这样的计划、一开始没有料到需要多少投入,在开发到一定阶段之后,就该明确还需要继续投入多少资源了,如果提前沟通,就可能及时调整计划。

技术人员有自己的技术理想和完美追求不仅是可以理解的,更是应当具备的。 相反,没有技术热情的开发人员是可怜的,他们混迹在软件行业只是得过且过而已。但技术追求不应该是一种偏执,不应该是一种要导致项目失败的负面因素;它应该是一种既能促使技术人员不断提升自我技能,又能提升开发效率、提高项目质量、改善产品内部设计的正面力量。事实上,当我们从技术偏执中醒悟过来,以开发人员敏锐的观察和分析能力,我们很容易感受到项目中其他人员的努力,看到他们工作的价值所在,我们能更轻松融洽地与所有人一起并肩作战,共同确保项目保质按量交付。



去年刚加入公司的时候,我在内网找到一篇题为“New Hire 在国内客户现场的危机和应对”的文章,其中提到了新人面临的挑战,并提供了大量有益于新人跟进学习的资源。这在当时给我这个刚加入公司的人带来了巨大的帮助——让我一下子对“如何成为一名合格的 ThoughtWorker” 有了信心。
现在,我不仅成为一名正式的 ThoughtWorker,在团队的日常工作中积极地贡献自己的力量,还带领新来的同事学习,帮助他们也成为合格的 ThoughtWorker。这一过程令人感激,在感谢当时团队里给我提供贴心帮助的同事之余,我还有感于这其中体现出的 ThoughtWorks 对新人培养和关怀的专业性。



blog comments powered by Disqus