3. 1- Utilisez vous un gestionnaire de sources ?
2- Pouvez-vous faire un build en une seule étape ? ?
3- Avez-vous des Builds journaliers ?
4- Avez-vous un gestionnaire de Bugs ?
5- Corrigez-vous les bugs avant d'écrire du code ?
6- Votre planning est-il à jour ?
7- Avez-vous des spécifications ?
8- Vos développeurs travaillent-ils au calme ?
9- Avez-vous les meilleurs outils permis par votre budget ?
10- Avez-vous des tests / testeurs ?
11- Les candidats écrivent-ils du code ?
12- Testez-vous l'utilisabilité avec vos collègues ?
The Joel Test
5. 1. Que celui qui n'a jamais ...
2. Les besoins d'intégration
3. Un build de qualité
4. Mise en Oeuvre
5. Les outils
6. Retours d'expérience
7. Pour aller plus loin
Intégration Continue
6. 1. Que celui qui n'a jamais ...
Commité sans vérification
Fait de commit partiel
Commité du code qui compile mais ne
marche pas
Fait de régressions inadmissibles
Fait des changements d'API
Fait un commit tardif impactant
… en a déjà été victime !
8. 2. Les besoins d'intégration
Garantir la qualité des livrables
En toute indépendance
De façon reproductible
Sur tous les environnements
Alertes / Résultats
Juste celles qu'il faut
Consultables et compréhensibles
Rapides
9. 2. Les besoins d'intégration
L'automatisation !!
Minimiser les étapes manuelles
Profiter de la puissance des
machines
Paralléliser les environnements
Multiplier les chances de trouver des
problèmes
Monitoring qualité et traçabilité
10. 2. Les besoins d'intégration
Règles d'équipe
Commit fréquent
Commit atomique
Régler les problèmes sur le champ
Ecrire des tests déterminants
Se concentrer sur l'essentiel
La fabrication
Réagir aux résultat de l'intégration
12. 3. Un build de qualité : Le Processus
Compilation
Tests unitaires
Analyse Qualité du code
Tests de Déploiement / Smoke Tests
Tests d'intégration
Génération de la Documentation
Packaging
Publication
13. 3. Un build de qualité : L'automatisation
Automatisation
Doit pouvoir être joué en local
Exécuté sur un serveur isolé et dédié
Aussi souvent que possible
A la demande
Attention !!
Le build doit être rapide
Le build ne doit pas échouer à tord
Les notifications doivent être pertinentes
Ne pas déclencher trop vite un build
14. 3. Un build de qualité
Les facteurs de qualité
Tests rapides et couvrants
Code propre (format, warnings)
IDE Correctement configurés
Analyse du code (findbug, pmd, …)
Historique des builds par
version/révisions et informations
complémentaires
16. 4. Mise en oeuvre : Les étapes
1. Gestionnaire de sources
Référence
Gestion des contributions (Commit)
Résolution des conflits
2. Script de build
Maven, Ant/Ivy, Gradle, Gant,
Easyant, ...
3. Ecriture de tests automatiques
4. Plannification des builds
5. Analyses de code, reporting
5. Publier les résultats
18. 5. Retour d'expérience : PME
Exemple concret
Équipe de 4 développeurs/euses
1 PC a 300€
Logiciels open-source
Svn / Maven2 / ArtiFactory
Continuum
Sonar
L'IC est souvent la « dernière roue du carrosse »
Pourtant un facteur de productivité et qualité
Vision non « court termiste »
20. Ressources :
Installer le serveur
Compétences
Linux
Installer les
applicatifs
Compétences
Java/Linux
Paramétrer les
applicatifs
Affiner les
réflexions
Coût
300€ (pc tour)
5 jours travail
5. Retour d'expérience : PME
21. 5. Retours d'expérience : Build eXo
16 Projets :
+1-4 branches par projets
80 développeurs sur 4 pays
Scrum
Dépendances entre les projets
3 AppServs, 2 OS, 3DB : 18 configurations
Svn, Hudson, Maven2, Emma, Jira, Eclipse
Tous les serveurs sur Amazon EC2 !
A venir:
Sonar sous peu …
Site de centralisation des binaires et résultats
23. 6. Les outils du moment
IntelliJ TeamCity
Intégration Eclipse/Idea top !
Build distant, Pre-Commit depuis l'IDE
Build distribué
Suivi des responsabilités
http://teamcity.jetbrains.com/overview.html
Hudson
Open source
Build distribué
Beaucoup de plugins (emma, violations, ...)
http://hudson.jboss.org/hudson
24. 6. Les outils du moment
Atlassian Bamboo
Build distribués
Analysis du code, Statisitques
Collaboration, Telemetrie
http://opensource.bamboo.atlassian.com/
ThoughtWork Cruise
Issue de CruiseControl
Gestion du cycle de release !
Build distribué
26. 7. Pour aller plus loin
Sonar by SonarSources
Open Source, initié par Hortis
Collecte des rapports de build
Analyse du code
Time Machine
Suggestion d'action
http://nemo.sonar.codehaus.org