📌 如何成长和升级为软件工程师
大约 7 分钟
📌 如何成长和升级为软件工程师
基于 CircleCI 工程能力矩阵,让我们更多地了解不同的成长机会以及如何提升我们的职业生涯。
指导方针
- 每个主题都使用编号列表,编号越大,资历级别越高。通常,每个都建立在前一个之上。
- 初级-高级级别通常侧重于执行工作的工程师(第 1 和第 2 名),而职员-校长级别则侧重于指导和指导他人的工作(第 3 名及以上)。
- 能力通过影响来扩展:任务→项目→里程碑→团队→跨团队→组织。
- 能力也通过增加频率来扩展:有时→通常→总是。
技术能力
编写代码
- 始终如一地编写可测试的、其他开发人员易于理解的代码。
- 有效记录。
测试
- 了解测试金字塔(单元测试、集成测试、端到端测试)并确保它们处于良好的位置。
- 了解团队测试方法,并相应地推荐解决方案。
- 与其他团队合作推荐解决方案
- 推动公司范围内的测试策略。
调试
- 使用系统的方法来调试位于单个设备中的问题。
- 熟练使用系统调试来诊断跨服务问题。
- 领导整个组织的事件响应。
可观察性
- 了解团队监控理念。
- 将其用作建议稳定性和性能改进的基础。
- 驱动监控工作
- 在多个团队和组织中培养可观察性文化。
理解代码
- 了解团队领域的一部分,知道如何在其中高效地工作。
- 对团队的领域有较高的了解,在某个部分具有专业知识。
- 具有团队领域的专业知识,包括服务的广度、它们如何交互以及系统之间的数据流。
- 在一组相关团队的领域和组织架构方面具有专业知识。
软件架构
- 设计与整体架构相一致的功能。
- 有效地利用抽象和代码隔离。
- 架构师可扩展的服务和系统,做出设计决策,权衡取舍。
- 指导多个团队培养可扩展架构的文化。
安全
- 使用安全镜头处理所有工程工作,积极寻找代码和同行评审中的漏洞。
- 在整个团队/组织中培养安全第一的心态。
送货
工作分解
- 批判性地审查任务并确保它们的范围适合持续集成和增量交付。
- 审查史诗和项目,并确保它们被分解、适当地确定优先级并被团队充分理解。
- 审查跨团队的工作并确保所有团队都很好地理解它们。
优先级
- 确保对任务进行优先级排序并正确记录依赖关系。
- 在团队中工作,以培养与组织战略保持一致的优先级设置和紧迫性文化。
- 识别整个组织的依赖关系,并与各个团队合作,在它们成为问题之前解决它们。
处理歧义
- 负责任且有效地处理您个人范围内的风险和不确定性。
- 有效地处理团队内部的风险。
- 有效地处理跨多个团队和组织的风险。
可靠性
- 了解优先事项并相应地交付它们。
- 在需要升级之前预测并传达阻止者和延迟。
- 确保阐明团队和外部利益相关者的期望。
- 成功管理跨团队的承诺、进度和交付路线图。
经济思维
- 采取行动时,权衡成本和价值,以做出最经济的行动。
- 很好地利用这一点并向队友提出建议。
- 在团队中培养一种文化,让人们运用经济思维做出及时的决策。
- 在多个团队和组织内部培养一种文化。
反馈、沟通、协作
提供/寻求反馈
- 以有用的方式向他们的团队、队友和经理提供表扬和建设性反馈。
- 当机会出现时,向团队的业务利益相关者提供反馈。
- 培养在团队内、跨多个团队和组织提供表扬和建设性反馈的文化。
有效沟通
- 以书面和口头形式有效、清晰、简洁地沟通技术和非技术主题。
- 能够与整个组织的多元化团队、一组团队进行有效沟通。
知识共享
- 了解您的领域,分享您的知识并经常为团队的文档做出贡献。
- 在团队内、跨团队和跨组织培养文档和知识共享文化。
团队合作
- 始终如一地帮助队友克服障碍,解决障碍并完成工作任务。
- 在整个组织中始终如一地工作,以使团队能够相互支持。
建立关系
- 致力于与整个组织的队友、经理和高级工程师建立牢固的关系。
- 致力于在整个组织内建立牢固的关系,并利用这些关系为工程组织制定更好的计划。
处理分歧
- 以非防御性的方式处理与队友的分歧,并使用相互矛盾的意见作为建设性、富有成效的对话的基础。
- 鼓励队友也这样做。
- 培养一种文化,鼓励人们以尊重的方式分享意见并为讨论做出贡献。
领导
做决定
- 努力做到客观,反思自己的偏见,并对决策和结果负责。
- 通过帮助团队成员根据组织目标做出明确的决定、支持做出的决定并为他们的成功负责,从而对团队中的决策拥有自主权。
- 拥有跨团队和组织做出的决策的所有权。
驾驶对齐
- 以目标为导向,确保团队不断朝着共同目标努力。
- 在团队内部培养一种文化,根据组织战略和原则进行对话以建立一致性。
- 在多个团队和组织中培养一种文化。
过程思维
- 定期思考团队实践和流程,并与团队讨论改进。
- 考虑影响多个团队的实践和流程,与相关方讨论改进,并推动实施。
- 对组织实践和流程及其持续改进负责并承担责任。
便利化
- 促进团队内部的讨论,确保每个人都有机会分享他们的意见并被倾听,并且没有人主导谈话。
- 促进团队之间的讨论,引导讨论做出决策,澄清并获得支持。
- 促进组织范围内的讨论。
指导
- 寻求指导以增加自己的经验。
- 专门寻找指导机会,以创造团队冗余和回填能力。
- 以开放、尊重、灵活、善解人意的方式指导跨团队和组织。
战略影响
商业头脑
- 对其团队的领域有透彻的了解,以及它如何为整体业务战略做出贡献。
- 对相邻团队的策略以及它们如何映射到他们的团队和交互点有透彻的了解。
- 对整个业务有透彻的了解,包括各个领域,以及它们如何为整体业务战略做出贡献。
战略工作
- 了解组织的工程战略。
- 根据组织的工程战略协作并决定其团队的工程工作。
- 领导跨团队和组织的战略工作,影响决策以实现跨团队在主要目标上的一致性。
产品思维
- 了解产品的重点领域,以及它如何融入整体业务。
- 寻找简化产品和技术设计的机会。
- 与产品团队合作评估和创建新产品功能。
- 识别与竞争相关的产品机会和差异化因素。
- 积极寻求与产品和业务伙伴一起在整个组织内创建或重新定义路线图。