当前位置:首页 > 开发 > 互联网 > 正文

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

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

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

  初级开发工程师

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

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

  中级开发工程师

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

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

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

  高级开发工程师

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

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

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

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

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

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

 

http://news.cnblogs.com/n/522805/

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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
我公司在大连长期招聘C#高级软件工程师 具体要求如下: 1)有2年以上C#后台软件开发经验,能熟练运
周末了,贴个招聘信息,然后说说我的经历,大家对比评论一下,这个职位可以值多少钱?地点在深圳关
第1部分 重新认识C语言 软件开发工程师常用的工具软件 有一次,我打开电视机准备随便看看,无意中被
下图是根据我的经验所得到的软件开发工程师技术能力层次模型。在这个模型中,你属于哪一个层次?你
当今社会不论什么职业的都需要一个不断学习的环节,java工程师也一样。一个优秀的java工程师,java
终端测试的生命周期: 无线通信 包括协议、2G/3G/4G、机卡的一致性   2.业务应用 功能模块测试:
在开发Android app时,特别是强内容展现型的功能,会想在原生native实现和web实现中做选择,做这种
需求分析的时候,复杂的需求总是让人很难搞清用例之前的关系,generalize关系比较容易搞清,最易混
看高手妈妈如何区分双胞胎宝宝。 如果您的阅读器看不到图片或视频,请移步原文链接:看高手妈妈如何
在开发Android app时,特别是强内容展现型的功能,会想在原生native实现和web实现中做选择,做这种
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号