你要专业

在我不算长的职业生涯中,有很多同事都给过我正面的评价(当然,可能有更多负面的评价,不过我都选择性的遗忘掉了)。有人欣赏我的命令行技巧,有人则称赞我代码写的比较快,有人说我的Vim的插件配置的很高效,还有人说坐在我旁边写PPT效率会变高。而我自己最喜欢一个评价是:有我在项目上的时候,团队就会觉得安心。

我喜欢这个评价是因为它是我希望自己能展现的一个状态:成为一个靠谱的职场人。关于靠谱的职场人,《重来》的作者之一Jason有一个很精炼的描述:

Work ethic is about showing up, being on time, being reliable, doing what you say you’re going to do, being trustworthy, putting in a fair day’s work, respecting the work, respecting the customer, respecting the organization, respecting co-workers, not wasting time, not making work hard for other people, not creating unnecessary work for other people, not being a bottleneck, not faking work. Work ethic is about being a fundamentally good person that others can count on and enjoy working with. — Jason Fried

大意是:职业精神就是可靠,言出必行,尊重工作,不要浪费时间,不给别人添麻烦等等。不过,精炼的描述往往失之可操作性不够强。就好比知道“高内聚,低耦合”并不能帮助你写好代码一样。在这篇文章里,我打算举一些日常工作中常见的例子,尝试通过Specification By Example的方式给靠谱的职场人下一个定义。

在职场中,靠谱的意思就是:成为一个别人会信赖并乐于和你一起工作的人。而人们喜欢和靠谱的人一起工作。

尊重你的工作

人们站在不同的立场看待同一件事情时,必然会产生分歧。这几乎在项目中随处可以见,比如对于某个Feature,客户认为必须实现,这样在年终的绩效考核中才有令领导满意的成绩;另一方面,对于交付团队来说,技术上难以实现或者工作量太大,难以在有限的时间内完成;开发团队钟爱新的流行的技术栈,而客户则相对保守,需要考虑培训成本等等其他方面的因素。如果再加上沟通不畅,很容易导致团队士气低落,甚至双方互相抱怨。

一份工作,既是企业(企业中的员工)赖以生存的条件,又是企业和服务对象共同为社会创造价值的载体。这个产品可以解决某些人的问题,提高效率,为社会带来价值。工作本身就是值得尊重的。如果你被指派到一个项目上,并且作为个人,你不认为这个项目违背了自己的价值观,那就应该全力以赴去完成它。另一方面,如果你认为项目的价值和自己的三观不匹配(比如,如果有人出钱让你去开发GFW之类的工具;或者一个工具用来监控员工的桌面等),你完全可以选择不去参加这个项目。

新人常犯的一个错误是将遵循既有规则当成尊重。举个例子,在实际交付的时候,团队中的Tech Lead做出了一项你任务是错误的决策,作为团队成员,你可以据理力争,表达自己的看法,并提出自己的提议。另一方面,你也可以假装这个决策是超出你控制范围的,并且假装它是正确的,然后低头来按照决策来实施。在我看来,第二种看似尊重的行为是对团队和项目的非常的不尊重。退而言之,即使你的提议被拒掉,你也可以从中学到很多之前看不到的知识。一方面可以帮助你自己理清思路,看到自己方案的缺点,另一方面,你可以学习人们在实际项目中,如何对于不同的条件来做妥协。

与他人合作

一个人可以走的更快,一群人可以走的更远 — 非洲谚语

我们的日常工作中,总避免不了要和不同角色,不同经验的人一起工作。和单枪匹马独自作战不同的是,在一个群体中,个人的行为需要遵循一定的约定,需要和其他团队成员一起配合来完成任务。换句话说,要有团队合作精神。在和其他人一起工作时,第一要义是不要为别人制造更多的工作量。事实上,你应该在自己能力允许的前提下,尽可能让别人做最少的工作。相信我,你会希望自己和这样的人合作的。

我们从一个假象出来的场景出发,来看看如何在类似的场景中展现专业性:

CI服务器地址

设想这样一个场景:你所在的团队有一个微信群,大家很多问题都在群里提出并讨论。但是一些简单问题可能被频繁的问道,比如XXX服务器的地址是啥?前两天又有一个新人加入了团队,他今天在群里问了一个之前被回答过好几次的问题:谁知道CI服务器的地址,请发给我一下,多谢!

而这时候,你可以做什么呢?“我之前发过邮件给所有人了,你翻一下邮件”。

这是一个可行的方案,但是需要

  • 邮件标题的关键字 或者
  • 邮件正文关键字

而要做搜索本身动作,他需要打开邮件客户端或者在浏览器打开Web Mail,如果是访问Web Mail,他可能还要登录公司内网(输入密码),还可能要查看Okta推送的消息,这又需要打开手机,切换到Okta,点击确认。如果工作环境网络有vpn的隔离,情况可能会更复杂。

如果你花费1分钟帮他搜一下,然后把地址发给他,并告诉他用户名/密码就是域账号的用户名/密码,效果则会好很多。

访问外部API

如果我们把这个场景在稍微复杂化一点:有人在微信群问如何在Postman中访问获取所有网点信息的API。要访问这个API,客户端需要一个Endpoint和一些特定的HTTP Header。最简单的做法是发送一个截图。

不幸的是,Header中有一个叫做x-api-token,它的值是一个256个字符的hash。这时候图片就变得毫无用处了:你不会期望问问题的那个人用手敲一遍token吧?另一个方法是把API的Endpoint和所需的HTTP Header是分别以文本形式发送给他,(如果这个API需要多个header的话,你可能要复制粘贴好几次)。

再进一步,你可以通过一个cURL加命令行参数的方式将这些内容一次性发送给他:

$ curl -H "x-api-token: token" -H "Accept:application/json" https://host:port/top-security-resources/1

嗯,挺不错的。不过如果明天又有其他人问你要这个API的访问方式,你又要再来一遍,还是比较麻烦。你稍微翻了下Postman的帮助,发现它支持导出,还可以定义一些环境参数等。如果将这些内容都导出出来,然后放在代码仓库中,其他所有人就无需每次都找人要各种URL了。

显然,最后一种方法既满足当前的需求,又有很好的可扩展性,这样你就通过一个具体的问题,抽象出一个高阶的问题,并且为这个问题提供了一个可行的解决方案了。当然,这种方法的缺陷是会占用你很多时间,需要你学习额外的知识。不过,如果是我,我肯定愿意选择这种方式。

帮助团队里的测试

我记得我们曾经有一个研发平台项目,其中一个需求是实现租户代码坏味道识别的工具:这个工具的输入是平台上程序员提交的源代码,然后我们的工具会分析类和类之间的关系,然后给代码评定一个分数:比如集成层次不能太深,不能有多继承之类。代码本身并不难写,但是要测试时需要列举很多case,每一个case至少需要可以能编译通过,这要求测试同事还要会写合法的C++代码,也就意味着他们还需要C++的多继承,抽象类之类。

我花了一些时间(两个小时左右)为测试同事写了一个小工具:通过指定一些参数,比如类的继承层次,是否多继承之类,然后这个工具帮你生成一堆合法的可以编译通过的源代码:包括多个文件,文件之间的引用(比如头文件中定义接口,然后在实现代码中访问这些接口等等)。测试可以很容易通过它来生成测试用例,然后再来验证待验证的工具到底能不能识别这些坏味道。

自动化工具

另外一个有趣的例子是:很久前的一个项目,团队在开发一个大表单,大表单里有很多问题,大概分为三个页面:第一页需要填写一些个人信息,比如姓甚名谁家住何处等,第二页则会填更多的信息,而第二页的很多问题跟第一页相关,一些问题只需要在第一页选了A选项才会出现,而另外一些问题则仅仅为B场景设计等等。

然后某个新需求是在第三页添加一个新的问题(根据第二页的某个回答来决定要不要显示出来)。在实现过程中,开发人员需要手工填很多内容才能到达第三页,而这个过程还可能出错(比如第二页中需要去调用某个API来生成下拉列表内容,那个API有可能会挂掉),一出错又得重来一次(当时还没有HMR啊,State管理啊这些高级货,只能重新刷新)。团队意识到这个痛点之后,有人就开发了一个Chrome的扩展,这个扩展可以根据预设的答案自动填写表单(好像是模拟鼠标点击的方式),直到你想要停下来的那一个问题。这样就将开发中调试的时间大大缩短,还可以节省很多测试同事的工作量。

事实上,这类的场景在实际项目里会有很多。通过一些自己的努力,让团队里的其他角色、或者团队之外的你的下游系统、又或者未来的系统维护者的生活变得轻松一些,是靠谱的一个重要表现形式。

做好Desk Check

在敏捷开发中,当一个Story开发结束之后,我们会把开发,测试,BA,UX聚在一起来做Shoulder Check / Desk Check。这个实践可能很多团队都会坚持。但是做的流畅程度则千差万别,效果也自然大相径庭。

我现在还记得第一次做Desk Check时候的忙乱,由于事先没有准备好,当围观群众上来之后,我和peer还没有把Jira上的卡打开。当逐条过验收条件(AC)的时候,我们才发现漏掉了一条。然后在跨浏览器检查的时候,发现在Safari里页面上有个按钮在点击时毫无响应,这时候我和peer打开了dev-tools开始了现场debug等等。

在后来的项目中,我特别注重这个实践,努力让Desk Check变得流畅无碍。你前期准备的越充分,在Desk Check的时候就越顺畅。比如,在把所有人都召集过来之前,自己先把所有AC过一遍,如果有Feature测试的话,就把测试用例大概过一遍,看看能不能覆盖所有AC。在Check的开始前,先把Story描述一遍,特别是业务场景,业务价值。这个过程可以对着Jira卡来过,如果有新的讨论,也需要顺手同步到Jira的comments里,以便未来参考。由于参加Desk Check的QA和BA可能手头都有很多任务并行处理,所以你需要快速的将上下文分享出来,让大家在同一理解水平上,这样后续的Check才有可能顺畅。

如果Story涉及跨浏览器,那么你最好可以将各个浏览器都打开,而且切换到需要showcase的页面上。这些前期的准备工作,可以减少参与者的上下文切换成本,可以让大家迅速进入到验收中,而且出错甚少。事实上,大部分问题在你的准备中都已经解决了,剩余的小问题则可以在后续的Story开发过程中顺手修复。

测试数据准备

BA对系统的理解是基于现实世界中的业务来的,因此在数据准备上一定要小心,比如10位数字的身份证号码,带有字母的手机号等等。即使是测试数据,也应该认真对待,尽量避免使用随机的文本来填写表单,否则结果页面看起来会非常不专业。

在有些场景下,比如你需要测试当文本超过一定长度会显示省略号,你仍然需要仔细设计文本,让其看起来更为实际。当你读到一个名称为“锟斤拷锟斤拷锟斤拷…”的产品时,你会做何感想?

事实上,一些工具可以帮你简化测试数据的准备,而且可以确保专业性。比如Ruby里的Faker(Perl中的Data:Faker的Ruby移植版)https://github.com/stympy/faker,它可以帮你生成很多常见的数据实例,比如

require 'faker'

Faker::Name.name      #=> "Christophe Bartell"
Faker::Bank.iban #=> "GB76DZJM33188515981979"
Faker::Internet.email #=> "kirsten.greenholt@corkeryfisher.info”

使用类似的工具,只需要编写一些微小的代码,就可以生成更贴近业务场景的测试数据,从而让显得更加专业。

设计中的细节

同样的道理,UX在设计稿中,需要考虑很多细节,比如

  • 常见的拼写错误
  • 业务术语的正确使用
  • 理解数字的含义
  • 视觉一致性(字体的选用,相同元素的字号,颜色暗示等)

这些细节可以让观众体会到你的认真和用心,而由于视觉的特殊性,一个微小的纰漏都可能被放大成严重的问题。比如在某一份设计中,所有的标题都采用24号深灰色的Consolas字体,但是在另一处,字号变成了18,而且加粗了。这种错误很容易别识别,从而让人产生不好的印象。

业务语言

而对于用错术语,或者没有完全理解业务时,对数字的解读则会产生更严重的问题。比如在广告行业,广告主比较关心的一个指标是Frequency,计算Frequency的方式是用PV(Page View)/UV(Unique View),也就是每个用户的平均点击量。页面的总访问量肯定比访问这些页面的人数要多(抽屉原理),那么它们的比值也肯定会大于1。如果UX不理解这个业务含义,可能会在设计稿上标识0.68之类的数字。

类似的,如果你在绘制一个Pie Chart,那么最起码所有部分之和加起来要等于100%,而且大致的占比要正确,比如应该避免出现:数值为25%但是视觉上比例却接近1/3等等。

对开发者友好

此外,在设计稿中,能为不同的场景设计出相应的变体(variation)也会大大降低开发者和UX之间来回讨论的工作量。比如在一个产品列表的设计中,列表中的第一个条目展示正常情况(happy path),而第二个显示当某些元素缺失时的展现(空值,非法值等),而第三个条目显示当标题超长之后是应该折行还是显示省略号等。

每一个细节事实上都在为你的靠谱程度打分,也会潜在的影响别人是否愿意信赖并乐于与你一同工作。

小结

文章中列举了一些实际项目中的例子,有关于如何做好开发实践的技巧,有关于帮助团队里的其他人更方便工作的意识,有关于对开发者友好的设计细节。所有这些例子中的技巧,事实上都与这样一个事实有关:要在职场中成为一个靠谱的人,意味着即使对团队内部,你也需要扮演一个专业服务者的角色。你需要更多的站在他人的角度来考虑问题,在合理的范围内,尽量的减少别人和你合作时的工作量。此外,你需要处理好很多细节,职业性体现在很多的细节中,从测试数据中的asdfasdf,到设计稿中的typo,都可能暴露你是否在用心对待工作。

文中提及的这些值得践行的技巧事实上与具体技术关联甚弱,你可以很容易的举一反三,并在实际场景中灵活运用,成为一个专业而靠谱的职业人。


更多精彩洞见请关注微信公众号:ThoughtWorks洞见

Share

和情绪作伴

“作为一个职业人,你不应该把情绪带进工作里。作为女性,可能会很难,但是,职场上只有角色的区分,没有性别的差异。”

我想很多女性在自己的职业生涯中,都会遭遇情绪管理的问题,上面这是我的同事在我一次工作情绪失控后对我讲起的话,那也是我第一次意识到情绪的杀伤力。

那是在09 年,我在新加坡做项目。

当时的项目干系人比较复杂,来自多个部门,诉求多样化还多变,甚至有些诉求还互相冲突和矛盾。我们每两周给客户做一次showcase(成果展示),对我来说那是很大的挑战,既要展示产品功能,又要应对来自不同需求方的责难。

客户方的项目负责人是个法国人,每次的showcase都是他和我一起参加,尽管他很少发言,但是他的出席仍然会让我心安。

有一次,我们的showcase进入了一种很艰难的境地,开发的优先级在不同部门的干系人之间没有被协调好,以至于客户源源不断的扔出挑战、责难、挖苦,很明显,是因为项目经理在管理干系人的期望时出现了疏漏,所以我将求助的目光投向他。

但让我意想不到的是,他转而向我发难,抱怨产品的各种不给力,但那些产品功能是他定的,优先级是他拍的。

我欲哭无泪,成了妥妥的背锅侠。

当天晚上,我抑制不住愤怒,和团队大倒苦水,也把收集到的负面反馈统统倾倒给了团队,现在想来,当时的负能量足以把整个团队淹没,要知道,那是在项目最艰难也最需要士气的时期。 在我的影响下,有几位同事对项目失去了信心,纷纷提出想退出项目,包括我自己。

压抑不住的时候,不妨表达出来

后来又经历了一个项目,整个项目期间和客户合作非常顺利,就在离项目结束还有三天的时候,客户和老板谈了一次话。

会后客户找到当时担任项目经理的我,表达了对产品的不满意,挑出了一些“莫须有”的问题,这和几天前他表达的对产品的信心以及喜爱大相径庭。

在客户勉强拼凑出的“理由”里我渐渐清楚了原因,项目结束意味着整个技术团队离场,在没有技术人员支持的情况下客户对产品的维护存有担忧,但他又不想追加维护费用,所以只好找一些借口把团队留住。

我本能的反应是愤怒,所以一边抵御着他的强词夺理,一边做好了攻击的准备。

但经验告诉我,站在他的立场,在资源受限的条件下,他也只是无助又无能为力。

那是一次很艰难的谈话,耗时很长,曾有几次,我的声音提高了八度,感觉就要控制不住了,也开始表现出不耐烦的情绪,但理性告诉我,再继续下去,我肯定会失控,与其失控,不如主动表达。

我说:“听你讲完这些,我是愤怒的,产品开发的过程,我们一起付出努力,合作愉快,但就在项目结束的前夕,听你对产品做出这样的评价,我非常难过;我非常理解技术人员的撤离会让你担忧,但是在你提供不了任何关于产品有问题的确凿事实的前提下,单方面宣布项目结束不了,让我对你以及你的公司很失望;我们的合作基于信任,请理解我此刻的情绪和感受。”

奇迹般的,客户没有继续咄咄逼人,也没有再继续寻找借口。

尽管我当时还不知道项目会如何收尾,但和客户表达完情绪后,感觉自己像打了场胜仗,当晚和团队讲战斗经过的时候,一直笑着,像在讲别人的故事。

后来项目按时结束,客户也一直和我保持着私人的联系。

有时想想,情绪控制不住的时候,与其让它失控,伤人伤己,不如为它找个出口,主动表达出来,或许会是一种更强大的力量。

掩藏不住情绪的时候,不如真实

还是和客户有关的一个故事。

是客户方的一个高层领导,他并不经常出现,除非发生了两种情况:项目有了大的风险,或者他 对项目存在极大的不满。

那个项目压力很大,工作强度也很高,最大的挑战是项目进行到一半的时候,需求膨胀了一倍。 多次和这位高管交涉,对方口头答应追加合同款,但是一直没有落实。

在一次争议很大的showcase之后,我好不容易和他约了面谈的时间,本意是沟通showcase中的争议,但是他的时间一直更改,最后召见我的时候,是在一个很尴尬的场合,他刚对自己的下属发完火,会议室内还弥漫着硝烟。

最为关键的是两个下属如惊弓之鸟,他也并没有让下属退场的意思。

也就是说,我要在其他人在场的情况下和大老板交谈。

计划好的内容已经不适合在那个场合沟通,就在我盘算聊什么的时候,他对我发难了,他全盘推翻了以前的约定,提出了新的诉求,说的头头是道,有理有据。对软件项目来说,那是灭顶的灾难。

我俩的地位不对等,隔着无数个层级,商业上他是客户,我能明显感觉到在我面前,他有意展示压倒性的优势,但我没有退路,只能迎上去。

我打开曾经约定的文件,帮他回忆当时是怎么达成一致的,何时何地,由谁提的意,如何做的决定,以及当时都说了什么。 回忆的时候,我脑海中浮现出在这过程中无数的反反复复,那些反复不但没有带来好的结果,还给团队制造了很多麻烦,团队的辛苦也是因为那些反复。

为了约到他的时间,我费了不少周折,眼看他要离场了,我却没有机会表达我想说的内容。 心里的委屈此起彼伏。

我说,我希望我们再一次澄清约定,并且遵守约定,团队已经做了最大的努力,也会继续努力下去,但是团队也很不容易。

说到“不容易”的时候突然就哽咽了,委屈的像个不更事的小姑娘。但意识到自己失态之后,我立即把情绪压了下去。

客户敏锐的觉察到了我的情绪,正了正身体,非常专心的和我完成了接下来的谈话。

就在当天,他竟然发信确认了追加的合同款。

后来才知道,他以为我执意找他是为了催合同款,为了让我开不了口他也故意不配合,是我掩饰不住的情绪,让他最终改变了主意。

我没有办法找他询问他当时看到的我是什么样子,但我想,那一刻,我应该很真实。

很多人说,在职场,情绪化是很不专业的表现,但我认为,只要我们的情绪没有伤害到别人,它就可以存在,因为情绪代表着最真实的自己。

这么多年,我也一直很感激,并且发自内心的尊重那些,在职场上能尊重别人情绪的人。

换一种角度来看待情绪,情绪也许是一件包装好的礼物,有时候包装得很丑,但你要先接受她,再去打开这份礼物。

或许,你会看到意想不到的内容。

Share

我在ThoughtWorks四年了

又到了应届生入职的时候,时间过得真快,四年前的我也是在这一时间离开校园、成为一名ThoughtWorker的。刚入职时,我和大多数毕业生一样,即开心又忐忑。开心的是,终于有了自己的工作,要走入社会、可以独立了;忐忑的是,不知道自己的生活将是什么样子。会像巧克力糖一样有苦有甜吗?事实证明,像是放久了但还未过期的彩虹糖豆,有着色彩斑斓的甜豆和几颗变味变苦的坏豆。

在ThoughtWorks,新入职的应届毕业生将会被公司送到印度Pune去参加一个为期5周的ThoughtWorks University(简称TWU),在那里你将会充分了解到ThoughtWorks的文化、宗旨和做事方式。入职第二天,我就和小伙伴们一起飞往印度Pune,这也成为我第一次出国经历。

第一次亲密接触

这五周的TWU学习之旅,对于我来说,可谓是“生不如死”,像蜕了层皮一般。TWU是一个全英文授课的环境,里面的老师、学生都是来自不同国家、不同地区的同事,很多人都有不同的口音。我当时的舍友是一个Pune本地姑娘,当她用浓重的印度口音重复做了3遍自我介绍时, 我依然什么也没有听懂。更不用说课堂上的内容,什么敏捷迭代、故事卡估点、团队站会,这些我在国内都没有听明白的概念,还要让我用英语听,感觉好难。

周围的老师、同学为了照顾像我这样英语不好的学生,会故意放慢语速。其实我自己很清楚,不仅是速度、口音的问题,更是因为我知道的词汇太少了,大家越是这样照顾我,我就越自责。而且TWU的课程安排是从早8点到晚6点,回到公寓还会有各种会议,就连中午的吃饭时间都是按分钟计算。一天天积累下来,我听不懂的内容越来越多,和大家的差距也越来越大。

远在他乡,独自一人面对这强大的压力,让我有点害怕、有点喘不过气,无助的我无人可以诉苦,只能独自哭泣。在课堂上哭过,在公寓里也哭过。一时间,感觉我自己好软弱,大脑中萌生了各种不好的想法,我会被公司fire吗?我可以放弃吗?但是感觉就这么回去好丢人啊,那就再坚持坚持!

幸运的是,当时的室友Anujia和团队教练Anand在发现我的无助之后,一直默默的鼓励我、帮助我。记得当时我要准备一个英文的演讲,Anujia陪我熬夜到凌晨两点,不停的帮我修改英文表达和发音。有了他们的鼓励与帮助,我更强化了要坚持下去的信念。可能我在TWU的表现并没有其他同学优秀,但是我坚持到了最后。这次经历让我认识到了自己的不足,并且明白“持续学习和快速学习”的能力是作为一个程序员必须具备的。坚持下来之后,我深深感觉到了涅槃重生的喜悦,或许这就是TWU的魅力所在吧!

TWU的经历也让我开始感受到ThoughtWorks的氛围:同事之间互相关心、互相帮助。

其实在毕业之前,我看了很多描述职场经历的文章,想让自己对即将迈入的职场有一个心理准备。这些文章描述了很多勾心斗角、尔虞我诈的职场政治。或许是有了先入为主的思想,我当时就认为大概所有的公司都是一样的。但是在TWU,当我想要放弃的时候,身边的同事并没有放弃我。他们耐心的开导我,在TWU那么紧张、有压力的学习环境下不辞辛苦的帮我补课、帮我练习英语。这和我之前所认为的同事感情完全不同!

从TWU回来后,公司给每个人安排了一个在试用期帮助你快速成长的小伙伴(简称:buddy),转正之后还会给每个人安排一个很有经验的、可以帮助你继续成长的同事(简称:sponsor),而扮演这些角色的人都像我在TWU时遇到的室友和教练一样,帮助、关心和鼓励我。对我来说,ThoughtWorks更像是一个学校,而不是职场,这里是温暖的!所以去年10月份,当我知道可以申请去TWU做教练的时候,我毫不犹豫的报了名,在TWU做了两期教练,我要把我当年得到过的帮助和感受到的温暖也传递给未来的ThoughtWorker。

随团队渐入佳境

从TWU回来,在经历了一段没有项目的空窗期后,我被安排到一个海外交付项目上,虽然三年来所用的技术栈和所做的东西并没有太大变动,有时甚至有些枯燥。但是我所在的团队却不同于项目,团队成员都非常有激情、有活力。当你某一天走进西安办公室的南区,看见有个团队围在一起很激烈的说着什么,有点像是在吵架。请不要惊慌,他们其实在讨论问题,大家正各抒己见、表达着自己的想法。这是一个具有很强的执行力的团队,一旦搞清楚问题,就会马上付诸于行动。

记得去年八九月的一个晚上,大家都已经下班回家。组里的一个成员无意中发现了一个线上问题,当时客户还不知道这个问题的存在,大家就想“既然发现了那就赶紧解决”,第二天站会的时候再跟客户更新,于是大家立马投入战斗。虽然家里的网络各种不给力,但还是及时解决了这个问题,大家休息时已是凌晨4点左右,没有人有半点不满,第二天还是正常上班。在这个团队,类似的事情还有很多,比如:大家会一起组队参加办公室举办的技术交流活动;一起参加技术创新大赛;一起参加社区分享;为了提高大家的前端技能,专门成立组内前端学习小组等等。3年来,我从未在团队中感觉到热情的消逝。

有时闲来无事,会和之前的同学一起聊聊各自所在的公司。比较之后,深刻体会到ThoughtWorks的另一个不同:团队文化。下面这段话是对我所感受到的ThoughtWorks团队文化的一个很好的总结:

  • 内在激励 高于 外部激励
  • 我要做 高于 要我做
  • 自我驱动的团队 高于 经验丰富的领导
  • 个人能力 高于 职责要求
  • 团队关系 高于 合作关系

也就是说,尽管右项有其价值,我们更重视左项的价值。

我们团队只是ThoughtWorks众多团队的一个缩影,而且还有很多像这样充满活力和激情的团队在ThoughtWorks存在着。比如:TWI讲师团(TWI的全称是ThoughtWorks Immersion,是针对社招同事关于公司文化、宗旨和做事方式的一个为期3天的培训)。这其实是一个自发性的民间组织,从来没有什么激励、领导、责任的划分,大家都是靠着自己的兴趣来坚持做这件事情。我很荣幸成为其中的一员,一直以来感受着大家的热情,同时也被这种热情所鼓舞着。

感受点滴中的关怀

在ThoughtWorks还有一个不同的感受就是:公司不仅关注你的工作,同时也关心你的生活。当你在平衡工作和生活时感到困惑或迷茫时总有一个什么可以帮助你。或许是一项公司政策、一个人,也或许是一篇来自同事的文章。

在这里说一个我的例子:今年六月初忽然发现自己怀孕了,虽然和老公一直在计划这件事情,但是真正发生时还是有很多的担心和不知所措。我开始担心怀孕生产会影响工作,担心自己没有能力照顾好孩子,甚至担心自己孕傻,以后没法工作。

后来我就跟我的sponsor说起这些事情,他跟我提到可以去咨询一位刚生完宝宝的同事,恰好这时就看到这位同事写的一篇文章——《在ThoughtWorks,我们如何做母亲》,我回家后细细研读,这其中的经历真的让我豁然开朗!后来跟HR同事聊天的时候也了解到公司也有一些帮助新妈妈顺利渡过角色转换期的福利政策,比如:灵活调整上班时间,上四休一等。除此之外,还有公司贴心安排的“心晴”计划(也叫“员工帮助计划”),邀请专业人士帮你处理心理困扰,找到工作和家庭的平衡。这些都在我困惑的时候给了我很大的帮助!在ThoughtWorks,总有一个什么可以帮助你!

写这些文字的时候,在ThoughtWorks四年的点点滴滴也在我脑中一一掠过。现在我就想对自己说:四年前做下加入ThoughtWorks的决定,你没有做错!


更多精彩洞见,请关注微信公众号:思特沃克

Share

在ThoughtWorks, 我们如何做母亲

《中年危机》的作者柯丽·鲁宾和莉亚·麦考,两位三十多岁的纽约职业女性,曾经这样描述现代女性的窘境:

“如果我们还不开始学习将个人生活、社交活动和工作事业融为有机整体,那么不出五年,我们就会蜕变成红木办公桌另一边那个愤怒的女人,终日质疑下属的职业道德。每天勤勤恳恳工作十二个小时,然后拖着疲惫的身躯回到形单影只的公寓,麻木不仁地点份快餐,味同嚼蜡地勉强充饥。”

家庭和工作如何平衡,尤其是当了母亲之后。这几乎是所有职场女性都会面临的问题。那么,有没有方法和经验能让我们的职场女性拥有事业心,又做好母亲?

01 要亲密也要距离,克服最大的障碍—自己

“产后回归职场的妈妈有很多劣势,尽管大部分人仍然上进也拥有事业心,但机会到来的时候,却容易被忽视,有时候外界是出于一种善意,想保护这个群体,但这其实也是在制造不公平。”

“我是比较幸运的那个”,小裴分享着自己的经历。

在宝宝快2岁的时候,小裴有个机会去加拿大见客户。

因为孩子小,她即使选择不去,也会得到公司的照顾,但考虑到项目有需要,自己也确实不想放弃难得的机会,所以最终还是去了。

“后来我非常庆幸自己去了,不但宝宝好好的,自己还学到了很多。”

大部分公司对于新妈妈都会有一些特殊的照顾,ThoughtWorks也不例外。比如,灵活一些的工作方式,比如在宝宝小的时候不安排出差。这都给女性同事带来许多便利,能够帮助新手妈妈们更好的度过兵荒马乱的角色切换时期。

这种做法有利有弊,很多女性会在“有了宝宝”这个客观原因的掩盖下,主观选择不去做一些事情。其实很多事情不是因为有了宝宝而变得不能做,而是她们会无意识的把孩子当成一个避风港,进而放弃挑战。

对于产后回归职场的妈妈,获得机会已经相当不易,如果再轻易放弃,长期躲在舒适区里反而容易和职场脱节。

当然,选择接受挑战,很多时候也意味着和孩子分离。

面对分离,很多时候妈妈觉得孩子离不开自己,其实真正的原因是自己离不开孩子。在这方面,小裴有自己的选择:

“我做不了全职妈妈,我希望和孩子像朋友一样相处,有亲密感也有空间,他会长大,会有他自己的生活。在这个年龄阶段,我给他最大的帮助,他做不了的决定,我可以做,他能做的,我给他自由。”

所以她尝试在家庭和工作间调整亲密度与距离感。加班或出差的时候,留自由给孩子,和工作亲密接触;回归家庭的时候,和工作保持适当的距离,全心全意和家人在一起,享受和家人的亲密。

所以,做妈妈不是障碍,最大的障碍是自己!

02 体验是相通的,打通工作和家庭

娴静在公司是一支大型团队的技术负责人,工作十多年,从没停止过写代码,这是她最有成就感的事情。

儿子今年八岁,对母亲的依赖相对少一些,但娴静丝毫不觉得比小裴轻松。

八岁的孩子自己有主见,但想法还不成熟。母亲和孩子之间,有时甚至无法用和平方式解决问题,冲突偶尔爆发。

“这就如同你管理着一个团队,每个人的经验不同,处理事情的方式不一样,冲突是不可避免的”,娴静深有体会。

家庭就是一个团队,成员间既独立又合作,既信任又磨合。在娴静家,每周六晚上是家庭会议的时间,讨论的事情大到旅游计划、成员健康,小到孩子作业或者看电影。这是难得的机会,能让所有家庭成员参与进来、贡献自己的想法、承担家庭责任。

这些讨论在团队中也不陌生,团队成员在工作中需要协同合作、分享观点、解决冲突,最后达成目标,团队在碰撞中成长。

“在教育孩子方面,我特别关注价值观、孩子的身体和学习习惯,其它放手让孩子自己拥有决定权。类似地,在工作中,作为负责人,我会抓大放小,让自己的团队共同想出解决方案。”

其实,很多事情都是相通的,打通工作和家庭,复用经验,做事情事半功倍。

所以,一个人如果能带领好一个团队,也往往能维持和谐的家庭关系;同样的,如果能经营美满的家庭,工作上也往往推进得有条不紊。

娴静每年都会安排一到两次的家庭旅游计划,和家里人一起看看不一样的东西,结交新的朋友,彼此互动、增进信任。

家庭、工作、旅游、兴趣,是这些多样化的东西让人潇洒,也让人丰富。

会生活的人,工作总不会差。

03 行动起来,允许恐惧如影随形

这是我自己的故事。

我曾经是个“恐孩族”,认为“生孩子”是一件无比恐怖又具有破坏性的工程。

当时我心里有很多担心,担心生完孩子之后无法恢复身材;担心怀孕生产会影响工作;担心一孕傻三年、记忆力下降;担心患上产后抑郁症;担心孩子的到来会破坏夫妻感情;担心老人的介入让家里变得鸡飞狗跳;也担心自己没有能力照顾好孩子……

其实我并不“丁克”,只是这些恐惧让我不敢迈出这一步,眼看着身边同事和朋友的孩子都能打酱油了,而自己却用了三四年的时间犹豫不决、患得患失。后来我开始这样想,“尽管这件事对我而言挑战颇大,但既然迟早都要做,那干脆做吧,完工了就可以去忙其它更吸引我的事情了。”

于是我把自己所有的恐惧写下来,封进了一个箱子中,再次开启的时候已经是一年零两个月之后,在这段时间里,我完成了怀孕、生产和休产假。

回到工作岗位后,很多同事都说我状态不错,这也提醒到了我,回家立即打开尘封已久的箱子。

再次回看,字条上的内容让我啼笑皆非,一张字条一个担心,却大多没有成为现实。

以前会担心,有了孩子会失去一些在工作中学习的机会,现在会觉得,生孩子不仅仅是让我多了一个身份,更大的收获来自这段经历,来自哺育孩子和孩子一起学习和成长的过程。

可能不仅仅是我,大部分女性在面对一些不熟悉且有些挑战的事情,通常恐惧多过自信,这些事情可能是生孩子,可能是见陌生人,也可能是做公众演讲、承担挑战的职位。

很多时候,不是这件事情本身有多么令人恐惧,而是我们安抚不了自己恐惧的内心。

所以我们会一直拖延不行动,也会错过一些机会。

意识到这些之后,我调整了自己对待陌生事物和突如其来的改变的看法。虽然仍然会恐惧,但我选择和恐惧和平共处,行动起来,允许恐惧如影随形。

因为恐惧不是完全坏的事情,它能提醒我们时刻做好准备。

04

三个故事,三位女性,我们是不同的个体,各有各的活法,我们又很相似,在追求事业的同时,经营着让自己还算满意的家庭。

我们并没有将工作和生活隔离,而是把不同的部分进行了合理的调整,这能让自己更好的适应不用的角色,也能保持身在职场的自信。作为现代女性,我们需要的,或许正是整合,而不是平衡。

你说呢?


更多精彩洞见,请关注微信公众号:思特沃克

Share

从校园到职场,你可能会面临的几个问题

首先,我想恭喜看到这篇文章的、刚刚离开校园不久的你,恭喜不仅仅是因为你加入了ThoughtWorks、加入了我们,而是你开始了崭新的职业生涯,这是一段新的旅程,而从很长的时间来看,这段人生旅程会很精彩。

很多新鲜的事物,在等着你。新的公司、新的朋友、新的工作环境,还有新的技术、新的项目,都需要自己来慢慢体验和适应。面对这全新的体验,我想很多人会充满期待,我记得自己当年也是一样,虽然每天奔波在通勤的路上,但心里充满希望,不觉辛苦。

1-twu_cheer

伴随着新鲜体验一起的,还会有一些问题在等待着我们,这些问题可能是自己脑子里想到的,也可能是出乎我们意料的。坦白地讲,开始工作后,乃至工作很多年,问题还是会一个一个接踵而至,考验着我们,怎么去面对它们,怎么去克服它们。我工作十几年,挑战我的问题还不断出现。而你从校园到职场这段时间面临的几个问题,只是个开始。

你可能不是计算机科班出身,但你通过了面试,也许手里只有这样一个offer,或者放弃了其他所有的offer,就为了心中所爱的代码和工作体验,从你的校园来到了一个企业,对一切充满了好奇疑问,但也有点担心和迷茫,面临诸多工作上的挑战和对行业的未知,不知道自己能不能顺利的过渡和融入。

但好在我们可以现在一道,来看看可能会有哪几个问题,用我和同事们的经验,帮助你了解和熟悉这几个问题,然后尽快去克服它们,更多体验新的职业生涯所带来的美好。

公司,不再是学校

首先来聊我们的工作环境,告别校园进入社会,公司是我们要熟悉的第一个环境,或者说组织,或者就是一个办公室。你会慢慢体验到一个公司组织跟学校的很多不同,比如学校有老师、有食堂、有宿舍、有实验室,而公司只有同事。

berlino21_2x

跟学校和老师以传道授业解惑为主不同,公司有自己的运营方式和目标,有的公司唯一的目标就是客户和赚钱,而有的公司会建立自己的使命并围绕它打造自己的文化和氛围。比如ThoughtWorks有自己的“三根柱子”。

所以每个企业组织都有自己的目标诉求,以及围绕它们建立起来的文化和组织结构,还有所有的经营活动。公司有不同的部门,比如有销售,有市场,有人力团队,还有财务和运营支撑团队,更有像你我这样的工程师团队,所有人共同构成了公司的经营活动。

我们会有不同的项目团队,由不同数目和角色的同事组成,对应一个特别的客户组织。为客户设计开发产品或者软件系统,解决客户的业务问题,或者帮助客户创新抢占市场。

新人如你,需要尽快从同事那里了解公司的目标和文化,验证自己的想法是否能够和组织的目标和文化相融合,这可以从同事的工作方式和态度上耳濡目染。对于还未服务过任何客户的新人来说,这种再正常不过的日常工作活动对你来说也是新的体验,最先需要学习的就是谦虚学习的精神和职业化的态度,多观察同事的做法,不着急下判断和结论,你跟同事也许会有技术技能的差异,但我们需要共同表现出职业精神和对客户负责任的态度,多向同事请教。

也许过了几周,甚至过了几天,你会发现这个组织,这里的环境和人,跟你的预期有所不同,甚至会觉得跟招聘MM以及你的师兄师姐在做校园招聘时的描述不同,心里出现了落差和怀疑。在我看来,这也很正常,别人嘴里的描述、自己的感受和真实的情况之间,总会有些许的空档,而寻求其中的原因是我们所鼓励的。你可以自我表达出来,从你的同事那里,从我们的HRMM那里,或者从公司的邮件组里面寻求帮助。

总的来说,你是从校园——一个别人为你负责的环境,到了一家企业——一个你需要为自己负责的环境里,你心理和态度上的转变更重要,而ThoughtWorks会给你诸多其他组织不能给予的宽松环境,来表达,来试错。所以,不要轻言放弃。

同事,不再是同学

如果说毕业前,在校园里周围多是你的同学老师,在那里共同学习和研究课程问题,那么加入ThoughtWorks,你会进入一个专门的项目团队,你是跟你的同事一起,服务于某个特定的客户。

你会发现,你的团队同事里面有资深的人,也有跟你差不多经验的人,他们的背景各不相同。而你会发现这会是ThoughtWorks这个环境中最有趣的一部分,不同身份背景的人构成了你的团队,而由此所带来的思想上的冲击和灵感碰撞,会给每天的专业工作带来各种可能。

突然你会发现,你左手边这个在写代码的同事,之前竟然是一名可爱的士兵,部队的纪律和严肃构成了他品格上的端正和高效执行力,而你右手边的同事是个之前从ThoughtWorks离职过又重新加入这家公司的姐姐,有丰富的前端技术经验。是什么吸引了这样的一帮人在你的周围,在一个团队中,你可以问,你也可以学会很多。

2-together

而且正如你加入之前所了解到的,公司的牛人很多,下面是来自我同事的描述:

这里有很多很优秀的人,更重要的是,他们完全不吝啬将自己的经验、经历、思考问题的过程拿出来跟人分享。当看到他们的邮件和博客,我就有种感觉,这些人的存在完全就是为了在你前行的路上亮起一盏灯光,甚至供你仰望的。但这种感觉很好。当你困惑的时候有人诉说,当你懈怠的时候知道其他人都在干什么。

这样不同身份背景和来历的人,构成了一个再普通不过的ThoughtWorks项目团队,用符合我们价值观的工作方式,为我们的客户交付价值。我们需要的是,团队中的人能高效地协作和互相学习,用我们的专业态度。

而你需要做的,仍然是多加观察,看看你的同事怎么和客户沟通,从一封邮件的撰写,到一个会议的举行,看同事怎么写代码,看团队怎么做回顾。

一个人面对

也许突然,你发现自己才进入公司一个月左右,就需要独自面对挑战,比如像我这两位同事说的:

第一次做开源项目,第一次做公开演讲 – AgileChina,第一次做售前,第一次做咨询,第一次被人骂代码写得差,第一次把项目做失败……如果没有ThoughtWorks这个平台,可能我依然在过着庸庸碌碌的日子,抱怨现实的压力但又不敢去设计自己的未来。

TW是个很“新鲜”的地方,新鲜的项目,新鲜的团队,新鲜的客户,新鲜的工作地点。”新鲜” 对于我来说,有时的确是一种挑战。一个人出差,一个人去客户现场,第一次出国,第一次独自在国外过春节,第一次和客户开会,第一次给客户做showcase,第一次讲session, 第一次做校园宣讲… 很多当时看起来很艰难的事情,也不知道怎么就过去了。嗯,大概没有过不去的坎吧。所以就在这样的状态中,在TW待了两年。技术提升不算,做事情、沟通、自信等方面得到了提升。

你看到了,接受挑战在ThoughtWorks是永恒的话题,而这样的经历对于每个人的成长都是非常重要的,过程可能痛苦,但更加令人难忘。而我想说,这样一个人独自面对挑战的机会,在自己的工作生涯中总会有个开始,永远都不会有所谓准备好的时候。越早面对,越可以快速建立起自己的自信和处理问题的能力。

3-distributed-development-challenges-1

学习的过程总是痛苦,我们这些同事会帮助你,但有的时候就需要自己一个人去面对。

养成,属于自己的学习习惯

这个快速变化的行业,以及ThoughtWorks新环境带来的冲击是巨大的,这会被很多人包括我所低估。你有太多的新技术可以学习,公司有不同的培训和娱乐活动可以参加,有很多公益活动你可以参与,你抵达了之前从未想过的地方,太多新鲜的体验激发了不断更新的学习兴趣。

你的视野一下被打开,但你的注意力在不停的切换,疲于奔命的兴趣很快会让自己得不偿失,猛然发现消耗时间和精力后,收获很少,而这也很容易让自己坠入另外一个陷阱:眼高手低。

职业刚刚开始,你需要的更多是踏实钻研和耐心,更需要一种不疾不徐的恒心来学习,太紧张或者太放松都不是一个可以持续的状态。是的,我在说可以持续,不仅是在ThoughtWorks任职期间持续,更是你在往后所有的职业生涯中的持续。

我们这里有特别推荐的一篇文章,建议你如何学习。

然后做什么?

先引用我的同事在知乎上的回答:

对于毕业生,有两点特别重要:

第一是技术热情(passion),今天早上正好看到Quora上的问题:Debdeep Piku Bhandari’s answer to What are the greatest pleasures of human existence?技术热情可以驱动TA做持续学习,这样往往技能不会差,代码的质量会比较高,也比较追求开发效率(对开发中的大部分实践会很容易理解,也更加容易和其他人交流)。

第二是沟通技能,简而言之:能把自己在做的事情说清楚。我觉得,有时候这一项会比技术本身还要重要,特别是在ThoughtWorks这样一家专业服务公司。

对毕业生的代码要求不会像对有经验的人那样严格,也不期望你比有经验的ThoughtWorker更牛(那样的话你就不用来了,作为毕业生,一定要找一个充满挑战,周围人都比你厉害很多的地方修炼),所以不用太担心。

你的确看到了,我们欢迎你加入,我们需要你的热情和学习的能力,而不是更好的编程能力和超过现有同事的经验。

逐渐地,尝试对自己的职业生涯做一些规划,知道自己想学到什么,自己在公司的榜样是谁,谁可以帮助到你。要主动寻求帮助。更高地,寻找对组织的认同感,在不断提供给你惊喜的组织,成就你自己的工作和职业。

我曾经有一个愿望,那就是ThoughtWorks的同事们,不仅仅在技术上精益求精,用职业化的精神服务客户,对软件和IT行业有超乎常人的热情,对于这个世界和人类的存在和自己的人生及未来,也有自己的独特理解,和自己追求的方向。

是的,人生不仅有工作,不仅有技术,还有诗和远方。

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2016-10-25-%e4%b8%8b%e5%8d%885-16-19

最后

建议你关注ThoughtWorks的官方微信公众号(搜索ThoughtWorks),还有我们的微博、知乎和简书等社交媒体上的账号,可以更快的了解我们是怎样一家公司,我们都在做什么,以及我们是怎样一群人。祝你在这里会开心工作。

wechat

Share