introduction à xp hortis grc sa - be prepared for changes!

28
1 Introduction à XP Hortis GRC SA - www.hortis.ch Be prepared for changes!

Upload: bartholomieu-boivin

Post on 04-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction à XP Hortis GRC SA -  Be prepared for changes!

Introduction à XP Hortis GRC SA - www.hortis.ch

Be prepared for changes!

Page 2: Introduction à XP Hortis GRC SA -  Be prepared for changes!

eXtreme Programming,une introduction

Par Didier [email protected]

Hortis GRC SA - www.hortis.ch

Page 3: Introduction à XP Hortis GRC SA -  Be prepared for changes!

3

Coût du développement software

Introduction à XP Hortis GRC SA - www.hortis.ch

0

2000

4000

6000

8000

10000

0 5 10 15 20

Time

Co

st

Barry W. Boehm , Software Engineering Economics, Prentice Hall PTR, 1981;ISBN: 0138221227

But de XP

Page 4: Introduction à XP Hortis GRC SA -  Be prepared for changes!

4

eXtreme Programming: principes

Développement itératifs, Plannification adaptable, pas rigide, Architecture évolutive, non-contraignante, Des tests, des tests, et encore des tests, Be prepared for changes!

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 5: Introduction à XP Hortis GRC SA -  Be prepared for changes!

5

La Métaphore du Cycle

MéthodologiesHéritées des

gros systèmes

eXtremeProgramming

RapidApplicationDevelopment

Page 6: Introduction à XP Hortis GRC SA -  Be prepared for changes!

6

Historical Perspective

MéthodologiesHéritées des

gros systèmes

eXtremeProgramming

RapidApplicationDevelopment

Page 7: Introduction à XP Hortis GRC SA -  Be prepared for changes!

7

Perspective littéraire

Voltaire (1694-1778),Dictionaire Philosophique : “ Le bon sens est la chose du monde la mieux

partagée, car chacun pense en être bien pourvu.”

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 8: Introduction à XP Hortis GRC SA -  Be prepared for changes!

8

eXtreme Programming en quelques mots

Utilisation du bon sens, Faire les choses simplement, Priviliégier la communication, Interagir de près avec le client; Faire tout cela à 100%,

Sans compromis!

Be prepared for changes!

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 9: Introduction à XP Hortis GRC SA -  Be prepared for changes!

9

Perspective littéraire

René Descartes (1596-1650),Discours de la méthode :

• “ ... La seconde, de diviser chacune des difficultés que j’examinerais, en autant de parcelles qu’il se pourrait, et qui serait requis pour les mieux résoudre.” (page 47 de l’édition G.F. 1966)

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 10: Introduction à XP Hortis GRC SA -  Be prepared for changes!

10

Méthodologie “Cascade”

Introduction à XP Hortis GRC SA - www.hortis.ch

Analyse

Design

Code

Test

Années

Analyse dépassée!

Page 11: Introduction à XP Hortis GRC SA -  Be prepared for changes!

11

Application de la 2ème méthode de Descartes

Introduction à XP Hortis GRC SA - www.hortis.ch

Analyse

Design

Code

Test

Analyse

Design

Code

Test

Analyse

Design

Code

Test

Analyse

Design

Code

Test

FonctionsProjet Analyse

Design

Code

Test

Tâches

Analyse

Design

Code

TestAnalyse

Design

Code

Test

Analyse

Design

Code

Test

Analyse

Design

Code

Test

Analyse

Design

Code

TestAnalyse

Design

Code

Test

Années

Semaines

Jours

Page 12: Introduction à XP Hortis GRC SA -  Be prepared for changes!

12

Plannification à la SCRUM

Client et développeurs écrivent ensembles les fonctionalités sur un support (cartes ou JIRA): User stories;

Le client donne des priorités à chaque fonctionalités ,

Les développeurs fractionnent chaque fonctionalité en tâches,

Les développeurs attribuent “une mesure de complexité” à chaque tâche.

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 13: Introduction à XP Hortis GRC SA -  Be prepared for changes!

13

Plannification à la SCRUM

La mesure de complexité peut se convertir en temps de réalisation, vélocité (auto-calibrée!);

La complexité de chaque fonctionalité est calculée comme la somme des complexités de chaque tâche,

Le client décide alors de la prochaine livraison du système.

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 14: Introduction à XP Hortis GRC SA -  Be prepared for changes!

14

Plannification à la SCRUM

Si une date de livraison est en passe d’être dépassée...

... on signale le probléme au client... ... qui décidera des fonctionalités a retirer pour

conserver la date de livraison; Après une “bonne” livraison, le client décide de

la mise en service.

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 15: Introduction à XP Hortis GRC SA -  Be prepared for changes!

15

Structure en itérations et livraisons

Introduction à XP Hortis GRC SA - www.hortis.ch

User Stories

LivraisonRecetteclient

LatestversionIterationRelease

plan

BugsNew userstories

Estimation de la vélocité

Acceptance

Sénarios de test

Architecture

Plannifi-cation

Requirements

Structure

Page 16: Introduction à XP Hortis GRC SA -  Be prepared for changes!

16

Les 8 chemins vers XP

Introduction à XP Hortis GRC SA - www.hortis.ch

Livraisons fréquentes

Simplicité

Refactoring

Intégration continue Code à tous

Programmer en pairesTest

Sépar. métier et technique

Page 17: Introduction à XP Hortis GRC SA -  Be prepared for changes!

17

Séparation métier et technique

Le client connait son métier, Les développeurs connaissent leurs outils, Le client définit les priorités, Les développeurs définissent les délais.

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 18: Introduction à XP Hortis GRC SA -  Be prepared for changes!

18

Séparation métier et technique

Le client doit

les développeurs pas! décider des enchainements (workflow), définir les champs, les menus et les boutons, choisir une charte graphique;

Les développeurs doivent

le client pas! décider d’une architecture, choisir leurs outils (langage, data base, etc...), définir les classes et les interfaces.

Introduction à XP Hortis GRC SA - www.hortis.ch

a le dernier mot pour

ont le dernier mot pour

Page 19: Introduction à XP Hortis GRC SA -  Be prepared for changes!

19

Tests

Test Driven Design: Écrire un test avant de coder;

Tests unitaires écrits par les développeurs: Tester tout ce qui peut “foirer”, utiliser les valeurs limites;

Tests d’acceptance écrits par le client: Vérification des requirements, Bon départ pour la documentation;

Be prepared for changes!

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 20: Introduction à XP Hortis GRC SA -  Be prepared for changes!

20

Intégration Continue

Chaque changement est immédiatement inclus dans un système déployé,

Le déploiement fait partie du développement, Un système utilisable existe en permanence,

les développeurs peuvent essayer le système, le client aussi!

Be prepared for changes!

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 21: Introduction à XP Hortis GRC SA -  Be prepared for changes!

21

Livraisons fréquentes

Conséquence directe du principe d’intégration continue,

Le client a le système en main le plus tôt possible,

Cela lui donne l’occasion de réagir avant qu’il ne soit trop tard,

Choc des nouvelles fonctionnalités atténué, Be prepared for changes!

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 22: Introduction à XP Hortis GRC SA -  Be prepared for changes!

22

Simplicité

Écrire du code lisible (pas de virtuosité), Les autres doivent pouvoir le lire, vous aussi, après quelques semaines!

Les intentions doivent être claires: Utiliser des standards (format, coding), Éviter les abbréviations, Éviter les commentaires;

Ne pas prévoir le futur (vous n’êtes pas devin): C’est une perte de temps pour aujourd’hui, Ce sera une perte de temps demain!

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 23: Introduction à XP Hortis GRC SA -  Be prepared for changes!

23

Programmation par paires

2 personnes font plus que le double de travail, “One types while the other thinks,” Une variation des paires est le meilleur moyen

de faire circuler l’information, Les nouveaux venus sont promptement

intégrés, Les juniors apprennent beaucoup plus vite... … et donc, contribuent beaucoup plus vite!

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 24: Introduction à XP Hortis GRC SA -  Be prepared for changes!

24

Le code appartient à tous

Chaque développeur doit savoir tout faire, Pas de chasse gardée, pas de “prima donna”, Personne ne doit être indispensable, Donc, le projet ne s’arrêtera pas si quelqu’un

s’absente, Le principe de simplicité est un pré-requis.

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 25: Introduction à XP Hortis GRC SA -  Be prepared for changes!

25

Refactoring

Amélioration continue qui fait partie du développement,

Architecture évolutive, qui s’adapte: “This skill helps develop software that stays soft,

and allows more focus on features and less on infrastructure, delivering more value withoutrisking the long term.” (Ron Jeffries)

Be prepared for changes!

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 26: Introduction à XP Hortis GRC SA -  Be prepared for changes!

26

Conséquences sur le code

Coder dans l’ordre suivant: “Make it run ”

Créer un cas test, le faire passer, “Make it good ”

Refactorer le code pour en améliorer la lisibilité et l’architecture,

“Make it fast ”Si besoin est, optimiser l’exécution;

“Say things once and once only! ” Ne rien duplifier “extract method” au lieu de “cut&paste”.

Introduction à XP Hortis GRC SA - www.hortis.ch

Page 27: Introduction à XP Hortis GRC SA -  Be prepared for changes!

27

Les 8 chemins vers XP (conclusion)

Introduction à XP Hortis GRC SA - www.hortis.ch

Sépar. métier et techniqueCustomers know their business,Developer team knows how to use the tools.

Intégration continueCustomers can always see a working version.Full control over development.

Livraisons fréquentesCustomers make their product evolve withthe market. Changes are possible on the fly.

TestAutomated tests ensure that a change doesnot create new errors. Business test cases.

SimplicitéClearly stated code, no duplicated logic, fewest number of objects.

Programmer en paires“One types, the other thinks”. This ensuresthe best communication within the team.

Code à tousAnyone would can contribute to the code will.Customers get the best of our developers.

RefactoringWhen adding a new feature, existing code isadapted if needed, ensuring code reuse.

Page 28: Introduction à XP Hortis GRC SA -  Be prepared for changes!

28

Questions

?

Introduction à XP Hortis GRC SA - www.hortis.ch