当前位置: 首页 > 科技观察

为什么CTO、技术总监、架构师不写代码,还那么牛?

时间:2023-03-20 20:12:33 科技观察

经常被问到这样的问题:CTO、技术总监、架构师很少写具体的代码。为什么他们仍然看起来很棒并获得如此高的薪水?其实这个问题本身就是错误的。就好像在问:为什么不会演戏的导演和制片人,还能指导演员,好像他们比演员还好?其实不难理解,导演和制片人的核心能力不是演技,又怎么能和演员相提并论呢?回答上一个问题,逻辑是一样的。将CTO、技术总监、架构师的能力与程序员写代码的能力进行比较是错误的。因为他们的核心竞争力不同。CTO、技术总监、架构师的核心能力是技术判断。简单来说,就是判断一个项目、一个系统架构或者某个技术方向是否符合企业的现状,是否会为企业的未来产生价值。程序员的核心能力是写代码的能力。就是做具体的代码实现。因此,CTO/技术总监/架构师与程序员的核心能力完全不同,无法直接比较。通常我们说CTO、技术总监、架构师牛逼,指的是他们的技术判断牛逼,而不是写代码的能力牛逼。相反,他们写代码的能力可能比不上一个高级程序员。但是,他们做出的技术判断给公司带来了非常高的价值。比如阿里云创始人王健博士,在所有人都反对的时候,坚持认为云计算是未来。他帮助阿里提前布局云计算,为阿里成长为万亿商业帝国立下汗马功劳。这就是技术判断给企业带来的巨大价值。之所以大家很容易把这些角色和职责搞混,其中一个最重要的原因就是人们常常把CTO、架构师、技术经理这些头衔给技术负责人乱加分。这种现象在国内尤为严重。比如创业公司的技术总监,其实就是技术经理。老板为了显得高大上,硬要给他一个CTO的头衔。这种情况很常见,尤其是在全民创业的年代,到处都是CTO。为了明确技术总监的职责,我们以一家电商公司的成长为例,来说明在初创、发展、成熟的不同阶段需要什么样的技术总监,以及他们在其中做了哪些工作。细节。什么。第一阶段,高级程序员实现复杂的功能,解决技术问题。初创公司通常只有几个程序员,连产品经理、项目经理都没有。说,只是快速原型。如果你对现阶段的开发能力不满意,那么你可能需要的只是一个能够解决一般技术问题、实现复杂功能、思路清晰、工作迅速的高级开发人员。不要去大厂找技术总监。你家庙太小了,放不起这么大的神。资深读者都知道,老K有过一段创业经历。那时,他跟着我的老领导去创业。我是名义上的CTO,带领着一个7、8人的团队。我还同时领导了两个项目。我贡献了超过30%的代码。事实上,我当时只是一名高级程序员。总结起来,高级程序员的主要职责是:1、实现复杂功能,编写核心代码;2、处理线上bug,解决技术问题。第二阶段,提升技术经理的交付效率和素质。公司业务发展的时候,需要一个比较完善的技术团队。有专职产品经理、测试人员等,团队规模15人左右,专注于一条产品线。高级开发人员可以处理复杂的功能和技术问题,但如果要解决开发团队效率、技术人员能力提升、代码质量和编码标准等问题,就需要技术经理。技术经理通常会编写少量代码,并在技术管理和项目团队方面做更多的工作。这是许多初创公司的A轮前融资。技术经理全面负责技术团队,产品经理满足业务需求,做产品规划,分析竞品,而不是照搬任何APP。归纳起来,技术经理的职责是:1.开发任务的分配。评估和分配开发工作量以最大限度地利用资源;2.提高代码质量。CodeReview、编码规范、在线bug分析;3.项目管理。确保项目按时交付,建立管理机制;4.团队管理。团队建设、人才招聘、人才培养。第三阶段,技术总监,技术策划,多条产品线,项目组管理。当技术团队发展到30人左右,核心产品线多,技术经理多,就需要一个技术总监。技术总监作为领域专家,从更高的层面思考技术如何建立壁垒,打造技术竞争力。逐步开始建立公共技术平台,协调多条产品线在统一的技术平台上快速迭代,让产品线快速稳定运行。技术总监,在该领域积累多年,来自知名互联网公司,能够让技术团队更上一层楼。技术总监更多的是做技术判断,有的技术总监还是写一些核心代码,做架构设计。技术总监职责:1、搭建公司技术平台部,统一技术栈;2.建立产品研发体系,让技术团队快速持续交付;3、管理协调多条产品线,打造明星产品;4、建立技术壁垒,形成技术竞争力;第四阶段,架构师架构设计、架构实现、架构评审。如果公司“跑”到B轮,技术团队应该接近100人。此时的技术团队堪比初创时期。比,已经很好了。技术总监统筹各个产品线,开发经理带领技术团队快速迭代产品。代码规范和最佳实践的总结和推广也在逐步进行中。这时候就需要把架构规划和架构评审的职能从技术总监和开发经理中分离出来,也就是把专业岗位和管理岗位分开,让专业的人做专业的事。这时候需要设立一个架构师岗位,专注于技术架构分析、架构设计、架构实现、重构的推进、架构原理的实现,让技术总监和技术经理可以专注于项目管理和团队管理。架构师的职责是:1.业务架构设计与实现。根据业务规划和应用场景,设计满足当前业务需求,具有一定前瞻性的应用架构、类、接口、业务抽象和业务建模。2.架构设计与实现。确定非功能性需求,例如性能、可伸缩性、安全性、高可用性和易于部署。3、重组计划及执行情况。关注全链路监控数据、在线Bug、系统预警等信息,识别架构缺陷,提出重构建议,推动落地。第五阶段,CTO技术产品战略规划,提升技术竞争力当技术团队有几个总监和架构师,人数达到数百人时,就该引入真正的CTO了,除非CTO是联合创始人,否则这个CTO会有“猛虎坠天”的感觉,公司也会觉得这个人“满嘴跑火车,却不能落地”。国内中大型互联网公司一般都有产品VP和技术VP,有的技术VP就是CTO。如果CTO是分管技术和产品的,那么产品VP就向CTO汇报,否则都是平级的。在国外,CTO主要研究3到5年的技术发展趋势,为公司做中长期的技术规划。是具有行业影响力的技术大师,是公司技术领域的精神领袖。CTO不太关注当下的细节,这类工作主要由工程副总裁处理。以国内某互联网公司的CTO为例,总结一个CTO的主要职责:1、技术赋能业务。敏锐的商业洞察力,深入的行业研究,参与公司战略规划,以技术引领业务增长,通过技术和产品实现战略落地。2、技术趋势研究。思考未来3到5年的技术发展趋势,以及新技术发展给企业带来的机遇和风险,为企业未雨绸缪。3、技术治理体系。持续的流程改进,高效的研发流程,稳定的交付质量,高可用的系统。4.组织和文化。建设学习型组织、自我提升型组织,建立符合企业特点的文化氛围。结论最后,不想当CTO的程序员不是好骑手。从程序员到CTO的成长过程,需要不断提升技术能力、产品能力、项目能力、管理能力、商业眼光、个人影响力、行业人脉等,除了自身的奋斗,机会和运气一样重要,而它是无法满足的东西。但是,梦还是有的,万一下地狱呢。