We worked in six small teams with 4-5 developers in each team. Five of them worked on three different products and one team took care of infrastructure for product teams. Each team had a product owner from the client’s side.
The teams worked in two weeks iterations. During each iteration, we aimed to achieve a specific business-oriented goal. At the end of each iteration, we showed to our customer a working software addressing the goal planned for that iteration.
After the demonstration we gathered feedback from the stakeholders about the delivered product and spoke about next development steps.
Once a quarter the teams met with client’s product stakeholders for a planning session where all current priorities were discussed. All involved people met face to face in one place. The client was responsible for bringing business goals they wanted to achieve and ideas on how the goals could be achieved from a business point of view.
During the workshop client’s representatives and engineers agreed on the most important items from the list of priorities for the upcoming quarter and selected those that team will be working on. During the next step, teams planned their work in more details using popular techniques like event storming or user story mapping. As a result of this exercise, the teams had a rough idea of how much time would be needed to achieve their goals. They also identified potential impediments and dependencies with other teams.
After this part all teams came together again and synchronized their plans. At the end of the entire session, the team and stakeholders spent an hour on thinking how next quarter planning might be improved so it would be more informative, efficient, productive and engaging for all participants.