CTO、技术总监、首席架构师的区别

摘要:
首席架构师负责使技术平台架构和产品业务系统架构相互促进和支持。在确定非功能需求之后,我们还应该进行技术选择、技术架构风险识别和技术实现工作量评估2。架构设计和实现:非功能模块的架构设计、接口设计和代码实现。真正的CTO是软件产品和技术的统一管理。

转载说明:这篇文章,实用性非常强。工作,首先强调的应该是 分工和职责。


经常有创业公司老板来拜访我,常常会拜托给我一句话:帮我找一个CTO。


我解释的多了,所以想把这个写下来,看看你到底需要的应该是啥。


一、高级程序员


如果你是一个刚刚创业的公司,公司没有专职产品经理和项目经理,你就是公司的产品经理,你如果对你现在的开发员能力不满,那么你只需要的是一个高级程序员。


你定义功能、你做计划推进和管理,他可以带1-2个副手把你规划的功能实现了,他是主力干活者,有技术难题也是他来亲自攻克解决。


所以,一个高级程序员,他的职责很清晰:

1、负责核心复杂功能的实现方案设计、编码实现

2、负责疑难BUG分析诊断、攻关解决


二、研发Leader


公司再长大些。如果你就有一个研发团队(含产品/开发/测试),你就一套主产品,而且你的研发团队小于15人,那么你需要的就是一个研发Leader。


因为你已经有了1-2个高级程序员,核心难题攻克和核心功能研发进度与质量保证,已经可以靠他们自身能力解决掉了。那么你需要研发Leader干什么。


研发Leader的职责是:

1、团队任务管理:开发工作量评估、开发任务分配

2、团队生产质量提升:代码审核、开发风险识别/报告/协调解决

3、团队生产力提升:代码模板研发与推广、最佳实践规范总结与推广、自动化研发生产工具研发与推广

4、团队专业力提升:招聘面试、新人指导、领导复盘总结改进


三、技术总监


如果你的研发团队超过20人了,而且有多套主打产品线了,你可能已经有了多个研发Leader了,那么你需要一个技术总监。


技术总监的职责:

1、组建平台研发部,搭建公共技术平台,方便上面各条产品线开发。


2、通过技术平台、通过高一层的职权,管理和协调各个产品线组。现在每个产品线都应该有合格的研发Leader和高级程序员了。


四、首席架构师


因为你已经有了技术总监了,所以技术平台不错了。技术平台和各条产品线的协调互动,也是技术总监管着。


因为你已经有了各个产品线的高级程序员,他们在靠个人能力维持着核心功能模块的开发进度和代码质量。


因为你已经有了研发Leader,所以代码模板研发与推广、最佳实践规范总结与推广,这些事都已经在日常按份内职责开展了。


那么,啥时候需要首席架构师啊。


也就是说,需要分离管理族和专业族了。你会发现,这个阶段你的研发团队已经超过100来人了,需要有人专注来做架构规划、设计、日常维护。不能让研发总监和研发Leader又做管理又做技术一股脑都扔给他们,你就等着总结果产出。这是不对的。


需要从技术总监和研发Leader身上剥离职责了。让技术总监和研发Leader偏项目管理(管理族),把各个模块之间的架构设计工作,独立出一个岗位,就是架构师,来负责。


每个产品线都有架构师,在技术平台部门也有技术平台的架构师。那么,技术平台和业务产品线的架构互动,就是首席架构师在衔接了。让技术平台架构能够和产品业务系统的架构互相促进和支撑,就是首席架构师的份内之事。


架构师的职责是:

1、架构分析:从功能性需求中识别出需要增加的非功能性需求,好满足性能、可扩展、解耦/集成、安全、可运维、高可用、易部署、易更新。并且识别完非功能型需求,还要做技术选型、技术架构风险识别、技术实现工作量评估


2、架构设计与实现:非功能性模块的架构设计、接口设计、代码实现。所以需要的是有代码实现能力还要有架构思维的工程师,不需要画PPT的工程师


3、业务架构设计与实现:需要对跨系统的接口进行识别、实现、维护,需要对能写成公共代码类库的进行分析、识别、接口设计、实现、变更维护。


4、重构:架构师需要经常做Bug分析、非模板性和公共类库代码检查,以发现代码腐烂程度,以发现还有哪些代码没有做很好的架构与精心的代码设计。所以重构是经常性维护发生的,不是攒到某一刻动大手术,甚至推翻重做,那就不叫重构了。


五、CTO


你把架构师团队组织建立完成,再往大长,你才需要真正意义上的CTO了。否则你一开始就招真正的CTO,他也不满意,你的期望也不对。现在你的期望也对了,他的能力模型也正好和你的期望职能匹配了,你能给他的和他想要的也正好匹配了。


有的公司有软件系统产品副总裁,也有软件系统技术副总裁,而且把软件系统技术副总裁叫CTO,软件系统产品副总裁叫产品VP。这就很怪异。


真正的CTO,是软件产品和技术是统一管理的。


他做的事情,是商业、产品、技术、管理、团队相平衡的综合统管。


CTO的职责:

1、业绩达成:洞察客户需求,捕捉商业机会,规划技术产品,通过技术产品领导业务增长,有清晰的战略规划、主攻方向,带领团队实现组织目标


2、前沿与平台:到这个研发规模规模级别了,一定要有专门的团队做技术应用创新探索和前沿技术预研。而且要和技术平台团队、应用研发团队形成很好的联动作用,让创新原型试点能够很平滑的融入商业平台再让应用研发线规模化的使用起来。大量的前沿探索都死在了内部,做完试点就停滞了,这就需要CTO做好整体的衔接推动工作。


3、研发过程管理:站在全局立场来端到端改进业务流程,为业务增长提供方便


4、组织与人才建设:公司文化和价值观的传承;研发专业族团队梯队建制建设、研发管理族团队梯队建制建设;创建创新激发机制,激发研发人创新向前发展,激发黑马人脱颖而出


原文链接:http://mp.weixin.qq.com/s?__biz=MjM5Njk2Mzg0MQ==&mid=2651072525&idx=1&sn=4a5147a1fe70e3531891caf8fba29bb6&scene=23&srcid=0624gFPVZz0rVt281wePtVhP#rd

免责声明:文章转载自《CTO、技术总监、首席架构师的区别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JS监听浏览器关闭事件border-radius的兼容问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

k8s .netcore的春天

一直有在关注k8s容器管理平台,不是因为对运维感兴趣,而是它是云原生,云架构的一块基石,我们可以看看bat在云原生架构方面的推动和投入,相信以后软件从已诞生就生长在云上。 K8S,可能有些朋友认为k8s跟微服务没有啥关系,这个的看你站在什么维度和视角去看待这个问题。尤其是.NETCORE平台,没有像JAVASPRINGCLOUD这样的全家桶,更没有SPRI...

微服务架构

 微服务(Microservice)1.1 为什么需要微服务架构   随着互联网技术的发展,传统的应用架构已满足不了实际需求,微服务架构就随之产生。1.1.1 传统单体应用架构的问题   通常我们所使用的传统单体应用架构都是模块化的设计逻辑,程序在编写完成后会被打包并部署为一个具体的应用,而应用的格式则依赖于相应的应用语言和框架。  例如,在网上商城系统...

架构之CDN缓存

CDN缓存 CDN主要解决将数据缓存到离用户最近的位置,一般缓存静态资源文件(页面,脚本,图片,视频,文件等)。国内网络异常复杂,跨运营商的网络访问会很慢。为了解决跨运营商或各地用户访问问题,可以在重要的城市,部署CDN应用。使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。 CND原理 CDN的基本原理是广泛采用各种缓存服务器,将这些缓...

架构之美读书笔记02

两个系统的比较,功能类似,但是结局不同。这两个系统特点有什么不同?是什么导致了不同的结局? 微观层面特点: 1. 没有统一的概念将不同的部分组织起来2. 代码风格不一致3. 控制流无法预测,即控制流的流向很复杂4. 额外的数据缓存,其目的让数据停留在更方便的地方(但是,容易造成数据的不一致性,维护或扩展不方便)5. 没有人了解整个系统,没有任何文档宏观层面...

打包framework 涉及到得架构问题

一、在项目开发过程中 ,为了适配不通的设备 ,需要我们手动的增加支持设备的架构。那么就需要我们对苹果手机对应的架构所有了解 现在列出目前需要适配的集中机型对应的架构 上图中还少一个基于模拟器的x86_64位得架构 我们在打包framework时,不可避免的要对架构进行设置。如下图: 现对上诉字段进行说明:一下文字引用自网页:http://www.tu...

想高效学会Hadoop,你要按照这个路线

学习hadoop,首先我们要知道hadoop是什么? 说到底Hadoop只是一项分布式系统的工具,我们在学习的时候要理解分布式系统设计中的原则以及方法,只有这样才能以不变应万变。再一个就是一定要动手,有什么案例,有什么项目一定要亲自动手去敲。 学习的时候不要害怕遇到问题,问题是最好的老师。其实学习的过程就是逐渐解决问题的过程,当你遇到的问题越来越少的时候,...