一般复杂问题是没有标准统一答案的。毕竟每个人情况不一样。
要回答这个问题,我们需要先达成一个共识。什么样岗位是管理岗?我理解的管理岗是手下有人,且有部分工作时间是放在人和项目上,而不是具体业务实现的岗位。
小公司的技术能晋升的岗位并不多,常见的也就三级:小组长/研发Leader—— 技术总监—— CTO。有些公司技术总监就是CTO。
小组长/研发Leader:一般管理3-5个人。主要工作:
任务管理:评估工作量、定位开发流程、跟踪项目进度。 质量管理:代码重构计划、代码复查、技术难点调研、制定研发方案。 团队技术能力提升:招聘面试、新人指导、技术分享、项目复盘等。
小组长的大部分时间其实还是在具体实现上,小部分时间会放在管理上。而且这些管理工作大部分也是和实际的工作有关。原来自己给自己拆解任务定工作量,现在帮助下面组员拆解,原来自己做实现,现在需要学会分配一部分任务交给组员做。
技术总监:一般管理人数在20+。主要工作:
组建团队:招聘面试,培养团队小组长。 设计组织架构:根据产品规划岗位需求。 设计平台架构:根据产品选择技术栈,解决软件系统复杂度带来的问题。 项目管理:协调项目资源,提高项目效率,保证项目按时上线。 组织文化:塑造企业文化、激活团队活力、打造学习型组织氛围。
从中可以看出,技术总监具体的编码实现功能相对会少很多。与人和项目打交道的时间会更多。我原来公司就有2个技术总监,一个偏技术,一个偏管理。偏管理的慢慢就不写代码了。偏技术的既做架构也做关键代码的编码。
CTO:主要工作跟技术总监差不多。看公司大小,除了技术总监的工作,还需要参与商业决策,制定公司战略。向上争取资源,做好资源分配和绩效考核。
另外,创业公司的CTO拿的薪资可能比技术总监低,但如果公司做成功,可以获得不菲的未来收益。
从岗位职责上可以看出,小组长的管理难度并不算大,对大部分人来说,如果有晋升机会一定要去尝试。
一、喜欢和机器打交道,不喜欢和人打交道。
二、更喜欢自己去实现功能业务,享受实现过程。
世界上有没有那种被管理工作耽误的技术大牛?有,但很少很少。毕竟,个人能力有限,想做成大事就得与人沟通合作。懂点管理是不是更容易做成事?而且相比于专研技术,转管理更容易。我建议每个程序员都应该到小组长的位置上先尝试一下。如果你确实发现自己不适合。那果断专研技术,做一个某领域里的技术大牛也可。只要你具备别人创造不了的价值,薪资是绝不会低的。