你好,我是猿java
也许你会说:我就一个普通程序员,既不做管理,也不带团队,专心做好技术就可以了。因此,作为程序员,是否需要具备管理能力?今天就来聊一聊。
小故事
我曾经在一家创业公司待过,最开始团队只有 3个人:老板(产品),后端(我),Android。
那个时候,为了能快速地把 APP做出来,我一边负责后端,一边和老板讨论产品,同时还要帮写 Android 代码,顺带干干测试,产品上线后,还要负责服务器的运维工作。那个时候,为了能快速地把 APP做出来,我一边负责后端,一边和老板讨论产品,同时还要帮写 Android 代码,顺带干干测试,产品上线后,还要负责服务器的运维工作。
那个时候的我,简直就是保姆级别的程序员,哪些需要就往哪里跑。
后来公司慢慢壮大成 100多号人,技术团队也增加到 25人,我就无形中成了技术负责人,除了负责架构,解决技术难点,还需要分配工作,协调工作,规划后期发展......
所以,很多时候,管理可能不是你的主观意愿,它或许就是某段成长过程的一个无形产物。
普通程序员需要管理能力吗?
回到文章标题的问题:程序员需要具备管理能力吗?
个人意见:需要,而且很需要。下面给出几个理由:
1. 岗位需求
在招聘网站上,我们可以看到很多好一点的非管理岗位都会直接或者间接地要求候选人具备一定的管理能力,为什么?因为一来体现该岗位是核心岗位,需要候选人具备管理能力,方便多人协作,二来该岗位可能是管理储备岗位。
2. 个人上升空间
在大厂,甚至很多的中小型公司,高 P岗位已经不再是仅仅考核个人的技术能力,它要求更多的是管理能力和其它的软实力。所以,只要想在这个行业继续干下去,想要有更高的成长空间,管理能力是必备的一项技能。
3. 35岁危机
在僧多粥少的时代,35岁危机越来越严重,如何让自己职业生涯的生命线更长,管理岗应该是国内的大趋势,顺势而为或许是比较明智的选择。
尽管,35岁你依然可以在一线写代码,但是35岁还依然可以给你写代码的岗位又有多少?所以,如果有管理能力的夹持,能够大大减小 35岁危机,那为何不去尝试呢?
管理心得
对于技术管理,我自己也摸索了几年,总结了 4点个人心得:
1. 向上管理和向下管理
很多大厂里面有个无形的价值观:上下同欲。也就是说指上级和下级、领导和被领导等有着相同的愿望、志向或欲望,大家的心愿是一致的。
向上管理
a. 需要和领导建立信任和谐的关系
b. 和领导拉齐目标
c. 及时汇报,做好进度和风险同步
d. 学会成就领导
向下管理
a. 清晰组员的诉求
b. 清晰组员的能力模型
c. 为组员执行合理的成长计划
d. 成就组员
2. 事情不能掉地上
"为过程喝彩,为结果买单" 这是职场铁的法则,因此,每个事情都需要有一个技术能扛得住的人去做 owner,他需要把控进度,评估风险,需要保证交付质量,为项目结果买单,这样事情最终才不会一地鸡毛。
3. T度分配任务
团队组员的工作能力和工作年限可能存在差异,因此,需要 T度分配任务,让高 P的人做下一个级别的事情,让低 P的人加强现在的技术深度。让整个团队的技术能力是一个积极向上的发展。
4. 对外沟通
做过多团队合作项目的小伙伴应该清楚:部门合作是最大的内耗。对于同一个项目,最终分到每个部门任务的优先级可能并不一样,表现出来的积极性也不一样。
因此,如果项目涉及多团队合作,需要有一个能够和外部沟通的角色,扮演整个需求的推进者。
如何具备管理能力?
因为每个人的性格不一样,所以具备的管理能力也会存在差异化,这里给出我自己的几个学习方式:
1. 工作中学习
工作中肯定不缺领导,所以,你需要善于观察:口碑好的领导有哪些优秀的做法,口碑差的领导哪些行为是你需要避坑的。
2. 书本学习
市面上,关于技术管理的书籍比较多,但是我觉得方法都有异曲同工之妙,在本文中间的部分我也推荐过《知行,技术人的管理之路》,你可以顺着这个类型,找出更多的资料,最重要的是整理出适合自己的方法,最终形成方法论。
3. 将理论付诸实践
光有理论不付诸实践,只能是纸上谈兵,因此:
如果你已经是管理者,可以尝试把更多更好的方式慢慢运用在日常管理中,通过实践去证实它们。
如果你还不是管理者,可以在平时的工作中多承担一些和管理相关的工作,同时多和领导沟通,从他们那里得到反馈,及时纠正不足点。
很喜欢某人的一句话:职场的路应该越走越宽。今天也把这句话送给正在阅读的你,祝你的职场路越走越宽。
学习交流
文章总结不易,看到这里的小伙伴,感谢帮忙点赞,在读,或者转发给更多的好友,我们将为你呈现更多的干货, 欢迎关注公众号:猿java