There are many differences between traditional functional teams and agile teams. Below I listed some that I think is part of the key differences between these two modes of team operation.
Traditional Functional Teams…
- Are hierarchical. Some roles are subordinated and managed by other ones.
- Have functional boundaries that slow down the communication process, increasing information loss and distortion.
- Usually, struggle to see the whole picture of the job to be done leading to a phase-gated – waterfalled – mindset and fragmented ownership.
- Have conflicts that arise when things don’t go well and the natural instinct to look for who to blame deviates the team from its purpose that should produce pieces of valuable working software.
- Usually, struggle to create organizational synergy since each individual team is working on its own priorities and don’t have time to support each other. Functional teams foster competition over collaboration.
- Improve processes in isolation leading to local optimizations that may negatively affect other processes.
- Aren’t hierarchical. There is no subordination and the team manages itself according to their work context.
- Have better communication and reduced information loss and distortion due to the inexistence of functional boundaries.
- See the “whole picture” of the job to be done, since the team builds working software as the outcome of each iteration.
- Are responsible to do all the necessary work to produce valuable working software. There’s no need to look for someone to blame if the team fails because success or failure is a team responsibility and not an individual one.
- Naturally generates organizational synergy because every team member is aligned towards a unique, shared, and agreed product/business goal.
- Foster collaboration over competition.
- Seek for improving the entire process of creating working software by looking with a systemic view of the issues and finding solutions that address the root causes and not the symptoms.
Of course this is a simplification of this complex topic but in general, one can say that the list above is a good representation fo the key differences between traditional and agile teams.
Bear in mind that when by agile, I’m meaning teams with capacity and skills to respond faster to changes and that builds software in a more experimental and iterative way so that the feedback loops are accelerated and the right software is delivered at the right time. I’m not talking about any particular framework or method here.
The characteristics listed above might be achieved with or without a particular framework or method.