Décuplez votre productivité avec votre usine logicielle

4
L’usine logicielle « Software Factory » : un élément clé de votre productivité Décuplez votre productivité avec votre usine logicielle Mastering Software Development

Transcript of Décuplez votre productivité avec votre usine logicielle

Page 1: Décuplez votre productivité avec votre usine logicielle

L’usine logicielle « Software Factory » : un élément clé de votre productivité

Décuplez votre productivité avec votre usine logicielle

Mastering Software Development

Page 2: Décuplez votre productivité avec votre usine logicielle

Décuplez votre productivité avec Software Factory

Il ne s’agit pas seulement de compiler automatiquement l’ap-plication

En pratique, l’intégration continue peut comprendre un grand nombre d’étapes:

• Intégration automatique des changements

• Gestion des versions et des configurations

• Compilation• Génération automatique des

documentations• Vérificationsstatiquesselondesrèglesprédéfiniesdelaqualitédu code, mesure de couverture des tests unitaires

• Automatisation des tests d’acceptation, tests éventuels de charge

• Déploiement du code• Déploiement desmodifications

de base de données et de leurs données

• Démarrage des serveurs• Notifications éventuelles des

étapes• Reporting sur l’état de

l’intégration, par exemple avec un « Build Wall » ou même un feu tricolore bien visible

L’automatisation est un levier majeur pour l’amélioration de la qualité et de l’efficacité de vos équipes. Votre usine logicielle, configurée intelligemment, est le garant d’un flux de développement rapide, stable, performant et à moindre coût.

L’intégration continue est un élément clé d’un processus de développement agile; l’usine logicielle est l’auto-matisation de ce travail d’intégration continue.

Une question d’inté-gration continue

L’intégration continue, un élément essentiel de toutes les approches agiles, de Scrum à XP, consiste à intégrer tous les chan-

gements de chaque développeur, puis à vérifierles règles de qualité avant de construire, déployer puis démarrer l’application afinde pouvoir avoir un retour le plus rapide possible sur ses éventuels problèmes, par des tests automatisés ou les retours des utilisateurs.

Page 3: Décuplez votre productivité avec votre usine logicielle

Une question d’outils, mais pas seulement

Lorsqu’on évoque le sujet des usines logicielles, il est impossible ne pas parler des outils. Il est cependant essentiel de ne pas se laisser distraire par les outils et de garder à l’esprit l’intention de l’intégration continue : la validation la plus rapide possible.

Parmi les outils les plus communs rencontrés dans les usines logicielles, on trouve typiquement :

en Java

• Maven et ses nombreux plugins, Ant, Ivy, BuildR, Graddle

• Hudson, Jenkins, Bamboo, TeamCity, Cruise Control, Continuum

• Sonar, Checkstyle, PMD, Findbugs, CPD, Emma, Cobertura

en .Net

• MSBuild, NAnt• TFS, Hudson, Jenkins, Bamboo, TeamCity,

Cruise Control, Continuum• Sonar, NDepend, FxCop

En commun

• Outils pour mettre en oeuvre BDD : Cucumber, Selenium, FITness, Rspec, JBehave, Concordion, easyb, Cucumber-JVM, GreenPepper…

• Outils de migration base de données : Flyway, Liquibase, dbdeploy, mybatis, MIGRATEdb, migrate4j, AutoPatch

Quels que soient les outils, les principes d’utilisation restent très similaires, les différences se concentrent surtout sur l’ergonomie et les fonctionnalités secondaires.

Business CaseUn éditeur de logiciels dispose déjà d’une usine logicielle mais n’est pas totalement satisfait du temps total de son processus d’intégration, qu’il juge trop important, et s’adresse donc à Arolla pour y remédier.

Le consultant Arolla, familier des problématiques d’intégration continue et des outils Maven, Hudson/Jenkins, Bamboo, Sonar, PMD, Checkstyle étudie le comportement de l’usine existante, ses points forts et ses limites.

En quelques semaines, il recommande la mise en œuvre d’outils Open-Source pour automatiser les déploiements de bases de données, optimise les réglages et préconise

certains changements sur l’organisation du projet pour réduire les dépendances et ainsi améliorer nettement les temps de construction.

Page 4: Décuplez votre productivité avec votre usine logicielle

21, rue du Bouloi75001 PARIS

Tél: 01.75.50.49.20

[email protected]

Mastering Software Development

Contactez-nous sans attendre pour profiter des progrès de l’état de l’art :Cyrille Martraire, Associé, Directeur Technique : [email protected]

Jonathan Salmona, Directeur Commercial : [email protected]

Techniques associées

L’usine logicielle est un élément fondamental d’une équipe de développement agile ou non, et est donc une priorité par rapport à la plupart des autres pratiques conseillées, suivies par les techniques de TDD, en pair-pro-gramming partiel ou total. On

complétera utilement avec BDD, surtout si la communication avec le métier est un point faible, ou si les régressions sont nombreuses.

Enfin, pour mieux organiser lesgrands projets avec leurs nombreux sous-projets et modules, DDD devient un allié indispensable, et permet par conséquent d’optimiser son usine logicielle de

façon très nette.

Arolla pour vous aider

Notre métier est d’être à jour et de vous accompagner lors de la mise en application grâce à nos retours d’expériences.