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

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

新加坡曾经是英国的殖民地,不论是法律体系、政治制度还是职场文化都继承了不少英国的传统,其主要特点是阶层和分工明确。公司研发团队的系统分析师和程序员之间的分工非常明确,系统分析师主要负责系统设计,程序员根据系统分析员的设计来实现代码。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年的老牌互联网公司而言,或者团队的精英含量较低的情况下,我们就不能简单地只设置软件研发工程师的岗位,而应该清楚地区分出架构师和程序员至少两种不同级别的职位。明确架构师对架构负责,程序员对代码质量负责。避免小鬼当家,让程序员做架构师的设计工作,或者浪费架构师的时间写代码等类似的奇怪现象,以确保金融科技公司的架构能够有效地落地实施。

相关文章
|
6月前
|
自然语言处理
部落冲突脚本,小蜜脚本,赛尔号脚本开源代码
部落冲突模块包含资源自动收集和智能进攻系统,支持自定义兵种投放坐标 赛尔号模块实现精灵自动更换和战斗循环,包含颜色检测战斗状态机制
|
5月前
|
缓存 前端开发 JavaScript
性能测试指标拟定参考
本文介绍性能测试关键指标与实施要点,涵盖用户数、业务量、核心场景及性能指标(如TPS、响应时间、波动率)的调查方法,指导如何科学评估系统处理能力与稳定性。
|
5月前
|
数据采集 人工智能 API
2025 淘宝 API 接口实用指南:从资质申请到实战避坑
淘宝开放平台(TOP)2025年围绕“安全合规”与“场景化能力”进行多项更新,包括OAuth2.0授权优化、核心接口权限调整、新增AI选品字段等。本文从“前置准备-核心接口实战-避坑策略-合规要点”四维度,提供可落地的API使用方案,适用于电商ERP对接、店铺运营工具开发等场景,助力开发者高效合规接入淘宝生态。
|
7月前
|
监控 网络协议 网络虚拟化
动态主机配置协议(DHCP)中的中继机制及其配置方法
最后,值得注意的是,DHCP中继代理的配置必须谨慎和精确,因为不当的设置可能导致整个网络的IP地址分配出现故障。因此,配置中继代理之前应充分规划,并在实施新的配置时进行仔细的监控和测试。
261 11
|
10月前
|
JSON 测试技术 API
书写API文档的最佳实践📚
API文档对开发者体验和API成功至关重要。本文探讨了编写清晰、全面且友好的API文档的最佳实践,包括定义API目的、结构化文档、提供代码示例、处理错误、版本控制及测试验证等关键步骤。通过实际案例(如WeatherAPI),展示了如何优化文档内容,帮助开发者快速上手并高效使用API。同时强调交互式功能、国际化支持和用户反馈的重要性,以提升文档的可用性和全球可达性。高质量文档不仅能推动API采用率,还能培养强大的开发者社区,为API的长期成功奠定基础。
|
数据采集 资源调度 JavaScript
Node.js 适合做什么项目?
【8月更文挑战第4天】Node.js 适合做什么项目?
870 5
|
缓存 安全 网络安全
详解通信数据转发程序:代理、网关、隧道
1.代理 代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器 持有资源实体的服务器被称为源服务器。从源服务器返回的响应经过代理服务器后再传给客户端 每次通过代理服务器转发请求或响应时,会追加写入Via首部信息🎶
418 2
详解通信数据转发程序:代理、网关、隧道
【KDD20】多变量时间序列异常检测算法之USAD:对抗性训练AE
# 前言 ![](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/neweditor/931dfc0b-23ac-4f8e-9d5c-8d6986c90147.png) KDD20的paper - 链接:https://dl.acm.org/doi/pdf/10.1145/3394486.3403392 - 代码链接:https://githu
935 1
【KDD20】多变量时间序列异常检测算法之USAD:对抗性训练AE
|
机器学习/深度学习
从零使用GAN(生成对抗网络)进行图像生成
本项目使用 DCGAN 模型,在自建数据集上进行实验。
511 0
从零使用GAN(生成对抗网络)进行图像生成