Les Usines Logicielles
Valtech accompagne ses clients dans la construction d’usines logicielles basées sur des technologies Open Source pérennes et évolutives. Ces usines logicielles permettent d’automatiser les développements, de favoriser l’intégration continue et de systématiser les tests à toutes les étapes. Les usines logicielles apportent à l’entreprise une visibilité durable sur la conduite de ses projets tout en augmentant son indépendance vis à vis des technologies fermées.

L'intégration continue : une pratique incontournable

 

Valtech prône la mise en place d’une intégration continue sur tous les projets. Cette "usine logicielle" incluera les aspects suivants :

  • reconstruction (build) à chaque nouveau lot de modifications (check-in) ;
  • exécution périodique des tests automatisés de non régression unitaires, d’intégration (technique) et de validation (fonctionnelle) ;
  • analyse du code afin d’extraire des métriques représentatives de la qualité du code (dépendances, complexité, règles d’écriture...) ;
  • rétro-documentation du code ;
  • publication de tableaux de bords avec résultats de compilation, taux de réussite et de couverture des tests, indicateurs qualimétriques et documentation, quotidiennement.

 

Une solution OpenSource prête à l'emploi

 

Valtech appuie son « usine logicielle » Java sur des composants OpenSource aujourd'hui matures et parfaitement intégrés : Hudson, Sonar, Maven (+ CheckStyle, PMD, FindBugs, JDepend, JavaNCSS, Cobertura), JUnit, FIT.

 

Une mise en place agile

 

Valtech procède par étapes dans la mise en œuvre d'une telle usine logicielle, afin que les bénéfices en soient immédiatement perceptibles. Valtech a imaginé une démarche étagée, calquée sur le modèle de maturité CMMi qui introduit progressivement les pratiques en fonction d'un niveau d'industrialisation fixé avec le client :

Les pratiques clés d'une usine logicielle

1. Intégrer en continu.

(Cruise Control, Hudson, Microsoft Team Foundation Server...)


2. Tester tôt, souvent, automatiquement.

(Fit, JUnit, TestNG, Agitar One, Leirios Smart Testing...)


3. Partager l'information dans un wiki.

(Trac, XWiki...)

 

 4. Corriger les anomalies au plus tôt.

(Trac, Atlassian Jira...)

 

5. Réestimer en continu le reste à faire.

(IceScrum, Rally Dev...)

 

6. Outiller les déploiements.

(IKAN SCM4ALL, Sun N1 SPS...)

 

Zoom sur