一、前言
尽管这些年国内的IT行业发展迅速,但是仍然欠缺一套比较综合性的面向工程师的职级胜任力框架,造成国内很多工程师大都一心只想成为技术大牛,而忽视了自己全方位的工程师职业素养和能力的培养。
最近我有幸读到了Circle CI公司分享的工程胜任力矩阵,发现这份文档就是一份比较贴合互联网研发型企业的工程师职级胜任力框架,于是我在它的基础上,重新整理出了一份更适合国内工程师阅读的《工程师职级胜任力框架》,并把它分享在波波的github站点上,希望这份文档对工程师的职业开发和成长有帮助。注,Circle CI是美国一家专注CI/CD持续交付领域的SaaS企业服务公司,公司成立于2011年,今年(2020年)已经到E轮1亿美金融资。工程胜任力矩阵是Circle CI公司的HR和工程团队联合开发,于2018年在Circle CI技术博客上公开分享出来的。
二、目标
工程师职级胜任力框架的主要目标是:
- 作为工程师职业开发和成长路径的对标参考
- 作为管理者评估工程师职级/能力+目标设定的对标参考
- 作为HR开发工作描述(JD)和评估候选人职级/能力的对标参考
- 作为企业文化建设的一种手段,将企业的核心价值观和文化融入职级胜任力框架(codify core value and culture into engineering level & competency matrix),通过职级框架来引导工程师的价值认同和文化行为。
三、说明
1.职级一共分六级,分别如下:
- E1 - 助理工程师(Associate Engineer)
- E2 - 工程师(Engineer)
- E3 - 高级工程师(Senior Engineer)
- E4 - 资深工程师(Staff Engineer)
- E5 - 高级资深工程师(Senior Staff Engineer)
- E6 - 首席工程师(Principal Engineer)
2.评估的纬度共分5个关键区(Key area),关键区再细分为15个价值(Value)维度,价值维度再细分为27个胜任力(Competency)纬度。其中5个关键区分别是:
- 技术技能(Technical skills)
- 交付(Delivery)
- 反馈、沟通和协作(Feedback, Communication, Collaboration)
- 领导力(Leadership)
- 战略性影响(Strategic Impact)
3.各个工程级别的最主要差异在所能hold住的工作的范围(scope),或者说影响力范围,其中:
E1 ~ E3 属于独立贡献者(individual contributor),工作范围有限,偏任务执行(Execution of Work)
- E1: 任务范围内
- E2: 项目范围内
- E3: 小组/团队内
E4 ~ E6 能够善用人力(一般要带团队)和产品等杠杆进行规模化的生产(Utilizing skills to scale and generate leverage),职级越高越偏向战略方向、理念和文化建设
- E4: 整个团队范围
- E5: 几个相关团队范围
- E6: 整个技术部门甚至公司
4.具体做性能评估时,各级别工程师对5个关键区的权重不同,一般E1-E3偏重技术技能和交付,而E4-E6则偏重反馈、沟通/协作、领导力和战略性影响。
5.各个职级之间的另外一个主要差别在表现某种行为的频度,分为:
- 偶尔能
- 经常能
- 总是/始终能
6.该框架的目标不是将工程师培养成技术牛人,技术能力在整个框架中只占五分之一,而是希望提升工程师的综合素养和能力。
四、职级和胜任力评估框架
1、技术技能
1.1 质量和测试
1.1.1 写代码
职级 | 胜任力 |
---|---|
E1 | 写代码时能意识到代码的可测试性和可读性的重要性,能意识到边界情况和错误处理。 |
E2 | 总是能写出易于测试和易于他人理解的代码,能考虑到各种边界情况并做合理错误处理。能书写有效的代码文档。 |
E3 | 总是能写出易于测试和易于其他开发者理解的生产级的代码,能充分考虑各种边界情况和做充分的错误处理。知道在必要时写代码注释,同时尽量让代码自注释(self-documenting)。 |
E4 | 同E3 |
E5 | 同E3 |
E6 | 同E3 |
1.1.2 测试
职级 | 胜任力 |
---|---|
E1 | 知道测试金字塔。能写单元测试(有时需要高级工程师的协助)。 |
E2 | 理解测试金字塔原理,并能根据测试金子塔的原理来编写单元测试,能在高级别工程师指导下编写高层测试(组件、集成、e2e测试等)。不仅能测试成功路径(happy path),同时也能充分测试边界和错误情况。 |
E3 | 理解测试金字塔原理,并根据其原理来编写底层单元测试和中高层测试。能写出高质量的测试用例,全面覆盖成功路径、边界和错误情况。 |
E4 | 理解团队所使用的测试方法,通过质量指标改进测试。能根据团队所采用的测试框架和测试金字塔原理来改进测试方法。 |
E5 | 理解多个团队所使用的测试方法,并通过质量指标来改进测试。和这些团队协作,根据所采用的测试框架和测试金字塔原理来改进测试方法。能对组织的测试战略施加影响。 |
E6 | 理解公司级的测试方法,并通过质量指标来改进测试。和所有团队合作,根据所采用的测试框架和测试金子塔原理来改进测试方法。推进公司级的测试战略。 |
1.1.3 调试
职级 | 胜任力 |
---|---|
E1 | 理解调试基础,知道如何使用调试工具。 |
E2 | 能够使用系统性方法定位和调试单个服务的问题。 |
E3 | 能够熟练使用系统性方法定位和调试单个服务中的所有问题。能够使用系统性方法定位和调试跨服务问题(有时需要更高级工程师协助)。 |
E4 | 在所负责的领域内,能熟练使用系统方法定位和调试所有问题。 |
E5 | 在所负责的几个领域内,能熟练使用系统方法定位和调试所有问题。 |
E6 | 在需要时领导跨部门的事件应急响应机制。使用系统性方法定位和调试跨部门边界的问题。 |
1.1.4 可观测性(Observability)
职级 | 胜任力 |
---|---|
E1 | N/A(该级别暂无要求) |
E2 | 知道组织 |