• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Développement agile de logiciel avec la méthode SCRUM
 

Développement agile de logiciel avec la méthode SCRUM

on

  • 7,669 views

Le développement de logiciel devient de plus en plus complexe et plus long. Des études ont montré que 2/3 des projets informatiques dépassaient le délai prévisionnel (et donc les couts) et ceci ...

Le développement de logiciel devient de plus en plus complexe et plus long. Des études ont montré que 2/3 des projets informatiques dépassaient le délai prévisionnel (et donc les couts) et ceci pose un vrai probleme de time-to-market. Et pourtant depuis quelques décennies, les cycles de développement tels que celui en V, M, W, waterflow, etc existent sans succes.

Statistics

Views

Total Views
7,669
Views on SlideShare
7,430
Embed Views
239

Actions

Likes
7
Downloads
0
Comments
0

5 Embeds 239

http://www.senejug.com 193
http://www.slideshare.net 22
http://senejug.com 14
http://localhost 7
http://webcache.googleusercontent.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Dans ce but, elles prônent 4 valeurs fondamentales (entre parenthèse, les citations du manifeste) : L'équipe (« Personnes et interaction plutôt que processus et outils ») : Dans l'optique agile, l'équipe est bien plus importante que les moyens matériels ou les procédures. Il est préférable d'avoir une équipe soudée et qui communique composée de développeurs moyens plutôt qu'une équipe composée d'individualistes, même brillants. La communication est une notion fondamentale. L'application (« Logiciel fonctionnel plutôt que documentation complète ») : Il est vital que l'application fonctionne. Le reste, et notamment la documentation technique, est secondaire, même si une documentation succincte et précise est utile comme moyen de communication. La documentation représente une charge de travail importante, mais peut pourtant être néfaste si elle n'est pas à jour. Il est préférable de commenter abondamment le code lui-même, et surtout de transférer les compétences au sein de l'équipe (on en revient à l'importance de la communication). La collaboration (« Collaboration avec le client plutôt que négociation de contrat ») : Le client doit être impliqué dans le développement. On ne peut se contenter de négocier un contrat au début du projet, puis de négliger les demandes du client. Le client doit collaborer avec l'équipe et fournir un feed-back continu sur l'adaptation du logiciel à ses attentes. L'acceptation du changement (« Réagir au changement plutôt que suivre un plan ») : La planification initiale et la structure du logiciel doivent être flexibles afin de permettre l'évolution de la demande du client tout au long du projet. Les premières releases du logiciel vont souvent provoquer des demandes d'évolution.

Développement agile de logiciel avec la méthode SCRUM Développement agile de logiciel avec la méthode SCRUM Presentation Transcript

  • Développement agile de logiciel avec la méthode SCRUM Baamtu [email_address] Dakar le 30/07/2009
  • Baamtu : qui sommes nous?
    • Baamtu est une jeune SARL de services d’ingénierie en Génie logiciel et également éditrice de logiciel.
    • Baamtu se veut d’accompagner ses clients et de les orienter dans leurs besoins de faire évoluer leur système d’information dans un environnement concurrentiel qui les pousse à s’adapter perpétuellement.
    • BAAMTU est née de l’envie de bâtir une véritable aventure d’équipe.
    Baamtu
  • Baamtu : les fondateurs
    • Tidiane SY : Diplômé de Institut National des Télécommunications de Paris. Il a travaillé pour de grands groupes dont Microsoft , Alcatel et la Sonatel (Sénégal).
    • Tanoor Dieng : Ingénieur en informatique, a travaillé pour diverses entreprises dans le domaine du WEB et de la téléphonie mobile.
    • Mouhamed DIOUF : Docteur-ingénieur en informatique spécialité génie logiciel. Architecte Java/JEE et spécialiste de l'approche par règles métier. MDI a eu à faire des missions dans différentes structures allant du ministère des anciens combattants aux USA à voyages-sncf.com ( premier site marchand en Europe ) .
    Baamtu
  • Baamtu : nos services
    • Aidez nos clients à recenser et définir leurs besoins.
    • Mise en place de solutions innovantes et pérennes.
    • Accompagnement pour une politique du changement.
    • Formation, audit, etc.
    Baamtu
  • Cas d’utilisation
    • Mise en place d’un système d’information pour la société S Comme Solaire :
      • 200 utilisateurs
      • Gestion des flux de la demande au suivi du dossier :
        • Affectation du commercial
        • Automatisation de calculs complexes
        • Génération de devis
        • Client : gestion de la base clientèle et le suivi
        • Gestion des emplois, de la hiérarchie, reporting, etc.
    • La création du jeu Master Word avec la plateforme Androïd de Google
    • Divers projets chez voyages-sncf.com technologie
    Baamtu
  • Sommaire
    • Philosophie agile
      • Que sont les méthodes agiles
    • Scrum
      • Principes
      • Qui?
      • Quoi?
      • Comment?
    • Ressources
    • Questions
    • Vocabulaire
    Baamtu
  • Philosophie agile Baamtu
  • Que sont les méthodes agiles?
    • Un style de conduite de projet :
      • Projet itératif incrémental;
      • Centré sur l’autonomie des ressources humaines impliquées;
      • Production, validation et tests en continue
    • Une dynamique inspirée du lean :
      • Inspecter et s’adapter (amélioration continue) ‏
      • Développement incrémental
        • Test et refactoring
      • Prioriser sur la valeur métier
      • Emergence
        • des besoins
        • du design
        • des technologies
      • Responsabilité des équipes
    Baamtu
  • Scrum Principes Baamtu
  • Méthodes traditionnelles
    • La construction d’application de plus en plus complexe
    • Beaucoup de projets sont annulés et beaucoup d’autres ne livrent pas la valeur fonctionnelle attendue
    • 2/3 des projets dépassent les estimations.
    • Différents cycles de vie et de développement :
      • En cascade
      • En v
      • En w
      • En M
      • En waterflow
      • etc
    Baamtu
  • SCRUM
    • SCRUM est un processus de gestion et de contrôle se focalisant sur la construction de logiciles respectant les spécifications fonctionnelles.
    • Objectif : booster la productivité de l’équipe.
    • Formalisée par Ken Schwaber et Jeff Sutherland
    • XP permet d’améliorer la qualité du logiciel développé et SCRUM améliore la gestion de projets au jour le jour.
    Baamtu
  • SCRUM
    • Les grands principes :
      • Équipe auto organisée et auto gérée
      • Pas d’ajout extérieur de travail durant une itération
      • Réunion d’avancement quotidienne
      • Itérations (sprints) fixes
      • Démonstration à tous les intervenants à la fin de chaque itération
      • A chaque itération : un planning adaptif : client-driven
      • Pas de management superflu
    Baamtu
  • Cycle de vie de Scrum Baamtu
  • Sprint Des sprints fixes à un rythme soutenable Activités de développement Sprint Planning (1 jour) Sprint Retrospective (1 jour) Baamtu
  • Sprint
    • Durée fixe : définit en début de projet (peut être revue en cours)
    • Développement des items présents dans le Sprint Backlog
    • Commence par un Sprint Planning
    • Se termine par une démonstration
    • Se conclut par une retrospective
    Baamtu
  • Scrum Qui? Baamtu
  • Rôles clés et responsabilités
    • Propriétaire du produit (Product Owner)
      • Définit les fonctionnalités du produit, décide du contenu et des dates des releases
      • Est responsable de la profitabilité du produit (ROI)
      • Priorise les fonctionnalités en fonction de leur valeur métier
      • Peut changer les fonctionnalités et leurs priorités à chaque itération
      • Accepte ou rejette les incréments
    Baamtu
  • Rôles clés et responsabilités Baamtu
  • Rôles clés et responsabilités
    • ScrumMaster
      • Fait en sorte que l’équipe soit entièrement opérationnelle et productive
      • Permet une coopération étroite au-delà des rôles et fonctions en faisant tomber les barrières
      • Protège l’équipe des interférences extérieures
      • S’assure que le processus est bien appliqué. Convie au daily scrum, réunion de revue d’itération et réunion de planification
      • Souvent c’est le team leader ou le project leader ou le project manager qui joue ce rôle
    Baamtu
  • Rôles clés et responsabilités Baamtu
  • Rôles clés et responsabilités
    • Équipe :
      • Doit être cross fonctionnelle
      • Pas de spécialisation fonctionnelle, 7 membres +/- 2
      • Définit le but de l’itération et le contenu du livrable produit
      • Doit pouvoir faire tout ce qu’il est possible dans les limites du projet et de l’entreprise pour atteindre le but de l’itération
      • Auto organisation de l’équipe et du travail
      • Effectue la démonstration du produit au propriétaire du produit
      • Seule l’équipe chiffre et s’engage.
      • Certains membres peuvent être à temps partiel.
      • Pas de titre et d’exception : toute l’équipe code.
    Baamtu
  • Rôles clés et responsabilités Baamtu
  • Scrum Quoi ? Baamtu
  • Product Backlog
    • Liste de besoins, fonctionnalités, anomalies
    • Attributs :
      • Id, User story, Notes
      • Importance (Priority), Complexité,
      • How-to demo, Statut
    • Les anomalies seront définies plus tard en tant que « tâches »
    • Émergents, priorisés, estimés
    • Plus de détails sur les éléments de plus haute priorité
      • Use Case (UML)
    • Le Product Owner est responsable des priorités
    • L’estimation de la complexité est réalisé par l’équipe
    • N’importe qui peut contribuer
    • Maintenu et exposé de façon visible
    • Dérive d’un Business Plan ou d’un document de Vision qui parfois devront être créés avec le client
    Baamtu
  • Product Backlog : Estimation de la complexité
    • Réalisé au travers du Planning Poker
    • Evaluation collective de la complexité
      • Complexité relative aux autres items du Product Backlog
    • Estimation en point de complexité et non en temps
      • Donne la vélocité de l’équipe
    • Attention : un ticket d’entrée de 3 à 4 sprints.
    Baamtu
  • Product Backlog Baamtu
  • Sprint Backlog
    • Sous-ensemble des items du Product Backlog
    • Découpe ces items en tâches
    • Estimation en heure de chaque tâche
    • Les membres de l’équipe se répartissent les tâches
    • Définit à l’issue du Sprint Planning
    • Seule l’équipe pourra modifier le Sprint Backlog
    • Il doit être accessible à toute l’entreprise
    Baamtu
  • Burndown Chart
    • Suivi de la réalisation des tâches
    • Devrait être linéaire si le découpage des tâches est correct
    • Devrait terminer à 0 en fin de Sprint
    Baamtu
  • Scrum Comment? Baamtu
  • Sprint Planning
    • En présence de TOUTE l’équipe (Product Owner compris)
    • Définition du Sprint Goal
    • Identification des membres de l’équipe, des intervenants (Stakeholders) et de leur disponibilité
    • Définition du Sprint Backlog
    • Planification de la démonstration du résultat du Sprint
    • Mise en place du Daily Scrum
      • Heure
      • Lieu
    Baamtu
  • Done ?
    • Quand un membre de l’équipe dit « done », que cela signifie-t-il ?
      • Le code adhère aux standards, est propre, a été refactoré, a été testé unitairement, a été « checkiné », a été buildé, et a été validé par une suite de tests fonctionnels (voire plus).
    • L’environnement de développement nécessaire à la mise en œuvre de tout ceci doit comprendre des briques de code réutilisables, des standards de développement, des facilités pour l’intégration continue et un outillage adapté pour les tests unitaires.
    Implémenté Unit test et couverture Tests fonctionnels Tests d’intégration Tests de performance Installation Test d’acceptance Pilote Production Baamtu
  • Daily Scrums
    • Réunion quotidienne de 15mn (max.)
    • Même lieu et même heure tous les jours
      • Salle de réunion
    • Chickens et pigs : seul les pigs parlent
      • Intervenants et membres d’équipe
    • 3 questions :
      • Qu’as-tu fait depuis la dernière réunion ?
      • Que vas-tu faire d’ici à la prochaine réunion ?
      • Y’a-t-il des points qui pourraient t’empêcher d’atteindre cet objectif ?
    • Points de blocage
    • Décisions
    Baamtu
  • Chickens et pigs Baamtu
  • Rétrospective de sprint
    • Amélioration du processus en fin de sprint
    • Facilitée par le ScrumMaster
    • Qu’est-ce qui s’est bien passé, qu’est-ce qui peut être amélioré ?
    • Comment augmenter la vélocité de l’équipe
    • Identification des ‘Impediments’
      • Le ScrumMaster priorise en fonction des directions de l’équipe
      • L’équipe conçoit des solutions aux problèmes les plus frustrants
    Baamtu
  • Ressources
    • La Scrum Alliance : ( www.scrumalliance.org )
    • Control Chaos : ( www.controlchaos.org )
    • Agile alliance : ( www.agilealliance.org )
    • Agile principles
      • http://agilemanifesto.org/principles.html
    Baamtu
  • Question? Baamtu
  • Vocabulaire Baamtu Limite de durée (sprint ou réunion) Bloc de temps Time-box Bilan d’itération Rétrospective du sprint Sprint retrospective Revue d’itération Revue du sprint Sprint review meeting Exécutable avec des fonctionnalités utilisables Produit partiel utilisable Potentially shippable product increment Réunion d’équipe quotidienne (1/4h) Mêlée quotidienne Scrum daily meeting Partie-prenante Intervenant Stakeholder Animateur d’équipe ScrumMaster ScrumMaster Client Propriétaire du produit Product Owner Plan d’itération Backlog du sprint Sprint Backlog Référentiel des exigences Backlog du produit Product Backlog Itération Sprint Sprint Français English