The Development Team (a.k.a. the team)
By the Scrum guide:
- Self-organising: the team determines itself how to organise and execute their work
- Cross-functional: the team possesses all the necessary skills and competences to produce a potentially shippable product increment
The term feature team has been coined by Craig Larman and Bas Vodde (2010).
A feature team is a long-lived, cross-functional, cross-component team that completes many end-to-end customer features—one by one
A feature is able to take in a customer feature (requirement) and handle it end-to-end and in this way capable to deliver value iteration by iteration.
Most teams are not feature teams. There’s an attempt to create a cross-functional team, but that team does not possesses the skills necessary to implement a customer-centric feature end-to-end.
Traditional organisations are composed of component teams – a component team specialises in one particular line of work.
A feature team organization exploits speed benefits from specialization, as long as requirements map to the skills of the teams. But when requirements do not map to the skills of the teams, learning is ‘forced,’ breaking the overspecialization constraint.
Feature teams balance specialization and flexibility.
In large traditional structured organisations the number of component teams is huge: a sub team for each and every ‘phase’ of the project or system involved:
- marketing / business concepts, business analysis, functional analysis, copywriting, visual design, user interaction / user experience design, technical analysis, technical design, front-end development (subteams by technology), back-end development (many subteams for each component or layer), network, server-system infrastructure, mainframe systems, webserver, etc – the list is long.
There’s a terrible overhead and waste in coordination, hand-overs, communication.
Creating true feature teams is a major and important step in the organisation’s redesign to become agile.
The team itself is cross-functional, this means that the team as a whole requires the skills to implement the entire customer-centric feature end-to-end.
People within the team have multiple specialisation (skills): you need to ask and encourage (incentive) your team members to have secondary, tertiary skills. If the people don’t have those other skills, apply co-learning techniques.
Scott W. Ambler coined the term “generalizing specialists” to define the need for multi-disciplinary team members.