Gestion de projet – Vers les méthodes agiles
66
• Intégration continue (continuous integration) : le système est intégralement
assemblé et testé une à plusieurs fois par jour, sur une machine indépendante dédiée.
Les anomalies sont détectées au plus tôt.
Les pratiques relatives à la gestion du projet
• Client sur site (on-site customer, whole team) : le client est intégré à l’équipe pour
définir précisément les besoins, arbitrer sur les priorités et visualiser « en direct » le
résultat des développements. Pour une meilleure communication, le client et les développeurs travaillent dans le même espace autant que possible.
• Séance de planification (planning game) : lors de séances dédiées à la planification de
chaque itération, le client définit les fonctionnalités prioritaires. Les développeurs
discutent le contenu de ces fonctionnalités, identifient les tâches techniques sousjacentes, estiment ces tâches et s’engagent sur leur réalisation.
• Livraisons fréquentes (frequent releases) : la livraison fréquente de versions intermédiaires assure que le produit en cours de développement correspond bien aux attentes.
L’intégration continue et les tests réduisent considérablement le coût de livraison.
• Rythme soutenable (sustainable pace) : l’équipe doit adopter un rythme de travail qui
lui permette d’être efficace tout au long du projet ; un développeur fatigué travaille
moins bien.
On parle d’intégration continue : cela semble lourd à mettre en œuvre. Quels en sont les
avantages ?
1) La réponse de l’expert Laurent Bossavit, président de l’association Agile France.
Lorsqu’on a obtenu une excellente « couverture de tests » comme le permet par exemple le
développement par les tests (TDD), l’intégration continue est un moyen de détecter très rapidement des nouveaux défauts ou des régressions. Plus le délai entre une erreur commise par
un programmeur et sa détection est long, plus le « bogue » résultant est coûteux à détecter et
à réparer. L’investissement nécessaire pour placer un projet sous intégration continue est donc
très vite rentabilisé, d’autant que si l’on s’y prend en tout début de projet, cet investissement
n’est pas si lourd...
Une fois mise en place, l’intégration continue permet une souplesse appréciable. Ainsi, une
des équipes que j’ai accompagnées dans leur mise en place d’eXtreme Programming avait
initialement prévu de mettre en production son système de gestion de crédits hypothécaires,
utilisé par des dizaines d’agences, au rythme d’une fois tous les trois mois environ. À l’issue de
la première livraison en production, qui avait occasionné quelques correctifs, l’équipe s’aperçut
que les « bogues » échappant au système d’intégration continue étaient rarissimes. Ils décidèrent d’effectuer la mise en production au même rythme que les itérations : toutes les deux
semaines ! Du point de vue des utilisateurs finaux, la réactivité de l’équipe face à leurs demandes d’évolution ou de nouvelles fonctionnalités fut très remarquée, et l’équipe en retira un
crédit renforcé auprès des utilisateurs.
On pense souvent qu’en sacrifiant un peu la qualité, on va aller plus vite. Le vécu des équipes
utilisant le test automatisé, l’intégration continue et d’autres pratiques qui peuvent sembler
« lourdes », indique le contraire : en privilégiant la qualité, on finit par gagner énormément en
réactivité.
GestProjInform Livre Page 66 Vendredi, 3. avril 2009 12:07 12
66
• Intégration continue (continuous integration) : le système est intégralement
assemblé et testé une à plusieurs fois par jour, sur une machine indépendante dédiée.
Les anomalies sont détectées au plus tôt.
Les pratiques relatives à la gestion du projet
• Client sur site (on-site customer, whole team) : le client est intégré à l’équipe pour
définir précisément les besoins, arbitrer sur les priorités et visualiser « en direct » le
résultat des développements. Pour une meilleure communication, le client et les développeurs travaillent dans le même espace autant que possible.
• Séance de planification (planning game) : lors de séances dédiées à la planification de
chaque itération, le client définit les fonctionnalités prioritaires. Les développeurs
discutent le contenu de ces fonctionnalités, identifient les tâches techniques sousjacentes, estiment ces tâches et s’engagent sur leur réalisation.
• Livraisons fréquentes (frequent releases) : la livraison fréquente de versions intermédiaires assure que le produit en cours de développement correspond bien aux attentes.
L’intégration continue et les tests réduisent considérablement le coût de livraison.
• Rythme soutenable (sustainable pace) : l’équipe doit adopter un rythme de travail qui
lui permette d’être efficace tout au long du projet ; un développeur fatigué travaille
moins bien.
On parle d’intégration continue : cela semble lourd à mettre en œuvre. Quels en sont les
avantages ?
1) La réponse de l’expert Laurent Bossavit, président de l’association Agile France.
Lorsqu’on a obtenu une excellente « couverture de tests » comme le permet par exemple le
développement par les tests (TDD), l’intégration continue est un moyen de détecter très rapidement des nouveaux défauts ou des régressions. Plus le délai entre une erreur commise par
un programmeur et sa détection est long, plus le « bogue » résultant est coûteux à détecter et
à réparer. L’investissement nécessaire pour placer un projet sous intégration continue est donc
très vite rentabilisé, d’autant que si l’on s’y prend en tout début de projet, cet investissement
n’est pas si lourd...
Une fois mise en place, l’intégration continue permet une souplesse appréciable. Ainsi, une
des équipes que j’ai accompagnées dans leur mise en place d’eXtreme Programming avait
initialement prévu de mettre en production son système de gestion de crédits hypothécaires,
utilisé par des dizaines d’agences, au rythme d’une fois tous les trois mois environ. À l’issue de
la première livraison en production, qui avait occasionné quelques correctifs, l’équipe s’aperçut
que les « bogues » échappant au système d’intégration continue étaient rarissimes. Ils décidèrent d’effectuer la mise en production au même rythme que les itérations : toutes les deux
semaines ! Du point de vue des utilisateurs finaux, la réactivité de l’équipe face à leurs demandes d’évolution ou de nouvelles fonctionnalités fut très remarquée, et l’équipe en retira un
crédit renforcé auprès des utilisateurs.
On pense souvent qu’en sacrifiant un peu la qualité, on va aller plus vite. Le vécu des équipes
utilisant le test automatisé, l’intégration continue et d’autres pratiques qui peuvent sembler
« lourdes », indique le contraire : en privilégiant la qualité, on finit par gagner énormément en
réactivité.
GestProjInform Livre Page 66 Vendredi, 3. avril 2009 12:07 12
