尽管这些年国内的IT行业发展迅速,但是仍然欠缺一套比较综合性的面向工程师的职级胜任力框架,造成国内很多工程师大都一心只想成为技术大牛,而忽视了自己全方位的工程师职业素养和能力的培养。
eBay资深架构师杨波老师读到了美国Circle CI公司分享的工程胜任力矩阵[1],发现这份文档就是一份比较贴合互联网研发型企业的工程师职级胜任力框架,于是在它的基础上,重新整理出了一份更适合国内工程师阅读的《工程师职级胜任力框架》,并把它分享在了GitHub站点[2]上,希望这份文档对你的职业开发和成长有帮助。
Circle CI是美国一家专注CI/CD持续交付领域的SaaS企业服务公司,公司成立于2011年,2020年已经到E轮1亿美金融资。工程胜任力矩阵是Circle CI公司的HR和工程团队联合开发,于2018年在其技术博客上[3]公开分享出来的。
2、评估的纬度共分5个关键区(Key area),关键区再细分为15个价值(Value)维度,价值维度再细分为27个胜任力(Competency)纬度。其中5个关键区分别是:
3、各个工程级别的最主要差异在所能hold住的工作的范围(scope),或者说影响力范围,其中:
E4~E6能够善用人力(一般要带团队)和产品等杠杆进行规模化的生产(Utilizing skills to scale and generate leverage),职级越高越偏向战略方向、理念和文化建设。
4、具体做性能评估时,各级别工程师对5个关键区的权重不同,一般E1~E3偏重技术技能和交付,而E4~E6则偏重反馈、沟通/协作、领导力和战略性影响。
6、该框架的目标不是将工程师培养成技术牛人,技术能力在整个框架中只占五分之一,而是希望提升工程师的综合素养和能力。
总是能写出易于测试和易于他人理解的代码,能考虑到各种边界情况并做合理错误处理。能书写有效的代码文档。
总是能写出易于测试和易于其他开发者理解的生产级的代码,能充分考虑各种边界情况和做充分的错误处理。知道在必要时写代码注释,同时尽量让代码自注释(self-documenting)。
理解测试金字塔原理,并能根据测试金子塔的原理来编写单元测试,能在高级别工程师指导下编写高层测试(组件、集成、e2e测试等)。不仅能测试成功路径(happy path),同时也能充分测试边界和错误情况。
理解测试金字塔原理,并根据其原理来编写底层单元测试和中高层测试。能写出高质量的测试用例,全面覆盖成功路径、边界和错误情况。
理解团队所使用的测试方法,通过质量指标改进测试。能根据团队所采用的测试框架和测试金字塔原理来改进测试方法。
理解团队所使用的测试方法,通过质量指标改进测试。能根据团队所采用的测试框架和测试金字塔原理来改进测试方法。
理解公司级的测试方法,并通过质量指标来改进测试。和所有团队合作,根据所采用的测试框架和测试金子塔原理来改进测试方法。推进公司级的测试战略。
知道组织的监控理念。能帮助团队改进监控。能根据团队领域内的运维监控数据,对系统的稳定性和性能改进提出合理建议。
根据组织的监控理念推动所在团队的监控工作。清楚知道所在领域的运维监控数据,能利用这些数据来推动团队改善服务的稳定性和性能。
在多个团队间推动可观测的DevOps文化,帮助工程师利用运维数据来提升各自领域服务的稳定性和性能。
在多个部门间推进可观测的DevOps文化,帮助公司内不同部门的工程团队利用运维数据来提升各自领域服务的性能和稳定性。
对服务化架构有总体认识,在此基础上能够设计基本的服务/模块,同时尽量避免冗余代码/功能,减少对接口的不兼容变更。
使用行业沉淀下来的成熟的设计模式来架构服务和系统,让团队可以增量和自治的开发,并考虑未来的扩展性。考虑未来的可能用例场景,在做设计决策时,以最小化未来变更成本为主要目标(也就是架构要灵活适应未来的变化)。
在多个团队之间宣导能支持增量和自治开发的,并且能支持未来扩展的架构文化。指导多个团队考虑未来的可能用例场景,在做设计决策时,以最小化未来的变更成本为主要目标。
在整个组织内宣导能支持增量和自治开发的,并且能支持未来扩展的架构文化。指导组织内的所有团队考虑未来的可能用例场景,在做设计决策时,以最小化未来的变更成本为目标。
所有工程工作都要经过“安全放大镜”的检视。在做code review和peer review时,主动留意安全漏洞。
积极和安全团队,还有自己的团队进行合作,根据组织的安全战略改进团队的安全方法。在团队中鼓励安全优先(security first)的理念,并作出榜样(leading by example)。
积极和安全团队,还有其他多个团队进行合作,保障组织安全战略的落地。在多个团队间鼓励安全优先(security first)的理念,并作出榜样。
积极和安全团队进行合作来制定和完善组织级别的安全战略。在多部门间宣导安全优先的理念。能够识别不易被他人察觉的安全威胁。
在开始工作之前,确保任务已经被分解到适合持续集成和增量交付的大小(通常需要团队成员和管理者的帮助)。
带着批判性眼光评审项目分解,确保项目已经被分解到适当大小并排优先级,并且团队成员充分理解这种分解和优先级。
带着批判性眼光评审跨团队的工作分解,确保工作已经被分解到适当大小并排了优先级。并且所有涉及的团队都理解这种分解和优先级。
确保任务级别的依赖关系已经被说明,并且团队也理解这些依赖关系。在团队中宣导优先级文化:集中力量解决优先级高的任务 + 优先级的设定要和组织战略对齐。
确保跨团队的项目依赖关系已经被说明,并且所有涉及的团队和干系人stakeholders都充分理解这些依赖关系。在多个团队间宣导优先级文化:集中力量解决优先级高的任务/项目 + 优先级的设定要和组织战略对齐。
识别组织的多个部门间的项目依赖关系,并且和相关团队合作,在这些依赖变成实际问题之前先想办法解决它们,并设计出预防性措施以防止依赖问题的重复出现。在多个部门间宣导优先级文化:集中力量解决优先级高的项目 + 优先级的设定要和组织战略对齐。
在个人工作范围内,通常能够有效处理风险、变更和不确定性。在日常业务处理(甚至在高压情况)中,即使没有明确的下一步指示,也能自动自发地决策和行动。
在个人工作范围内,能够有效处理风险、变更和不确定性。在日常业务处理(甚至在高压情况)中,即使没有明确的下一步指示,也能自动自发地决策和行动。
在团队范围内,能够有效处理风险、变更和不确定性。在团队范围内,在日常业务处理(甚至在高压情况)中,即使没有明确的下一步指示,也能自动自发地决策和行动。
在多个团队范围内,能够有效处理风险、变更和不确定性。在多个团队范围内,在日常业务处理(甚至在高压情况)中,即使没有全景(total picture,足够的上下文),也能自动自发地决策和行动。
在多个部门范围内,能够有效处理风险、变更和不确定性。在多个部门范围内,在日常业务处理(甚至在高压情况)中,即使没有全景,也能自动自发地决策和行动。
承诺和自身工作能力匹配的工作量(不夸大也不低估),和团队保持沟通,以确保他们理解你的工作的优先级和紧迫性,并按照承诺履行交付。如果有任何阻碍(blockers)、延迟和成本激增问题,则每天要及时将这些问题升级反馈到团队。和团队澄清各自对工作的预期是什么(避免last minute surprise)。
确保理性和现实的承诺,确保团队理解你的工作的优先级和紧迫性,并按照承诺履行交付。在需要升级阻碍、延迟和成本激增等问题之前,提前预期并沟通这些潜在的问题(防患于未然)。确保在团队中,所有相关人员对各自的工作的预期都是清楚的。
在所在团队的项目中,在需要升级阻碍、延迟和成本激增等问题之前,提前预期并沟通这些潜在的问题(防患于未然)。确保在所在团队和外部干系人中,所有相关人员对各自的工作的预期都是清楚的。
能够成功管理多个团队的交付承诺,交付路线图和进度汇报。在多个团队的项目中,在需要升级阻碍、延迟和成本激增等问题之前,提前预期并沟通这些潜在的问题(防患于未然)。确保在多个团队和外部干系人中,所有相关人员对各自的预期都是清楚的。
能够成功管理整个组织级的交付承诺,交付路线图和进度汇报。确保在多个部门和外部干系人中,所有相关人员对各自的预期都是清楚的。
理解在决策中的成本 vs 价值权衡的重要性。在工作中如果碰到需要这种决策的场景时,能够向更高级的工程师求助。
在采取具体行动方案时,能够做成本 vs 价值分析,并采用最经济的行动方案,必要时向更高级的工程师咨询。在对团队成员提供建议时,有时能采用这种经济思维。
在采取具体行动方案时,能够做成本 vs 价值分析,并采用最经济的行动方案,必要时咨询更高级的工程师。在自己的工作中,和对团队提供建议时,经常使用这种经济思维。
在采取具体行动方案时,能够做成本 vs 价值分析,并采用最经济的行动方案。在自己的工作中经常使用这种经济思维。在所在团队中宣导这种经济思维文化(economic thinking culture),确保作出及时且经济的决策。
在采取具体行动方案时,能够做成本 vs 价值分析,并采用最经济的行动方案。在自己的工作中经常使用这种经济思维。在多个团队中宣导经济思维文化,确保作出及时且经济的决策。
在采取具体行动方案时,能够做成本 vs 价值分析,并采用最经济的行动方案。在自己的工作中经常使用这种经济思维。在整个组织中宣导经济思维文化,确保作出及时且经济的决策。
能够面向听众(in an audience-oriented way,以听众为中心而不是自顾自表达),有效、清晰和简洁地沟通(包括书面和口头形式)。积极聆听对方的反馈,确保你真正理解对方的关切。关注肢体语言。
在和团队成员沟通时,不管是技术还是非技术主题,通常都能够面向听众,有效、清晰和简洁地沟通(包括书面和口头形式)。积极聆听对方的反馈,确保你真正理解对方的关切。关注肢体语言。
在和团队成员沟通时,不管是技术还是非技术主题,始终都能够面向听众,有效、清晰和简洁地沟通(包括书面和口头形式)。积极聆听对方的反馈,确保你真正理解对方的关切。关注肢体语言。
能够在具有多样背景和性格的团队中有效沟通。在团队中,鼓励清晰、简洁、有效和面向听众的沟通文化。确保团队成员能够积极聆听对方的反馈,真正理解对方的关切。身体力行展示这种行为。关注肢体语言。
能够在具有多样背景和性格的多个团队间有效沟通。在多个团队间,鼓励清晰、简洁、有效和面向听众的沟通文化。确保团队成员能够积极聆听对方的反馈,真正理解对方的关切。身体力行展示这种行为。关注肢体语言。
能够在整个公司中有效沟通。在整个公司中,鼓励清晰、简洁、有效和面向听众的沟通文化。确保团队成员能够积极聆听对方的反馈,真正理解对方的关切。身体力行展示这种行为。关注肢体语言。
理解自己的工作领域,经常和团队成员分享知。