Outillage Agilewww.objetdirect.comblog.objetdirect.com                                 1
SommaireIntroduction  Présentation  Principes agiles impactant l’outillageOutils collaboratifs  Gestion de sources  Bug Tr...
PrésentationCyril Lacôte  Développeur Java - Objet Direct  En mission agile chez les Laboratoires BoironObjet Direct  Arch...
Principes agiles impactant l’outillagePrincipes agiles généraux  Accueillir le changement  Utiliser un cycle itératif et i...
L’usine logicielle agilePoste Banalisé          Poste d’architecte,             Poste de  Navigateur           analyste, c...
Outils collaboratifs : gestion de sourcesGestion de sources  Référentiel commun  Alors que tout le monde travaille en  con...
Gestion de sources : bonnes pratiquesJe me synchroniserai plusieurs fois par jourJe commiterai une fonctionnalité entièreJ...
Outils collaboratifs : Bug TrackerObjectif :  Tracer la vie de l’applicationComment :  Recueillir anomalies, évolutions,  ...
Outils collaboratifs : Bug TrackerMais aussi suivi de projet  Gestion des versions  Suivi des imputations  Et du reste-à-f...
Bug Tracker : bonnes pratiquesGénial, y’a une StackTrace !Et les logs correspondants !Et même un scénario pour reproduire ...
L’outillage des développeurs : IDELes développeurs… … voudraient automatiser les tâches répétitives Parce qu’ils sont fain...
Pour les développeurs : constructionLes développeurs… …souhaiteraient automatiser la génération des livrables   Pour insta...
Construction : MavenMaven formalise l’intégration du projet  En décrivant le QUOI plutôt que le COMMENT (Ant, anyone?)  Su...
Construction : MavenDes avantages, plein :  Homogénéise l’intégration  Gestion des dépendances    Téléchargement automatiq...
TestsLes développeurs…  … rêveraient d’avoir toute confiance dans leur commit    Répondre au besoin, y compris sur ses cas...
EA 7.5 Unregistered Trial Version                        EA 7.5 Unregistered Trial Version                                ...
Outils de mesure de la qualité du codeLes développeurs  Contrôleraient leur code en permanence    Pour qu’il soit maintena...
Outils de mesure de la qualité du codePour un code…  Simple et maintenable    JDepend : indicateurs sur le niveau de coupl...
Intégration continueLes développeurs… … devraient détecter au plus tôt les régressions   Etre notifié quand elles arrivent...
Intégration continueGestion de tâches programméesIntégration  Avec loutil de gestion des sources  Avec loutil de construct...
ConclusionL’agilité ne sous-estime pas l’importance de l’outillage  Il ne faut pas sur interpréter le principe agile : « P...
Upcoming SlideShare
Loading in...5
×

201001 Outillage agile

446

Published on

Cyril Lacôte

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
446
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

201001 Outillage agile

  1. 1. Outillage Agilewww.objetdirect.comblog.objetdirect.com 1
  2. 2. SommaireIntroduction Présentation Principes agiles impactant l’outillageOutils collaboratifs Gestion de sources Bug TrackerPour les développeurs Construction avec Maven Tests avec des Mock Objects Outils d’analyse de code Intégration continueConclusion 2
  3. 3. PrésentationCyril Lacôte Développeur Java - Objet Direct En mission agile chez les Laboratoires BoironObjet Direct Architecte Objet et Internet Prestations de conseils méthodologiques Partenaire Valtech : formations http://www.objetdirect.com http://blog.objetdirect.com 3
  4. 4. Principes agiles impactant l’outillagePrincipes agiles généraux Accueillir le changement Utiliser un cycle itératif et incrémental Favoriser la communicationPratiques UP Gérer les exigences Modéliser graphiquement Vérifier continuellement la qualitéPratiques XP (mais appliquées aux autres méthodes) Développement piloté par les tests Intégration continue Refactoring Convention de codage
  5. 5. L’usine logicielle agilePoste Banalisé Poste d’architecte, Poste de Navigateur analyste, concepteur développeur Bureautique Gestion des exigences Gestion du code Modélisation UML Tests unitaires Plateforme collaborative Gestion de projet Gestion documentaire Gestion de source Gestion de ticketPlateforme d’intégration Plateforme de test Intégration continue Tests d’acceptation Tests Tests de performance Métriques 5
  6. 6. Outils collaboratifs : gestion de sourcesGestion de sources Référentiel commun Alors que tout le monde travaille en concurrence Avec une gestion de l’historique Pour la traçabilité Et le retour arrière Et des commentaires de commit Et un étiquetage de versions Et des branches pour des développements en parallèle Qu’on peut fusionnerSVN
  7. 7. Gestion de sources : bonnes pratiquesJe me synchroniserai plusieurs fois par jourJe commiterai une fonctionnalité entièreJ’aurais vérifier qu’elle fonctionneJe renseignerai un commentaire de commit expliciteJ’y ferai même fait référence au n° de ticket/tâche/bug
  8. 8. Outils collaboratifs : Bug TrackerObjectif : Tracer la vie de l’applicationComment : Recueillir anomalies, évolutions, tâches Qualifier (criticité, commentaire, capture d’écran, fichier attaché, lien entre tâches, doublons) Affecter à un responsable Suivre dans un workflow Notifier par mail
  9. 9. Outils collaboratifs : Bug TrackerMais aussi suivi de projet Gestion des versions Suivi des imputations Et du reste-à-faire Moteur de recherche Et intégration SVN!JIRAhttp://opensource.atlassian.com/projects/hibernate/browse/HHH-3949   Payant… mais génial!Sinon : BugZilla, Trac, …
  10. 10. Bug Tracker : bonnes pratiquesGénial, y’a une StackTrace !Et les logs correspondants !Et même un scénario pour reproduire le problème !J’essaie d’estimer le reste à faire
  11. 11. L’outillage des développeurs : IDELes développeurs… … voudraient automatiser les tâches répétitives Parce qu’ils sont fainéants veulent être productifs Pour générer du code Pour faire du refactoring Pour documenter  IDE Eclipse, NetBeans, IntelliJ : ils sont tous classes!
  12. 12. Pour les développeurs : constructionLes développeurs… …souhaiteraient automatiser la génération des livrables Pour installer rapidement un poste de développement Pour utiliser une nouvelle librairie super classe Pour déployer 27 fois par jour… …sur des environnements différents… …sans galérer  Outil de construction 12
  13. 13. Construction : MavenMaven formalise l’intégration du projet En décrivant le QUOI plutôt que le COMMENT (Ant, anyone?) Sur toutes ses étapes : De l’extraction des sources Jusqu’au déploiement sur les plateformes cibles En centralisant toutes les données du projet : Version, Repository des sources, Dépendances Rapports qualités, Acteurs Et en encourageant de bonnes pratiques : Normalisation de la structure Versionning Exécution des tests automatisés 13
  14. 14. Construction : MavenDes avantages, plein : Homogénéise l’intégration Gestion des dépendances Téléchargement automatique des librairies Depuis un référentiel public, ou privé pour plus de contrôle (Archiva) Extensible par des plugins de construction Gérés par Maven, donc disponibles automatiquement Gestion automatisée des versions Incrément, Tag, Branche de maintenance Intégration continue facilitéeMais… Intégration IDE (très) perfectible  Démo Maven 14
  15. 15. TestsLes développeurs… … rêveraient d’avoir toute confiance dans leur commit Répondre au besoin, y compris sur ses cas limites Sans introduire de régression  Tests unitaires et d’intégrationInutile d’en rappeler les bénéfices, non ?Passons à l’exemple :  Démo : utilisation de mock objects via EasyMock pour tester unitairement un service métier. 15
  16. 16. EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg TestsEA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg class serviceEA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg « i n te rfa ce » UserServiceEA 7.5 Unregisteredl lTrialgVersion + a ccu e i i r(S tri n ) : Use r EA 7.5 Unregistered Trial Version EA 7.5 UnregEA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 UnregEA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg « i n te rfa ce » UserServiceImpl DAO::UserDAO -u se rDA OEA 7.5 Unregisteredi l lTrialgVersion + a ccu e i r(S tri n ) : Use r EA 7.5 Unregistered Trial Version + cre a te (Use r) : vo i d EA 7.5 Unreg + fi n d B yId (l o n g ) : vo i d + fi n d B yNa m e (S tri n g ) : Use r[]EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 UnregEA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg DAO::UserDAOImpl A tester!EA 7.5 Unregistered Trial Version EA 7.5 Unregistered)vo vo i d Version + cre a te (Use r) : Trialid EA 7.5 Unreg + fi n d B yId (l o n g : + fi n d B yNa m e (S tri n g ) : L i st< Use r> []EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 UnregEA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg 16EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg
  17. 17. Outils de mesure de la qualité du codeLes développeurs Contrôleraient leur code en permanence Pour qu’il soit maintenable, évolutif, documenté… Grâce à des outils d’analyse PluginsPour un code… Standard Checkstyle : vérification des conventions de codage Sans bugs courants FindBugs : recherche de bugs courants PMD : recherche de bugs, de code mort Développer un logiciel de qualité 17
  18. 18. Outils de mesure de la qualité du codePour un code… Simple et maintenable JDepend : indicateurs sur le niveau de couplage PMD CPD : recherche de code dupliqué JavaNCSS : complexité cyclomatique et documentation Testé Surefire Report : rapports dexécution de tests unitaires Cobertura : rapports de couverture de testsTous ces plugins d’analyse existent pour Maven DémoEt peuvent s’intégrer directement dans les IDE Développer un logiciel de qualité 18
  19. 19. Intégration continueLes développeurs… … devraient détecter au plus tôt les régressions Etre notifié quand elles arrivent Pour les corriger quand elles sont fraiches Et avant qu’elles ne s’empilent Pour être toujours prêt à livrer l’application  Intégration continue 19
  20. 20. Intégration continueGestion de tâches programméesIntégration Avec loutil de gestion des sources Avec loutil de construction Avec lannuaire projet Avec des outils d’analyse de la qualité Donc trivial avec un projet Maven !Remontée dalertes Pour détecter les problèmes au plus tôt Et les corriger au plus vite Avant qu’ils ne s’empilentConsultation des rapports 20
  21. 21. ConclusionL’agilité ne sous-estime pas l’importance de l’outillage Il ne faut pas sur interpréter le principe agile : « Parier sur les hommes plutôt que le processus ou l’outillage » « Plutôt » ne signifie pas que l’outillage est accessoire Les développeurs compétents exigent un outillage performant « Les bons ouvriers ont de bons outils » 21
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×