研发职位到底应该怎么设置?(下)

简介: 研发职位到底应该怎么设置?(下)

新加坡曾经是英国的殖民地,不论是法律体系、政治制度还是职场文化都继承了不少英国的传统,其主要特点是阶层和分工明确。公司研发团队的系统分析师和程序员之间的分工非常明确,系统分析师主要负责系统设计,程序员根据系统分析员的设计来实现代码。90年代公司对这些程序员的要求并不高,可以是高中毕业生,学习财务专业的大专毕业生,而现在更多的是计算机软件专业的毕业生。系统分析师一般是经过训练有经验的计算机专业的工程师。有些人能够从程序员逐步提升到系统分析师,有些人则在程序员的岗位上长期工作。



image.png



日本公司对职位的区分更加清楚,系统分析师经常用Excel定义好系统要实现的具体功能,然后由程序员严格按照Excel的描述把定义好的功能逐一实现。日本企业有两个特点,第一是员工的忠诚度比较高,他们往往会在同一个企业里工作一辈子,所谓终身雇佣制。


image.png



而互联网技术的发展很快,员工跳槽去不同的企业可以学习到很多新的知识,积累更多的经验。忠诚于企业这个优良传统在互联网时代可能具有负面效果。第二是新老员工之间的隔阂,员工越老在企业里越有地位,发言权越大,新员工必须无条件地尊重和服从老员工,简而言之就是有论资排辈的现象。但是互联网是个快速变化的行业,新知识新技术往往更加重要。比如老员工只会用C语言写代码,对Java和Go语言等不清楚,他们往往凭经验选择自己熟悉的C语言,这对企业的技术发展是个障碍。



image.png


美国硅谷的情况则非常不一样,因为大多数的硅谷互联网公司都是从创业公司发展而来的,这些创业公司的研发人员从公司成立开始就什么都做,产品设计、代码实现、应用测试,缺什么就做什么。我曾经在同一个时间担任Oracle DBA、系统管理员和Java 程序员。所以硅谷公司对研发人员的职位分得没有那么清楚,笼统地称为软件工程师。


image.png


这种安排与美国的文化有极大的关系,美国是一个比较开放、包容和平等的社会,只要能完成企业的创新,年纪大小、学历高低、皮肤黑白都不是问题。经常会在企业里看到掌握新技术的年轻人挑大梁,也常见到50岁,甚至60岁的程序员大叔在编写代码。


image.png



中国的互连网公司与美国硅谷的情况比较接近,就是企业大多数都是从无到有,从小到大,公司对负责架构设计的工程师和负责代码实施的程序员的区别不严格。不同的地方在于中国的互联网技术人员,受“学而优则仕”传统观念的影响,一旦做到30多岁就开始考虑向管理岗位转,停止写代码和做设计,很难找到50多岁还在一线写代码的情况。还有一个不同点是中国大学计算机相关专业的毕业生,他们选择专业往往是以能否容易就业为考虑的基础,对代码实施和架构设计的深入研究和长期坚持有限,换句话说真正热爱写代码的人少,而以写代码养家糊口的人多。


image.png


比较和反思这四段经历,可以得出以下两个结论:


第一、社会文化传统对公司研发职位的设计有直接的影响。等级森严的社会文化自然要求架构师、系统分析师和程序员分工明确,各司其职。比较包容和平等的社会文化可以模糊定义这些职位。

 

第二、在不同的发展阶段,公司应该采用不同的职位安排。初创性公司的员工人数很少,不必明确区分架构师与程序员,可以采用软件研发工程师来做模糊处理。有一定基础的成熟型公司,则可以明确地区分架构师和程序员。



image.png


 

中国的文化既不同于美国硅谷,也与日本和新加坡差异很大。我们的文化在平等和包容方面与硅谷差不多,在开放和技术素养方面,强于日本和新加坡,但比硅谷稍差,所以职位不能完全照搬硅谷的做法,以研发工程师的职位模糊所有其他的软件研发职位,而应该在编写代码和架构设计的分工上稍有不同。


在实际工作中,经常有初级的软件研发人员不仅编写代码,而且还负责设计架构。受到仅具备程序员水平的软件研发人员专业水平的局限,所以研发出来的应用系统的架构设计水平低下,代码实现也杂乱无章,这是很多CTO经常担心和苦闷的地方。

 

解决这个问题的主要方法是,根据中国社会的文化传统,互联网企业的不同文化以及公司的不同发展阶段,因地制宜地确定软件研发人员职位定义的模糊度。


在公司的初创阶段,在平等、开放、包容和技术人员素质较好(精英团队)的情况下,可以在一定程度上模糊程序员和架构师之间的职位差别,充分发挥工程师的主动性和创新精神。


但是对创业超过10年的老牌互联网公司而言,或者团队的精英含量较低的情况下,我们就不能简单地只设置软件研发工程师的岗位,而应该清楚地区分出架构师和程序员至少两种不同级别的职位。明确架构师对架构负责,程序员对代码质量负责。避免小鬼当家,让程序员做架构师的设计工作,或者浪费架构师的时间写代码等类似的奇怪现象,以确保金融科技公司的架构能够有效地落地实施。

相关文章
Fastadmin后台页面添加顶部按钮
操作的前提是需要在fastadmin框架中添加对应的控制器、模型、视图页面,可以手动创建,也可以使用curd一键生成。
611 0
Junit4中的新断言assertThat的使用方法
Junit4中的新断言assertThat的使用方法
427 0
|
数据采集 安全 定位技术
使用代理IP爬虫时数据不完整的原因探讨
在信息化时代,互联网成为生活的重要部分。使用HTTP代理爬取数据时,可能会遇到失败情况,如代理IP失效、速度慢、目标网站策略、请求频率过高、地理位置不当、网络连接问题、代理配置错误和目标网站内容变化等。解决方法包括更换代理IP、调整请求频率、检查配置及目标网站变化。
262 11
|
数据采集 资源调度 JavaScript
Node.js 适合做什么项目?
【8月更文挑战第4天】Node.js 适合做什么项目?
733 5
|
Linux Shell
10-12|linux把时间修改到前一天
10-12|linux把时间修改到前一天
|
JavaScript 应用服务中间件 网络安全
referrer防盗链
referrer防盗链
497 1
|
JavaScript
Vue3项目中使用富文本编辑器
Vue3项目中使用富文本编辑器
673 0
|
容器 iOS开发 Linux
震惊!Uno Platform 响应式 UI 构建秘籍大公开!从布局容器到自适应设计,带你轻松打造跨平台完美界面
【8月更文挑战第31天】Uno Platform 是一款强大的跨平台应用开发框架,支持 Web、桌面(Windows、macOS、Linux)及移动(iOS、Android)等平台,仅需单一代码库。本文分享了四个构建响应式用户界面的最佳实践:利用布局容器(如 Grid)适配不同屏幕尺寸;采用自适应布局调整 UI;使用媒体查询定制样式;遵循响应式设计原则确保 UI 元素自适应调整。通过这些方法,开发者可以为用户提供一致且优秀的多设备体验。
529 0
|
消息中间件 Java 大数据
Kafka集群的搭建与批量启停
Kafka集群的搭建与批量启停
316 2
|
机器学习/深度学习 自然语言处理 TensorFlow
迁移学习入门指南超棒!教你如何利用预训练模型加速 TensorFlow 项目开发,开启高效之旅!
【8月更文挑战第31天】在深度学习领域,迁移学习是种在资源有限的情况下快速开发高性能模型的技术。本指南介绍如何在TensorFlow中利用预训练模型实现迁移学习,包括选择、加载预训练模型、自定义顶层、冻结预训练层及训练模型等内容,以帮助提升模型性能和训练速度。
457 0