Développement distribué agile

26
AGILITÉ ET DÉVELOPPEMENT DISTRIBUÉ Xavier Warzee Email: [email protected] Mathieu Szablowski Email: mszablowski@pyxis- tech.com

description

 

Transcript of Développement distribué agile

Page 1: Développement distribué agile

AGILITÉ ET DÉVELOPPEMENT DISTRIBUÉ

Xavier WarzeeEmail: [email protected]

Mathieu SzablowskiEmail: [email protected]

Page 2: Développement distribué agile

AU FAIT, C’EST QUOI POUR VOUS « DISTRIBUÉ » ?

Page 3: Développement distribué agile

AGENDA

Challenges de l’agilité en équipe distribuée

Bonnes pratiques

Retour d’expériences

Page 4: Développement distribué agile

CHALLENGES DE L’AGILITÉ EN ÉQUIPE DISTRIBUÉE

Page 5: Développement distribué agile

CHALLENGE DE L’AGILITÉ EN ÉQUIPE DISTRIBUÉE Travail en équipe ?

Décalage horaire Comment échanger sur les besoins fonctionnels ?

Équipe on-shore souvent occupée Équipe off-shore reste dans le flou

Communication ? Ligne téléphonique => qualité de communication basse ! Accent, culture, approche des problèmes différents

Effet 24h Si une action doit être faite par une équipe pour que l’autre équipe

avance et que l’action n’est pas faite à la fin d’une journée, l’autre équipe reste bloquée une journée complète !

Pas de vision commune des enjeux business du projet Équipe off-shore sans visibilité sur les attentes métier

Þ peu de contextes Þ Pas de vision globaleÞ Actions techniques sans signification

Page 6: Développement distribué agile

L’AGILITÉ AVEC SCRUM

Itération courte : le « sprint » de 2 à 4 semaines

Les rôles : ScrumMaster, ProductOwner

Le « Product Backlog »

Communication intensive : le « Daily Scrum »

Petites équipes

Distribution des développements par fonction

Page 7: Développement distribué agile

CHALLENGES SUPPLÉMENTAIRES

Mise à disposition d’un niveau suffisant de support pour mettre en place l’environnement de travail : outils, serveurs, …

Mise à disposition des accès aux infrastructures nécessaires au projet en off-shore

Référentiel de gestion de configuration, …

Représentant de l’équipe off-shore dans l’équipe on-shore => faciliter la communication

Manque de confiance Bien comprendre les méthodes de travail de l’équipe offshore

Style de rédaction des documents, …

Manque de visibilité

Page 8: Développement distribué agile

BONNES PRATIQUES

Page 9: Développement distribué agile

EQUIPE OFF-SHORE

Construire l’équipe offshore incrémentalement Supporter activement l’équipe offshore Mettre en place un environnement Ajouter ensuite de nouveaux membres à l’équipe

offshore

Intégrer un proxy leader de l’équipe offshore par projet dans l’équipe onshore Échanges côté onshore plus facile à créer Échanges côté offshore compensés par connaissance

des équipes offshore par le proxy leader

Page 10: Développement distribué agile

MULTIPLIER LES CANAUX DE COMMUNICATION

Email, IM, Webcams, Vidéo conférences (round table), Tableaux blancs électroniques.

Dépasser la communication verbale !

Page 11: Développement distribué agile

INTÉGRATION CONTINUE

Construire, tester, déployer systématique

Vélocité des développements grandement améliorée !

Partage facilité et commun de l’état du projet

Pour des équipes très éloignées, définir 2 « builds » principaux (alternance jour/nuit) :

1 « build » le matin 1 « build » le soir

Augmentation de la stabilité du code

Facilite l’ajout de nouvelles fonctions et la gestion des releases

Partager une même perception de l’état « concret » du projet !

Page 12: Développement distribué agile

BIEN DÉFINIR LE NOTION DE « TERMINÉ »

« Terminé » pour une « story »

• Répondre aux critères d’acceptation définir au début d’un sprint

• Tous les codes et tests dans le référentiel de gestion de version

• Tous les tests de « story » écrits et passés avec succès

• Tous les tests fonctionnels applicables pour une “story” sont identifiés, écrits et passés avec succès

• Approbation du PO / Stakeholder

« Terminé » pour un « sprint »

• Tous les critères pour les « stories » sont à jour et/ou adressés

• Tous les « Critical/Error Breaking » détectés par FxCop sont corrigés

• Code coverage >= 70%• 0 erreurs détectées par

StyleCop• Utiliser un Profiler et

analyser les résultats• Démonstration au PO

Page 13: Développement distribué agile

DÉMARCHE D’AMÉLIORATION CONTINUE Rétrospectives à chaque fin de

« sprint » permettant de remonter les suggestions d’amélioration (+ de temps pour les tests, …)

Objectif : améliorer les pratiques durant chaque « sprint »

Page 14: Développement distribué agile

INVESTIR EN INFRASTRUCTURE ET PROCESS

Solution permettant de construire, déployer, tester automatiquement

Développer des émulateurs pour l’ensemble des dépendances externes

Passer du temps à échanger sur la définition de « Terminé » pour les « stories », « sprints »

Passer du temps à échanger sur l’amélioration du processus de développement

Page 15: Développement distribué agile

MÉTRIQUES POUR MESURER L’AVANCEMENT

Mesure du nombre de bugs trouvés par release Mesure du nombre de bugs résolus par release Mesure du nombre de bugs par priorité, par fonction Résultats des tests Complexité du code Couverture du code par les tests Pourcentage des « stories » terminées par sprint

Mesures particulières : % up-time des services, % de retour positif des clients, Latence moyenne des transactions, etc.

Page 16: Développement distribué agile

MÉTRIQUES D’ESTIMATION POUR LES SPRINTS

Page 17: Développement distribué agile

STATIQUES CONCERNANT LES BUGS

Page 18: Développement distribué agile

STATISTIQUES CONCERNANT LES TESTS AUTOMATISÉS

Page 19: Développement distribué agile

RETOUR D’EXPÉRIENCE AVEC PYXIS

Page 20: Développement distribué agile

PROJET CLIENT

PARIS 3 développeurs 1 Scrum Master 1 Product Owner Sponsor Utilisateurs

GRENOBLE 2 développeurs

Page 21: Développement distribué agile

INFRASTRUCTURE PROJET CLIENT

PARIS GRENOBLE

WEB

MailWikiDocuments

IntégrationPré-Production

Page 22: Développement distribué agile

URBAN TURTLE

MONTREAL3 développeursProduct Owner

PARIS1

développeur

Page 23: Développement distribué agile

OUTILS DE COLLABORATION

Simple et pratique Voir l’état du sprint

Qu’avons-nous réalisé? Sur quoi puis-je m’engager? Qu’avons-nous livrer au client

Accès distant Temps réel Intégré

Page 24: Développement distribué agile

Intérêt dans une équipe distribuée

ATELIER : OUTILS VS PRATIQUES

Page 25: Développement distribué agile

VISUAL STUDIO TEAM SYSTEM

Un serveur pour la collaboration

Des outils clients

Page 26: Développement distribué agile

URBAN TURTLE

Extension de Visual Studio Web Access Faciliter la gestion de projet agile

Itératif, incrémentale, transparence…