最近一段时间在思考一些团队合作相关的问题,比如,管理者如何与团队中初级和高级开发人员相处。有一些有意思的心得,想记录下来。
我最近几年,更多时间是一个人独立完成一些工作,类似于,free solo。这个过程会很爽,想怎么做都行,但弊端也很明显,比如,进度通常比较慢,因为你一天能写多少代码?特别当你想做的比较细时,进度更慢,换句话,一个人比较难很快出成绩。这在节奏很快的公司,会错失很多机会,浪费很多好的想法。另一方面,也缺失了跟他人学习的机会。最好的学习,莫过于跟一些优秀的人一些做事,观察他们如何沟通,如何分析问题,以及如何做决定。随着年龄的增长,无论是否是从事专门的管理工作,或是走技术路线,总是或多或少,公司会让你带着几个人去一起完成某个项目。
这里还要提一句,何为管理?只要几个人一起做事,就需要管理。管理,我们通常会认为,管的那个人,要高级一些,地位要高一些。其实,管理,只是一个角色,不是像美国电影大片中的那样,对着士兵训话、吼叫。有时侯,我们还听到另一种理解,叫服务式管理,去服务团队成员。我认为,可能也不完全是。管理这个角色,他有自己的职责,比如为某个产品或项目的最终成败负责。所以,从这个角度来说,所谓的服务,只是其中一小部分的涵义。事情上,哪怕一个人独立做一件事,也需要管理,管理自己的时间,管理这件事最终交付的目标。
好了,假设现在机会来了,做一个项目,临时成立一个团队,有一个初级开发人员,2-3个中级开发,1个高级开发,你的工作职责之一,需要为项目最终的成功负责。与初级开发,我们很容易走向一个极端:频繁否定。最近一直思考如何教育小孩子,我发现教育小孩与管理团队非常类似。比如说,一些妈妈会跟孩子说,不要看电视,不要光脚站地上,不要大声喊叫,不要乱丢东西,不要在沙发上跳,不要这样,不要那样…有时侯小孩子会问,那我在家做什么呢?频繁否定,太多限定,会让孩子很困惑。同样的,管理团队时,我们也很容易对初级开发人员说,你这样做的不对,那样做的不好,对他们的工作太多指指点点。
相应的,在与高级开发相处时,我们又很容易走向另一个极端:完全言听计从。事实上,这可能是管理团队中比较难的一部分。我曾经有个一次经历,我加入一个新团队,20多个中国员工,20多个外国员工,我的角色是项目经理,有一个高级开发,是一个荷兰人,同时,他的身分还是:公司的CTO,股东之一,首席架构师,最核心开发人员。我当时与他的相处,采用了中国式的中庸之道,对他完全听从,他的工作完全按他自己的安排进行。最终的结果很不好,我的主管,也是个荷兰人,对我的表现并不满意,因为我没有扮演好自己的角色,把这个CTO管理起来。
我们先停下来,想一下这个问题,如果换你,你会与这个初级开发人员相处,又如何管理高级开发人员?我们很可能会想到,沟通技巧,风险控制,工作细化与分工,等等。我认为,我们很多时侯都无法真正看清一些问题,找到最终的答案,除非我们能跳出我们的领域,因为在同一个领域内,个人的认知是有限度的。
我最近在玩摇滚,与一个吉他手聊天,我就问他,一个乐队中有吉他手、鼓手、贝斯手、键盘手、主唱,大家要一起完成一首歌,其实并不容易,而且,与交响乐团还不一样,没有人指挥,那么,你们是如何配合的?吉他手抽了口烟,想了下,然后抬头看着我,慢慢地说,我们没有配合。我听后很是费解,不对啊,几个人一起完成一件事,怎么能没有配合呢?
他接着跟我解释,首先,大家的工作很明确,节奏是每分钟80,还是每分钟120,是4/4拍,还是3/4拍,谁该在什么时间点,弹奏或唱什么,在选定曲目后,一切都是明确的,没有二义。其次,你也没有办法帮助别人。比如,鼓手跟不上拍,我不能拿个棍上去帮他敲,键盘手弹奏不了,我也无法走过去帮他按。每个人都按着自己心中的旋律,做好自己的工作,最终就是一个完美的演奏。