Navy Xie


A full-stack programmer.


Welcome to my blog.

跟随你心中的旋律

最近一段时间在思考一些团队合作相关的问题,比如,管理者如何与团队中初级和高级开发人员相处。有一些有意思的心得,想记录下来。

我最近几年,更多时间是一个人独立完成一些工作,类似于,free solo。这个过程会很爽,想怎么做都行,但弊端也很明显,比如,进度通常比较慢,因为你一天能写多少代码?特别当你想做的比较细时,进度更慢,换句话,一个人比较难很快出成绩。这在节奏很快的公司,会错失很多机会,浪费很多好的想法。另一方面,也缺失了跟他人学习的机会。最好的学习,莫过于跟一些优秀的人一些做事,观察他们如何沟通,如何分析问题,以及如何做决定。随着年龄的增长,无论是否是从事专门的管理工作,或是走技术路线,总是或多或少,公司会让你带着几个人去一起完成某个项目。

这里还要提一句,何为管理?只要几个人一起做事,就需要管理。管理,我们通常会认为,管的那个人,要高级一些,地位要高一些。其实,管理,只是一个角色,不是像美国电影大片中的那样,对着士兵训话、吼叫。有时侯,我们还听到另一种理解,叫服务式管理,去服务团队成员。我认为,可能也不完全是。管理这个角色,他有自己的职责,比如为某个产品或项目的最终成败负责。所以,从这个角度来说,所谓的服务,只是其中一小部分的涵义。事情上,哪怕一个人独立做一件事,也需要管理,管理自己的时间,管理这件事最终交付的目标。

好了,假设现在机会来了,做一个项目,临时成立一个团队,有一个初级开发人员,2-3个中级开发,1个高级开发,你的工作职责之一,需要为项目最终的成功负责。与初级开发,我们很容易走向一个极端:频繁否定。最近一直思考如何教育小孩子,我发现教育小孩与管理团队非常类似。比如说,一些妈妈会跟孩子说,不要看电视,不要光脚站地上,不要大声喊叫,不要乱丢东西,不要在沙发上跳,不要这样,不要那样…有时侯小孩子会问,那我在家做什么呢?频繁否定,太多限定,会让孩子很困惑。同样的,管理团队时,我们也很容易对初级开发人员说,你这样做的不对,那样做的不好,对他们的工作太多指指点点。

相应的,在与高级开发相处时,我们又很容易走向另一个极端:完全言听计从。事实上,这可能是管理团队中比较难的一部分。我曾经有个一次经历,我加入一个新团队,20多个中国员工,20多个外国员工,我的角色是项目经理,有一个高级开发,是一个荷兰人,同时,他的身分还是:公司的CTO,股东之一,首席架构师,最核心开发人员。我当时与他的相处,采用了中国式的中庸之道,对他完全听从,他的工作完全按他自己的安排进行。最终的结果很不好,我的主管,也是个荷兰人,对我的表现并不满意,因为我没有扮演好自己的角色,把这个CTO管理起来。

我们先停下来,想一下这个问题,如果换你,你会与这个初级开发人员相处,又如何管理高级开发人员?我们很可能会想到,沟通技巧,风险控制,工作细化与分工,等等。我认为,我们很多时侯都无法真正看清一些问题,找到最终的答案,除非我们能跳出我们的领域,因为在同一个领域内,个人的认知是有限度的。

我最近在玩摇滚,与一个吉他手聊天,我就问他,一个乐队中有吉他手、鼓手、贝斯手、键盘手、主唱,大家要一起完成一首歌,其实并不容易,而且,与交响乐团还不一样,没有人指挥,那么,你们是如何配合的?吉他手抽了口烟,想了下,然后抬头看着我,慢慢地说,我们没有配合。我听后很是费解,不对啊,几个人一起完成一件事,怎么能没有配合呢?

他接着跟我解释,首先,大家的工作很明确,节奏是每分钟80,还是每分钟120,是4/4拍,还是3/4拍,谁该在什么时间点,弹奏或唱什么,在选定曲目后,一切都是明确的,没有二义。其次,你也没有办法帮助别人。比如,鼓手跟不上拍,我不能拿个棍上去帮他敲,键盘手弹奏不了,我也无法走过去帮他按。每个人都按着自己心中的旋律,做好自己的工作,最终就是一个完美的演奏。

最近的文章

火车轰鸣

那年,小黄从交通大学计算机专业毕业,在第一轮学校招聘时,就如愿以偿被西安铁路局录用,分配到商洛市商洲镇的一个小火车站。日常工作,除了维护火车站的计算机网络,偶尔也跟同事外出,检修铁路。商洲,一个平静的陕西小镇,人们彼此熟悉。一晃三年过去,小黄觉得这样的生活,倒也安定。一天,小黄跟铁路工人一起来到一个隧道,检修铁路。隧道两头有人专门把守,远远看见火车,就会用对讲机通知隧道里面的人。隧道内每60米就会有一个避车洞,宽2米,深1米。两侧都有,相互交错。铁路检修人员会在火车来时,寻找最近的避车洞...…

fiction继续阅读
更早的文章

学习平台比较

上次跟大家聊了“终身学习”,那么多的学习平台,各自的特点是什么?如何选择呢?我这里帮助大家熟悉一下 Coursera / Udacity / Udemy 等MOOC平台。我这里主要是针对机器学习(ML, Machine Learning)的学习。传统学习方法买几本经典的书籍,从数学和算法看起,同时在网上阅读一些文章,或观看视频。这样学习的好处是,对形成系统的理论体系有帮助。缺点是,学习效率不高,可能花了几周在线性代数和微积分上,还是写不出或读不懂机器学习代码,所学知识与实际问题解决之间...…

Learning继续阅读