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