• Article
  • 13.Juil.2010

Studio de développement Atlassian

  • 13.Juil.2010
  • Temps de lecture mins

Cet article présente l’utilisation de la suite Atlassian dans le cadre d’une équipe de développement. Après une brève présentation des différents outils, la suite sera mise en perspective selon 2 axes :

  • Un axe “Performance” : comment améliorer la performance des équipes de développement à l’aide (entre autre) des produits Atlassian
  • Un axe “Cycle de développement” : illustration de l’utilisation de la suite Atlassian le long du cycle de développement logiciel, incluant la gestion de projet

Nous présenterons dans le même temps les principales intégrations de la suite ainsi qu’une sélection des plugins incontournables.
Enfin nous essayerons de situer l’éditeur vis-à-vis de ses concurrents et d’estimer les perspectives pour les années à venir.

La suite Atlassian

La suite Atlassian se compose de 9 outils développés selon une vision fondée sur quelques lignes guides :

  • Autonomie: chaque outil a été développé indépendamment et ne nécessite pas les autres pour fonctionner à 100% de ses capacités.
  • Flexibilité: chaque outil est une brique qui peut être librement assemblé avec un ou plusieurs autres outils Atlassian, comme avec tout autre outil du marché grâces aux intégrations natives, aux plugins ou à l’API.
  • Complémentarité: chaque élément de la suite complète les autres en fournissant des fonctions bien spécifiques, les frontières sont claires.
  • Intégration: l’assemblage de plusieurs outils de la suite offre une forte synergie, fournissant des fonctions étendues importantes. 1 + 1 = 3.
  • Pragmatisme: les méthodes suggérées sont simples et ouvertes.
  • Adaptabilité: les configurations multiples permettent des customisations très personnalisées.
  • Agilité: toujours à la pointe des bonnes pratiques de développement, Atlassian supporte fortement les méthodes Agile.

Gestion de demandes et suivi de projet
  • Gestion des évolutions et des bugs, et de tout autre type de demande
  • Suivi de projet
  • Dédié développement logiciel
  • Tableaux de bord avancés
  • Workflows configurables
  • Rapports et outils d’analyse
  • Extensions via plugins et API

Gestion de projet Agile
  • Développement Agile
  • Support SCRUM
  • Kanban
  • Gestion du backlog
  • Planning des sprints et des releases
  • Suivi des tâches et de l’activité
  • Graphiques et rapports

Wiki et documentation collaborative
  • Intranet
  • Documentation
  • Knowledge Management
  • Prêt pour l’entreprise (organisation, sécurité, LDAP, clusters…)
  • Intégration Microsoft Office et Sharepoint
  • Extensions via plugins et API

Explorateur de code source
  • Navigation à travers les repositories
  • Partage du source
  • Visibilité de l’activité
  • Analyse de l’activité (volume, participants, projets actifs…)
  • Intégration JIRA
  • Extension via plugins et API

Serveur d’intégration Continue
  • Intégration continue rapide à déployer
  • Adoption facile
  • Intégration avec JIRA
  • Builds distribués pour les performances
  • Rapports et outils d’analyse
  • Extension via plugins

Couverture du code et optimisation des tests
  • Analyse du code
  • Détection du code non couvert par des tests
  • Analyse de couverture par test
  • Optimisation de la performance des tests

Revue par les pairs
  • Revues de code collaboratives
  • Asynchrone et en ligne
  • Revues itératives
  • Intégration avec JIRA
  • Utilisable avant et après commit
  • Hautement configurable (classification des défauts, workflows…)

Gestion des identités et SSO de la suite Atlassian
  • Unifie la gestion des identités de tous les produits de la suite
  • SSO entre toutes les applications
  • Intégration LDAP avancée
  • Extensible et adaptable aux applications customs

Intégrations IDEs
  • Rends l’ensemble des outils accessibles depuis l’IDE du développeur afin d’améliorer le confort, la productivité et l’ergonomie.
  • Ne quittez plus votre IDE en le transformant en véritable plate-forme de pilotage.
  • Compatible avec les principaux IDEs du marché.

Améliorer la performance de votre équipe de développement avec Atlassian

Que l’on développe Agile ou Waterfall, la productivité des développeurs, la qualité du code et le suivi de l’activité de développement sont les leviers principaux de la performance d’une équipe.
Les quelques bonnes pratiques ci-dessous couvrent ces 3 thèmes en essayant d’être le plus pragmatique et le plus agnostique possible vis-à-vis du processus de développement utilisé. Elles sont issues du simple bon sens ou de méthodologies comme Extreme Programming (Agile) ou CMMi (plutôt Waterfall), et s’adaptent a priori très bien à tous les contextes. En face de chaque bonne pratique, quelques outils à mettre en œuvre pour en faciliter l’application sont suggérés.
A noter que Java se taille la part du lion avec un foisonnement d’outils associés, mais C++, .Net ou PHP ne sont pas en reste et globalement l’ensemble des pratiques sont couvertes pour chaque langage de programmation.

Productivité des développeurs Moyens, Outils
Garantir l’excellence technique Recrutement, Formation, Peer Coding, Peer Review avec Crucible
Fournir des assistants lors du coding
Modèles de programmes, générateurs de code, round-trip engineering Bibliothèque de modèles, XDoclet, MDA, Rational Software Modeler
Coloration syntaxique Fonction intégrée à l’IDE
Auto-complétion Fonction intégrée à l’IDE
Contrôle de références Fonction intégrée à l’IDE
Aide en ligne Fonction intégrée à l’IDE
Fournir un environnement de développement intégré
Utiliser un IDE reconnu et familier des développeurs Eclipse, Visual Studio, IntelliJIDEA, Rational Team Concert
Limiter le nombre d’interfaces et accroitre l’intégration des outils Atlassian Connectors, Mylyn, Subclipse, Subversive, Plugins
Utilisation de frameworks, réutilisation du code, gestion des dépendences OOP, Maven, Ant, Nexus
Automatiser les activités récurrentes
Tests unitaires Voir ci-dessous
Builds Maven, Ant
Intégration Voir ci-dessous
Analyse de code Voir ci-dessous
Faciliter l’accès aux environnements techniques
Mettre en visibilité l’activité de développement FishEye, Wallboard JIRA, Atlassian Activity Stream, Standup meeting
Qualité du code
Garantir l’excellence technique Voir ci-dessus
Concevoir une architecture efficiente Expertise, Veille technologique, Sonar
Pertinence
Performance
Anticipation technologique
Ré-utilisabilité
Connaissance métier
Modéliser Balsamiq, UML, Rational Software Modeler
Fournir des assistants lors du coding Voir ci-dessus
Optimiser la maintenabilité du code
Définition et utilisation de guides et de standards de développement
Analyse de code (standards de développement, complexité, commentaires) JavaNCSS, Checkstyle, Findbugs, Cobertura, PHP_CodeSniffer, Cppcheck, Sonar
Intégration de la documentation technique au code source et contrôle d’existence Javadoc, Doxygen
Effectuer des tests dès que possible
Tests unitaires JUnit, Mockito, PHPUnit, CppUnit, Google C++ Testing Framework, NUnit
Effectuer des analyses de code systématiques Voir ci-dessus
S’assurer du taux de couverture des tests Clover, Sonar
Effectuer des relectures croisées Peer Review avec Crucible
Encourager les discussions autours du code Messagerie instantanée, Crucible, FishEye
Intégrer et compiler le code régulièrement Bamboo
Automatiser les scripts de build
Intégration Continue
Exécuter les tests unitaires à chaque build
Exécuter les analyses de code chaque nuit
Mettre en visibilité l’activité de développement Voir ci-dessus
Contrôler les changements JIRA, GreenHopper, Subversion, GIT, Mercurial, Commit Acceptance Plugin
Suivi
Suivre l’avancement technique au quotidien JIRA, GreenHopper, Gadgets et Dashboards, Standup meeting
Suivre les charges au quotidien JIRA, GreenHopper
Mettre en visibilité l’activité de développement Voir ci-dessus

On constate que le taux de couverture de la suite de développement Atlassian est des plus intéressants. Par ailleurs, l’effort réalisé par l’éditeur sur les intégrations est particulièrement important :

  • Intégrations avec les outils majeurs du marché pour les pratiques non directement couvertes, comme par exemple Subversion, Nexus ou Sonar
  • Intégrations avec les principaux IDEs comme Eclipse, IntelliJIDEA, Rational Team Concert ou Visual Studio (et d’autres)
  • Intégrations des outils entre eux, comme la création d’une peer review Crucible à partir de JIRA, l’affichage de filtres JIRA dans Confluence, l’exécution des contrôles Clover dans les builds Bamboo…
  • Intégration avec de nombreux annuaires d’entreprise (LDAP) et SSO à l’aide de Crowd

Références
JIRA, GreenHopper, FishEye, Crucible, Bamboo, Clover, Atlassian Connectors, Crowd, Balsamiq, Eclipse, Rational Team Concert, Visual Studio, Sonar, Nexus, Javadoc, Doxygen, FindBugs, Checkstyle, Cppcheck, PHP_CodeSniffer, Ant, Maven, JUnit, Mockito, PHPUnit, CppUnit, Google C++ Testing Framework, NUnit, XDoclet, MDA, Rational Software Modeler

Articles
How we do agile @ Atlassian, Testing: You don’t have to be Agile to be agile, Code Review in Agile Teams, Unit tests, Code-Generation Techniques for Java, Introducing Rational Modeler, Introducing Continuous Integration, PHP Continous Integration with Atlassian Bamboo, On PHPUnit and Software Metrics, Continuous Integration with Visual C++ and COM, XProgramming Softwares, The Full Lifecycle Object Oriented Testing, Introduction to Test Driven Design, In pursuit of code quality: Don’t be fooled by the coverage report

Atlassian dans le cycle de vie de développement

Cette section décline un cycle de développement qui peut correspondre à un release (Waterfall) ou une itération (Agile). Le cycle de vie décrit ci-dessous est tiré de RUP. Les outils Atlassian supportent chaque grande étape du cycle de vie.

Modélisation et Exigences Métier
Développement des exigences client Utilisation conjointe de Confluence avec Gliffy et Balsamiq (développement des exigences client) et de JIRA (suivi des exigences client)
Analyse et Conception
Développement des exigences produit et architecture Utilisation conjointe de Confluence avec Gliffy et Balsamiq (développement des exigences produit) et de JIRA (suivi des exigences produit)
Implémentation
Développement JIRA, FishEye, IDE Connector
Tests
Tests fonctionnels / Revue des exigences Confluence, Crucible et JIRA
Tests techniques / Revue de code Crucible et JIRA
Tests techniques / Intégration Continue Bamboo
Tests techniques / Analyse de code et couverture des tests Clover
Tests fonctionnels / Gestion des scénarios de tests fonctionnels Confluence
Tests fonctionnels / Gestion des campagnes et suivi des exécutions de tests JIRA
Tests / Gestion des défauts de test JIRA
Gestion de configuration
Suivi des demandes de changements (évolutions, bugs) JIRA
Contrôle de saisie d’un ID de fiche JIRA valide lors des commits Commit Acceptance Plugin
Intégration des changesets JIRA FishEye Plugin
Navigation dans les repositories FishEye
Déploiement
Documentation applicative Confluence
Support
Gestion des défauts en production (bugs) JIRA
Gestion du support JIRA (ticketing) et Confluence (documentation, KB, FAQ)

Pour finir, les outils Alassian, et plus particulièrement JIRA et GreenHopper, proposent des fonctions avancées de gestion de projet.
L’éditeur a pris le parti de se concentrer sur la gestion de projet Agile. Les équipes sont responsabilisées sur l’atteinte des objectifs et s’organisent comme elles le souhaitent pour remplir le contrat : fournir à la fin de l’itération un ensemble de fonctionnalités définies. De ce fait, les outils ne proposent pas en standard de dates de début des tâches, ni de diagramme de Gantt, mais offre à la place l’estimation de la charge totale, des Story Points et de la Business Value, l’élaboration des itérations à partir du backlog, le suivi de l’état des tâches à l’aide du Kanban et le suivi des Story Points, des Business Values et des charges à l’aide de Burndown Charts (prévu, délivré / consommé, reste-à-faire, précision des estimations, date de livraison).
Pour une gestion de projet plus classique, une intégration avec Microsoft Project et un outil de gestion des risques sont proposés par des éditeurs tiers (voir les références).
Enfin pour un suivi d’activité complet, Minyaa Time et Tempo Plugin sont deux plugins qui étendent largement les fonctionnalités standards et méritent d’être évalués.

Planification
Gestion des tâches, des charges JIRA et GreenHopper
Priorisation et planification des builds et releases JIRA et GreenHopper
GANTT / Intégration MS Project The Connector
Suivi
Suivi de projet JIRA, GreenHopper, Confluence (dashboards)
Gestion des risques JIRA Risk Management Plugin
Suivi d’activité étendu Minyaa Time, Tempo Plugin

Références
Confluence, Gliffy, The Connector, JIRA Risk Management Plugin, Minyaa Time, Tempo Plugin

Positionnement sur le marché

Depuis le développement de JIRA en 2003, l’acquisition de Cenqua (FishEye, Crucible et Clover) en 2007, le rachat de GreenHopper en 2009, la stratégie d’Atlassian est claire : élaborer une suite de développement compétitive et ouverte. L’éditeur a abouti progressivement à un ensemble riche, cohérent, flexible, intégrée et hautement configurable qui se pose aujourd’hui comme un concurrent des plus sérieux sur le marché de l’ALM, avec une communauté débordante d’énergie, un support de grande qualité et un coût très attractif. L’étude Forrester Agile Development Management Tools, Q2 2010 place Atlassian dans la catégorie Leader.

Suite Les + Les –
Studio Atlassian
  • Le coût
  • Le reporting
  • La sécurité
  • La stratégie produit
  • La taille de la communauté
  • Le réseau de partenaires
  • Les fonctionnalités de management
  • L’administration difficile à appréhender
  • Un acteur jeune sur le marché
Rally Software Development
  • Les fonctionnalités de management
  • L’administration
  • Le reporting
  • Une stratégie produit dynamique
  • La configuration du processus difficile
  • Le nombre de plateformes supportés
  • Le support
MKS
  • L’exécution opérationnelle d’un projet
  • La sécurité
  • La configuration du processus
  • Acteur historique
  • Concentrer principalement le sur marché US
  • Une communauté faible
  • Une stratégie produit peu active
  • Le coût
IBM Rational
  • Le nombre de plateformes supportées
  • L’exécution opérationnelle d’un projet
  • Les fonctionnalités de management
  • Acteur historique
  • Le coût
  • La sécurité
  • La stratégie IBM difficile à suivre
CollabNet
  • Le nombre de plateformes supportées
  • Spécialiste historique de l’agilité
  • Le reporting
  • La stratégie produit active
  • Situation financière moyenne
  • Réseau de partenaires faible
Microsoft
  • L’administration
  • La configuration du processus
  • La stratégie produit
  • Le réseau de partenaires
  • La difficulté à exécuter un projet opérationnel
  • Plateforme Microsoft uniquement
  • Faible intégration du cycle de vie

Atlassian, et demain ?

Concernant l’avenir, pas d’inquiétude, l’éditeur est solide. Atlassian a le vent en poupe, et une croissance à 2 chiffres depuis plusieurs années.

  • Avec au minimum un release par trimestre pour chaque outil, les évolutions sont toujours au rendez-vous, les intégrations toujours plus poussées.
  • On me souffle dans l’oreillette qu’Atlassian est en train de discuter de l’acquisition de Bitbucket (DVCS Mercurial en SaaS), affaire à suivre…
  • Et pour continuer l’aventure en beauté, Accel Partner vient d’injecter 60 millions de dollars dans les comptes de l’éditeur, un couronnement des efforts réalisés et de quoi préparer la suite sereinement.

Chez Valiantys, nous croyons en Atlassian depuis 2005 et avons bâti avec eux un partenariat privilégié. A travers nos multiples expériences, nous avons développé une expertise à la fois méthodologique et technique sur l’utilisation et l’intégration de ces outils. N’hésitez pas à nous contacter pour plus d’information.

Ressources complémentaires

Voir toutes les ressources