Soft(ware)Ball

Soft(ware)ball

Software development is a cooperative game of invention and communication
J'en arrive à penser que cette phrase d'Alistair Cockburn définit l'essence du développement logiciel.

Oui, développer un logiciel c'est jouer à un jeu.
Sans vouloir paraphraser Agile Software Development: The Cooperative Game qui l'explique bien mieux que je ne pourrais le faire, le développement logiciel est un jeu coopératif dont l'objectif est de mettre en production un système.

C'est réellement un jeu coopératif, c'est à dire un jeu où tous les joueurs gagnent ou perdent ensemble. Par tous les joueurs on entend les clients, les développeurs, etc. C'est d'ailleurs ce que nous rappelle le manifeste agile : la collaboration avec les clients plus que la négociation contractuelle.

Le développement logiciel est un jeu car son issue est incertaine. Même si on élabore une stratégie et que, plus localement, on fait appel à diverses tactiques, on ne peut gagner que par l’adaptation au changement plus que le suivi d’un plan.

La communication entre les divers joueurs tient un rôle primordial. C'est pour cela que l'on valorise les individus et leurs interactions plus que les processus et les outils.

Toutes ces notions sont importantes, et il n'est pas étonnant de voir aujourd'hui se développer leur apprentissage à travers le jeu. On joue à des jeux pour reproduire en quelques minutes ou en quelques heures les mêmes mécanismes de coopération, communication et adaptation au changement que l'on retrouve en grandeur réelle dans le jeu du développement logiciel.

Soft(ware)Ball est un jeu qui s'inscrit dans cette lignée. Mais alors, pourquoi proposer un jeu de plus s'il en existe déjà tant ?
A cause de la valeur manquante du manifeste, celle qui met en avant le logiciel opérationnel. La conception d'un logiciel implique l'invention et la combinaison de certains mécanismes. Même s'il y a une part importante de créativité dans certains jeux, celle-ci ne ressemble que rarement à celle mise en oeuvre dans le développement logiciel.

Durant les trois dernières années, j'ai animé des ateliers Stub et Mock montent sur scène et Si t'es pas SOLID, t'es pas agile pour faire découvrir certains principes et pratiques de développement logiciel. Ils avaient en commun le fait d'utiliser des "composants humains" pour assembler un logiciel. Cette approche a le double mérite de pouvoir faire de la programmation (et donc d'inventer des mécanismes) dans un temps relativement réduit et sans connaissance particulière d'un langage informatique.
Soft(ware)Ball reprend cette idée[1] pour devenir un jeu coopératif de communication et d'invention.

Vous pourrez découvrir Soft(ware)Ball (et surtout y jouer)

Plus d'infos à propos du jeu seront ultérieurement disponibles sur http://www.softwareball.org/

Notes

[1] en fait, il reprend même le principe et les règles de Si t'es pas SOLID, t'es pas agile