一、目前研发经理工作过程中存在的问题:
研发经理工作中存在的问题主要从技术、团队建设、激励机制、研发管理流程、有效产出、项目管理等方面进行分析与解剖。
(一)、技术方面:目前公司研发技术能力整体上较弱,技术专家及技术带头人缺乏,部分研发经理技术能力也有待提高,主要体现为如下几点:
1、技术攻关能力偏弱,经验不丰富:部分研发经理在一些项目攻关上无法深刻、准确理解项目要点,进而无法为研发团队提供解决思路方面的指导,不利于把握整个研发团队技术方向。
2、技术榜样、领袖气质较差:研发经理在研发团队中无法树立技术榜样,缺失了研发团队建设的技术魅力优势。
(二)、团队建设方面:目前研发团队凝聚力不足,团队整体战斗力较差,在项目过程中研发人员普遍感觉技术没有多大提升。从目前现象上看主要存在如下几个问题:
1、凝聚力不强:虽然大家都很认真完成自己的各项工作,但却很少关心团队其他成员的技能提升、工作进展以及团队整体发展等情况。
2、团队方向不明确,目标不一致:研发技术方向和研发重点不明确,存在经常来回变动的现象。
3、成员成长缓慢:没有为每个研发成员制定提升或晋升培养计划,对新人的指导工作有所忽略。
4、团队合作分工未能形成合力:团队存在有人忙死有人清闲的现象。未能及时关注及解决项目进度与人力资源配置不合理情况。
5、人员构成不合理:有些研发团队人员构成不合理,未能在能力、学历、年龄等方面形成有差异性的团队人员结构。现行团队成员年龄偏小,技术偏弱,不利于团队建设。
(三)、激励体系方面:公司在研发方面的激励体系主要有金牛杯,但目前公司应届毕业生偏多,在人才内部培养上需要进一步重视,所以现行激励体系在研发日常工作上还存在如下欠缺:
1、 缺乏培养新人的激励体系:目前新人加盟公司后,一般是研发经理为新人指定其职业导师,然后由导师对其进行指导,但并没有一套导师培训效果的跟踪评价体系。培训效果的好与坏无法跟踪评价,这样对新人快速成长很不利。
(四)、研发管理流程方面:公司在研发流程管理方面已经很完善,不但应用了RDMS、SVN等信息化工具,还通过了CMMI三级认证,但实际工作还是有如下几个方面需要细化:
1、研发流程过于单一,没有针对不同领域、不同产品生命周期的子流程:我们公司产品比较多样化,有不同规模大小、不同开发应用平台、不同技术领域、不同产品生命周期阶段等的产品,比如对于一些新领域的新产品,产品缺陷是不可能避免的,产品现状也急需要频繁升级,升级流程可否灵活些。
2、研发经理流程工作过多,无法为团队掌控技术方向:现在研发经理定位上偏重于项目管理,研发经理的流程管理工作偏多,导致在团队建设及技术指导上比较弱化,这样容易出现团队有流程而没有技术体系与方向。
3、研发工作的前瞻性不足,部分成员工作无法连续进行:现在很多部门研发工作是被动的、没有前瞻性、一直都处于救火状态。没有以发展、持续的观念去领导研发工作。这种救火状态也导致工作量巨大,同时也带来工作量分配不合理。
(五)、有效产出方面:研发工作的有效产出主要是指研发了多少有竞争力的产品,解决了多少明显提升产品竞争力的bug,培养了多少能独当一面的各层次技术人才。
1、团队有效产出率偏低:很多研发部门一年中没有研发出多少有竞争力的产品,也没有把现有产品精品化,团队能力也没有明显提升,甚至有些团队还存在不断流失现有人才现象,产出效率没有很好的重视。现在的团队是动态发展的,而不是一个静态的单一的系统,所以必须关注整体的产出效率。
(六)、项目管理方面:去年公司开始实施CMMI三级项目管理流程,CMMI让我们以项目的思想去筹划、管理、实施、监控研发管理工作。各项工作都规范、统一起来了,但项目的开发过程中还存在如下的不足:
1、项目风险识别能力不强:去年有很多项目都延期了,这说明研发经理对项目风险能力识别不强,而且在RDMS上的许多风险都是QC人员识别并提交的。
2、项目危机处理能力不强:在项目人员、项目需求、项目进度等变动下,规避风险及危机处理手段单一,通常情况下只是采取项目延期手段。
3、项目监控手段单一、呆板:项目执行过程对项目进展情况监控不足,或者频繁利用一种监控手段打断成员开发进度,对成员开发积极性、主动性有较大的损害。
4、项目资源配置混乱:项目资源配备没有一定的预见及前瞻性,在突发事情出现时,导致部门人员工作目标不明确,资源浪费现象。
5、项目成果无积累:项目完工后,项目总结工作没有做出实质效果。对开发成果及开发过程中的经验与教训总结不足,没有在团队中引起强烈的共鸣,不具有成果性。
二、问题的原因分析:
上述问题点之间不是孤立而是互相作用的,他们之间是一个相互作用、相互影响的系统,因此在分析问题原因时没有一一对应阐述,而是从如下三个方面进行综合分析:
(一)、研发经理自身能力问题:
1、技术能力:研发经理自身的技术能力在深度、广度有待提高。技术能力的瓶颈会导致研发经理在项目风险识别、项目把控、团队技术领导、人才培养、研发技术攻关及技术预测等方面上存在问题。往往领导的高度决定了一个团队的高度。
2、管理技巧:研发经理大多是技术出身,表达及管理能力偏弱,有时会宠溺于技术研究而忽略团队的建设,未能及时对下属进行激励、监控、纠错。同时对适度授权把捏不好,容易造成监控过度或项目失控现象。
3、教育培训:研发经理对内部人才培养不够重视,没有在上面花大力气。任何事情都喜欢亲历亲为,没有适度放权于下属,并逐步培养、提升下属各项能力。
4、系统思维能力:研发经理有时思考问题过于局限,没站在多维度、多角度思考问题。比如有时局限于技术,而忽略了营销、产品、测试等问题。系统思维能力缺失还容易导致部门间的协调不顺畅及上下级沟通出问题。
(二)、研发团队人员配置问题:目前研发团队能力较弱、年龄较轻、经验较少。应届毕业生及经验少的占了部门较大比重,无法在学历、经验、能力、年龄、性格、性别等上形成互补互进。没有差异与层次的团队对于快速构建相互追赶、相互促进的部门人才发展体系不利。没有层次的团队对团队凝聚力、战斗力的建设也不利。
(三)、团队变动频繁:频繁的组织、产品变动对于产品精品化有一定的影响。研发人员负责的产品线或者领域变动过于频繁,使其无法深入各个领域,进而影响其持续精耕每个产品的研发工作。
(四)、研发管理体系问题:CMMI研发管理体系在研发管理工作中过于固化细节流程及行业化标准参数,在特定领域或产品上弱化了研发团队的快速反应能力,不利于应变突发事件,不利提高研发工作的敏捷度。
三、问题的解决方案:
经过银星班一系列的管理理论、案例观摩、拓展体验、思想熏陶课程培训,强化了管理意识与思维,构建了团队管理知识体系,确立了实际管理工作中的管理重点,明确了管理的真正意义与目标,增加了构建高效研发团队的信心。
一个高效的软件开发团队是高质量产品的保证。建设高效的研发团队,是解决上述问题与实现软件项目管理目标的前提和保证。
(一)、选拔或培养适合角色职责的人才:
软件项目是由不同角色的人共同协作完成的,每种角色都必须有明确的职责定义,因此选拔和培养适合角色职责的人才是首要的因素。研发经理要熟悉各种设计方法,愿意听取其他人的意见,并且要很客观地把自己的思想与其他人的意见相比。此外,还要掌握激发团队成员积极性的方法。选拔或培养适合角色职责的人才,特别是合适的研发经理是建设高效软件开发团队的最重要因素。
(二)、增强研发经理的领导才能:
研发经理是项目的负责人,负责整个软件项目的组织、计划及实施的全过程,在项目管理过程中起着关键作用。研发经理必须以身作则,严格要求自己,起到榜样和示范作用;要明确具体的软件项目质量、范围、工期、成本等目标约束;明确各软件开发团队成员的角色和责任分工,充分发挥团队成员各自的作用。
(三)、充分发挥激励作用:
在软件开发过程中,由于严格的目标约束及多变的外部环境,研发经理必须运用各种激励理论对软件开发团队的成员进行适时的激励,鼓励和激发团队成员的积极性、主动性,充分发挥团队成员的创造力。
(四)、灵活授权,及时决策:
灵活的授权,一方面显示了研发经理对团队成员的信任,有利于充分发挥项目团队队员的积极性和创造性,使得团队成员在自己的授权范围内可根据内外部环境的变化及时决策。另一方面,通过灵活的授权,研发经理逐渐将工作重点转向关键点控制、目标控制和过程监控,工作重心由内转向外,侧重于处理软件项目横向、纵向等方面的沟通,从外部保障了软件开发团队的运作。
(五)、营造良好的沟通氛围和交流环境:
要营造良好的沟通氛围和交流环境。成员之间由于价值观、性格、处世方法等方面的差异会产生各种冲突,人际关系往往会陷入紧张的局面,甚至有可能出现敌视情绪以及向领导者挑战等各种情况。为此,研发经理要进行充分沟通,引导团队成员调整心态和准确定位角色,把个人目标与项目目标结合起来。团队成员与周围环境之间也会产生不和谐,如对软件开发团队采用的信息技术不熟悉等。研发经理要帮助团队成员熟悉工作环境,学习并掌握相关的技术,以利于软件项目目标的及时完成。在软件开发过程中,开发团队与其他部门也会产生各种各样的矛盾冲突,这需要研发经理与这些部门的管理者进行很好的沟通和协调,为软件开发团队争取更充足的资源与更好的环境。
(六)、充分发挥软件开发团队的凝聚力
团队凝聚力是无形的精神力量,是将一个团队的成员紧密地联系在一起的看不见的纽带。一般情况下,高团队凝聚力会带来高团队绩效。团队凝聚力在外部表现为成员的团队荣誉感,而团队荣誉感主要来源于项目目标。因此,应当设立较高的项目目标,并使团队成员对项目目标形成统一和强烈的共识,激发成员的团队荣誉感。同时,引导团队成员个人目标与项目目标的统一,增大团队成员对项目团队的向心力,使项目团队走向高效。团队凝聚力在内部表现为团队成员间的融合度和团队士气,良好的人际关系是高效团队的润滑剂。因此,必须采取有效措施增强软件开发团队成员之间的融合度,让成员在短期内树立起团队意识,形成对团队的认同感和归属感,形成高昂的团队士气,提高团队的工作绩效。
(七)、 建立共同的工作框架、规范和纪律约束:
软件项目的开发是创造性的工作,但要有必要的开发纪律。建立共同的工作框架使团队成员知道如何达到目标,建立规范使各项工作有标准可以遵循,建立一定的纪律约束可以保证计划的正常执行。
(八)、学习国内外成功经验:
学习先进的系统分析和设计的思想,可以完成更高质量要求的软件项目;学习各种体系结构优缺点及适应情况,可以设计出满足系统需求的软件体系结构;学习国外成功的设计模式,可以使代码的编写满足更高质量的需求。
(九)、建立新技术预研机制:
明确团队成员的优势技术组成结构,建立技术知识体系。确立每个技术研究方向,并责任至每个成员。确保新技术预研的时间及效率。同时与产品组建立反馈的长效机制,及时反馈技术热点、产品热点等。
(九)、建立团队内部研发人员技术晋升线路与目标:
准确了解团队成员技术技能情况,确立团队内部首席技术标杆,制定每位成员技术提升线路与目标。建立团队内部技术帮扶导师机制,并责任到每个成员,每月对目标、效果进行专门评估与修正。
(十)、建立团队内部主动汇报工作氛围:
构建想法、问题、建议主动反馈机制,并建立相关奖励措施,同时对于拖延、隐瞒问题者进行处罚,提高问题防范的预防机制。
(十一)、建立每月研发组织生活活动:
设立每月研发组织生活活动,此活动不限定主题、地点、形式,秉着促进沟通、减少误会、消除唠叨、增强工作信心,释放心情,排除忧郁,宣泄烦恼为目的。
此外我们也应该注意研发工作的特殊性,我们也应该以辩证的观点来处理以下几个问题:
(一)、在项目监控方面,研发人员并不喜欢被严格管理,尤其是那些能力比较优秀、比较自负的人。这些人实际上确实非常聪明,习惯于认定自己比别人知道得更多。要是这种自我认定恰恰是正确的,那么当他们被命令去做其不认可的事时,他们真的会非常反感。这里就要保持理性,软件开发团队有许多目标,让每个人都高兴,绝对不是排在第一位。
(二)、流程规范管理法的另一个缺点是操作上的,就是说,无法有足够的时间用在微观管理上,原因很简单,因为每个程序员的工作是创造性的、内容不一致。在软件开发团队中,每个人干的活都不一样,所以如果想进行微观管理,就会变成"打了就跑 "的抽风式管理。抽风式微观管理的问题在于,你无法坚持足够长的时间看到为什么你的决定行不通,或者无法将整个过程的每一个步骤理顺。从效果上看你起到的作用,只不过是每隔一段时间就将你手下的可怜程序员敲打一番,让他们像火车一样脱轨,然后下一个星期,他们不得不花上所有的时间,找回每一节列车车厢,将它们放回到轨道上,将所有一切重新安排好,这种经历会让他们一点点地受伤。
(三)、在软件开发中,负责项目的程序员总是比领导者对相关的程序有更多的信息,所以他们才是做决策的最佳人选。巨人集团的史玉柱曾经对外宣称,他坚决拒绝在技术问题上发表意见。闻道有先后,术业有专攻,让专业的去完成专业的事情,这才是社会进步的高效轨迹。
最后,我们要极尽全力建设一个高效的研发团队,给这个团队注入企业的核心文化,让这个团队具备独立自主、自力更生的造血功能;也让这个团队具有核心的技术人才及人才梯队;让我们的团队真正成为能够快速响应、快速成长、快速执行、快速战胜一切困难的高效研发团队。