《技术领导力》笔记(2)—— 团队建设
做技术管理很重要的一个方向就是带团队,你不是一个人在战斗。你需要清楚地知道成员的性格、能力、意愿,创造发展条件并给予指导。
马云说离职无非两大类原因:钱没给到位,心受委屈了。如果一个员工觉得目前的工作内容不是他希望的,而收入又低,那不跑才怪。
成员品质
职业素养
不管什么行业,人的风险,是最大的风险。作为员工,可以对公司、对领导不满意,但不能做出违法违纪、损害公司利益的事情。如果一个员工有这样的现象,再有能力也不能要。
做事专注
搞技术,需要整块整块的时间来遨游在技术世界,不论是看技术文章,还是看别人写的代码,必须要专心致志。如果杂事很多,经常被打断,这对技术人员是一件非常痛苦的事情。专注力不够,技术深度将难以提升。
乐于挑战
优秀的技术人员崇拜技术大佬,自己也有提升技术水平的意愿,可以承担稍微超出自身水平的技术任务。但挑战要适度,如果花了很长时间也搞不定,技术人员会对自己的能力产生怀疑,选择放弃技术。如果技术人员总是不愿意去学新知识,那就很难成长。
永不气馁
技术难题解决起来往往并不顺利,这需要永不服输的精神。如果总是以不好的临时方案去解决,那系统将会千疮百孔,代码也会快速腐烂。
承认错误
由于认知不够,所采用的技术方法甚至方向都有可能是错的。在意识到错误后,必须承认错误,立即改正。没有人什么都懂,这是很正常的事。
组建团队
招聘需求
首先要弄清楚团队需要一个什么样的人选,把岗位需求写的越明确越好。比如,到底是需要一个有项目管理经验的人,还是要一个精通架构设计的人?
这是一个很重要的事情,务必引起重视。如果岗位要求跟实际做的事情不一致,招来的人认为公司对岗位描述存在欺骗,而公司又觉得招来的人不好用。
也不可贪大求全,把岗位需求写的包罗万象,这实际上是不清楚团队需要什么。首先,满足多领域技术要求的人很少,大部分应聘者不可能全部满足。其次,即使满足全部要求,也是浅尝辄止,达不到工作所需的深度。再次,如果深度也满足了,那这种人真的招不起。
新员工培养
社招人员具备一定的经验,很快就能进入工作节奏。校招的人员是一张白纸,需要给予指导。根据团队的规划和本人的意愿,来确定校招新员工具体从事哪方面的工作,然后配备一名导师带一带。
第一份工作非常重要,它大概率决定了一个人后续能从事什么工作。所以,对于校招人员,建议征求本人的意愿来安排工作,避免干不久就跳槽。
作为技术管理者,在技术上应当能为新员工指明发展方向并安排这个方向的专业培训,让他能够学到更多的东西,这将有助于今后带团队,增强团队战斗力。
管理团队
这一部分内容太多,我用列表方式写简要一点。
向下管理
- 技术尊重:越深入地理解程序员做的事情,在和他们进行技术对话时,参与度就越高,越容易获得他们的尊重。
- 强化现有团队:引导架构师成为杰出的程序员,参与到开发工作中。
- 进度管理:每天花点时间与项目团队成员过一下进展,可以接触到说真话的员工,知道项目哪里做的不好,并给他们帮助。技术管理者需要时刻保持警惕,慎重地做出决策,为公司的长远利益负责。
- 效率管理:做正确的决定,尽量工具化、自动化,优化流程,持续改进。
- 引导工作:指出大方向,引导程序员自己做出正确的决定,事后做好充分的检查,不在下属工作时瞎指挥。
- 保护成员:管理者应避免程序员的时间浪费在无用的会议和文书工作中,不要让他们陷入与其他部门的争吵和流言中,软件开发应该是一件非常单纯的事情。如果工程师经常说心累,那问题就大了。
- 任务责任制:每项任务有且仅有一位负责人,在动手前,负责人应清楚总体目标和自己要达成的目标。技术管理者给任务指定负责人时,不能超出他的水平太多。
- 裁员:表现差的人占用了资源,但无法交付有效成果,留在团队也会影响其他人的士气,从而失去对技术管理者的尊重。再者,人才能吸引人才,劣币会驱逐良币。这时候,裁掉不合格人员是正确做法。
- 主动沟通:技术管理者要想搞清楚项目执行的进度、团队成员存在哪些诉求和不满,主动沟通是必要的。
- 被动沟通:在你有事的时候,团队成员来找你汇报,可能是想告诉你一件大事,影响工作进展。此时应放下手头的事情,专心与他沟通。
- 人才评测:定期组织人才评测,把人员安排在最合适的岗位上。
- 激励员工:加薪是最低层次的激励,如果连这个都没有,那很难留住员工。更长效的激励是做感兴趣的事情,并且在技术能力上有明显成长。
向上管理
- 了解老板:与不同层级的老板汇报不同的内容。老板级别越高,报告就要越精简,越要注重大局,文字更少,符号更多。
- 准备讨论内容:挑选真正重要的问题去寻求老板的帮助。事先准备几套潜在的解决方案,与问题一起交给他。
- 主动承担:问题出现时,尝试自荐,帮老板解决。了解老板关注的事情,找到办法超水平完成。
影响团队的因素
不懂技术的技术领导
不懂技术的人很容易完全从产品角度考虑,忽略研发团队面临的困难和风险,忽略技术人员对于技术的憧憬,造成团队超负荷工作、技术团队缺少技术愿景等情况发生。
遇到业务方提出的需求完成时间点过于苛刻的情况,不懂技术的团队老大可能会说,没关系,我们一开始并不需要一个完美的系统,先上了再说,后面有时间再重构和完善。这样的想法本质上是错误的。
任何软件工程模型,都不会允许在需求完全不明确、描述不清楚的情况下,开始技术方案设计,也不会鼓励在方案设计缺失的情况下开始编码。
团队领导可以不是对口专业出身,但他必须对技术有热情,必须有开发经历,需要对技术有敬畏之心。
薪资管理
调整薪资并向优秀的员工倾斜,让他们的付出得到合理的回报,并在薪资、奖金和期权分配上为他们争取更多的回报,这是对优秀人才最好的奖励。
- 按照能力和付出进行衡量,不要把个人情感混淆其中
- 制定标准化的考核规则,输出能够让人信服的流程和细则
- 薪资组成应多元化,让员工在每一项奖金中感受自己的付出和回报
- 薪资是第一要务,一定要把握标准,做到公平、公正
上升通道
编程是一门艺术,热爱和用心是非常重要的。顶尖程序员,一个人顶一百人。
作为技术管理者,应该与每一位下属沟通,了解他们对于未来的期望,帮助他们设计符合他们想法的上升通道。
一言堂
技术团队如果出现喜欢搞一言堂的领导,逐渐会形成他的个人特权,直到团队中有个性、有能力的人全部离开,整个团队战斗力会变得很弱。
频繁开会
每个会议都必须有一个决策者。如果没有决策者或者会议中无法产生决策,这个会就不应该开。
技术人员的很多时间被各种各样的规划、研讨、问题回溯、客户支持等会议占用,这是不应该的。会议规模越小越好,关系不大的人不必参会。
老员工管理
- 避免生锈:老员工跟不上公司发展时,要深入沟通,跟上发展。避免生锈的老员工把“铁”拉下来,影响公司氛围。
- 兑现承诺:优化掉员工时,要兑现之前的承诺,否则会影响其他员工。
缺乏愿景
愿景就是软件工程师未来的发展前途,制定严谨的人才建设规划,让他们体会到技术能不断提高的愿景。比如:三年内成为后端技术专家。