Our team has a practice of dynamically splitting down to work groups to solve different goals. Grouping happens through our normal weekly process, respecting these common ideas:
1. Each bigger task or project should be done within a work group of at least 2 devs + qa + ba
Because we believe that in the long run it is through teamwork that we can “deliver fast and with good quality every time”
2. Work group is created based on (suggested) people voluntarily deciding to work on it, but still ensuring enough competence.
Because being able to affect on what you work on is good for your motivation. And motivation is key.
3. Work group is responsible for deciding, planning, implementing, and releasing the next most important task(s) on the project.
Giving freedom and responsibility to the people who know best.
“Plans are useless but planning is indispensable”
Planning within group keeps all inline and provides many perspectives.
5. It is good to have both consistency, but also some variation on the work group (not always the same, but not always different members either)
Because focus is important. And variation keeps you fresh and away of tunnel vision.