Skip to content

guardian/engineering-performance-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Engineering performance framework

This is the framework we use to assess the performance of engineers every 6 months. Much like the software we write, this framework will never be perfect or finished.

For each role it is split into the same 4 categories:

  • 👩‍👨 People
  • 🚚 Delivery
  • 💡 Innovation
  • ✨ Initiative & Influence.

Where the progression framework sets out high level expectations for a role, which may not be achievable every quarter, the performance framework details everyday behaviours:

  • Criteria labeled "Core", we believe, contribute most to the department, and the expectation is that you consistently meet them
  • Criteria labeled "Growth", we believe, are behaviours which contribute towards you growing and developing within your role

Review

Every 6 months, at the end of Q1 and Q3, you and your manager will review your performance over the last 2 quarters using this framework.

During a performance review, each criteria within each category will be assessed as 'met' or 'not-met':

Taking an active role in your performance gives you the best chance of receiving a fair assessment and of getting the most out of your manager as they support your growth.

Roles

Individual Contributor
Engineering Management

See the following Indeed.com article for the difference between an "Individual Contributor" & "Engineering Management".

Salary bands

Salary bands for each role

Futher detail here (staff only).


Fellow and Associate Developer

👩‍👨 People

Core CriteriaGrowth Criteria
  • Proactively identifies opportunities to work with others.
  • Shows curiosity in others and their work.
  • Regularly collaborates with their team on their work.
  • Engages with departmental activities which uphold our departmental or engineering culture.

🚚 Delivery

Core CriteriaGrowth Criteria
  • Delivers small tasks independently.
  • Takes on bigger pieces of work with support.
  • Takes on PR feedback and improves their work.
  • Seeks advice from more senior engineers when they are blocked.
  • Shows awareness of data privacy or security concerns where relevant.†
  • Breaks down large problems into deliverable tasks.
  • Reliably delivers incremental changes with frequency. Can work mostly independently and unblocks their work when necessary by proactively reaching out to stakeholders, gathering data or provoking decisions/discussions.
  • Provides support to other engineers.
  • Reviews PRs with helpful comments.

💡 Innovation

Core CriteriaGrowth Criteria
  • Finds creative and effective solutions in their own work.
  • Contributes ideas for solutions and process improvements in team discussions, and is able to build on the ideas of others.
  • Actively exploring new approaches in their own work.
  • Uses relevant data or metrics as an input to solutions when relevant.†

✨ Initiative and Influence

Core CriteriaGrowth Criteria
  • Contributes ideas in team discussions.
  • Occasionally demos their work to the team or stream.
  • Seeks to actively understand what they are being asked to do, and why.
  • Focuses their learning and development plans to align with team goals.
  • Gives useful feedback to their colleagues.
  • Regularly seizes opportunities such as demos or sponsor meetings, to communicate what they have been working on.
  • Makes data-backed suggestions on what the team should be doing next.
  • Takes opportunities to learn about wider department work through involvement in cross-team discussions or groups such as Accessibility Champions. Represents the team occasionally but is likely to refer more complex issues to others.

Software Developer

👩‍👨 People

Core CriteriaGrowth Criteria
  • Each quarter provides some mentoring or guidance to colleagues (e.g. mentoring, onboarding, constructive PR reviews or discussing approaches online or offline). This should not simply be contributing an opinion on a technical approach, but taking the time to introduce or improve someone’s understanding of a topic in a supportive and encouraging way.
  • Always willing to help others.
  • Demonstrates inclusive behaviours as part of their everyday work.
  • Regularly provides mentoring and guidance to colleagues and has become known for this.
  • Undertakes departmental activities which uphold our departmental or engineering culture.
  • Ensures the opinions of others in their team are heard and that decisions are made by consensus.
  • Participates in some activity which aims to improve the inclusivity of our department.

🚚 Delivery

Core CriteriaGrowth Criteria
  • Breaks down large problems into deliverable tasks.
  • Delivers incremental changes frequently, reliably and with consistently good quality (e.g readable code which adheres to team standards).
  • Takes responsibility of their code from local testing to supporting it in production.
  • Only occasionally requires support from peers depending on the task, technology and prior experience.
  • Regularly reviews team PRs.
  • Recognises when they’re near their limit and reaches out for help from others.
  • Identifies problems to solve and engages the team in scoping and prioritising their delivery.
  • Demonstrates an understanding of external schedule constraints and calls out potential issues during estimation
  • Evaluates multiple options to solve technical problems (using data where relevant†), and is trusted by the team to implement their recommended solution.
  • Regularly reviews team PRs providing helpful comments (e.g. constructive criticism / alternative approaches). Occasionally reviews PRs in projects where they have less context (e.g. outside their immediate team or dormant projects) with the same consideration.
  • Helps to unblock their peers or shares responsibility for their tasks, in order to meet the team delivery goals.

💡 Innovation

Core CriteriaGrowth Criteria
  • Critically evaluates innovative concepts and ideas presented by others.
  • Suggests and helps to implement process improvements and engineering best practice.
  • Works with one or more of Product Managers / Engineering Managers / Data Analysts to ensure relevant data is gathered and available for analysis & decision making.†
  • Regularly introduces new technical approaches when appropriate, which are adopted by the team, and make the team more effective.
  • Keeps up to date with evolving best practice in their field.

✨ Initiative and Influence

Core CriteriaGrowth Criteria
  • Aligns what they are working on to their team’s goals.
  • Regularly gives useful feedback to more senior colleagues.
  • Seeks to fully understand the end goal of the tasks they pick up, and is mindful of this throughout the delivery lifecycle.
  • Provides input into architectural design choices.
  • Regularly demos their work to the stream.
  • Encourages their colleagues to do their best work.
  • Uses relevant data and metrics to inform new ideas and make persuasive arguments.†
  • Regularly gives feedback to the team on improving their ways of working, and to team leads each quarter. Helps to implement some of these improvements by being an advocate for them.
  • Regularly demos their work to the team, stream or stakeholders, and contextualises the impact of that work.
  • Supports the team leads in making architectural design decisions (e.g. by writing options papers or architecture decision records).
  • Contributes towards maintaining code and product accessibility standards
  • Represents the team in cross-team discussions and involves others when appropriate by sharing challenges and progress.

Senior Developer

👩‍👨 People

Core CriteriaGrowth Criteria
  • Actively seeks to share knowledge with their colleagues, choosing communication method/styles that are appropriate to them and the situation.
  • Makes a positive contribution to the inclusivity, atmosphere and culture of the department.
  • Regularly advises or mentors others in a way that accelerates their personal development.
  • Seeks to share knowledge beyond their team where useful/relevant (e.g delegates learning opportunities).
  • Consistently communicates the intention and outcomes from their work, leaving their work in a state where others can easily pick it up (e.g produces well worded requirements, PRs, documentation, etc). Encourages this behaviour in others.
  • Engages with departmental activities which improve our company or engineering culture and inclusivity.
  • Proactively encourages others to share their opinions and insight. Manages their own input to discussions to ensure they do not overly influence decisions.
  • Coaches and mentors their colleagues to perform better, be happy, motivated and fulfilled in the work they undertake.

🚚 Delivery

Core CriteriaGrowth Criteria
  • Delivers reliably and with consistently good quality code (e.g. well tested and readable) which defines team standards.
  • Takes responsibility of their code from local testing to supporting it in production.
  • Regularly reviews team PRs providing helpful comments, constructive criticism or suggested alternative approaches (using relevant data and metrics where relevant†).
  • Demonstrates understanding that delivery goes beyond their individual contribution. (E.g. encourages others to improve their own delivery; manages dependencies on other projects and teams; balances short-term delivery with longer term objectives of own and other teams).
  • Committed to meeting their team’s objective and key results. (E.g. adapts delivery approach to meet the needs of the team, unblocks obstacles and supports the team in delivering its goals).
  • Regularly takes on more difficult tasks which require input from various teams or disciplines.
  • Plays a leading role in planning technical strategy for the team, or shaping the team’s delivery plans.
  • Informed by other disciplines, champions collecting the right data and metrics for each product.
  • Makes their team successful in meeting their objectives and key results.
  • Balances risks to ensure team delivery.
  • Monitors system and delivery pipeline health to ensure quality of service and team productivity.
  • Brings the team or multiple teams together to maintain delivery pace and quality during periods of change and uncertainty.
  • Communicates and documents their work thoroughly.

💡 Innovation

Core CriteriaGrowth Criteria
  • Identifies opportunities for their team to improve their processes or introduce new technologies, and follows through to ensure the intended benefit is realised.
  • Works with one or more of Product Managers / Engineering Managers / Data Analysts to ensure relevant data is gathered and available for analysis & decision making.†
  • Leads by example to promote and encourage a culture of continuous improvement within their team.
  • Performs detailed R&D on new technologies and architecture patterns, and frames and shares the results accordingly.
  • Ensures that all members of the team are brought on board with new solutions, processes and technologies.

✨ Initiative and Influence

Core CriteriaGrowth Criteria
  • Drives work activities to meet team goals, helping to define tasks, business outcomes, technical quality & OKRs.
  • Helps keep the team focused on their long-term goals and values.
  • Gives regular feedback to the team and engineering manager and actively seeks to make improvements based on team and personal feedback.
  • Works with other engineers to determine the technical architecture within the stream.
  • Shares what they have learnt by tackling difficult technical and people problems.
  • Regularly involved in cross-team discussions and uses their experience to influence outcomes (e.g. communicates own team’s context to improve shared understanding.)
  • Demonstrably moves the team’s key result scores as a result of the work they undertake.
  • Demonstrates how the team can learn and improve from failures.
  • Always ensures plans and outcomes are well communicated to stakeholders and the wider business as appropriate.
  • Leads work with other teams to solve cross-team challenges. Understands concerns of other teams and works to balance delivery across boundaries in order to deliver the best outcome overall.
  • Is responsible for maintaining code and product accessibility standards

Staff Developer

👩‍👨 People

Core CriteriaGrowth Criteria
  • Constantly uses their knowledge and experience to raise the capabilities of their colleagues.
  • Leads by example with the quality of their communication through appropriate means (e.g. exemplary requirements, PRs, documentation and presentations that could be understood with little context in the future.)
  • Promotes a culture of respect that influences team processes - leading to effective decision-making and empowerment of others.
  • Identifies potential structural improvements to knowledge sharing, communication or culture of the department and acts on this to deliver improvements across the department.
  • Encourages all staff to perform better, be happy, motivated and fulfilled in the work they undertake.

🚚 Delivery

Core CriteriaGrowth Criteria
  • Plays a strategic role in the stream’s technical decision making
  • Enhances the strategy of the stream through data-informed decision-making†.
  • Produces high quality code which defines stream standards, and inspires other engineers’ delivery.
  • Provides feedback on important PRs and team’s solution design sessions.
  • Fosters a culture of continuous improvement and high delivery momentum across the stream.
  • Balances short term goals and long term needs.
  • Focuses on high impact and high value work.
  • Demonstrates understanding that delivery is more than just their individual contribution. (E.g. Delegates learning opportunities; encourages others to improve their own delivery; manages dependencies on other projects and teams).
  • Committed to meeting their team’s objective and key results.
  • Helps to unblock obstacles and supports the team in delivering its goals.
  • Takes responsibility of their code from local testing to supporting it in production.
  • Ensures collection and utilisation of relevant and high-quality data for their products and systems.†
  • Staff Developers make successful delivery outcomes happen, for example by either:
    • Tech leading a significant engineering project which requires coordination with many other teams and disciplines within GNM.
    • Turning around the delivery trajectory of a struggling team.
    • Strategically contributing to the department’s technical and organisational decision making.

💡 Innovation

Core CriteriaGrowth Criteria
  • Identifies systemic problems and opportunities beyond the scope of one team, promotes and considers them with others and evaluates potential solutions. Seeks to find the 80/20 solution that delivers the greatest portion of value for the least effort/cost.
  • Introduces new approaches that have an impact on most teams within the department.

✨ Initiative and Influence

Core CriteriaGrowth Criteria
  • Hosts department-wide forums where knowledge and experiences are shared.
  • Provides a solid voice of technical authority when there is uncertainty that’s stalling engineering progress.
  • Helps teams determine the right objectives and goals, and find an appropriate balance of health and maintenance alongside their delivery.
  • Helps teams find technical solutions that are cohesive and fit within the department’s vision and culture.
  • Actively works to help engineering teams be set up to succeed.
  • Demonstrates how the department can manage failure, fail fast, and learn and improve from such failures.
  • Champions Guardian P&E solutions, culture and values externally. For example by hosting external meet-ups, presenting at conferences, or writing blog posts.
  • Enables software to be produced that can be used by, or benefits external communities and is widely accessible.
  • Ensures we don’t encounter unmitigatable or unforeseen technical problems.
  • Demonstrates deep understanding and engagement with engineering or product data.†

Principal Developer

👩‍👨 People

Core Criteria
  • Works with other Principal Engineers across the department to ensure their individual stream strategies align, and that common issues are resolved department wide and not stream-by-stream.
  • Shares knowledge across the department through technical presentations, writes articles, pairs with more junior colleagues, and other appropriate mechanisms.
  • Helps to investigate complex technical issues and provides guidance for more junior developers when dealing with an incident.
  • Mentors Tech Leads and provides guidance on subject architectural choices review and prioritisation of technical debt.

🚚 Delivery

Core Criteria
  • Provides technical guidance and oversight to the multiple development teams in your stream.
  • Ensures sound technical architecture with technologies interoperating or connecting well to each other, enabling scale and flexibility to the business.
  • Fixes some issues when your help is requested or you see an organisational or technical value in resolving the problem.
  • Helps define and review stream teams’ Service Levels Objectives (SLO), contributing to streams teams’ backlog prioritisation strategies to match them.
  • Leads evaluation of new technologies and vendors, establishing key technical criterias for assessment, performing some of the technical assessments, and summarising clearly the benefits and drawbacks.

💡 Innovation

Core Criteria
  • Participates actively in the engineering culture of the department through encouraging technical innovation adoption and modelling the behaviours laid out in it.
  • Encourages early adoption of relevant new technologies.

✨ Initiative and Influence

Core Criteria
  • Attends key meetings with Stakeholders and provide detailed technical views on the subject being discussed.
  • Advises on technical challenges and opportunities in conversations with Product Managers, sponsors and senior stakeholders.
  • Leads collaborative discussions around evolving best practices (such as accessibility standards), defining our engineering standards.
  • Seeks out systemic problems and opportunities, and presents proposals to the Head of Engineering on how to, respectively, remediate them and benefit from them.
  • Advises on new technology trials based on your previous experience, and mentor more junior developers in their technical discovery and technology intelligence.
  • Works with one or more of Product Managers / Engineering Managers / Data Analysts to effectively communicate data-informed insights which inspire action from colleagues and stakeholders.†

† - Criteria marked with the 'obelisk' icon are new changes (2024-May) that are optional until after the current review round. The Engineering Management team are reviewing the progression and promotion frameworks generally, including adding data-related responsibilities. However we believe it's fair that changes to criteria are made and established well before a review round. For now - feel free to provide evidence towards them, or delete them.