一个从开发工程师到管理者的成长路径
转眼间,工作已有10多年了,其中做过软件开发工程师,项目经理,敏捷教练,部门经理,PMO负责人,目前在做研发精益数字化管理的探索与实践。回顾从研发转管理的经历,这些年自己一路成长,收获颇丰。我想通过这篇文章来介绍一下自己的成长经历。
六年的软件开发经历,使我掌握了丰富的开发经验,从一个软件开发的初学者、到后来能独立对接业务并完成软件的设计与开发,再到带领团队指导团队成员去按时保质的完成研发任务。这个过程是后来走向研发项目管理的基础。
大部分人可能是喜欢什么就做什么,我却是做什么喜欢什么。做编程工作的时候,当自己设计编写的代码在电脑上运行出来符合预期的结果时好兴奋。有时候运行报错,或者出来的结果有偏差,就会绞尽脑汁查找问题,一遍一遍的更改设计及编码试错,直到结果与预期相符,否则吃饭和睡觉都不是滋味。当问题解决时,那种成就感是无语言表的。
做研发对于女孩子来说挑战还是蛮大的。为了快速提升编程、设计能力,赶项目进度或者是解决生产问题,加班加点到凌晨是常有的事情。因此大家可能会看到普遍的研发人员职业病,熊猫眼、掉头发、肥胖啊等等。要想在研发这行做出来点成绩来,天天混在男同事堆里,女孩子就不是女孩子啦,哈哈。
因为工作认真负责、善于总结、学习能力强、肯钻研、爱主动承担任务、有原则、执行力强等优点,我被选择去带研发项目,开始做项目经理。
刚做项目经理时,思想主要还停留在带头干活的阶段,严格地说就是个技术leader。我当时认为项目按期保质做完、顺利投产就可以了。项目管理的过程也是自己摸索出来的,例如团队组建、需求分析、技术设计、项目任务分解计划、成员任务安排、进度跟踪、汇报、变更控制、风险预估、问题的处理等。
两年带了几个项目,项目完成的范围、进度、成本、质量都比较优秀,得到了项目发起方的好评。现在分析原因:一是自己能以目标为导向、技术能力比较硬,执行力较强,对项目的范围、进度、成本、质量的管理做得比较好等;二是多亏了上级领导的指点,比如项目有哪些重要会议,项目情况及时跟项目相关方沟通,项目风险要提前预估并做应对方案等。第二点是相当重要的,这也是很多技术转项目管理的同事容易忽略的点。我亲眼看到几位项目经理,活儿本身干得都挺好,但是没得到相关方的好评,很大原因就在于沟通不到位,没有关注项目相关方,只关注事情本身的问题。
我这两年的项目管理是有实践经验但是缺乏系统的理论指导,后来做组织级项目管理的时候才把这块内容补齐。理论能更好的指导实践,这也是为什么后来我在组织项目经理训练营的时候,让新进的项目经理注重学习项目管理的知识体系以及已有的一些方法论。
做软件开发的同事沟通能力一般偏弱。因为他们跟电脑打交道多,习惯了跟机器语言交流,跟机器沟通是直接的、直线的或者马上能得到结果的,很多时候输入什么输出什么是预先设定的,有迹可循的;跟人的沟通却大不相同,人有主观意识、有情绪,人与人的沟通灵活性很高。所以大家会发现,程序员一旦答应了产品经理需求投产时间,(尽管开发过程中遇到了很多困难与变更问题)都会尽最大努力按时做到,因为在他们看来自己加班加点是可控的,与产品经理的沟通是不可控的、复杂的、繁琐的、讨厌的。
那从开发转项目管理要过的一大关就是沟通。因为一个好的项目经理,协调沟通的事情占了工作时间的80%。提高沟通能力是一个比较复杂的话题,我后期会单独写一篇关于沟通的文章来阐述相关内容。
2015年,我开始担任开发部经理。部门管理跟项目管理又有很大的不同:开发部门属于职能型部门,目标是持续高效率、高质量、低成本地满足业务部门需求;而项目管理要面临事项与组织的临时性、目标独特性、创新性、风险不确定性等特点。
部门经理处于中间层,是个承上启下的角色,对上需要向高层管理人员汇报,争取公司的资源和高管的支持,对下需要管理好部门团队。部门经理不仅是一个执行者,也是一个规划者,需要根据公司的整体战略目标,拆分制定自己部门的目标与规划;能准确的传达并带领同事完成部门目标;要关注部门内人员选用育留的问题,保证部门人员人才梯队的形成,保证部门能有持续高效、高质的输出;能与其他部门配合协作,最终实现公司的整体目标。
成为部门负责人需要从关注事到同时关注人的转变,人包含上级、平级、下级,要学习与他们的沟通与协作;要有大局观,不仅关注自己部门的目标也要关注公司的战略目标,让自己的部门与公司的其他部门形成合力。
刚做部门经理的时候,我的管理更多时候是用指令性的方式在安排、监督大家干活,管理思维停留在“控制”上。随着部门内90后成员的进入,发现这种管理方式出现了问题,后来调整成以激励为主的管理方式,给团队成员目标和资源,为他们排除障碍,引导他们自主工作、自我管理,取得了很好的效果。
随着 “VUCA时代”的到来,需求变化越来越快,选择权已由生产者转移到消费者一侧。为了能满足市场的需求,满足用户的期望,我们研发部门也必须以用户为中心,拥抱变化。2016年,我开始学习和应用敏捷开发,并尝试在研发中心推广。
将近两年的敏捷学习与推广,使我收获颇丰。敏捷的应用,使我的团队能持续有效地交付价值。我也养成了读书的习惯,实现了管理思想的转变,开阔了眼界,思维得到了提升,同时还结交了很多好朋友。
运用敏捷贵在掌握敏捷核心思想和它的12项原则。工作中是否用到了敏捷、是否在敏捷地工作,只要跟这12项原则对照一下,就可以区别出来。现在敏捷的知识铺天盖地,刚接触的朋友可能会有些发蒙,不知从何下手。
其实,敏捷的内容离不开道、法、术、器四层。学习和应用的时候还是要分清楚,属于哪一层,不能盲目地学习和生搬硬套。如果大家对敏捷核心理解到位,完全可以因地制宜地裁剪敏捷开发的方法。另外,敏捷贵在持续改进,没有最敏捷只有更敏捷。
2017年公司研发体系拆分分成了中台研发与应用研发,我所在的部门应用而生。公司的业务分多条业务线,各业务线开始有自己的研发团队,这些研发团队更接近于用户和市场,他们以客户为中心,负责持续快速响应前端市场与客户的需求;中台研发负责为各业务线研发提供公共的服务或中间件、一致的易用的应用技术、数据库技术及基础设施重用能力;软件研发涉及到产品、开发、测试、运维、安全等多团队的协作,以及相互协作流程、工作标准规范,采用的工具、方式方法等。我所在的管理部以提升整体研发效能为目标,对研发相关的内容进行整合管理并形成管理体系,为应用研发提供标准、质量管控以及持续交付能力,给各业务研发团队赋能。
刚到这个部门的时候,每天战战兢兢,生怕做不好辜负了上级领导的期望。
首先说说组织级项目管理体系的搭建。对一个项目的管理和对公司全部项目的管理,所需的知识和技能有很大差别。为此我查阅了很多项目管理的资料,同时参加了一些线上和线下的项目管理培训课程。整个学习的过程紧张而又兴奋,因为我发现前辈们对项目管理的知识体系和方法论已经做了非常好的总结和提炼,真是相知恨晚。我所要努力的是如何将这些内容在公司因地制宜的落地实施。
项目管理体系搭建包含项目管理标准、规范流程的制定,项目执行过程的跟踪管理,项目的收益跟踪,项目的绩效评价,组织过程资产的管理,项目管理信息系统的建立、项目经理的培养等,目的是提升公司整体的项目管理水平。随着敏捷开发的推广,敏捷文化已经无处不在,如何将项目管理与敏捷管理“无缝结合”。这些内容在公司是一个从无到有的过程,我很庆幸当时的工作正好可以针对这些内容进行学习、探索与实践。同时,也可以把这些好的经验带给新的项目经理们,让他们有更快的成长和进步。
我们的数字化管理源于研发团队绩效的测评,通过对研发数据的不断收集与分析,发现我们可以将数据分析结果应用在项目管理、内控管理、研发人才培养上,将经验管理与数字化管理结合。数字化管理可以量化管理研发团队和研发个人的工作过程、工作成果;可以精准分析效率、质量、成本、收益等内容,发现研发行为与工作成果之间的关系以及其中存在的问题,然后根据分析结果来制定改进管理方案,促进资源配置优化、改善工作的方法工具、改善管理流程,从而更好的提升研发效能满足市场需求。
数字化管理应用到研发管理上,是一个持续改进的过程。它是在实践中不断摸索、改进、完善,不是一撮而就的。首先,数据采集处理到一定量级才能对研发管理起到真正作用。数据的质量也相当关键,如何采集足够的保质保量的数据并且不会给研发团队带来负担;如何培养数据思维;数据有了如何分析,如何依据分析结果去决策以及数据的安全问题等等都是我们在实施过程中要重点考虑的内容。这些内容大家都可以在我的新书《研发精益数字化管理》中看到。
对于研发精益数字化管理,我们会一直在改进的路上摸索前行,也欢迎大家参与进来。