Microsoft Tech days 2007 - Industrialisation des développements : Retours d'expérience
OCTO Technology
Cabinet d’Architectes en
Systèmes d’Information
depuis 1998
Expérience importante dans
l’industrialisation des développements
depuis plusieurs années
Aujourd’hui : Retours d’expérience Open
Source et Team System
Nicolas Mangin :
Application Open Source de Micro Finance
Solution d’industrialisation Open Source
Djamel Zouaoui
Refonte de SI pour une administration
Solution basée sur Team System
Un système d’information intégré et gratuit pour les institutions de micro-finance
Mohamed Yunus
Prix Nobel de la paix 2006
Combattre la pauvreté Application Open Source C#
Reconstruction de l’économie Déployée au
locale Tadjikistan, Afghanistan…
Avril Juin Août Janvier
2006 2006 2006 2007
• v0.8
• Début du projet • Début de maintenance évolutive
• v1.0
• Mise en production
• v0.1Beta. • Site internet
• Première livraison
Début du projet
Méthode de travail « imposée » par la MOA
Zone d’innovation (méthodologique, technique et
fonctionnelle)
TDD incrémental
Outils utilisés :
NUnit (Tests unitaires)
SVN (Référentiel de sources)
Problème :
Compile pas !!!
Le code ne compile pas chez le chef de projet
Intégrité des sources
Besoin :
Contrôler l’intégrité des sources
Solution :
CruiseControl.NET (Intégration Continue)
Problème :
Ecart produit / besoin important
Besoin :
Confronter les jeux de tests des opérationnels
Documenter
Contraintes :
Optimiser la présence du chef de projet
Spécifications « mouvantes »
Solution :
FitNesse (Spécifications exécutables)
Des résultats :
Le code compile !!!
Plus proche besoin client.
Stabilité Ok
Besoin :
Préparer la phase de maintenance évolutive
Solutions :
NDepend (Qualité du code)
NCover (Couverture des tests unitaires)
En cours de déploiement
Livraisons fréquentes (hebdomadaire)
Augmentation du nombre de fonctionnalités
Mise à disposition pour la communauté :
Création d’un site projet (Wiki + outil de suivi)
2 solutions + 1 add-in VS2003
La solution principale :
16700 lignes de code
297 classes
997 tests unitaires
Couverture 79%
FitNesse : 33 histoires (7500 assertions)
Le SI d’une administration avec
Une constellation de 17 applications
Plateformes hétérogènes
Technologies vieillissantes
Cloisonnées par métier
Douleurs sur le déploiement
Des besoins métiers qui ne sont pas
encore informatisés
Un projet de refonte
Ne pas refaire les applications à l’identique
Ce n’est pas une migration technique
3 domaines applicatifs (regroupement métier)
Un socle de communication transverse
pour les métiers
Faire (faire) différemment : de la cascade
à l’agilité
Technologies : .NET 2.0, ASP.NET
Tous rompus aux méthodologies de projet en cascade
Une volonté de démarche nouvelle
(liée aux douleurs de la cascade)
Aborder l’agilité
Outiller (toute) l’équipe
Assurer la gestion du changement de la
cascade à l’agilité
Avoir un logiciel qui corresponde au besoin
Un ensemble de « valeurs » et bonnes pratiques axé sur trois piliers :
Un gros travail méthodologique en amont
réalisé collégialement :
Une formation personnalisée « Agilité avec
Team System »
Définition d’un processus adapté
Le but n’est pas de contraindre mais de
guider
Team Foundation Server :
Contrôleur de sources
Framework de test
Construction automatisée
…
Mais au-delà des briques « techniques »…
Intégration continue :
Le pipeline de Build
Plusieurs sas pour plusieurs besoins
(environnement, rythme de livraison, cible)
Intégration
Pré-production
Gestion de l’information
Un portail collaboratif
Des outils dédiés
Standards de développement & binômage
Tests « développeurs »
Les tests avant le code
Couverture pertinente
Tests « client »
Réticences
Pas d’outils intégrés
Piloter le projet
Vision externe de l’avancement
Gestion des risques
Feedback pour les développeurs
Responsabilisation
Reporting
Rapports « built-in »
Rapports personnalisés
propres à ma méthodologie
Une première mise en production
Une équipe autonome
Un engouement des utilisateurs finaux
Un logiciel qui couvre les vrais besoins
Socle incrémental
Construction itérative du socle en réponse à des
douleurs/besoins (assemblage de briques OSS)
Choix d’un outil packagé et adaptation de l’outil au
démarrage du développement
Guides apportés par l’outil
Team System permet d’accompagner la méthodologie
Pilotage
Le référentiel commun de TFS permet un reporting
« décisionnel »
Coût technique
Prix de l’outil
Assemblage et paramétrage
Coût humain
Gestion du changement
Appropriation de la méthodologie
Le coût de l’outil n’est pas LE critère de choix
Abonnement TechNet Plus : Visual Studio 2005 +
Versions d’éval + 2 incidents support Abonnement MSDN Premium
S’informer - Un portail d’informations, des événements, une
newsletter bimensuelle personnalisée
Se former - Des webcasts, des articles techniques, des
téléchargements, des forums pour échanger avec vos pairs
Bénéficier de services - Des cursus de formations et de
certifications, des offres de support technique