一个公司的技术总监需要做些什么?
技术总监,最重要的并不是技术能力,而是技术管理力。
能否做出好的技术选型节约团队研发时间?能否管理好老板不合理的预期?能否整合公司其他部门资源为本部门所用?能否把本部门的价值输出最大化?能否给部门产品技术赋能,形成对竞争对手的技术竞争优势?
这些才是管理几十人上百人的技术总监需要重点思考的事情。真正硬核的技术大牛,可能更适合单干或者带一只10人以内的团队,因为他们的价值更多在于技术攻坚而非技术领导力。
大到选JAVA还是选.NET,小到上Jenkins做持续集成、埋点收集数据提升用户体验、消息总线解耦系统间依赖关系,日志链路追踪调用关系。
技术是要为业务服务的,不要为了做技术而做技术,只有对产品有帮助的技术才考虑上,反过来产品和业务是不会在乎成本的,CTO就要仔细权衡成本,投入产出不成比例的事儿要谨慎。
技术总监必须具备一定的战略决策能力。战略决策能力不是有很多天才Idea,每个Idea都可以颠覆世界。比决定做什么更重要的是你能决定不做什么。
只有真正理解了用户、业务、商业、产品,才能做出最重要的关键决策。进而才能具备战略决策能力。技术团队是成本团队,资源用在哪,资源投入的多少,都需要决策。
既然是技术总监,自然需要跨部门协调资源、推进合作、判断需求,有时候可能还要做跨公司的沟通。这个过程,真正理解其他部门/公司的需求非常重要。
有时候,技术人和其他部门的同事会有沟通困难的感觉,甚至相互都觉得对方不能理解自己,其实往往是沟通语言上出了问题。
2024-09-30 广告
真正的主程(技术总监)则应该投身于尽量多的技术工作中。而最重要的工作则是开发——生产代码和文档。
- 技术能力的提升,主要依靠经验积累,建立企业内部的知识库(如RCA案例库、最佳实践库)与传承体系(促进交流与协作,借助研发活力促进技术能力提升,这个技术能力包括部署、维护、私有云等自动化运维能力);
- 生产效率(而不仅仅是开发效率)的提升,主要依靠科学的数据分析,建立或引进一系列的工具,建立合理的流程与制度(通过提升研发人员、质量保障人员、运维人员能力,激发他们不断改进效率,也很重要);
- 研发活力的提升,促进研发人员积极的交流与分享 (给研发人员松绑,让他们有足够的空余时间,也很重要);
培训的工作应该占用30%左右的工作时间。培训是稳定团队人员最重要的手段。也是提高团队开发效率最有效的手段。工具、过程、制度、奖惩,这些都代替不了程序员一行行的去写代码,最直接的方法是让他们做的更快更好,这些需要经验和知识的积累。
如果团队碰到问题,没有新的方法和技术去解决,是不会提高开发效率的。就好像你用牛来耕地,不管用什么管理方法,都不会赶上机械化的速度。而主程承担着不断突破自己的技术上限,介绍和推动团队使用更新的技术来解决问题的责任。抱残守缺,思想僵化,最后会被团队成员所抛弃,而且也会让团队的效能落后于业界,最后直接影响产品的生死。每年学一门新语言,这个说法可能有点激进,但是这也是作为程序员应该有的激情。
这些都是技术总监需要做的事。