We have already seen the usual roles in agile teams and we mentioned that an agile best practice is to build a team that is cross-functional, sort of self-contained: all needed skills are inside it; a classic example: there is not an external quality assurance team that is testing the product but rather the testers are part of the team.
But why is there stress on the team being multi-disciplinary?
One reason has to do with our need to create customer-centric value: you want to be able to deliver a working product increment that brings some value to your customer.
Include a customer perspective in your team and you will produce something that customers like.
Include a salesperson and you will get something which is sellable.
Include someone from marketing and you will have something which is marketable.
Include a logistics person and you will get something which can be packaged and shipped at low-cost.
And so on.
Another reason is that cross-functional teams are faster.
As you progress towards value, you will discover many impediments and obstacles on your way. A team with a single or very few disciplines will constantly need to go outside of itself and ask for assistance, which will form queues and lower speed. A team with many disciplines, on the other hand, will be able to solve most things by itself.
This paradigm will also require less management, because most decisions can be made inside the teams, and this will help the team eventually to self-organise itself (note that self-organised does not mean self-directed: you still need to give it the right direction).
The summary is that the more disciplines you include, the more complex values can be delivered faster by the team.
You may not be able and should not go all the way in one step. Multi-disciplinary teams are the final goal, that can be achieved taking one step at a time. Add the customer perspective and make it work, than add the sales perspective and make that work, then add the next discipline, and so on. Set the direction, and keep going.
You also do not need to bring everyone inside: the key is to remember the concept of the core team vs. specialist supporting roles. You need to ensure that the team is self-sufficient by making sure all core competencies exist within the team but you cannot / do not need to have every single competence within the team, if you can rely on external specialists and use these techniques to minimise the impact and risks of the specialist:
- Focus the use of the specialist to one short iteration. During this period the specialist is available.
- Minimise the number of specialists needed and maximise each specialist’s time with the team.
Your long-term job is to minimise the need for specialists, and this is obtained with specialised generalists, also known as T-shaped skills: a person with a general knowledge of several subject areas and expert level skills in at least one domain.
Having many disciplines does it mean that the team is very large?
Actually not, try to use the above methods to keep the team small. Compact teams work better because there are less communication paths and over layers.
There are relations between N points that means only 3 connections between 3 persons but 45 between 10 persons …