软件研发部门经理的核心工作
在一个软件公司的组织结构中,软件研发部的部门经理,是非常重要的一个软件研发管理者。项目和产品的需求分析、设计、开发和单元测试,都是在其领导下完成的。软件研发部门经理的管理能力,直接决定了项目和产品的进度和质量、人员的士气和稳定度、内部流程的效率、研发的成本、客户的满意度、产品的领先性。
一个优秀的软件研发部门经理,能够给软件研发部带来彻底的革命,最终的结果是项目进度加大,质量显著提升,人员士气高涨,到处是绽开的笑脸。而一个差的软件研发部门经理,能够彻底毁掉一个软件研发部门,项目做得一团糟,团队成员怨声连天,核心人员纷纷离职。
这就是不同管理能力带来的截然不同的效果。因此,目前已经是软件研发部门经理的人员,可以通过本文来确认自己所做的工作是否正确。另外,更高层的领导,可以通过本文来检查软件研发部门经理的工作是否做到位。
在我的观念中,软件研发部门经理的最核心工作是人员管理。因为几乎所有的事情,都要由下属人员来完成,而不是部门经理自己来完成的。因此,让下属能够高效高质量完成工作,是部门经理的最核心工作项,这就是人员管理。
那么我们马上调整一个视角:假如我是一个开发人员,作为软件研发部门经理的下属,在满足了哪些条件的时候,我就能够高效高质量完成工作呢?
第一点,我要有工作热情。简单说,就是我喜欢在这里干,愿意为公司的产品和项目开发贡献自己的全部才智。这样朴素的想法背后,包含了太多的内容,主要有:
1)薪酬能够让我满意。如果月工资连房租都付不起,谁还会在这儿干呢?
2)公司有发展前景,公司效益好。如果公司一直亏损,说不定哪天就倒闭了,谁会愿意给它贡献自己的才智呢?
3)公开、平等、融洽的文化氛围。公司的各种流程运作,要公开透明,不要总是暗箱操作。公司和员工、管理者和员工是一种平等合作的关系,绝不能是简单雇佣关系,整天就想着怎么剥削和榨取员工的剩余价值。项目组中、部门内部、部门间,人与人的关系都很融洽,不要总是脸色难看,爱搭不理,甚至冷言恶语。
4)成功的团队。谁都愿意在一个总打胜仗、不断获得成功的团队中,为这个团队的目标和荣誉而不懈努力。没有人愿意在一个低迷混乱、项目不断延期、Bug漫天飞的团队中。
5)不断面对挑战,能够不断学到新的技术、技能,增长自己的经验值。如果总是老牛拉破车,用陈腐不堪的老技术、老思路不断重复做项目,整天机械性的重复劳动,缺乏效率和创意,谁都会厌倦直至厌恶。
第二点,我要具备完成工作所需的技能。开发人员主要面对的是开发技能、技术能力。只有具备相应的能力,才能把工作做好。否则,单凭一腔热情,光胳膊上阵,结果可想而知。软件开发是智力劳动,而不是体力劳动。高超的技术能力,可以将工作效率提高几倍甚至十几倍,用几行简练的高级代码,就能替代别人几百行的代码,并提供更好的性能、可维护性和可扩展性。
基于以上认识,那么作为软件研发部门的经理,其核心工作就是:提升下属的热情和技能。
与下属的需求相对应,开展如下工作:
(一)提升员工热情:
1)薪酬确认:定期评估下属的能力、贡献、职业素养等要素,确认是否应该给员工申请调薪。通常,这个工作是在绩效考评时进行的。在团队中,应公开考评标准和考评指标,执行时应客观、公正,避免轮流坐庄,避免平均主义。明星队员和一般队员的薪酬,需拉开差距。调薪后,必须当面沟通,将其优缺点摆在桌面上,做得好的地方请下属继续保持,不足的地方给出改进要求和建议。
通常,部门经理对下属的薪酬有建议权,但最终的批准权是在公司老板手里的。作为部门经理,应该用一切机会,提升研发部门在公司中的地位,让公司重视研发,提升自己的话语权,并积极为员工争取薪酬。
2)公司有发展前景:这方面,部门经理一般做不了什么事情。
3)构建文化:部门经理是部门文化的缔造者。所谓文化,就是一种价值观。简单说,就是在这个部门中,倡导做什么事情,反对做什么事情。一个部门的文化,是在部门经理的不断教导下,逐渐形成的部门所有人员所共同认知的价值观。因此,部门经理要把价值观逐渐提炼出来,明确化,并在部门日常运作中不断贯彻落实,让部门每一个人都认知,都认同,都执行。
4)成功的团队:为项目分配合适的预算和人员,关注项目的进度和质量,提供技术、管理、资源等全方位的帮助。鼓励员工提建议和创意,倡导分享、交流与合作。
5)创造挑战:在软件研发过程、开发工具、程序架构、数据结构、算法、具体的逻辑处理过程等方面,提出更高标准的要求,让员工迎接挑战,用新的工具、技术、思路和过程来构建产品和项目,从而提升下属的技术热情。
(二)提升员工能力:
首先,部门经理要对每个下属的能力状况,有比较清楚的认识。张三擅长哪方面,欠缺哪方面,李四精通什么,哪方面不懂,这些都要了如指掌。在这个认知的基础上,才能在做项目的时候,有效合理组织人力资源,让最适合的人做最合适的事。其次,才能有针对性的开展能力提升计划。
一般而言,一个部门中做的各个项目、产品,所使用的技术是相同或相近的,因此,部门经理要确定哪些技能是必备技能,哪些技术是中级技能,哪些技能是高级技能。必备技能指团队成员都必须掌握的那些技能,是个技能底线。高级技能是要求团队中的核心人员必须掌握的技能。而高级技能,是团队中的明星队员必须掌握的技能。确定技能项后,定期进行考核。公布考核日期和考核要求,要求员工在日常工作中关注这些技能,并以考试的方式来确认员工是否掌握这些技能。
从以上,我们可以想象出,软件研发部门经理的日常工作,一方面是游走于公司各处,不断提升研发部门的影响力,为部门员工争取更多的福利;另一方面是游走于各项目团队中,提供各种指导和帮助,夯实团队价值观。通过定期的技能考试和绩效考评,牵引团队每个成员不断进步和提升。这样的工作内容,才是一个优秀的软件研发部门经理该做的事情。