Recently, the Strava Engineering team took a weeklong break from regular product work to focus attention on our core technology platforms. We coined this effort Guild Week. Before explaining Guild Week, it’d be useful to understand what a “Guild” is at Strava.
A Brief History of Guilds at Strava
Like most software companies, Strava started off with a single product development team, consisting of engineers, product managers, and designers. Engineers and designers were “free agents”, and worked on whatever project was highest priority. Eventually, we reached a point where that single team became unwieldy to manage. Product managers couldn’t plan for the medium / long term because they couldn’t count on having engineering and design support. Engineers couldn’t develop expertise in specific areas of the product, and also didn’t have the time to make longer-term investments in more complex product features.
To solve this problem, we split product development into what we called “vertical teams” — smaller teams comprised of mobile and web engineers, designers, analysts, and a product manager that each focused on one aspect of Strava’s product. These teams are relatively stable — we have had Growth and Premium vertical teams for over two years.
Of course, any team structure represents a compromise. In our case, the vertical team structure split iOS, Android, and Web engineers across multiple teams, which made it difficult to maintain consistency and cohesion across technology platforms. To counter this problem, we created a secondary team structure called Guilds. Each iOS, Android, and Web engineer became a member of their respective Guild in addition to their vertical team.
The Guilds are responsible for their technical platform: onboarding new engineers in that platform; keeping the platform current with the latest technologies; maintaining consistent design patterns across each codebase; and teaching one another about best practices.
We try to spend 10% of engineering time working on Guild projects. Tackling larger Guild projects is challenging when each engineer in the Guild is also responsible for projects on their vertical team. Guild work is of strategic importance to Strava — a healthy codebase enables us to build great products, and keeping our technology stack up-to-date ensures that our engineers are developing skills in modern systems and frameworks. As a result, we decided to supplement the 10% ongoing time with a series of Guild Weeks scheduled throughout the year. During a Guild Week, all engineers devote 100% of their time to their respective platforms. In this blog post series we’ll explore what each of our Guilds did during their first Guild Week of 2018.