Les DSI face aux enjeux de l'usine logicielle

L'adoption des pratiques "agiles" fait partie désormais des incontournables de la gestion d'une DSI. Avec à la clé de sérieux gains en termes de performance.

L’industrialisation du développement consiste à déployer des pratiques et outils visant à rendre les logiciels développés plus robustes, tout en restant dans des délais et coûts maîtrisés.

Cette montée en maturité repose généralement sur une plateforme de développement de type industriel.
Cette plateforme est schématiquement basée sur deux outils serveurs:
*
Une chaîne de gestion de projet permettant : partage des documents projets, suivi d’avancement des équipes, reporting des anomalies/bugs, synthèse de l’avancement projet sous forme de tableau de bord. Cette première chaîne permet la maîtrise des délais et coûts du développement;
* Une chaîne d’intégration continue permettant : tests automatiques, assemblage de l’application, génération de documentation, déploiement. Cette seconde chaîne permet la maîtrise de la fiabilité et de la robustesse des logiciels;

A ces deux solutions serveurs, viennent s’ajouter un certain nombre d’outils localisés sur les postes utilisateurs :
* Outils de modélisation pour les analystes et les architectes;
* Environnement de développement et outils de tests de code pour les développeurs;
* Outils de gestion d’exigences et de gestion de projets pour les chefs de projet.            



L’exemple ci-dessus illustre le principe d’intégration continue qui reprend certains aspects énoncés par les méthodes dites “agiles” :

1.
L’équipe de développement programme la journée sur un projet en utilisant un outil de contrôle de version (Subversion).
2 -
 Un développement est terminé pendant la journée, le développeur concerné le met à jour dans le contrôle de version (checkin).
3 -
 Le système d’intégration continue détecte la mise à jour des sources et lance une compilation incrémentale (qui n’implique que le bloc de code mis à jour).
4 -
 La journée se termine.
5 -
 La nuit, à heure fixe, une compilation complète du code est démarrée grâce au système d’intégration continue. On appelle aussi ce processus le nightlybuild.
6 -
 La compilation se termine, une série de tests unitaires sont lancés pour valider la nouvelle version compilée.
7 -
 Le matin, le chef de projet et les développeurs ont accès à un reporting convivial sur les résultats du nightlybuild.