野生程序员转型管理的经验分享(干货!)

转自;http://www.elecfans.com/d/796391.html

前言

我是一名新手项目经理,转项目管理岗1年半。在做管理之前,我是一名开发。也就是说,我是最常见的技术转管理了。
最开始,我极度不适应这个岗位。很累,但是不见成效。经过一年多的摸索,我终于在工作中总结出了一些心得,一些套路。所以我想给技术转管理的同学们讲一讲我做了什么,来拯救自己

个人背景和公司背景

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.要学会邀功

以上,就是我想和大家分享的内容,其中很多点,我自己做的也不是很好,依然需要自我练习和努力。希望各位技术转管理的同学,都能尽快适应自己的工作。

读者福利;

加群免费领取安卓进阶学习视频,源码,面试资料,群内有大牛一起交流讨论技术;【964557053】。 (包括java基础与原理,自定义控件、NDK、架构设计、混合式开发(Flutter,Weex)、性能优化、完整商业项目开发等)

《野生程序员转型管理的经验分享(干货!)》 腾讯T3 Android高级技术视频教程.png

    原文作者:Android高级架构
    原文地址: https://www.jianshu.com/p/686accdf6d0d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞