Stretch Opportunities for Engineers

Stretch opportunities are tasks or projects that are a bit beyond your current skill or knowledge level and that allow you to improve and learn new things. They are also essential for growth. At SoundCloud, some teams introduced a process so engineers can take on stretch opportunities. In this blog post, I’ll explain how this works for the Content Team.

The need for stretch opportunities within the Content Team was raised in a retrospective. An engineer stated that they wanted to broaden their role and be exposed to requirement gathering, meetings with stakeholders, and driving new projects. Other engineers also showed interest, so we began discussing as a team what that would mean and how we could accomplish this. Based on these discussions, we ended up introducing the Project Lead role.1

The Project Lead role is a voluntary non-permanent role that a team member gets assigned for the duration of a project. We assign the role for a new project when the current project is coming to completion and the new project will become the next main focus for the team.

Role Responsibilities

The team member in the Project Lead role takes over some of the responsibilities previously held by the Engineering Manager (EM) while still being supported by them. The responsibilities of a Project Lead are to:

  • Be the technical representative for the project within the team but also externally. We expect that they answer questions about the implementation and participate in meetings with stakeholders.
  • Write the Request for Comments (RFC) for the project and request and respond to feedback from the team and external stakeholders.
  • Be the driver for the execution and delivery of the project.

    • Surface the work that is left and break it up in smaller chunks together with the team.
    • Identify what work can happen in parallel and encourage team members to help out.
    • Estimate and communicate how many iterations are still needed to complete the project.
    • Identify blockers and resolve them or ask for help.
  • Make sure a retrospective happens when the project comes to an end, and find a facilitator for it.

Role Restrictions

In addition to the responsibilities of the Project Lead, we also came up with a list of restrictions:

  • The Project Lead can’t unilaterally make decisions. In case of unresolved conflict, the EM and/or Product Manager (PM) will make the final decision (for example, for different opinions about technical implementations or product/prioritization or anything else).
  • The Project Lead shouldn’t work alone. There can be some preparation work that happens in isolation for some time — for example, when writing the RFC — but we want to work as a team on all projects, as we think that getting different perspectives and leveraging the diversity of the team leads to better outcomes.
  • We stick to one Project Lead per project. In case of unplanned absence, the EM and PM should be able to cover all the expectations and responsibilities. In case of planned absence (vacation), the Project Lead should find a replacement or alternative solution before leaving, and they should do a handover.

Learnings

After using the Project Lead role for several years, we’ve seen many advantages.

Because the role is temporary and there is support from the EM and PM, it is a safe way for team members to take on additional responsibilities, and it’s an opportunity for growth and getting feedback.

The voluntary nature of it means that team members can step into the role for a project they feel comfortable with. We have no restrictions on the experience level needed to step into the role, however, we noticed less experienced engineers will typically volunteer for smaller projects, while more experienced engineers are challenged by taking on larger projects with potentially more stakeholders and sometimes dependencies on other teams.

We see that engineers who took on the Project Lead role, especially for larger projects, are in a better place for getting promoted because of the extra responsibilities they took on and the additional exposure they got outside the team. In fact, some of the Project Lead role responsibilities and expectations match well with some of our Level 3 Engineering Level expectations, in particular:

  • Drives larger projects reliably by delegating and coordinating
  • Coordinates work across team boundaries
  • Keeps the team honest and accountable to commitments
  • Constantly puts effort into understanding the business/product big picture

Furthermore, delegating some of the responsibilities previously taken on by the EM means that the EM will end up with more time for other things, which can be welcome, especially when leading larger teams.

Conclusion

The Project Lead role allows engineers to take on stretch opportunities. It’s also a way of acknowledging all the extra work that might not always be visible otherwise (what Tanya Reilly calls glue work).

The fact that the role is voluntary and on a per-project basis is great, because it means that everyone who wants to take on the role will have a chance to sooner or later. Furthermore, it also works for people who prefer to focus on contributing but not leading.

The Project Lead role concept may or may not work in your environment, but I believe it is important to create stretch opportunities for your engineers so they can get exposed to new skills, remain engaged, and grow.


  1. When talking about a project in the context of this blog post, I mean a software development project that has a purpose of reaching a certain outcome. A project can be part of a larger program consisting of multiple projects focused around a common theme.