February 12, 2019

Roles distribution in an Agile context

In an Agile organizational mode, one of the principles is to delegate the responsibility of the choices related to technical strategy to the Development Team.

By doing so, everyone is empowered, refines their estimates and only proposes approaches that they can undertake afterwards.

However,experience shows that they are preliminary conditions to this, the major ones being :

  1. the time allowed for the project is long enough;

  2. it is relevant to invest in the skills of the team;

  3. the development team possesses all required competences to make wise choices.

In the context of a project where the development team is composed of geographically distributed (or interchangeable) persons, it is sometimes more efficient to define clear roles and to limit the scope of the strategy within which each member will contribute.

To effectively delimit the work of each member of the team and keep the stapling of developed elements at a minimal cost, it is wise to:

  • work under real conditions from the very beginning (to allow everyone to have a clear idea of the interactions and constraints): having a strategy for duplicating the production environment is therefore crucial;
  • define test sets based on the expected final behavior (UAT or TDD rather than exhausting specifications)
  • impose a basic structure in terms of tools and frameworks (possibly spread across several stacks) :to make sure that each part of the work will be compatible with the others (API specifications, UI framework, Foundation Software, ...)