团队协作,是永恒的话题。1+1=?,在这里,没有固定答案。

我们这个小组兄弟姐妹一共6人,三男三女。我们共同经营着我们的代码,互相帮助,一起进步。俗话说得好,男女搭配,干活不累。可是事实证明,倘若男女不及时沟通,不相互分享成果,再怎么搭配,也累。

团队,是以执行效率,工作绩效作为指标来衡量团队的优良中差。我力求我们的团队可以按时完成每一期发布版本的任务,并且把其性能优化到最佳。我严格要求每一位成员,我总是希望大家都能将每一个细节做到完美,我总是期望每一个人都能把问题想的很透彻很全面,但是事实上这不可能。每一个程序员都有自己的擅长和不擅长的地方,都有性格上的光点和暗点,如何才能实现1+1>2?我在这里总结一些我自己的不成熟的经验,如果哪里说的不对,欢迎指正。

1.正确看待TA的知识空缺

在开发过程中,我们都坚决杜绝重复制造轮子。但是为了完善大脑里的知识网络,绝对鼓励大家利用非工作时间,或者完成任务后的时间里去学习其他同事负责的部分。一个同事一直在做上层应用程序开发,在本机上调试。设备到位后,人手一个,于是想把程序推进板子里跑起来测试效果。他一启动板子,按照说明在启动脚本添加执行了自己的应用程序,报错error出现在程序第一行,很焦急地跑来问我为什么。我一看error行号是1,其实也就明白了原因。我用file命令给他看,Intel80386 和ARM的差别。见他似懂非懂的样子,我又反问他,如果gcc编出来的东西可以在ARM板子上跑,那要arm-linux-gcc干嘛?

于是乎,这个熟练开发上层应用程序的同事,开始着手学习交叉编译环境的搭建。我对他这种爱学习的精神表示钦佩和赞同,但是一定要保证是在“课下时间”,不要耽误自己的进度,更不要耽误别的同事的工作缠着问问题。人家都挺忙的,你非缠着问已经完成的工作是怎么做的,实在不太合适。有兴趣的话,工作之余自己查阅资料,学习一下实践后再有针对性的问问题,不要像学生问老师一样的洒脱:“怎么搭建交叉编译环境啊?”。说实话,谁也没有教谁的义务。

2.巧克力威化的意义

在讨论技术问题的过程中,出现意见不统一是常有的。两两争执,谁也不服谁。你说你的,我说我的,谁也听不进去谁说的,在真理上得不到输赢的判定,就力求在气势上压倒对方,以求得看起来好像是我更加有道理的效果。谁也不嘴软,不欢而散。NB的程序员,有点范er,可以。但是事后细想明白,其实大可不必争着一时的高位,递上一块巧克力威化,或是一杯咖啡,缓和一下气氛,保持良好的合作关系,心平气和的沟通,放低身段,耐心的倾听和思考,不较真,融洽协作才是王者风范。

3.引导TA们之间的沟通

团队开发中一件比较苦恼的事情就是,两个人合作负责一个模块,谁也不理谁,各干各的。窜到一起后,出了问题,谁都说自己的代码没有问题。要害就是:合作但是不沟通。在开发过程中,引导两两多相互沟通,确立共同的合作目标,是非常必要的。

4.坦诚、坦诚、还是坦诚

拿我个人来说,我最烦的一件事就是,在我回答完TA的问题的时候,TA立即回复我说:“我就是这么做的啊!”。在我心底,是非常非常非常烦感的,你这么做的你还问毛啊?

与人交流沟通,尤其是请教问题的时候,坦诚一点,错了就是错了,没有想到就是没有想到,没有必要昂着头问问题。谦虚,不会降低人的地位。降了身价的,往往是徒有的高调。

5.乐于分享果实

每周做一次技术交流会,每个程序员都分享果实,每一个人都可以学到几个人的知识。严格要求所有人写文档,写规矩的文档!

6.信任、放权

充分信任自己的伙伴,放权让TA去做。

团队是个大家庭,家家有本难念的经。你把我当作家人,我把你当作亲人,我们的心齐了,这本经就好念多了……