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.
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 driver for the execution and delivery of the project.
In addition to the responsibilities of the Project Lead, we also came up with a list of restrictions:
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:
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.
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.
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.↩