Agile Delivery - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Agile Delivery

Description:

Pour tre au plus proche des attentes du clients et de s'assurer au fur et mesure de la ... En participant activement au projet il le d fendra avec autant de z le ... – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 30
Provided by: cedricr
Category:

less

Transcript and Presenter's Notes

Title: Agile Delivery


1
Agile Delivery
  • Cédric ROUVRAIS
  • mailto crouvrais_at_octo.com

2
Agenda
  • Introduction
  • Concepts majeurs
  • Contexte idéal dapplication
  • Méthode traditionnelle
  • Procédure habituelle
  • Résultats classiques
  • Analyse des causes déchecs
  • Agile Delivery
  • Comment répondre aux problèmes
  • Facteurs clés de réussite
  • et déchec
  • Quelques outils employés
  • Checkstyle, clover,
  • Conclusion

3
Introduction
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Agile Delivery quid ?
  • Scinder un projet en sous projets unitaires
  • Afin de racourcir les cycles de livraisons
  • Pour avoir des jalons claires sur la route
    globale du projet
  • Pour être au plus proche des attentes du clients
    et de sassurer au fur et à mesure de la
    faisabilité de lensemble
  • Lagile delivery étends la notion dintégration
    continue (continous integration) de Martin Fowler
  • A quoi ça sert ?
  • Eviter leffet tunnel classique avec ses
    inconvénients
  • Livraison dun logiciel qui ne correspond à
    lidée de lutilisateur
  • Améliorer lambiance de travail motiver les
    équipes
  • Améliore les rélations et la cohésion entre le
    client, les développeurs et la production
  • Cest vraiement à la mode demployer le mot
    agile
  • Après Windows XP nous aurons probablement Agile
    Windows ?

4
Contexte dApplication
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Conditions de développements
  • Poussé par les besoins (feature-driven)
  • Modus operandi peut être XP, Scrum, Agile
    Development, CMM, etc.
  • La présence du client est fréquente
  • Elements recherchés
  • Cycle de livraison court voire très court
  • Rapprocher progressivement la solution avec les
    besoins du client
  • Environnement propice
  • Le client nest pas capable de fournir au début
    du projet de façon définitive ses besoins et
    contraintes

5
Cycle de vie
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe

6
Méthode Traditionnelle
  • Quelles sont les procédures habituellement
    rencontrées et les risques associés

7
Méthode Traditionnelle
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Le développement à lieu en trois phases
  • Ecriture des spécifications (besoins métiers)
    équipe fonctionnelle
  • Conception et mise en uvre équipe technique
  • Livraison du logiciel pour la recette puis
    production
  • Equipe fonctionnelle MOA
  • Rediger le cahier des charges et effectuer le
    recueil des besoins du client
  • Mise en place des modules fonctionnels et
    définition de linteraction entre ces modules
  • Equipe technique MOE
  • Effectuer la conception technique des differents
    modules
  • Implémenter les différents modules
  • Rédiger la documentation et le plan de test
    technique
  • Equipe architecture
  • Cellule transverse sassurant de la cohérance du
    découpage fonctionel
  • Analyser les besoins et proposer larchitecture
    logicielle la plus adaptée
  • Définir les technologies mises en uvre

8
Résultats Classiques
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Lécriture des spécifications dérappe, le client
    sembourbe dans des détails et perd de vue
    lessentiel
  • Parfois le besoin est irréalisable et le client
    lapprend le jour de la livraison
  • Cest tellement plus simple de mal faire le
    travail dautrui que de bien faire son travail
  • Le passage en pre-production/recette est un échec
    sanglant
  • Le logiciel nest pas administrable car cela na
    pas été testé lors du développement
  • Le logiciel ne correspond pas aux besoins de
    lutilisateur
  • Très souvant cest trop tard pour corriger les
    bugs, les développements ont dérapé et il ny a
    plus le temps deffectuer correctement le passage
    en recette

9
Pourquoi ? Cela est pourtant si évident !
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Echec du passage en recette
  • La charge liée à cette étape est sous-estimée
  • Recette Intégration et Intégration Tout plein
    de bugs
  • Le dimensionnement des machines est incorrecte
  • Les difficultés à surmonter
  • Dispersion de léquipe
  • Lêtre humain moyen ne peut pas effectuer une
    tâche avec ardeur sil ne voit pas les fruits de
    son labeur à court terme
  • Après un long travail (des mois) la démotivation
    face aux nombreux obstacles (bugs à gogo en
    recette) est structurelle
  • Enervement du client
  • Ca fait longtemps que jaurais du avoir quelque
    chose et vous navez rien qui marche !

10
Agile Delivery
  • Comment répondre aux problèmes rencontrés et
    identifier correctement les éléments importants

11
Comment répondre à ces problèmes ?
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • La racine du mal provient dun cycle de livraison
    long
  • Côté client
  • Présent lors de la rédaction des besoins
  • Présent lors de la livraison finale, des mois
    plus tard
  • Côté developpeur
  • Tendance à oublier rapidement les besoins du
    client
  • Loin des yeux, loin du cur pas de client, pas
    de pression
  • Raccourcir les cycles et avancer de façon
    pragmatique
  • Mise en place de la fondation (éléments de base)
  • Recueil des besoins et rédaction dune première
    version des spécifications
  • Mise en place dune architecture technique high
    level
  • Implémentation et validation client progressive
  • Présence fréquente pression sur les
    developpeurs
  • La satisfaction du client est moteur pour le
    developpeur
  • Impliquer en amont la production

12
Le cycle davancement
Recueil des besoins
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe

Spécifications
Implémentation dune fonctionnalité
Revue des spécifications
Retour client et production
Tests Unitaires Fonctionnelles
Recette
13
Facteurs clés de réussite
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Mise en place dun environnement dintégration
    continue
  • Existence dun referentiel source unique
  • Par exemple Starteam ou CVS
  • Build automatique avec tests unitaires et
    fonctionnels
  • Utilisation de jUnit, MockObjects, Cactus,
    Raccoon,
  • Génération de rapport du build et des tests
    automatisés
  • Utilisation de plugins maven
  • Mise en place dun méchanisme de reporting
  • Simple is beautiful SMTP
  • En cas déchec (compilation, test) un mail est
    envoyé à lensemble de léquipe responsable du
    module
  • Un module, cest un projet et on utilise le
    reactor de maven
  • Utilisation doutils disponibles
  • Checkstyle pour la qualité du code
  • Clover pour la  qualité  des tests

14
Facteurs déchec
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Les bouchons sont mal étudiés
  • Afin deffectuer les tests fonctionnels il est
    nécessaire de mettre en place des bouchons
  • Soit par lutilisation de MockObjects, Raccoon,
  • Le bouchon est une solution sur le papier
  • En effet, il nexiste aucune garantie que le
    bouchon se comporte comme lapplication finale
  • Lexistence derreurs de comportement nest pas à
    exclure donc!
  • Côté client
  • Absence fréquente ou manque dinvestissement
  • Baisse de morale et dimplication des
    développeurs
  • La girouette de service
  • On avance dun pas et on recule de deux pas
  • Côté production
  • Incapacité à fournir un plan de test convenable
  • Aspect innovant entraîne des risques car la
    production navigue en mer inconnue

15
Difficultés rencontrées
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Incapacité du client à séparer les
    fonctionnalités
  •  Cest trop compliqué, cest tout un ensemble
    qui fonctionne 
  • Le problème cest que tout lensemble en question
    représente le back-office de la société
  • Keep It Simple and Straightforward
  • La complexité dun programme va croissant jusquà
    ce que cela devienne trop complexe pour le
    programmeur à maintenir
  • Ce qui se conçoit bien sennonce clairement!
  • Côté production
  • Attitude  je testerai quand votre application
    sera terminée 
  • Les développeurs nont pas daffinités naturelles
    avec léquipe de production la cohabitation est
    difficile

16
Quelques outils
  • Un aperçu de quelques outils qui nous simplifient
    la vie

17
Checkstyle
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe

18
Clover
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe

19
jUnit
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe

20
Raccoon
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Pour les tests fonctionnels
  • La génération de feuilles HTML suite aux tests
    fonctionnel est toujours en cours de réalistion ?
  • En attendant lutilisation de jUnit est adéquat
  • Pour les tests de montée en charge
  • La génération des feuilles HTML est toujours en
    cours de réalisation
  • Quelques difficultés pour les étapes
    intermédiaires

21
Conclusion
  • Ce quil faut retenir les avantages et
    inconvénients

22
Avantages de la solution Client
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Il est toujours au fait des évolutions
  • Cela inclut les hauts et les bas dans les
    moments difficiles avoir un client sur place
    nest pas simple mais dans lensemble cest
    mieux
  • En participant activement au projet il le
    défendra avec autant de zèle
  • Une caractéristique intéressante de lêtre humain
    est la fierté du travail auquel il a participé
  • Le produit correspond à ses besoins car il suit
    le projet de bout en bout
  • Ce nest pas toujours le cas avec un
    developpement au  forfait 

23
Avantages de la solution Production
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Une implication en amont de la production
    garantie la stabilité et robustesse du logiciel
  • Les contraintes DRP sont prises en compte assez
    tôt, ce qui est important car ça peut être
    structurant
  • Toutefois dans les moments dure léquipe de
    développement peut être décredibilisé
  • Tout comme le client, il a participé au projet
    donc il le défendra
  • Le produit répond aux besoins de la production
    car elle suivi le projet de bout en bout
  • Ce nest pas garantie dans le cas des autres
    processus de développement
  • En cas de contrainte structurant la remise en
    cause de larchitecture nest pas faite au
    dernier moment

24
Avantages de la solution Développeur
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Les cycles court avec retour de lutilisateur
  • Est un facteur de motivation constant pour
    léquipe
  • Toutefois il faut faire attention à ne pas mettre
    trop de pression juste ce quil faut
  • Linteraction avec les différents acteurs
  • Implique dautant plus le développeur,
    lutilisateur à un nom et un visage.
  • En outre il est plus à même de comprendre les
    utilisateurs

25
Inconvénients de la solution
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe
  • Côté matérielle
  • Cela nécessite un peu plus de machines que de
    coutume
  • Côté humain
  • Clients, développeurs et production ont tendance
    au début à saccrocher
  • Cela nécessite plus de disponibilité des
    personnes
  • La communication entre les différents entités est
    un aspect délicat
  • Plus généralement il faut ajouter tous les
    inconvénients de lintégration continue ?

26
Questions ?
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexe

Raccoon
jUnit
27
Annexes
28
Sur la méthodologie
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexes
  • XP Installed
  • ftp//ftp.xprogramming.com/ftp/xpinstall.pdf
  • Resources XP
  • www.xprogramming.com
  • www.pairprogramming.com
  • www.martinfowler.com
  • www.objectmentor.com
  • Resources Agiles
  • http//agiledevelopmentconference.com/
  • http//www.agilealliance.org/

29
Architecture génerale
  • Sommaire
  • Introduction
  • Méthode Traditionnelle
  • Agile Delivery
  • Quelques outils
  • Conclusion
  • Annexes
Write a Comment
User Comments (0)
About PowerShow.com