如何定义和区分高级软件开发工程师

2015 年 6 月 09 日

在软件开发领域,高级开发工程师通常是指那些编写代码超过 3 年的人。这些人可能会被放到领导的位置,但经常会产生非常糟糕的结果。 Matt Briggs 是一名高级开发工程师兼 Scrum 管理员。他认为,单纯使用年限来划分开发人员存在问题,两个同样具有 10 年开发经验的开发人员可能大不相同。近日,他发表了一篇博文,根据开发者所能发挥的作用划分软件开发工程师的成长阶段。

初级开发工程师

初级开发工程师通常是指那些刚刚结束学生生涯的开发者。他们以为自己什么都懂,但是面临问题时却又一筹莫展。他们不熟悉用到的工具,也不了解当前代码库。因此,他们需要监督,需要大量的培训和指导,否则可能几年过去了,他们仍然是初级开发工程师。

一名优秀的初级开发工程师应该能够快速完成他人分配的工作,并且保证质量。

中级开发工程师

中级开发工程师不像初级开发工程师那样只专注于代码,他们开始通过试验、文献和与其他程序员的讨论寻找构建系统的_ 正确方式_,也就是说他们会学习软件构建理论。

一名优秀的中级开发工程师不需要监督。他们可以自己提出代码设计的问题,并在设计讨论中发挥重要的作用。他们也是开发团队的主力。但是,他们在遵循“设计模式”和“领域驱动设计”等理论方法设计系统时,可能会出现过度设计的情况。因此,有必要对他们进行进一步的指导和更高层次的监督。

Briggs 指出,绝大多数的高级软件开发工程师和团队负责人实际上都是中级开发工程师,只是大部分人都没有意识到这一点。

高级开发工程师

高级开发工程师抛弃了支配中级开发工程师的复杂性,追求简单至上。他们不再按照知识划分开发者,而是了解每个人的优势和不足。在理论运用方面,他们重视“上下文”,而不是一味地追求“正确方式”。他们知道,构建优秀的软件,唯一的方式是改造理论方法,适应客户、代码库、团队、工具和组织的需求,在设计模式、库、框架和流程之间寻找平衡。

高级开发工程师更多地为别人考虑,了解组织和客户如何工作,知道他们的价值所在。他们从来不会说“这不是我的工作”。他们的工作是提供问题解决方案,总是考虑他们的工作会为组织和客户带来什么价值,而不是他们会有多大的工作量。

中级开发工程师会钻研一些令人厌烦的工作,但高级开发工程师会退一步,看看是什么导致了这样的工作。他们会评估修复问题根本原因的成本,从而决定是直接修复,还是先让系统运行起来,后续再修复。

高级开发工程师清楚地知道,他们的主要作用是让团队变得更好。同时,他们也深知,领导不是权力,而是授权,不是命令,而是服务。

Briggs 指出,如果团队没有高级开发工程师担任领导角色,那么项目注定要失败。高级开发工程师是唯一有资格选择技术和平台的人,因此,从项目开始的第一天起就应该有一个这样的人。

Briggs 承认,这种划分方式过分简单,却也可以提供一些有用的信息。他建议,企业在招聘时要考虑团队和组织的人才构成。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015 年 6 月 09 日 08:214484
用户头像

发布了 1008 篇内容, 共 307.0 次阅读, 收获喜欢 272 次。

关注

评论

发布
暂无评论
发现更多内容

Python基础知识(二)

Python基础

关于手机里的IP地址,你不得不知道的“秘密”

脑极体

甲方日常 16

句子

随笔杂谈

架构师训练营 - 大作业(二)

张明森

JDK15真的来了,一起来看看它的新特性

程序那些事

Java JDK15 JDK15新特性 java15新特性

架构师训练营大作业一

子豪sirius

宁静的可贵

谷鱼

宁静

oeasy教您玩转linux 010216 随机诗词 fortunezh

o

Electronjs

Neil

Java Electron 前端框架 前端教程 客户端开发

字节高级工程师告诉我,想越过开发5年的“分水岭”这样做最适合

周老师

Java 编程 程序员 架构 面试

配置时间特性

小知识点

大数据 flink scal

关于java使用JDBC连接数据库

谷鱼

Java JDBC

物流系统架构设计文档

莫莫大人

极客大学架构师训练营

拓扑排序就这么回事

码农田小齐

数据结构 算法 数据结构和算法

为什么很多人不买iPhone?

北柯

IP网络

菜鸟小sailor 🐕

Spring 5 中文解析数据存储篇-理解Spring事物抽象

青年IT男

Spring5 数据存储

网上赌博输了怎么办?上岸戒赌是唯一的选择

geeker

网上赌博输了怎么办 网上赌博玩快三输了怎办 网上玩快三输了怎么回血 网赌输了怎么戒赌

快三十岁了,网上玩赌博输掉了四百万后的忏悔

geeker

网上赌博输了怎么办 赌博玩快三输了怎么回血

windows平台python3使用impyla连接hive问题汇总

誓约·追光者

hive python3.x Windows 10

第一周学习总结

Geek_Albert

直播倒计时|30分钟带你解锁“技术写作”新技能

小红豆

技术 写作 直播 技术创作 RTC征文大赛

【高并发】面试官:说说缓存最关心的问题?有哪些类型?回收策略和算法?

冰河

缓存 面试 引用 offer 回收

全屋智能2020第十三届(南京)国际智能家居展览会

InfoQ_caf7dbb9aa8a

招商2020第十三届(南京)智慧城市技术与应用产品展览会

InfoQ_caf7dbb9aa8a

架构师训练营大作业

叮叮董董

python——dict常用方法

菜鸟小sailor 🐕

【高并发】面试官:Java中提供了synchronized,为什么还要提供Lock呢?

冰河

Java synchronized 同步 lock 锁机制

食堂就餐卡系统设计

Geek_Albert

食堂就餐卡系统设计

升级Php Curl扩展遇到的坑

心平气和

php curl php扩展

快讯2020第十三届亚洲国际物联网展览会-南京站

InfoQ_caf7dbb9aa8a

如何定义和区分高级软件开发工程师-InfoQ