技术总监是CTO吗
经常有初创企业的老板来找我交流,他们常常会拜托我一件事:帮我找一个首席技术官。
我听得多了,便想将此写下,以便更深入地探讨你们真正需要的究竟是什么。
一、初创企业的技术需求
对于刚刚起步的公司,若公司内部没有专职的产品经理和项目经理,那么作为创始人,你既是产品经理又是项目经理。若你对现有的开发人员能力有所疑虑,那么你需要的可能只是一个高级程序员。
他需要定义功能、制定计划并推进管理,同时带领一至两名助手完成你规划的功能实现。他将是团队中的主力,面对技术难题也会亲自攻克解决。高级程序员的职责十分明确:
1. 负责核心复杂功能的实现方案设计及编码工作。
2. 负责解决疑难杂症的BUG分析、诊断和攻关。
二、团队领导者的角色
当公司逐渐壮大,拥有一个研发团队,并主推一套产品时,若研发团队人数少于15人,那么你需要的是一位研发领导者。
你已经有了1-2名高级程序员,他们能够解决核心难题和研发核心功能。这时你需要研发领导者做的是:
1. 团队任务管理:评估工作量、分配开发任务。
2. 提升团队生产质量:进行代码审核、识别并协调解决开发风险。
3. 提高团队生产力:研发并推广代码模板、总结并推广最佳实践规范、开发并推广自动化研发生产工具。
4. 团队能力提升:负责面试、新人指导以及领导复盘总结改进等工作。
三、技术总监的职责
当你的研发团队成员超过20人,并拥有多条主打产品线时,你可能需要多位研发领导者,此时技术总监的角色便显得尤为重要。
技术总监的主要职责是:
1. 组建平台研发部门,搭建公共技术平台以支持各产品线的开发。
2. 通过技术平台和高层职权,有效管理和协调各个产品线组。
四、首席架构师的出现
随着技术总监的到位,技术平台得以稳定运行。当你的团队规模进一步扩大,各产品线的高级程序员在维持核心功能开发进度和代码质量的你也意识到了架构规划的重要性。这时,首席架构师的加入就显得尤为重要。
首席架构师负责架构规划、设计及日常维护工作。当研发团队扩大到百人以上时,需要有人专注于架构工作,以促进各模块之间的协同工作。应从技术总监和研发领导者中剥离出部分职责,专门设立架构师岗位。而首席架构师则负责在技术平台和业务产品线之间搭建桥梁,确保技术平台与业务产品线的架构相互促进和支持。
架构师的职责包括:
1. 架构分析:识别非功能性需求,如性能、可扩展性、解耦/集成等,并进行技术选型和风险识别。
2. 架构设计与实现:设计非功能性模块的架构、接口及代码实现。
3. 业务架构设计与实现:负责跨系统接口的识别、实现及维护,以及公共代码类库的分析、实现及维护。
4. 重构工作:持续进行代码,发现并解决代码中的问题,确保代码质量和架构的合理性。
五、CTO的角色与职责
当你成功建立起一支强大的架构师团队后,随着公司的进一步发展壮大,你才会真正需要一位意义上的CTO。在你对CTO的期望与他的能力模型相匹配,他也能很好地满足你的需求。
CTO是软件产品和技术统一管理的关键人物。他需要在商业、产品、技术、管理和团队之间找到平衡点。CTO的职责包括:
1. 业绩达成:了解客户需求,捕捉商业机会,规划技术产品以促进业务增长。
2. 前沿技术与平台发展:领导专门的团队进行技术应用创新探索和前沿技术预研工作,并确保创新成果能够顺利融入商业平台并被广泛应用。
3. 研发过程管理:从全局角度优化业务流程以支持业务增长。
4. 与人才建设:传承公司文化和价值观;建立专业的研发梯队和管理梯队;激发研发人员的创新精神和潜力。
在公司的不同发展阶段,你需要的技术人才和他们的职责也会有所不同。了解公司的需求并找到合适的人才来满足这些需求是至关重要的。