Coolblue is a fast growing company and our IT department is everything but an exception. The web-platform community has almost doubled in size last year. Here we describe how our teams are structured in order to cope with frequent composition changes.
It can be a true challenge to work in a team for a company that is growing as fast as Coolblue is. New people join the department every month and new teams are created to accommodate them. These new teams also have to include Coolblue veterans who support new developers with their experience with the codebase and the company culture. This means that all teams go through frequent reorganisations, with people leaving and people joining.
For these reasons our IT Department embraced a new structure. This will permit our teams perform well even with tens of people joining the department each month. Beside performance, a new structure should let team members to improve their skills and become every day a little better.
What does a perfect team look like?
When we approached the creation of a new structure, we first needed to understand what makes a perfect team at Coolblue. We came up with 4 simple Guiding Principles:
1. Simple Team Structure.
Teams are responsible to get things done. Nobody gives directives on how the team should organise their work. Coolblue gives only Basic Agile Principles and Good Practices which every team should embrace, such as MVP (minimum viable product) and learning from customers. Teams work closely with:
- a Product Owner, aka the voice of the stakeholders, who is responsible to collect information, desires and requirements from the stakeholders;
- a Scrum Master, who helps the team embracing the Agile approach and getting rid of any kind of impediment;
- a Team Lead, who supports the team and single members to define goals, to get better each day.
2. The Goal is the Team Glue.
Team members work together in order to accomplish a defined and shared Goal. The Goal is the scope of the team, the reason the team exists and the value which drives all the team efforts. This is the reason why they work together as a diverse collection of personalities, backgrounds and skill sets.
3. The Team decides its composition.
Teams are responsible for deciding who is going to join. This makes teams responsible for improving their process acquiring specific skills that a new member can introduce.
4. Strive for Awesomeness.
Team should work in a fertile environment where magic can happen. In order to create this environment, each team “speaks” agile. We are focused on communication: we promote teamwork and we are proactive in asking and giving feedback. We aim to have people making things done instead doing them directly. That’s why we care about helping others improve. These actions result in a balanced team where everyone is an active and essential working part.
Domains, Families and, finally, Teams.
The Guiding Principles are the fundamentals of our new structure. The first principle describes our basic structure, the team:
The second principle defines our first necessity: teams need a goal. Coolblue expects the teams to feel responsible for their domain, making their job a mission. Frequent and big changes in team composition oppose this idea. To avoid this, we have started a pilot in order to move the goal to a higher level by introducing Families for the teams that work on our E-commerce platform.
In real life, a Family has his own values and rules; mature Family members support young members to accomplish their goals in life according and honoring Family values.
Each family is formed by multiple teams, and all of the teams in a family share the same domain and goal. The team structure, defined by the first principle, is spread at a family level as well.
Team Leads and POs are part of a single family, fostering specialization. In the past, Team Leads were responsible for coaching people of different teams. Now they take care of the family members who work in their domain. This will guarantee a better and deeper understanding of the context the developers are moving into, eventually making Team Leads more effective in supporting them.
In addition, as defined in the third principle, each family is responsible for deciding who will be added to its teams. When new colleagues join, the family can reorganise its teams without jeopardising performance, since teams will continue to work on the same family goal. This should make families more efficient while coping with particular issues which require moving a developer from one team to another. For example, it is common for UX designers to join different teams over time. Finally, as stated in the third principle, family members are involved in the recruitment process since the beginning. They can define the skills they need to improve their process and performance and attend interviews in order to assure candidates have the requested skills.
The new structure in practice.
So this is the theory of the new team structure. On January 1st we started with the roll-out of the pilot. Families had their kick-off and starting with defining their composition and their goals. On February 1st we had the first test of the structure, 15 new developers joined Coolblue. Now in March more have joined our teams.
In a follow-up blogpost we will discuss our practical implementation and our experiences so far.