17
Laurent Bristiel 18/09/2012 Développement logiciel en méthode agile

Développement en méthode agile

Embed Size (px)

Citation preview

Page 1: Développement en méthode agile

Laurent Bristiel18/09/2012

Développement logicielen méthode agile

Page 2: Développement en méthode agile

Agenda

Qui suis-je ? De quoi parle-t-on au juste ? Agilité Tests Bilan

Page 3: Développement en méthode agile

Qui suis-je ?

Ingénieur logiciel chez Fermat/Moody's de 2004 à 2012 Responsable d'une équipe de testeurs Contexte : éditeur, bancaire, agile

Embauché chez Forgerock depuis 2 jours Mission semblable mais contexte différent

Page 4: Développement en méthode agile

Développement logicielen méthode agile ?

Développement  Spécification Programmation Tests

Logiciel Traditionnel (application) Soft As a Service (web) App (smartphone)

Méthodes Cow-boy Cascade Cycle en V Agile Open Source (bazar)

Page 5: Développement en méthode agile

2001

Page 6: Développement en méthode agile

Agile = scrum + XP

Scrum : méthode de gestion de projet Populations : product manager, dev, scrumMaster Outils : stories, itérations, backlog, board, post-it Réunions : planning, daily, démo, rétro

Page 7: Développement en méthode agile

XP = Extrem Programming : méthode dév Intégration continue, feedback loop Pair-programming, propriété collective TDD, tests fonctionnels

Page 8: Développement en méthode agile

Agile aujourd'hui

Facebook, Ebay, Google... Livraison permanente

« Lean Startup » Création startup en continu

Communauté importante à Grenoble Yahoo, Kelkoo, Samse, Orange, EDF, Moody's... 2012 : 5e conférence « Agile Grenoble »

(500 personnes, 40 sessions)

Page 9: Développement en méthode agile

Agile chez Moody's 7 équipes de 10 personnes (PM, Prog, Testeurs) Ratio Testeurs/Prog : 1/2 Releases de 3 mois, itérations de 2 semaines Succès

Capacité à réagir (réglementation, marché etc.) équipes (re)motivées et plus solides Meilleure transparence et predictabilité

Difficultés Équipes distribuées Agilité limitée à la R&D Logiciels vieillissants

Page 10: Développement en méthode agile

Zoom sur les tests(en Agile / chez Moody's)

Pour toute nouvelle version Les nouvelles fonctionnalités doivent marcher Les corrections de bugs doivent être effective Rien ne doit avoir été cassé (effets de bord)

2 activités de tests Tests de validation Tests de non regression

Page 11: Développement en méthode agile

Types de tests

Tests unitaires Tests techniques faits par le programmeur sur le

code source (tests boite blanche) Tests de composants

Tests technico-fonctionnels faits par programmeur ou testeur sur un service (boite grise)

Tests end-2-end Tests fonctionnels fait par testeur ou product

manager sur le système complet (boite noire)

Page 12: Développement en méthode agile

Tests de validation

Tests collectifs, au plus tôt et en continu Collaboration programmeur, testeur et PM Calcul des attendus théoriques (oracle) Programmeur : Test unitaires et TDD Testeurs : production de test cases (composants, E2E)

+ tests exploratoires Important :

on ne teste pas tout Il y a aura des bugs

Page 13: Développement en méthode agile

Tests de non régressions

Risques de régressions ? Tests de non régressions : somme de tous les tests de

validation du passé => croissance infinie Fréquence des tests de NR : aussi souvent que possible

(coût bug, intégration continue..) Méthodes de tests :

Manuels : simple mais long (offshoring ?) Automatique : compliqué mais rapide (expertise)

Important : On ne reteste pas tout (évaluation de risques) Il n'y aura pas forcément de régression

Page 14: Développement en méthode agile

Pyramide idéale des tests automatisés

Page 15: Développement en méthode agile

Bilan de 8 ans de tests

Les régressions sont le réel enjeu (progiciel) « on a le droit à l'erreur, mais une seule fois »

Difficulté à faire comprendre la pyramide « montrez-moi vos tests ! »

Cas particulier des tests d'interface graphique « comment vous avez pu rater ça ? »

Bug du 29 février 2008 « on a eu chaud »

Page 16: Développement en méthode agile

Bilan de 8 ans de tests

Métier passionnant en méthode agile véritables enjeux d'ingénierie logicielle métier peu connu et reconnu

Frustration sur le contexte C++/Oracle/licence versus Java/Web/OpenSource

Page 17: Développement en méthode agile

Des questions ?