如何当好软件开发小组长(一)

软件开发企业中,所谓小组长team lead,也叫一线经理,大多数是控制一个项目的开发、发布、质量控制、过程管理、人员分配等等各种事情。我在现在单位就是一个小小的team lead,做的事也是这些事情。本篇博文就我自身经验体会,讲讲如何做好一个小组长。

1)如何考察组员的绩效?

这其实是小组长最大也最困难的一部分工作,相对而言,完成项目进度不算是大事。绩效考核关系到组员接下来的工资水平,级别提升,是真正与个人利益挂钩的部分。现有的绩效考核依然是以长期观察为主,以产出结果为主,以努力程度为主。有没有那种天才,一周工作三小时即可呢?也许有,但是我看到的大多数根本没有努力到拼天赋的地步。有的人想法就是过得舒服开心,有的人是要努力挣钱养家,不同的想法决定了不同的工作态度。但是,有一部分人既想着少干活,又想着干俏活,只干出彩的部分。那这时候就要给他们足够复杂的任务,把压力提升一点,让他们从60分的结果提升到80分的产出。

考察绩效很重要几点,一是跟自己比较,相比去年这段时间,应该有所提升,比如去年还是engineer,今年已经是senior engineer,从job description的描述上,工作能力工作范围都应该有变化,独立工作能力以及辅助其他人工作的部分都要大大增强。二是跟同级别的其他组员比较,当然这只是小组长自己观察的结果,同样级别的同样工作经验的,相比结果如何如何。三是看长期的努力,因为绩效考核基本上是半年或者一年一次,如果这个人只是在考核前努力工作,这种工作态度很不可取。另外要通过数据说话,比如任务的复杂度,完成工作的百分比,可以通过每周状态报告跟踪记录。

2)如何沟通?

作为小组长,最重要的工作不是自己去干活,而是给组员创造条件或者阻挡风雨,产出更多的结果。沟通相比编码来说,要更为重要。沟通包括与上级manager的沟通,与美国的高级经理的沟通,与PM的沟通,与其他项目组(或者测试组)的沟通等等。

由于是外企,英语是沟通的最基本语言。现在拿起电话,基本上就是英语随口就来(吼吼),参加英语会议也不紧张了。其实人就是锻炼出来的,大学生的英语四六级通过,加上一两年的逼迫锻炼,基本上听说都不会有太大问题。

最快捷的方式就是打电话,打完电话再发一封邮件确认重点。如果有视频,那么会效果更好。其次是通过sametime这种即时聊天,信息量要差一些,但是对于写强于说的中国人来讲要更顺手。最后当然也是最常见的就是发邮件,时效性差,信息量大,而且可以配图加附件。具体哪种方式适合,要看具体的问题和紧急程度。

如果与组员的沟通,现在大多数是找个小屋子,聊上十几二十分钟。但是软件开发人员一般不愿意直接表达想法,拐弯抹角的,这时候我一般是不管他的内心想法,而是就事论事,讲讲自己的看法,应该怎么做比较好,然后让他说说为什么有什么不同的意见。

现在项目多了以后,会有几个项目leader,负责各个具体的项目开发,我这里基本上算是救火队员和总控制台。这些项目leader以前也是开发人员出身,没有项目管理经验,没有沟通经验。举个简单的例子,某次单独聊天,我说要给你这项目加个任务,这位leader立刻就说我做不了,人手不够。排除掉真正的人手不够,作为小组长其实很难与manager说我做不到。我于是解释给他听,首先一点作为manager发任务一定是事先考虑过,相信这个项目组能完成这个任务,这是大前提。在这种情况下,草率的说“我做不到、做不了”其实是项目leader不成熟的表现。为什么做不了,从manager这里有什么可以帮忙协调的,比如说手头几个任务,是不是可以排排优先级推迟一两个,都可以商量讨论。

没错,team lead最重要的日常工作就是商量讨论,而不是下命令。哪些有问题,哪些很紧急,排出优先级,找不同的人商量开会定结果要资源等等。另外作为项目leader和team lead最重要是有独立工作能力,不能“等、靠、要”。等,是指任务到手上,就是自己的事情,不能说“我发邮件给某某了,现在这事是某某的了”,而应该一直追踪事情进展状态到有结果为止;靠,是说自己业务上技术水平上有依赖思想,我做这个你得给我什么培训你得教我什么,不是说有培训不好,在培训的同时或者没有培训的情况下,尽可能从现有代码文档中找到线索,这时候我们问出来的问题就比什么都不知道强很多,而且对方也会感觉我们的问题在点上;要,是指需要美国的技术经理或者更高一级的经理下决定,否则事情就没法进展下去,不知选择哪个方案了,或者是你让我做什么我就做什么,不多做一点,这种独立思考和决策能力其实是大连这种地方最缺少的特质。

先写到这,有时间继续写下一篇。

另外在豆瓣创建了一个豆列“软件开发小组长必读”,http://book.douban.com/doulist/2429763/ 供大家参考。