软件领域的管理者必须写出优秀的软件,否则就像一个不会骑马的骑兵队长一样!”
首先我很认同,虽然这真的要求相当高!
当好一个好的开发人员已经不容易了,还要做好一个好的管理者,而且两者之间并没有太多技能的重叠!
技术管理者需要什么技能?
基本可以概括为三类:管人、管项目、管技术。
管人包括了帮助团队成长、协调大家一起工作、激励员工、提升优秀的员工、清除不合格的员工。
管项目包括跨团队协作,协助项目经理甚至直接领导项目管理工作,协助产品经理做好产品设计工作,解决项目中的障碍,抵制不合理的项目要求,保障项目的暗示交付。
管技术包括和团队一起做出合适的项目决策,做好技术选型,及时识别和偿还技术债务,帮助技术人员在技术上成长。
为什么管理人员要技术出色?
1. 只有管理者本身有良好的技术基础,你才能帮助团队做出正确的技术决策!
一个不懂技术的经理去领导一个技术团队,很容易就被技术人员质疑不懂技术瞎指挥。
想要依赖其他技术人员帮助做技术决策也很难:一个是别人很难和你掌握的信息同步,在信息不完全的情况下,别人其实很难帮助做出技术决策;另外即使别人能替你做出技术决策,你一样要甄别决策的优劣和对错。
2. 懂得如何去激励技术人员。
技术人员是很难管的一群人,他们有自己的想法和坚持,他们对技术有理想和追求。
要激励他们,得先了解他们,了解他们对技术的喜好,但也不能完全由着他们的喜好,还要将他们的喜好和公司业务的发展结合起来。
具体的有挑战的任务,不能太容易,不能太难够不着,在完成的过程中还得要帮一把。
如果自身技术优秀,这些尺度就很容易把握好。
3. 能用技术语言去和开发人员沟通
如果不懂技术,或者只懂皮毛,只知道几个技术名词,在和技术人员沟通的时候会比较吃力,别人要费力的给你解释各种技术背景,甚至懒得给你细说。
4. 管理者天然就是role model
如果自己技术优秀,那么技术人员就会服你,会以你为榜样,管理起来就省心很多。
怎么从优秀技术向优秀管理者发展?
如果你已经成为了一个优秀的技术人员,想成为一个优秀的管理者,那么以下事情可以准备起来:
1. 去帮助其他人成长,帮助那些新手,那些水平不如你的人
2. 去积累软件工程、项目管理知识和项目管理经验,项目管理是技术管理很重要的一环
3. 去做好或者协助做好技术决策,去了解如何正确的做好技术决策,懂取舍,决策前分析清楚其背后的风险、收益和成本。
4. 提升自己的沟通能力,处理好工作中的冲突,让别人理解你,信任你,能说服别人
5. 向你身边的人学习,观察他们是怎么做的,哪些做得好,哪些做得不好。
等把这些事情做好,剩下的就水到渠成了,机会总是给有准备的人。
Prev Chapter:博文:[译] 手把手教你 Go 程序的国际化和本土化
Next Chapter:技术博客《二维码原理》