你知道技术委员会吗?嗯,一个既重要却又鸡肋的神秘组织

这是头哥侃码的第209篇原创

前几天,在某群里有个有关 “技术委员会” 的话题讨论的挺火。

很多时候,这种争论是不可能有结果的,因为每个人都会从自己的立场和三观出发,公说公有理,婆说婆有理,一般除了搞得唾沫星子乱溅,血压升高之外,几乎没什么鸟用。

我没多话,静静地看着他们撕来撕去,直到群里有一个朋友给我私信:“今天你怎么那么安静?这不像你的风格啊,一般聊到这种和你职业经历相关的话题,你不是总会出来叨叨几句的吗?”

我对着显示器哼了一声,在输入框中写道:“说啥呀?在我的经历中,技术委员会,要么是一个至关重要的组织,要么就是一个可有可无的团体。

“说白了,无非是一个既重要却又鸡肋的神秘组织。”

我发完这句话,他可能愣是发呆了几分钟,过了好一会他才回道:“既重要,又鸡肋?没听懂,能详细说说吗?”

我抬手看了下手表,“17点53分”,也快下班了。

行,反正也没啥心思干活,借此话题,我也正好停下来整理一下自己的思绪,基于自己的经历来谈一谈。

1

技术委员会是干啥的?

为了能把这个名词解释清楚,我来把它拆成两部分,一是技术,二是委员会。

技术,不用多说,那啥是委员会呢?我还特地查了下 “维基百科”,除了几种与政治挂钩的词句之外,就只剩下最贴切的一种:

机关、团体、学校等为了完成一定的任务而设立的专门组织。

如果把这句话的前缀换成 “技术”,然后再把它们连起来,那基本可以解读为:

一个(或多个)技术团体(或部门)为了完成一定的任务而设立的专门组织。

当然,由于每家公司所在的行业不同,发展阶段与团队规模不同,再加上老板的尿性也不同,所以技术委员会在实践落地的方式上有很大的区别。

但从核心职责上来讲,大部分企业无非就这两项。

1、制定技术人员的职级标准

比如,不同技术岗位的职级标准(M系列、P系列)及晋升通道等。

比如,不同技术岗位的设立目的与能力要求(知识、技能、通用素质等)。

2、制定中/长期的技术战略方向

一般来说,这个话题可以拆分两个种类,一是技术标准、流程与规范,二是技术选型与落地。

好,咱们先来讲讲第一类。

什么叫技术标准、流程与规范?说白了,就是将解决问题的思路与流程进行标准化。

比如,开发标准与规范呀,需求、故障申报的SOP流程呀,还有就是把运维服务体系逐渐向ITIL标准对齐呀,等等……

比如,软件质量标准与提测流程呀,软件系统安全规范手册呀,等等……

总而言之,在我见到的许多甲方公司中,搞这些标准的目的是为了保障产品研发的统一化,防止因人员流失之后产生的效率下降,故障提升。

说完第一类,接着再来说说第二类。

什么叫技术选型与落地?说白了,就是将解决问题的工具与方法进行约定,并明确施工内容、范围及时间点。

比如,在Java系统中用到的基础中间件该怎么样选择?MQ是用RocketMQ,还是ActiveMQ?在Python系统中,是采用vue+django的前后端分离模式?还是其他方式?

比如,因为技术债的原因,A系统已经无法支撑业务的发展,是重构?还是保守疗法?

比如,今年上半年的学习气氛有所下降,下半年是否要突出营造技术氛围?搞个编程大赛或黑客马拉松?

比如,选择哪家第三方云服务供应商?在DevOps平台上,我们是选择自研?还是选择公共云提供的产品?如果选择自研,第一步要做什么?

简单说,很多时候解决的是 “把大象放冰箱,总共分几步” 的问题。

……

有人说:“不对呀,你怎么把组织结构给漏了?难道这块不归技术委员会管吗?”

在我看来,技术委员会的作用,其实和某某行业协会所起到的作用差不多,无非是通过组织某种(或某一类)资源,使其形成一种良好的发展前途,使其更健康、有序的发展。

你有听过基金业协会、农业协会吧?对,虽然行业不同,但干的活大同小异。

在我的经历中,技术团队一般属于企业组织结构中的一个组成部分,无论长成方的还是变成圆的,这通常都是由部门总监、CTO与HR一起,根据企业当下的人才战略、发展阶段与经营模式的现实情况来决定的。

你瞧,这么一说的话,是不是就跟技术委员会没啥关系了?

2

技术委员会的实践方式有哪些?

你看,光看上面这一大堆大道理,甚至会让人产生 “技术委员会太重要了”、“没这组织完全没法开展工作” 的幻觉,但现实并不是这样。

在我遇见的企业中,基本都不会设立一个所谓的 “技术委员会”,如果要履行与其相关的那些核心职责,也是通过其他的组织形式进行的。

粗略算了下,一般有三种实践方式。

虚拟 - 一群高T组成的仲裁团体

混迹职场多年的老司机应该知道,部门之间由于理念、职责、节奏与使命的不同,外加 “屁股决定脑袋” 的立场,双方引发矛盾是非常平常的事。

尤其在处理一些技术选型或技术债的时候,双方很容易陷入一种 ”公说公有理婆说婆有理“ 的尴尬局面。

怎么理解?我来举个小例子说明下。

因业务需求,A团队和B团队要一起对某些接口进行联调,但A团队的接口已在产线上运行多年,采用的是过时的666协议,而且这个接口不仅是核心服务,而且里面的逻辑错综复杂,无人敢动。

所以在这样的情况下,A团队提出了让B团队重新开发一套新接口,或者对原有接口进行重构,以达到完全兼容666协议的目的。

但没想到B团队的老大一听这个说法,直接炸锅,“凭什么来兼容你们?大家都用777协议,凭什么你脑袋上长角?”

这下可好,事情没任何进展,两个团队的老大却先 ”干“ 起来了。

……

有人说,这事跟技术委员会有毛关系?如果俩人职级相同,直接把他们的老大喊来,要么强压,要么加大投入,下下狠心就得了。

强压?压谁?判断标准是什么?难道看谁长得帅,或是跟谁关系好吗?除非团队在类似事件上有过约定(或标准),或者这位老大天生强势,喜欢用自己的主观判断来下定论,而且从不把下属的内心感受放在心上,否则在各种技术规范、标准都不健全的情况下,凭什么A团队不动,B团队要投入更大的资源去做一些自身并不认可的事情?

如果选择强压,那就等同于 “攻城为上,攻心为下”,对今后的管理与团队氛围都会带来诸多的麻烦。

在我的经历中,除一些特定事件之外,普通的功能迭代并不会选择这种 “独裁” 方式,而是交由一个高T组成的 “仲裁团体”  来解决。

这个团体的成员一般来自不同的团队,比较公正,比较中立,遇事喜欢利用一些技术数据(如接口数量、研发资源及业务影响等)的调研,或是借此明确某项技术的规则与标准,最终达到 “司法裁决” 的目的。

虽然从表面来看,这种方式不仅实施成本更高,而且时效性非常差,但在有些企业看来,这种方式有利于一些制度、标准及技术选型的平稳落地,减少矛盾,相对公平。

什么?你说这多此一举?独裁是工作效率最高的领导方式?

嗯,有道理。但人家不喜欢那样,可能是历史书看的太多,生怕某一天被民众推翻吧。你管得着吗?

虚拟 - 以项目形式推动一些人文类事项

说到这个话题,可能有人会说:“项目?这难道不是项目经理的事吗?这又跟技术委员会有啥关系?”

对,你说的没错。

在我接触的许多甲方公司中,由于受到专业能力与话语权的限制,在遇到一些跨团队、跨职级项目(比如职级评审,校园招聘,技术培训等)的时候,参与的人基本都是各团队的Head(比如技术经理、部门总监等),而项目经理在他们眼里,无非是老板的传话筒,或者是一个牵头人的角色。

如果一群高T组成的 仲裁团体 完成的任务是技术范畴,那么一群Head组成的 “政治团体” 完成的任务就是人文范畴。

不过,在一些不懂技术的老板眼里,无论是技术范畴还是人文范畴,那都是你们这群技术男搞出来的噱头。

既然如此,当这群人在一起的时候,总要给他们一个代号吧?算了,就叫你们 “技术委员会” 吧。

哦,对了,这群人里面职级最高,官最大的那个,就是委员长了。

实体 - 有实体组织承接与落地技术战略

两年前,我曾在 #演化:这五年里,我们对架构师职责的思考与定位# 中写过相似的场景。

也就是说,很多技术团队在人员规模达到一定数量之后,为了提升效率,组织结构会被拆分成了互联网化的FeatureTeam。为了避免在基础建设上的重复性建设,在推动一些全局横向技术工作时,需要有人去突破在架构上的各项难题。

在这个时候,很多企业会选择成立一个部门来统一负责这些。

名称和叫法大家都不太一样,有叫架构部的,有叫基础服务部的,还有叫特别行动队的,但实际上,无非都是在承接与落地技术战略相关的事。

不过话说到这,我要多一句嘴。

在我遇见的企业中,无论是实体组织还是虚拟团队,如果你想要推动一些全局横向技术的工作(比如中间件,或某项技术、语言的选型),一般都需要获得老板的授权,否则在过程中会遇到各种由 “谁说了算?” 而引发的阻力。

好,那问题来了。授权的基础是什么?我认为是信任。

客观的讲,想要搞好承接与落地技术战略这件事,对专业能力和经验是有一定要求的,但老板信任的人在这方面却不一定符合要求。

那怎么办呢?为了解决这种 “矛盾”,有不少CTO亲自带队,再挖几个技术牛人来,说啥就是啥,说咋做就咋做,谁不愿意?滚蛋!或者在内部提拔一名在资历上还过得去的老员工,通过集思广益、群策群力的方式来开展工作。

什么?你说从别的公司 “空降” 一个过来?

不好意思,可能是我孤弱寡闻,但在我经历的企业中,这种 “空降” 的死亡率还是挺高的。

为什么?去看看 #空降CTO是救世主?不,也可能是臭流氓# 这篇文章吧,里面写的挺详细的。

3

是创新先驱?还是执行工具?

写到这,差不多把我所见过的技术委员会的理论和实践都说完了。

可能有人质疑:“不对啊,你说的怎么跟我遇到的情况不一样。”

“在我的经历中,技术委员会应该是一家公司的科技的创新先驱,但你却把它描述成了一家公司的执行工具?”

是,你说的有道理。

今年2月,小米成立了技术委员会,集团副总裁崔宝秋博士被任命为技术委员会主席。

在网上,小米集团创始人、董事长兼CEO雷军有两段话让我记忆很深。

第一段是说:“技术委员会要强化技术立业,打造一流的技术团队和文化,对做出突出技术钻研和创新的工程师给予百万元级别的特别奖励,以激励技术创新和技术突破。”

第二段是说:“技术创新最核心的是人才,小米今后既要加大力度招募博士学位的高尖端技术人才,又要加强从高校招募更多的年轻技术人才,在集团技术委员会的推动下,公司要形成一套完善独立的技术人才晋升和级别评定体系,要让技术人才能够在良好的环境下专心做研发,一样有成就感和获得优厚回报。”

读完这两段文字后,你明白小米成立技术委员会的目的吗?

在我看来,由于小米主要以科技产品为主,产品的差异化卖点是核心竞争力,如果想要始终保持突破姿态,那么技术差异才是真正的鸿沟。怎么才能越过鸿沟?那就需要不断的科技创新。

所以,小米技术委员会就显得非常重要,因为它的职责之一,就是从人才、专利与文化的角度,不断激发公司的创新动力与活力。

好了,说完了小米,来对标下你所在企业的行业、产品与人文,有这样的需求吗?

很抱歉,在我所遇到的很多企业中,基本都没有这样的需求。

所以,一般企业的技术委员会,无论是以什么样的形式存在,也多数是在扮演救火队的角色。

至于为什么叫这个名字?无非是赶个潮流,设个招牌而已。

无论你这个组织的名字叫什么,实践形式是虚是实,只要能用最低的成本,最快的速度解决在业务场景中遇到的各种问题,也就可以了。

写在最后

好了,写到这里也差不多了,最后还是想强调一个论点 —— 你可千万不要被 “技术委员会” 这个看似高大上的名字给迷惑了。

在我看来,这就像给自己的孩子起名字是一个道理。

比如,张三和李四都给自己的孩子起了个 “小宝“ 的乳名,但含义却大不相同。

张三之所以给儿子起这个名字,主要是受到内地童星王一鸣的启发,希望自己的儿子能像他一样进入演艺圈。

但李四就不同,他之所以给儿子起这个名字,无非是有一次出门买菜的时候听卖猪肉摊位旁的一个胖阿姨说了一嘴,瞬间觉得挺好听,也没多想,回来就给自己儿子给按上了。

为什么会有这样的区别?因为这俩孩子的爸爸的出生不同、性格不同、基因不同、学时与经历更不同……所以,他们儿子的命运也大不相同。

不过对我们大多数人来说,一个名称无非是一个代号而已,一个愿意喊,一个愿意应,也就行了。

不必在意,你说是吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308779.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[SpringBoot2]Lombok

引入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>idea中搜索安装lombok插件 简化JavaBean开发 NoArgsConstructor //无参构造器 //全参构造器 //AllArgsConstructor Data ToStrin…

谷歌提议更改Istio指导委员会

导语谷歌认为&#xff0c;社区成员可以通过提交代码和非代码贡献的任何组合来对Istio项目产生影响。正文近日&#xff0c;谷歌针对Kubernetes环境的开源Istio服务网格项目的管理&#xff0c;提出了改变规则的理由&#xff0c;并提出了围绕贡献者席位和社区席位创建具有相同投票…

[SpringBoot2]yaml

简介 YAML 是 “YAML Ain’t Markup Language”&#xff08;YAML 不是一种标记语言&#xff09;的递归缩写。在开发的这种语言时&#xff0c;YAML 的意思其实是&#xff1a;“Yet Another Markup Language”&#xff08;仍是一种标记语言&#xff09;。 非常适合用来做以数据…

Golden Master Pattern :一种在.NET Core中重构遗留代码的利器

在软件开发领域中工作的任何人都将需要在旧代码中添加功能&#xff0c;这些功能可能是从先前的团队继承而来的&#xff0c;您需要对其进行紧急修复。可以在文献中找到许多遗留代码的定义&#xff0c;我更喜欢的定义是&#xff1a;“通过遗留代码&#xff0c;我们指的是我们害怕…

[SpringBoot2]web场景_静态资源规则与定制化

静态资源目录 只要静态资源放在类路径下&#xff1a; called /static (or /public or /resources or /META-INF/resources 访问 &#xff1a; 当前项目根路径/ 静态资源名 原理&#xff1a; 静态映射/**。 请求进来&#xff0c;先去找Controller看能不能处理。不能处理的所有请…

【Ids4实战】最全的 v4 版本升级指南

&#xff08;恰似一江春水向东流&#xff09;最近听说IdentityServer4从v3升级到v4了&#xff0c;其实很简单&#xff0c;就是nuget包升级一下的事儿&#xff0c;不过没想到涉及到的内容还挺多&#xff0c;要不然也不会直接从3.1直接蹦到4.0&#xff0c;这么大的跨度&#xff0…

你真的清楚DateTime in C#吗?

DateTime&#xff0c;就是一个世界的大融合。日期和时间&#xff0c;在我们开发中非常重要。DateTime在C#中&#xff0c;专门用来表达和处理日期和时间。本文算是多年使用DateTime的一个总结&#xff0c;包括DateTime对象的整体应用&#xff0c;以及如何处理不同的区域、时区、…

【翻译】.NET 5中的性能改进

在.NET Core之前的版本中&#xff0c;其实已经在博客中介绍了在该版本中发现的重大性能改进。 从.NET Core 2.0到.NET Core 2.1到.NET Core 3.0的每一篇文章&#xff0c;发现谈论越来越多的东西。然而有趣的是&#xff0c;每次都想知道下一次是否有足够的意义的改进以保证再发表…

[SpringSecurity]框架概述

概要 Spring 是非常流行和成功的 Java 应用开发框架&#xff0c;Spring Security 正是 Spring 家族中的 成员。Spring Security 基于 Spring 框架&#xff0c;提供了一套 Web 应用安全性的完整解决方 案。 正如你可能知道的关于安全方面的两个主要区域是“认证”和“授权”&a…

[译]使用DOT语言和GraphvizOnline来可视化你的ASP.NETCore3.0终结点01

这是系列文章中的第一篇&#xff1a;使用GraphvizOnline可视化ASP.NETCore3.0终结点。.第1部分-使用DOT语言来可视化你的ASP.NETCore3.0终结点(本文)第2部分-向ASP.NET Core应用程序添加终节点图第3部分-使用ImpromptuInterface创建一个自定义的DfaGraphWriter&#xff0c;以便…

.NET Core CLI 的性能诊断工具介绍

前言开发人员的.NET Core项目上线后&#xff0c;经常会出现各种问题&#xff0c;内存泄漏&#xff0c;CPU 100%&#xff0c;处理时间长等&#xff0c; 这个时候就需要快速并准确的发现问题&#xff0c;并解决问题&#xff0c; 除了项目本身的日志记录外&#xff0c;NET Core 为…

[SpringSecurity]HelloWorld入门案例

入门案例 第一步 创建springboot工程 第二步 引入相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springfram…

ASP.NET Core静态文件处理源码探究

前言静态文件&#xff08;如 HTML、CSS、图像和 JavaScript&#xff09;等是Web程序的重要组成部分。传统的ASP.NET项目一般都是部署在IIS上&#xff0c;IIS是一个功能非常强大的服务器平台&#xff0c;可以直接处理接收到的静态文件处理而不需要经过应用程序池处理&#xff0c…

[SpringSecurity]基本原理_过滤器链

SpringSecurity 本质是一个过滤器链&#xff1a; 从启动是可以获取到过滤器链&#xff1a; org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFil ter org.springframework.security.web.context.SecurityContextPersistenceFilter org.s…

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序

最近两天在Linux中调试.NET Core应用程序&#xff0c;同时我发现在Linux中调试.NET Core应用程序并不容易。一直习惯在Visual Studio中进行编码和调试。现在我想的是可以简单快速的测试.NET Core应用在Linux。所以通过本篇文章我们能了解到如何在Windows中使用Visual Studio进行…

[SpringSecurity]基本原理_过滤器加载过程

过滤器如何进行加载的&#xff1f; 1.使用SpringSecurity配置过滤器 DelegatingFilterProxy 其中上面的getTargetBeanName()得到的名字是FilterChainProxy 找到FilterChainProxy这个类中的doFilter方法 最后两张图片里面的代码表示&#xff1a; 用了一个增强for循环和getFi…

[SpringSecurity]基本原理_两个重要的接口_UserDetailsService接口和PasswordEncoder接口

UserDetailsService接口 当什么也没有配置的时候&#xff0c;账号和密码是由 Spring Security 定义生成的。而在实际项目中 账号和密码都是从数据库中查询出来的。 所以我们要通过自定义逻辑控制认证逻辑。 如果需要自定义逻辑时&#xff0c;只需要实现 UserDetailsService 接…

.NET 开源项目 StreamJsonRpc 介绍[下篇]

阅读本文大概需要 9 分钟。大家好&#xff0c;这是 .NET 开源项目 StreamJsonRpc 介绍的最后一篇。上篇介绍了一些预备知识&#xff0c;包括 JSON-RPC 协议介绍&#xff0c;StreamJsonRpc 是一个实现了 JSON-RPC 协议的库&#xff0c;它基于 Stream、WebSocket 和自定义的全双工…

ASP.NET Core Blazor 初探之 Blazor Server

上周初步对Blazor WebAssembly进行了初步的探索(ASP.NET Core Blazor 初探之 Blazor WebAssembly)。这次来看看Blazor Server该怎么玩。Blazor ServerBlazor 技术又分两种&#xff1a;Blazor WebAssemblyBlazor ServerBlazor WebAssembly上次已经介绍过了&#xff0c;这次主要来…