Architecture pragmatique pour la gestion du cycle de vie des applications (ALM) Concepts Agile appliqués à l architecture et à la conception Jean-Louis Maréchaux jl.marechaux@ca.ibm.com
Jean-Louis Maréchaux IBM Canada Lab (User Technologies) Application Lifecycle Management Publications Articles, blogs, documents techniques, sessions web, composants techniques. OSLC eclipse.org/lyo jl.marechaux@ca.ibm.com Pragmatic Architecture (http://ibm.co/od4nns) Open Community / Open Source Membre du groupe de travail sur OSLC Architecture Management 2 @JLmarechaux
Votre environnement de travail Levez la main si. 1. Vous travaillez sur un projet Agile 2. Votre équipe est formée de 10 personnes ou plus 3. Votre équipe utilise un outil pour la gestion des besoins, des tests, ou des changements 4. Votre équipe est distribuée 5. Certains membres de l équipe ont des horaires aménagés (ex: travail à la maison) 6. Vous n avez pas levé la main jusqu à maintenant 3
Agenda ALM et agilité Architecture Pragmatique Étude de cas Scénario ALM agile Conclusion 4
Agilité 101 Quelques principes clés derrière l agilité (source http://agilemanifesto.org/principles.html) Priorité #1: La satisfaction du client Livraison continue (continuous delivery) Accepter que les besoins changent Livrer régulièrement de nouvelles fonctionnalités exécutables Les gens d affaires et les programmeurs travaillent ensemble La mesure de progrès principale est le code exécutable L excellence technique et la bonne conception améliorent l agilité Environnement pour maintenir un rythme constant indéfiniment Réfléchir sur les moyens de devenir plus efficace 5
Objectif de l agilité Éviter ça! Route 251 à Cookshire-Eaton (Québec) Novembre 2012 6
Gestion du cycle de vie des applications Gestion du cycle de vie des application Application Lifecycle Management (ALM) Forrester définit ALM comme: The coordination des activités de développement pendant le cycle de vie, incluant, les exigences, la modélisation, le développement, la construction, et les tests, au travers: Traçabilité: gestion des liens entre les éléments de développement (intégration). Automatisation des processus: mise en application des processus qui englobent toutes les activités. Rapports: rapports sur le progrès de l effort de développement dans son ensemble. 7
Agile ALM, un oxymore? Agile Manifesto: Individuals and interactions over processes and tools D accord, mais que faire si : Architecture & Design Les outils ALM peuvent améliorer la collaboration Requirements Code Quality Vous devez appliquer les principes agiles à des projets toujours plus complexes Change & configuration 8
Agilité à grande échelle: Besoin d une approche plus disciplinée Team size Compliance requirement Under 10 developers 1000 s of developers Low risk Critical, audited Geographical distribution Co-located Global Enterprise discipline Project focus Enterprise focus Agile scaling factors Domain Complexity Straight -forward Intricate, emerging Organization distribution (outsourcing, partnerships) Collaborative Contractual Organizational complexity Technical complexity Flexible Rigid Homogenous Heterogeneous, legacy 9
Agenda ALM and agilité > Architecture Pragmatique Étude de cas Scénario ALM agile Conclusion 10
Sondage rapide Selon les meilleures pratiques agiles, il n y a pas d architecture dans les projets agiles. A. Vrai B. Faux Est-ce que vous développeriez un systèmes complexe sans réfléchir? A. Oui B. Non 11
Architecture et Agilité: une contradiction? Pas de rôle d architecte ne veut pas dire pas de tâches d architecture Architecture & conception sont la responsabilité de toute l équipe Activités de conception n implique pas modèles ou documentation Brainstorming Réflexion créative Résolution de problèmes Les chefs de file recommandent des pratiques d architecture agiles 12
Concepts agiles appliqués à l architecture et la conception Pragmatisme et expérience pratique plutôt que dogmatisme et théorie romouvoir le travail collaboratif qui implique toute l équipe éduire les risques et les incertitudes dhérer aux principes de minimalisme et de simplicité rouper les éléments significatifs pour une ébauche de l architecture (itération 1) odifier la conception en fonction des besoins émergents dresser à la fois les besoins fonctionnels et non fonctionnels ester les concepts théoriques et les résultats empiriques d autres projets nvestir dans les exigences connues au lieu de penser à de potentiels besoins oncentrer les efforts sur des tâches qui font avancer le développement 13 (Source: About pragmatism in architecture - http://bitly.com/sg2fqe)
Architecture et ALM: approche d équipe pour la gestion de la conception La gestion de la conception est un travail d équipe Tout le monde contribue à l information sur les éléments de conception Tout le monde utilise l information sur les éléments de conception Traçabilité au cours du cycle de vie Gestion des exigences, de la conception, de la qualité, et des changements Se concentrer sur les activités utiles pour le cycle de vie dans son ensemble Information sur les éléments de conception utile pendant tout le cycle ALM Backlog Sprint planning Gestion changements Erreurs / incidents Réduction de la dette technique Livraison continue Agile ALM team 14
Agenda ALM et agilité Architecture Pragmatique > Étude de cas Scénario ALM agile Conclusion 15
Example de cycle de développement logiciel < Test Refactor Code Continuous Integration Continuous Delivery Backlog Sprint Backlog Tasks Working increment Production Feedback Incidents Curtis Bob Marco Al Deb Tanuj 16 (Client) (Product Owner) (Scrum Master) (Équipe)
Éléments de conception pour les priorités du carnet de commande Priorités du backlog La valeur d affaires n est pas le seul facteur Prendre en compte les éléments de conception pour les priorités basées sur: Les risques Les interdépendances 17
Éléments de conception pour la planification du Sprint Planification du Sprint Évaluer la faisabilité technique d une exigence: Explorer les options de conception Identifier les tâches pour implémenter les «user stories» Estimer l effort de développement Choisir la bonne carte pendant l estimation (planning poker) Planning 18
Éléments de conception pour supporter le développement itératif Développement & tests Croquis pour réflexion et résolution de problèmes Une image vaut mille mots Activités de conception et de développement sont entrelacées Consulter les éléments de conception pour Créer du code Créer des scripts de test Activités de conception pour les «user stories» complexes Design éclair Réduction de la dette technique 19
Éléments de conception et traçabilité ALM Traçabilité du cycle de vie Liens ALM Comprendre relations entre conception, exigences, tâches, et tests Analyse d impact Évaluer les effets d un changement sur les élément d un projet ALM 20
Conclusion: Architecture Pragmatique et ALM agile Si vous ne deviez retenir que 5 choses 1. ALM fournit la plate-forme collaborative pour le succès des équipes agiles multidisciplinaires 2. Tout le monde crée, utilise et maintient les éléments de conception 3. La gestion de la conception fait partie des disciplines ALM (comme la gestion des exigences, des tests ou des changements) 4. Architecture pragmatique: concepts agiles appliqués à l architecture et à la conception 5. La simplicités est essentielle 21
Community sites / open development / collaboration https://jazz.net/ http://open-services.net/ 22
Questions? Commentaires? Suggestions? Opinion? Partagez votre expérience 23
http://ibm.co/od4nns 24 Jean-Louis Maréchaux (@JLmarechaux) jl.marechaux@ca.ibm.com