Feature teams / Component teams and co-location
Hello everyone
I am trying to get my head around feature teams vs component teams and thought this would be the best place to check my knowledge.
Component team - a group of people whose core competency is the same (e.g. QA, UI development, SysAdmin, Architects). Although their competencies are the same, they still rely other Component teams to create a workable product.
Feature team - a group of people with different competency but whom, together, can create a workable product without the aid of other teams. So, a feature team could be composed of 1 x UI Developer, 1 x backend developer, 1 x SysAdmin, 1 x Architect, 1 x QA tester.
Is that correct?
And how does this fit in with colocation. Should both be colocated? That is, should a feature team be co-located in one building, and if we wanted a component team, they should be co-located in one building too?
You could think of a feature team as one in which any integration dependencies for releasing useful work every Sprint lie under the control of the team. A component team can mean many things, but that principle will in some way be compromised.
If co-location would improve the collaborative potential of any team, then a case can be made for it. Dislocating a team is generally not without consequences.
I usually use a hamburger as an example to illustratie feature vs component.
Components of a hamburger are (but not limited to):
- Top bun
- Sauce
- Tomato
- Patty
- Lettuce
- Sauce
- Bottom bun
But when I go into the MacDonalds, and order my burger, I don't want each of those delivered seperatly.
I want a complete feature, a bite of the complete burger every time I put my teeth down.
Co- or dislocation depends on the team and the situation, I guess. Communication wise etc. it's usually more efficient to be colocated.