原|2024-09-28 08:51:08|浏览:86
因为大部分技术牛人根本不屑去做管理,他们认为管理那些琐事浪费时间而没有意义,管理职位是一个无法体现他们价值的职位,他们只想在技术上钻得更深更广。
实际上,技术管理并不是一个独立的职位,技术管理融入在技术研发的每一个阶段,例如,任何团队协作都涉及到任务分工,任何技术团队都涉及到代码规范、合并和管理,这些点滴,都需要有由技术人员而不是项目经理来管理。所以,即时不愿意做管理的技术人员,发展到一定阶段,多多少少都会涉及到管理的相关内容。
一个技术人员的职业发展过程大致是这样的:
实习期
还在学校学习,之前从未涉及过真实工程或项目,实习期间通过阅读项目代码,修复 bug 等开始积累经验,每天都会觉得自己收获很大,时间不够;
应届毕业
经验不多,参考项目其他模块代码后,能独立完成小功能需求,能胜任小模块开发,也能维护项目代;
工作 2-5年
能胜任任何功能模块开发,并开始做模块设计和系统设计,设计的东西自己能用,做得好也许还能给别人;
工作 5年 以上
负责整个项目的架构设计,实现项目的基础和核心模块。
前三个阶段的思维方式都是考虑自己怎么做,怎么实现功能,怎么完成任务。到第四个阶段,就会开始涉及到管理相关的工作,因为,首先,你的东西再也不是你一个人用的,你需要跟别人讲解和沟通;其次,你的架构和核心模块出来以后,你需要把剩下的任务合理分配给合适的成员来开发。
-----------
我认为,从技术岗位转型为管理岗位,更多的不是能力的变化,而是思维方式和心态的改变。技术管理者是管理者的一类,管理者三大核心职责如下:
确立团队目标
不论项目大小,一定要有目标,有目标才能让所有人明确方向,知道每天工作的意义在哪儿,工作是不是朝着团队的目标在一步步靠近。 纯技术人员的执行者思维应该切换为宏观思维,因为现在个人的成功已经不叫成功,团队成功才是成功,如何让团队产出高的绩效才是你应该思考的问题。
离达成这个目标我们还缺哪些资源
这点主要涉及到统筹规划能力。在项目初期,你就需要非常清楚明确地知道目前团队的能力以及你能调配的资源,这样才能保证后期不会因为资源不足导致目标无法达成。
我们如何朝着目标迈进
这一点穿插在整个过程中,是最重要,也是我这两年在聚会玩的团队管理中看到和亲身体会最深的,它囊括了技术管理的方方面面。
----------
如果某件事一个人做需要 m 个工时来完成,那么 n(n>1)个人来做,理论所需工时是 m/n,但是实际的时间一定比这个多,结果是(m/n)*α(α>1),α就是协作成本。技术管理者要做的,就是尽量降低协作成本,包括以下方面:
任务分配
之前你一个人能把事情做得很好,现在怎么保证团队一群人把它做好?任务分配包括如何把任务合理地分配给适合的人,能达到最好的结果,即人的价值得以体现,产出质量也高。这就要求管理者对任务的了解要全面深入,对团队每个人的能力了解也要准确。
全局观
技术人员工作时都需要专注,反过来,作为技术管理人员,要防止过度专注。多去了解项目各方面的进展和存在的问题, 对项目和团队的任何细节了如指掌,出现任何大大小小的问题都能迅速定位和分析解决,不会因为专注于技术细节而失去对全局控制。
沟通能力
以前每天和机器沟通,现在切换为和人沟通。以前的桀骜不驯和不屑是因为技术能力强,现在应该切换为更耐心,更注意语气和用词的沟通。另外,更多的去主动发现问题,然后通过沟通技巧来解决问题。