Manifeste pour le développement de systèmes

Les personnes qui développent des systèmes s'intéressent à l'Agilité. J'ai fait récemment une intervention pour le Club des utilisateurs du System Engineering à Toulouse et je suis maintenant sollicité par l'AFIS.

J'étais pas mal impliqué dans ce domaine de l'ingénierie système il y a quelques années, avant de me consacrer entièrement à l'Agilité.

A l'occasion de mon intervention au Club des utilisateurs, j'avais proposé une relecture collective du Manifeste Agile, adapté au développement de systèmes. Il a été conçu au départ pour le développement de logiciel, donc quelques adaptations sont nécessaires.

Pour cela, je suis parti de la traduction en français du Manifeste faite il y a quelques années.
Voilà ce que ça donne, après le premier feedback des participants au Club utilisateurs :

Manifeste pour le développement Agile de systèmes

Pour mieux développer des systèmes, nos expériences nous ont amenés à valoriser :

  • Les individus et leurs interactions plus que les processus et les outils.
  • Des fonctionnalités montrables plus qu’une documentation exhaustive.
  • La collaboration avec les parties-prenantes plus que la négociation contractuelle.
  • L’adaptation au changement plus que le suivi d’un plan.

Tout en reconnaissant l’intérêt des seconds éléments, nous privilégions les premiers.

Principes

  1. Notre priorité est de satisfaire les parties-prenantes en leur fournissant rapidement, puis régulièrement, les fonctionnalités apportant le plus de valeur (déployées ou leur permettant d’apprendre ou de réduire le risque).
  2. Nous accueillons positivement les changements venant des parties-prenantes, même tard dans le cycle de vie, s’ils ajoutent de la valeur. L’Agilité s’appuie sur cette possibilité de changer pour apporter un avantage compétitif.
  3. Nous livrons fréquemment un incrément du système, selon une cadence de quelques semaines à quelques mois, de préférence la plus courte possible.
  4. Les utilisateurs et les personnes du métier, et plus largement les parties-prenantes ou leur représentant, doivent collaborer quotidiennement avec les équipes de développement, tout au long du projet.
  5. Nous développons des systèmes avec des personnes motivées. Nous leur fournissons l’environnement et le soutien dont elles ont besoin et nous leur accordons notre confiance pour organiser et faire le travail.
  6. Nous utilisons les moyens les plus simples et les plus efficaces pour communiquer à l’intérieur d’une équipe et entre les équipes ainsi qu’avec les parties prenantes, en commençant par le dialogue en face à face.
  7. Les fonctionnalités opérationnelles et observables constituent la principale mesure utilisée pour montrer l’avancement aux parties prenantes.
  8. L’Agilité encourage le développement soutenable : les équipes de développement et les parties prenantes (commanditaires et utilisateurs) devraient être capables, indéfiniment, de maintenir un rythme constant.
  9. Une attention continue à la qualité (de la conception, de la réalisation et de tout le développement) renforce l’Agilité, en limitant la dette technique.
  10. La simplicité – c’est-à-dire l’art de maximiser la quantité de travail qu’on ne fait pas – est essentielle.
  11. Les meilleures architectures, spécification et conceptions des systèmes émergent d'équipes auto-organisées.
  12. À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis décide des axes d’amélioration et ajuste son comportement en conséquence.

Si vous avez une expérience de l'Agilité en ingénierie système, votre contribution est la bienvenue.