我是一名新手项目经理,转项目管理岗1年半。在做管理之前,我是一名python开发程序员。也就是说,我是最常见的技术转管理了。
最开始,我极度不适应这个岗位。很累,但是不见成效。经过一年多的摸索,我终于在工作中总结出了一些心得,一些套路。所以我想给技术转管理的同学们讲一讲:
我做了什么,来拯救自己。
个人背景和公司背景
1.目前为止工作4年半,也就是说,我做了3年开发,1年半管理;
2.我是一名野生程序员(就是非计算机专业毕业);
3.我写过android、ios、web页面、java后端、python后端等等,看起来像传说中的全栈程序员,但其实心知肚明,我就是那种啥都会但啥也不行的程序员;
4.公司此前做产品,后来在产品的基础上转型外包扩大规模;
5.公司转型的基础上,我也转型成了管理;
6.我司项目经理是一个专门的职位,负责项目管理、技术架构、客户对接。总之项目的一切相关问题,包括技术问题,都由项目经理负责。
我做了什么
事必躬亲,会毁了团队也会毁了自己。
这恐怕是所有从技术转管理的人,都会犯的通病。我刚开始带团队的时候,核心代码都要自己写。然后看同事进度的时候总是嫌这个慢,那个不行的。看不下去了索性自己上手吭哧吭哧写好,弄得自己非常疲惫。
通常技术能力强的人,更有机会转型管理岗。所以在带团队的过程中,总是情不自禁的亲自动手完成别人应该做的事情。最终结果就是总会替代同事做他们自己本应该做的事情。
但这个行为对管理者来说,只会让管理者越来越疲惫。而对整个团队来说,更是温水煮青蛙,一步一步把团队带进深渊。管理者负担太多工作,导致团队长期无法成长。轻则导致管理者累崩;重则导致项目崩塌、团队分崩离析。
我应该怎么办:
实际上,影响别人去做好一件事,比亲自去做要难的多。而我处理这个问题的方式:
1.忍住自己亲自动手的心理;
2.复杂任务拆解细化,分派任务时明确任务目标和验收标准;
3.分派任务时给予同事鼓励,对他们保持充分信任;
4.有难度的任务,提供一定的辅助或者培训。
多想、多说、多做
我开始带团队的时候,一直忙于处理各种各样的项目问题,写代码、沟通需求、进度汇报、现场演示。大部分时间都埋头于项目本身,以为只要把项目做好,按时交付就行。做的太多,导致思考的时间少了,对团队同事的关注也就少了。
而一个团队领导者,多做是应该的,更重要的是多思考,多说。
思考什么:
1.项目干系人是否清楚,干系人不清楚会导致项目管理混乱,出的东西不满足要求;
2.需求是否合理,需求是否可以优化、技术架构是否满足需求;
3.功能是否拆解到位,任务分派是否可合理;
4.若尝试新技术,是否有把握在出问题的时候力挽狂澜;
5.团队成员状态如何,要如何激励他们;
6.项目流程是否合理,如何改进;
7.项目成本如何控制,时间节点如何把握,质量如何保证;
以上都是我目前每个项目都会思考的问题。项目管理者一定要告诫自己:不要用战术上的勤奋掩盖战略上的懒惰。
说什么:
1.需求不清楚要问;
2.需求可以优化要说,不要闷声发大财,坑的是自己;
3.有困难处理不了要及时汇报给领导,悉知客户;
4.团队成员有问题要给予正确指导,而不是放任自由;
5.进度情况、项目情况要积极和客户保持沟通。
不仅是监督,更要是指引
“那个功能写完了吗?”;“这个功能怎么还没做好”;“你这个东西什么时候能够写完”。
以上是我日常工作中最常做的事情,即便到了目前,我依然在做这些事。监督催促同事干活!每天像个监工一样,漫步在同事周围,监督他们的进度,在他们耳边逼逼叨。
但我认为,催促同事干活的不应该是项目经理,而是项目流程,是规则。每个人明确自己的角色,各司其职,由规则约束着大家前行。而不是简单靠项目经理赶着大家往前走。
但我并没有做好这个工作,目前还是处于制定计划、监督执行的死循环中。对于规则、流程只是有个模糊的想法,还不成型,也未经试验。暂不与大家分享。
救火能力固然重要,但更要防范于未然
我由技术转管理的初期,最擅长的事情就是技术。所以一直在项目中充当救火队员的角色。
有突发情况?我自己来;没有人能攻克技术难点?那我自己来;开发了很久,发现需求理解错误?咔咔咔自己一顿改;总之就是这有问题,咔咔咔自己一顿弄,那有问题,嗒嗒嗒自己一顿搞。总用自己的技术能力挽救项目中的各种突发情况。
而作为一个项目管理者,救火能力固然重要,要在关键时刻能够站出来力挽狂澜。但更重要的,我想是如何去避免突发情况吧。而要避免突发情况,就要思考如何做好风险管理。提早做好准备,把可能出现的未知风险扼杀在襁褓中。
在it项目管理中,我认为风险主要存在于以下几点,应思考准备以便规避风险:
1.需求变更。开发中需求变更是难免的,但如何控制需求变更,如何管理需求变更是我们着重要考虑的问题。scalpel方法,大家可以了解一下;
2.项目干系人不清楚,导致项目需求分歧;
3.技术难点预估不足。总是会存在开发过程中才发某项功能无法实现或者实现成本过高,这主要是由于前期对需求理解不足,对自我或团队太自信造成的;
4.计划制定问题。开发计划制定有问题,可能由于错误的估计了团队的能力,项目的难度造成的。计划风险通常是由项目经理自己造成,需自我强化、学习、思考来避免此问题;
5.组织成员问题。开发成员不足、人员离职、其它项目需紧急支援人手、团队沟通不畅都可能引起此问题;
6.流程风险。过于流程化,导致流程工作占用太多开发时间,流程和灵活是一对冲突的概念。如何解决项目管理中流程化和灵活度的问题,我认为是项目经理较重要的能力之一;
7.性能问题。开发过程中,最怕的是功能做完了,最后发现性能不行。导致前期开发工作全白费。所以在需求阶段,软件的用户量,数据量都是要考虑在内的。在开发之初,就要在程序设计过程中将性能问题考虑进去。
保持内心强大
项目管理是一个磨人的工作。虽然外面说要做风险管理,但突发情况避免不了。一个合格的项目管理者,要有泰山崩于前而色不变的内心。
需求变了不要紧、计划变了不要紧、成员情况发生变化不要紧。毕竟我们都知道世界上唯一不变的就是变化,尽可能的给自己准备好plan b。
背黑锅要上,邀功也要上
我相信各位做开发的时候,最讨厌的就是那种黑锅你背,有功他领的leader。既然如此,希望我们也不要变成这样的人。
项目经理嘛,统管这个项目的一切。项目出了问题,不管因为什么原因,都一定是项目经理的责任。你的同事可能在项目里表现不佳,你的客户可能经常变更需求。不管多少理由,都不是你甩锅的理由。有锅一定要自己扛着,所以,背黑锅要上。
做的好,也要说出来。超出客户预期的项目闪光点,要告诉客户团队的优秀。项目完成的不错,要告诉老板团队的优秀。让客户让老板知道你们团队做的好,下一次他们才会给你们更充分的信任。项目成员表现优秀的地方,不光要表扬,也要和上级说。你是和你团队成员接触最紧密的人,他们的有点别人不知道,但你知道。所以他们优秀的地方,要宣扬,要让别的部门知道,要让上级知道。所以邀功也要上。
在帮派里,不能为兄弟们挡刀并引领兄弟们前进的老大是不值得追随的,弟兄们在你手下做事受尽委屈,争不了一口气,那这个老大也做不长。
技术出身的管理者中,我相信背黑锅要上是大家都能做到的。但技术人员不善言辞,总是闷头干活,不会表达。所以要适当学会邀功,为团队邀功。希望大家都能学会邀功也要上。
不要抛弃技术,它可能是你的救命良药
做项目管理以后,尤其是像我现在这种一个人带多个项目的情况。管理工作会占用每天极多的时间。这是工作本身需要你做的,无可厚非。我想说的是,即便如此,也要保证自己对技术的学习。
了解新技术也好,写写开源项目也好,总之要保持对技术的持续学习。他总能在你需要的时候帮到你。
学如逆水行舟,不进则退,与大家共勉。
总结
总体而言,我认为一个新手项目经理,要学会以下事情:
1.要学会带领团队成长,不要事必躬亲
2.要多进行思考
3.要学会风险管理
4.要保持内心的强大
5.要学会邀功
以上,就是我想和大家分享的内容,其中很多点,我自己做的也不是很好,依然需要自我练习和努力。希望各位技术转管理的同学,都能尽快适应自己的工作。