Du Chaos à l'Agilité
Le guide du développeur en CDD




        CDD : Chaos Driven Development ;)
DON'T PANIC !
Qui suis-je ?
    Raphaël Rougeron
●



    30 ans, marié, 1 enfant
●



    Développeur web à la CCIP
●
Contexte
    Très petite équipe : 2 développeurs !
●



    Client interne
●



    Deadlines arbitraires
●



    Pas de ...
Préambule
    Les méthodes agiles ne sont pas des religions :
●


    vous êtes libres de choisir les pratiques qui
    vo...
Agile-driven             Plan-driven
    Criticalité faible       Criticalité forte
●                        ●



    Deve...
Rapport CHAOS
          (Standish Group, 1994)
    31,1 % de projets annulés
●



    52,7 % de projets aboutis mais hors ...
Facteurs défavorables
    politique(s), manque de soutien des managers
●



    priorités concurrentes
●



    spécificat...
Facteurs favorables
    implication des utilisateurs
●



    soutien des managers
●



    expression claire des besoins
...
Facteurs favorables
    implication des utilisateurs
●



    soutien des managers
●



    expression claire des besoins
...
Phase 1 : initialisation du projet
    Toutes les idées ne sont pas bonnes
●



    Savoir dire non
●



    Le sacro-sain...
Facteurs favorables
    implication des utilisateurs
●



    soutien des managers
●



    expression claire des besoins
...
Phase 2 : Go !
Implication des utilisateurs
Les valeurs d'XP :
    Communication
●



    Simplicité
●



    Feedback
●



    Courage
●...
Echéances rapprochées
C'est le principe de base de la plupart des
  méthodes agiles pour minimiser les risques.
Chaque ité...
SCRUM
    itération = sprint
●



    mêlées quotidiennes
●



    tout est time-boxed
●



    scrum master en relation a...
Liste de fonctionnalités (backlog)
ID   Nom                     Importance Estimation Description                         ...
Sprint planning : objectifs
    S'accorder sur un but pour le sprint
●



    Choisir une date pour présenter le résultat ...
Importance
#1

                                                                  30
Upload multi-fichiers
Descriptif
     ...
Estimations et vélocité
    Raphaël + Jérémie = 28 jours/hommes
●



    Précédent facteur de concentration : 40 %
●


   ...
Les pratiques d'XP
    Programmation en            Conventions de
●                           ●


    binôme              ...
TDD : les outils
    SimpleTest
●



    PHPUnit
●



    un nouveau venu : PHPSpec
●
TDD : notre approche
    Tests unitaires couvrant la couche métier
●



    Approche quot;top-downquot;, plutôt BDD en fai...
Intégration continue
    VCS !
●


         Subversion + Trac + TortoiseSVN
     –
         = le tiercé gagnant
         l...
PHP est un langage agile !
    Simplicité
●



    Capacités d'intégration
●



    Librairies, frameworks
●
Prochain SlideShare
Chargement dans…5
×

Forum PHP 2007 - Methodes Agiles

1 420 vues

Publié le

Publié dans : Business
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 420
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
28
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Forum PHP 2007 - Methodes Agiles

  1. 1. Du Chaos à l'Agilité
  2. 2. Le guide du développeur en CDD CDD : Chaos Driven Development ;)
  3. 3. DON'T PANIC !
  4. 4. Qui suis-je ? Raphaël Rougeron ● 30 ans, marié, 1 enfant ● Développeur web à la CCIP ●
  5. 5. Contexte Très petite équipe : 2 développeurs ! ● Client interne ● Deadlines arbitraires ● Pas de chef de projet identifié ● Développeurs quot;multi-tâchesquot; : plusieurs projets ● concurrents, à divers stades d'avancement
  6. 6. Préambule Les méthodes agiles ne sont pas des religions : ● vous êtes libres de choisir les pratiques qui vous conviennent. Il y a bien sûr des contextes dans lesquels les ● méthodes traditionnelles (Waterfall, Spiral...), appliquées rigoureusement, fonctionnent très bien. Ex : logiciel de contrôle de la navette spatiale 1 seul bug par version sur 420.000 lignes de code !
  7. 7. Agile-driven Plan-driven Criticalité faible Criticalité forte ● ● Developpeurs Développeurs ● ● expérimentés inexpérimentés Besoins changeant Besoins relativement ● ● très souvent stables Petites équipes Grandes équipes ● ● Environnement Culture de l'ordre ● ● chaotique
  8. 8. Rapport CHAOS (Standish Group, 1994) 31,1 % de projets annulés ● 52,7 % de projets aboutis mais hors budget ou ● hors délais 16,2 % de projets réussis ●
  9. 9. Facteurs défavorables politique(s), manque de soutien des managers ● priorités concurrentes ● spécifications incomplètes ● manque d'implication des utilisateurs ● manque de moyens ● attentes irréalistes (ou pas de besoins réels) ● changements des spécifications ● planification défaillante ●
  10. 10. Facteurs favorables implication des utilisateurs ● soutien des managers ● expression claire des besoins ● attentes réalistes ● échéances rapprochées ● vision claire des objectifs du projet ● équipe concentrée sur le projet ●
  11. 11. Facteurs favorables implication des utilisateurs ● soutien des managers ● expression claire des besoins ● attentes réalistes ● échéances rapprochées ● vision claire des objectifs du projet ● équipe concentrée sur le projet ●
  12. 12. Phase 1 : initialisation du projet Toutes les idées ne sont pas bonnes ● Savoir dire non ● Le sacro-saint quot;cahier des chargesquot; ● 2 points-clés : vision et besoins ●
  13. 13. Facteurs favorables implication des utilisateurs ● soutien des managers ● expression claire des besoins ● attentes réalistes ● échéances rapprochées ● vision claire des objectifs du projet ● équipe concentrée sur le projet ●
  14. 14. Phase 2 : Go !
  15. 15. Implication des utilisateurs Les valeurs d'XP : Communication ● Simplicité ● Feedback ● Courage ● Respect ●
  16. 16. Echéances rapprochées C'est le principe de base de la plupart des méthodes agiles pour minimiser les risques. Chaque itération est un projet complet : analyse des besoins ● planning ● conception ● implémentation ● test ● documentation ●
  17. 17. SCRUM itération = sprint ● mêlées quotidiennes ● tout est time-boxed ● scrum master en relation avec le client ●
  18. 18. Liste de fonctionnalités (backlog) ID Nom Importance Estimation Description Notes 1 Upload multi-fichiers 30 4 L'utilisateur doit pouvoir Utiliser le plugin extjs sélectionner plusieurs fichiers locaux et les transférer en leur appliquant des métadonnées communes 2 Fil RSS par tag 10 2 Lorsqu'il visualise les résultats Limiter à 25 le nombre de d'une recherche par tag, photos dans le fil l'utilisateur peut cliquer sur un lien pour s'abonner au fil RSS correspondant
  19. 19. Sprint planning : objectifs S'accorder sur un but pour le sprint ● Choisir une date pour présenter le résultat du ● sprint au client Obtenir des éclaircissement sur les ● fonctionnalités souhaitées Estimer le nombre de points (jours/hommes ● idéaux) par fonctionnalité Sélectionner les fonctionnalités à implémenter ● durant le sprint
  20. 20. Importance #1 30 Upload multi-fichiers Descriptif Estimation L'utilisateur doit pouvoir sélectionner plusieurs fichiers locaux et les transférer en leur appliquant des métadonnées communes Notes Utiliser le plugin extjs
  21. 21. Estimations et vélocité Raphaël + Jérémie = 28 jours/hommes ● Précédent facteur de concentration : 40 % ● (12 points / 30 jours) Vélocité estimée : 40 % X 28 = 11,2 ● Le total des estimations des fonctionnalités ● sélectionnées ne doit pas dépasser 11 !
  22. 22. Les pratiques d'XP Programmation en Conventions de ● ● binôme nommage Jeu du Planning Appropriation ● ● collective du code TDD ● Conception simple ● Client sur site ● Utilisation de ● Intégration continue ● métaphores Refactoring ● Rythme soutenable ● Livraisons fréquentes ●
  23. 23. TDD : les outils SimpleTest ● PHPUnit ● un nouveau venu : PHPSpec ●
  24. 24. TDD : notre approche Tests unitaires couvrant la couche métier ● Approche quot;top-downquot;, plutôt BDD en fait ● Tests fonctionnels uniquement pour certaines ● fonctionnalités quot;critiquesquot; (authentification, ...)
  25. 25. Intégration continue VCS ! ● Subversion + Trac + TortoiseSVN – = le tiercé gagnant l'intégration quotidienne des modifications impose – une certaine discipline (ne pas se disperser) 3 environnements : dev, recette et prod ● Utilisation expérimentale de Capistrano : ● http://devthatweb.com/view/deploy-any-project-using-capistrano-2
  26. 26. PHP est un langage agile ! Simplicité ● Capacités d'intégration ● Librairies, frameworks ●

×