Developers

Working agile and designing teams that can transform customer needs and demands into awesome features swiftly is a difficult task. In many cases Scrum and agile training is brought in to an existing organisation in an attempt to solve the puzzle. This is the first step into building an agile organisation but the transformation should not end there.

Next step could easily be a redesign of your organisation to increase agility. Before doing so, let’s review some awesome examples from the real world:

  1. Spotify. We all know about the engineering culture that Henrik Kniberg promoted few years back. He helped the organisation to work in squads (team), tribes (department), guilds (network) and chapters (center of excellence). But some of the key elements that most misread is that the teams work autonomously on a single product that can be deployed in separate releases. They have the mandate to decide what to build, how to build it, and how to work together while building it. To acknowledge that certain parts of the application requires different skills they have divided into three segments: feature, client app and infrastructure.
    Going back to the organisational design of Spotify: Employees are organised in chapters by their competencies and work in a squad. This means that all web developers belong to the same chapter and refers to the same chapter lead, but their daily work is conducted in their squad together with the rest of the members.
  2. Amazon. In recent years Jeff Bezos and his thoughts have grown in popularity in the agile community. One of his “rants” target the organisational design with the “two-pizza teams”.  One of the elements of the “two-pizza teams” is, naturally, the size of a team (6-10 persons), however another point is about building autonomy and accountability. Each team has a single success metric called “fitness function” which could be profit/loss on the product they produce. The team is empowered to take actions to maximize the outcome of the “fitness function” by any means necessary. This heavily relies on a divisional structure in the organisation. Each product is a company within the company. Their primary goal is to bring results to the table.
    In addition to the “two-pizza teams”, Jeff Bezos also issued a mandate in early 2000’s. This briefly describes that all development teams must deliver software as service that interact with other services. One of the effects of this mandate was that teams were responsible for the full stack of their services: they own the source code, they own the data, they own the databases and they only depend on well documented interface from other teams and their services.
  3. Lunar Way. Very few have yet to hear about Lunar Way. They are a small Danish fin-tech startup that strives to make everyday banking easier. Even though they are a young company, they have made some mistakes in the beginning which they are trying to solve. One of the issues is organisational design. Over a short period of time they found that silos were sneaking into their organisation and decided to act on it: they took great inspiration from the Spotify engineering culture and organized into squads – migration, topup, credit, kpi, push notifications, rules and UX. Each squad being cross-funcational consisting of backend developers, app developers, business developers and marketing people.

You might read the above references and think that they don’t apply to your specific organisation. You are wrong. No matter how big or small your organisation is it is crucial that you change the design into divisional structure aligned with the products that you have on display. If not, any effort towards being agile will be sub-optimisation.

Inspiration to organisational design:

  • Teams should own their product and have the right to decide what to build, how to build it and how to collaborate. Rethink your products and form teams around them.
  • Code base should follow the products. Refactor your code to fit the products and teams.
  • Have feature and infrastructure teams but make sure they can release independently. The primary goal of an infrastructure team is to make life easier for feature teams.
  • Teams should have ownership of as much of their software stack as possible. If your team develops the playlist functionality they own everything from the database to the frontend user interface displayed in mobile apps, web interfaces, etc.
  • Enable cross-organisational chapters to a) make sure all teams have the right set of competencies and b) coordinate training and aligning on relevant aspects.
  • Ensure mandate, accountability and success metrics for all teams. Teams should know their boundaries and know when they are a succes!

Related resources: