1、管理职责
a)参与制定公司软件产品的发展方向,确定公司产品框架及开发实施计划;
b)规划产品研发进度安排,根据公司需要确定产品开发周期及人员安排;
c)全面监控产品开发质量、进度和成本控制;
d)针对公司具体项目实施,控制项目需求变更,支持项目实施的顺利进行;
e)负责研发中心各部门的日常管理工作和部门建设,制订并监督执行部门工作计划。
2、技术职责
a)解决目前公司已使用技术框架中存在的问题并进行有效优化
b)负责培训公司软件开发人员的整体开发技能
c)负责公司软件构件库的搭建、第三方控件的选型
常常会被问到这样的问题:CTO、技术总监、架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资?
其实,这个问题本身就错了。就好比问:导演、制片人为什么不懂演戏,还能指导演员,好像比演员厉害似的?其实不难理解,导演、制片人的核心能力并不是演戏,又怎么能跟演员作比较呢?
回答前面的问题,逻辑也是一样的,拿CTO、技术总监、架构师,跟程序员比写代码的能力,本身就是个错误。因为,他们的核心能力是不一样的。
CTO、技术总监、架构师的核心能力是技术判断力 。简单来讲,就是判断一个项目、一个系统架构、某个技术方向,是否符合企业当前现状,是否对企业的未来产生价值。
程序员的核心能力是写代码的能力。 就是做具体的代码实现。
所以CTO/技术总监/架构师,跟程序员的核心能力,是完全不一样的能力,是没法作直接比较的 。
通常我们说,CTO、技术总监、架构师们很牛逼, 指的是他们的技术判断力牛逼,而不是他们写代码的能力牛逼 。相反,他们写代码的能力可能还比不上一个资深程序员。
但是, 他们所做的技术判断,给公司 带来非常 高的价值 。比如,阿里云创始人王坚博士,在所有人反对的时候,他坚持云计算是未来,帮助阿里提前布局云计算,为阿里成长为万亿商业帝国,立下汗马功劳。这就是技术判断力,给企业带来的巨大价值。
大家之所以都很容易混淆这几个角色,以及它们的职责,其实很重要的一个原因就是, 人们常常把CTO、架构师、技术经理的头衔,乱授予技术负责人 。在国内这种现象尤其严重。
比如,一个初创公司的技术负责人,实际干的活就是个技术经理。老板为了显得高大上,硬要给他安一个CTO的头衔。这种情况很普遍,特别是全民创业的那几年,遍地都是CTO。
为了说清楚技术负责人的职责,我们以一个电商公司的成长为例,讲解企业在初创期、发展期、成熟期的不同阶段,都需要什么样的技术负责人,以及他们具体都干些什么。
实现复杂功能,解决技术难题
一个刚刚起步的创业公司,通常只有几个程序员,甚至连产品经理、项目经理都没有,老板自己就是产品经理,把想法跟开发人员一说,就快速地做出原型。
如果这个阶段对开发的能力不满,那么大概需要的只是一个高级开发人员,他能搞定一般的技术难题,实现复杂功能,思路清晰、干活利索。千万不要去大厂挖个技术总监,你家庙太小,供不起这么大的神,他真来了也发挥不了应有的作用。
老读者知道,老K有过一段创业经历,当时追随我的老领导出来创业,我就是名义上的CTO,带了7、8人的团队,我还同时带了两个项目,每个项目里我都贡献了30%以上的代码量。其实,当时的我,就是个高级程序员而已。
小结一下,高级程序员的主要职责是:
1,实现复杂功能,编写核心代码;
2,处理线上bug,解决技术难题。
交付效率提高、质量提升
当公司的业务发展起来后,就需要一支相对完善的技术团队,有了专职产品经理、测试人员等,团队规模在15人左右,专注于一条产品线。
复杂功能、技术难题,高级开发人员可以搞定,但是如果要解决开发团队效率、技术人员能力提升、代码质量和编码规范等,就需要技术经理了。技术经理通常写少量的代码,更多做技术管理、项目团队等工作。
这就是许多创业公司A轮融资前的情况。由技术经理总体负责技术团队,产品经理对接业务需求,做产品规划、竞品分析,而不是抄袭哪个App。
小结一下,技术经理的职责是:
1、开发任务分派。开发工作量评估、分派,最大化资源利用率;
2、代码质量提升。Code Review、编码规范、线上bug分析;
3、项目管理。确保项目的按时交付,建立管理机制;
4、团队管理。团队搭建、人员招聘、人员培养。
技术规划、多产品线、项目群管理
当技术团队发展到30人左右,有了多条核心产品线、有了多个技术经理时,就需要一个技术总监了。
技术总监,作为领域专家,站在更高的层面思考技术如何建立壁垒,构建技术竞争力。逐步开始建立公共技术平台,协调多条产品线在统一的技术平台上快速迭代,让产品线跑得快、跑得稳。
技术总监,在领域内有多年沉淀,来自知名互联网企业,能够把技术团队带上一个新的台阶。技术总监,更多是做技术判断了,也有些技术型的技术总监仍然会写些核心代码、做架构设计。
技术总监的职责:
1、搭建公司技术平台部,统一技术栈;
2、建立产品研发体系,让技术团队可持续性地快速交付;
3、管理和协调多条产品线,打造明星产品;
4、建立技术壁垒,形成技术竞争力;
架构设计、架构实现、架构评审
公司如果“跑到”了B轮,技术团队应该要接近百人了,此时的技术团队跟初创时期相比,已经很不错了。
有技术总监协调着各产品线,有开发经理带领技术团队快速迭代产品。代码规范、最佳实践的总结和推广也在逐步开展。
此时,需要把架构规划和架构评审的职能从技术总监和开发经理身上剥离,即分离专业岗和管理岗,专业人做专业事。
这时候就需要设立架构师岗位,专注于技术架构分析、架构设计、架构实现、推动重构、推行架构原则等工作,让技术总监和技术经理侧重在项目管理、团队管理。
架构师的职责是:
1、业务架构设计和实现。根据业务规划和应用场景,设计切合当前业务要求,并且具备一定前瞻性的应用架构、类、接口、业务抽象及业务建模等。
2、架构设计和实现。识别非功能性需求,如性能、可扩展性、安全性、高可用及易部署等。
技术产品战略规划,提升技术竞争力
当技术团队有了几名总监、架构师,人数达到几百人,是时候引入真正意义上的CTO了,除非CTO是联合创始人,否则这个CTO会有“虎落平阳”的感觉,公司也会觉得这个人“满嘴跑火车,却落不了地”。
国内的中大型互联网公司,一般有产品VP和技术VP,有的技术VP就是CTO。如果CTO统管技术和产品,那么产品VP就给CTO汇报,否则他们是平级的。
以国内互联网公司CTO为例,总结一下CTO的主要职责:
1、技术赋能商业。敏锐的商业洞察、深入的产业研究、参与公司战略规划,技术引领业务增长,通过技术和产品实现战略落地。
2、技术趋势研究。思考未来3~5年的技术发展趋势,以及新技术发展给企业带来的机遇和风险,为企业提前布局。
3、技术治理体系。持续的过程改进、高效的研发流程、稳定的交付质量、高可用的系统。
4、组织与文化。建设学习型组织、自我完善型组织,建立符合企业特色的文化氛围。
最后, 不想当CTO的程序员,不是好骑手 。从程序员到CTO的成长过程,需要不断提升技术能力、产品能力、项目能力、管理能力、商业视野、个人影响力、行业人脉等等。除了自身的奋斗之外,机会和运气同样重要,而且是可遇不可求的。但是,梦想还是要有的,万一见鬼了呢。
哈哈哈,咱俩相似的经历,我在上家公司也是从一名程序员一步步走到管理岗位,最后做到技术总监,后期因公司经营出现问题,被迫解散。跟你讲讲我遇到的大神!
2020年疫情稳定后加入现公司,现公司主要是做健身体育拓展业务想做信息化,技术部是新成立的,老板对技术也是一无所知,最开始想提拔我负责技术团队,但因个人对上家公司的影响(感情太深,非矫情)一直没走出来,所以婉拒公司的好意,毕竟在初创公司做技术总监管理岗位是一件很累人的活儿(在上家单位也是跟着老板、公司一步步发展壮大的,做的第三方支付,4年时间做到了本省三方支付最强,没有之一。加班常态、技术攻关、团队协作、业务对接、商务对接等等都要去抓,典型的初创团队和工作节奏,从最初的三个人技术团队发展到50人左右)
婉拒现公司好意后,只能通过招聘渠道进行社会选拔,终于20年6月 入职了一位顶着北京归来、十余年架构师经验的大神加入,当时我还有点期待,毕竟架构师也算是业内的天花板存在,在人家身边能学不少东西呢~
可是之后的这位大神一系列骚 *** 作,让我对“架构师”信仰崩塌的开始。。。
1、大神初来乍到,第一次部门会议(团队加上他10人规模)跟我们介绍自己,从初级程序员到中级到高级再到技术总监,然后做架构师和CTO,就差迎娶白富美走向人生巅峰了。刚接触对人家不了解,不好做评价,不过通过这次的演讲 能感觉到此人喜欢晒“光辉履历”、言语表达能力很一般,思维混乱,说话没重点。。。也许是位技术宅呢?
2、接下来两三个月大家相安无事,基本没什么沟通,大神没有做过任何技术指导,也没写过一行代码(截止目前2021年6月12日12:45分 没写代码),期间单独找过我沟通,问我想不想做他的分封的技术主管,负责后期项目的技术推进,还问我 了解springboot 和 分布式之类的,我只问了一句:涨工资吗?他说不涨,我说不干。
3、然后大神的表演正式开始,公司健身系统长久以来定时任务会重复执行,定位找原因发现是tomcat加载了两次路径配置导致,大神百度了一天,各种删除项目里的配置文件来定位问题,web.xml、spring配置统统惨遭毒手!基本没有不删的,最可怕的是 他不是在自己本地调试,而是在其他同事本地环境调试!至于为什么?因为入职三个月了,大神本地环境还没搭好!项目一片红叉,运行不起来。。此情此景,我内心是崩溃的!卧槽!卧槽!卧槽!
4、你以为结束了吗?不。。这仅仅是传奇的开始。大神刚入职那会从我们手里收回了生产权限,对比我们表示理解支持。之前我也向公司领导提议,只有技术负责人或相关岗位才有权动生产环境,其他岗位是没有资格的。结果这大神说的比唱的好听,把收回来的权限 没过两天就交给了一位新入职的技术支持工程师(类似技术客服,配合业务部门查询导出数据),技术支持工程师只会最基本的SQL增删改查(嚯!能力比大神还强!),对服务器基本一无所知。。这位兄弟按大神要求安装某些监控软件,一顿猛如虎 *** 作 生产环境nginx当晚挂掉,下班后全体加班找原因,最终发现是端口冲突(其他人根本不清楚生产环境安装软件)。。大神惊出一身冷汗
5、大神曾经在周会上炫过自己的履历,其中有几个事迹印象特别深,其中之一是大神自称写过2万余行的存储过程,运行效率、后期维护的问题咱先不提,单单是这逻辑足以让人叹服!最强大脑不过如!然鹅,当我们向他虚心请教存储过程基本写法时。。大神自称只写过sql server数据库的,mysql不会。。 反手百度了一个基础入门教程送给我们。 你品 你细品。。
6、由于现公司系统是外包开发,所以框架免不了偷工减料,最恶心的是没有事务管理。在大神来之前我就有想法把事务加上,可是因系统业务长期迭代导致代码冗余严重,底层jdbc使用的三方dbutils,不受spring管理,改造相对麻烦。。当我给大神详细解释这个问题的前因后果及工作量,大神貌似听不懂我在说什么。只是反问我 工作量大是吗 你能改吗?要不自己写一套事务吧。。。心累
7、前面提到的技术支持工程师对SQL不是很了解,只会最基本的语法,聚合函数也不会用,所以大多数时间是需要我们给予支持的。一些有难度的SQL脚本都是我们替他写。时间久了大家也有自己的工作忙,只能敷衍他或者干脆不理。他也是没办法找大神帮忙,大神二话不说把他叫到办公室手把手教学。。半小时后技术支持回来了 一脸的茫然。我们问他 大神帮他解决问题了吗?技术支持说。。没有,大神在那吭哧了半天SQL写不出来,还告诉我回来不要告诉你们 他写不出来。。。噗~至此技术支持正式加入我们团队
8、时间来到20年底21年初,过完元旦石家庄再次爆发疫情,全市戒严,我们公司更是首当其冲收到严禁营业的通知。等3月复工后,有些人选择离开去寻找新的工作机遇,大神选择留下来继续自己的传奇故事。在前不久的周会上,大神提出了一个颠覆行业的开发测试解决方案,目前我们团队只有一位测试人员,对接3-4名开发,平时工作量挺大,需要根据任务优先级测试工作,尤其每个开发都认为自己的工作是优先级最高的,所以一直覆盖测试环境代码,导致测试人员没办法正常工作,这时大神很骄傲的宣布:以后每个工作任务完成后开发人员都要部署一套测试环境,这样就可以解决测试环境代码被覆盖的风险了!我不知道你们之前的工作是不是这样做的,但我们之前公司就是这么做的!我擦 再次震惊了 ,我急忙提问 那一个人同时有100个任务难道要部署一百套测试环境吗?大神用很白痴的目光看着我说 对 有什么问题吗? 我难以相信的再问 就算这样做,可只有1个测试人员啊!她忙不过来啊!! 大神蔑视的说 那不是你们的问题,是公司招人的事了。。 这就是我们的技术总监,一位传奇 一位行业标杆~
9、我只是简单的把印象深刻的牛逼写了出来,还有很多经典牛逼没写,诸如:大神自称一个月内 同时开发十套项目(银行系统)、大神曾经一个人负责70多台生产服务器(linux都不懂)、大神入职后写SQL 基础语法都不会。select * from xxx where left join xxx 。。。简直辣眼,人家理直气壮的说自己岁数大了,好长时间不做开发 忘了。。一位架构师的健忘真可怕啊!!!
10、以上内容绝对真实不浮夸,这种人真的存在,有些人吹牛逼是真的牛逼,有些人吹牛逼把自己吹成了傻逼,他们自己都信了 活在了幻想里。。
技术总监的职责:
1、搭建公司技术平台部,统一技术栈;
2、建立产品研发体系,让技术团队可持续性地快速交付;
3、管理和协调多条产品线,打造明星产品;
4、建立技术壁垒,形成技术竞争力;
以上内容统统与我们技术总监无关,我们总监吹牛技术第一人!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)