soigner sa schizophrénie moa/moe - voyage au pays des spécifications exécutables

Post on 28-Nov-2014

1.890 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Emmanuel HUGONNET

TRANSCRIPT

B6

Soigner sa schizophrénie MOA/MOEVoyage au pays des spécifications exécutables

Emmanuel HUGONNET

lundi 12 octobre 2009

agiletour.org/fr/at2009_geneve.html

Soigner sa schizophrénieMOA / MOE

Voyage autour des spécifications exécutables

Rémy Sanlaville

Expert Senior en Ingénierie Logicielle  Orange Labs

remy.sanlaville@orange-ftgroup.com

Emmanuel Hugonnet

Architecture J2EE

Silverpeas

emmanuel.hugonnet@silverpeas.com

Hervé Lourdin

Architecte Sénior / Coach agile

OCTO Technology

hlourdin@octo.com

Contrat de la sessionCe que vous verrez dans cette session

• Une introduction aux spécifications exécutables ?• A quoi ca sert, pourquoi c'est utile…

• Vivre un exemple basé sur la fonctionnalité d'authentification• Un panorama du domaine

• outils existants : approches, les avantages et inconvénients• les père fondateurs

Ce que vous ne verrez pas dans cette session• Une démonstration des outils

• cf. session Coding Dojo - Kata sur le pilotage par les tests d'acceptances (ATDD)

• Une solution magique à tous vos problèmes

Double PersonnalitéDouble Audience

"Stakeholders are the people whose life you touch with your software"Dan North

MOA MOE

Deux hémisphères

Architecture

Technique

Artisanat

Bien faireCe qu’il faut faire

Idées

Métier

Valeur

MOA MOE

Un problème de communication

MOE

exprime

Client

délivre

comprend

décrit

MOA

Insatisfaction

Gaspillage

Besoin Couvert

Communication

Fonctionnalités et leur utilisationpour un logiciel

Source CHAOS

CommunicationDéfinition de "terminé"

MOA MOE

ATDD cycle model by Jim Shore with changes suggested byGrigori Melnick, Brian Marick, and Elisabeth Hendrickson

Ensemble tout devient possible

Atelier de spécifications

Bug Bash copyright by Hans Bjordahl — www.bugbash.net

ATDD cycle model by Jim Shore with changes suggested byGrigori Melnick, Brian Marick, and Elisabeth Hendrickson

External Domain Specific Language

Given …

When …

Then …

Un Langage Commun

Spécifier par l’exemple

Les histoires d’utilisateur sont décrites au travers d’exemples : les scénarii

Les utilisateurs doivent utiliser des mots de passe sécurisés(une chaine de caractères dont la taille est comprise entre 8 et 20Et qui contiennent au moins une lettre, un chiffre et un caractère spécial)

Atelier de SpécificationsDiscussion

Que ce passe t'il si un utilisateur entre un mot de Que ce passe t'il si un utilisateur entre un mot de passe non sécurisé ?passe non sécurisé ?

Pouvez vous me donner des exemples de mots dePouvez vous me donner des exemples de mots depasse sécurisés et non sécurisés ?passe sécurisés et non sécurisés ?

Quels sont les caractères spéciaux ?Quels sont les caractères spéciaux ?

Comment prend on en compte les espaces ?Comment prend on en compte les espaces ?Que fait on pour les mots de passe basés sur un Que fait on pour les mots de passe basés sur un dictionnaire avec une substitution simple comme dictionnaire avec une substitution simple comme ‘p@ssw0rd’ ?‘p@ssw0rd’ ?Comment gère t on les comptes existants ?Comment gère t on les comptes existants ?Comment savoir que cette fonction est "terminée" ?Comment savoir que cette fonction est "terminée" ?

Atelier de spécificationsDiscussion

Que ce passe t'il si un utilisateur entre un mot de Que ce passe t'il si un utilisateur entre un mot de passe non sécurisé ?passe non sécurisé ?

Pouvez vous me donner des exemples de mots de Pouvez vous me donner des exemples de mots de passe sécurisés et non sécurisés ?passe sécurisés et non sécurisés ?

Quels sont les caractères spéciaux ?Quels sont les caractères spéciaux ?

Comment prend on en compte les espaces ?Comment prend on en compte les espaces ?

Que fait on pour les mots de passe basés sur un Que fait on pour les mots de passe basés sur un dictionnaire avec une substitution simple comme dictionnaire avec une substitution simple comme ‘p@ssw0rd’?”‘p@ssw0rd’?”

Comment gère t on les comptes existants ? Comment gère t on les comptes existants ?

Comment savoir que cette fonction est "terminée" ?Comment savoir que cette fonction est "terminée" ?

Les scénarii

Etant donné un nouvel UtilisateurLorsqu'il crée un compte avec un mot de passe sécuriséAlors le message 'SUCCESS' apparaitEt lorsqu'il essaye de se connecter sur ce compte Alors le message 'Hello $login' apparait

Etant donné un nouvel UtilisateurLorsqu'il crée un compte avec un mot de passe non sécuriséAlors le message 'FAILURE' apparaitEt lorsqu'il essaye de se connecter sur ce compte Alors il n'y parvient pas et le message 'FAILURE' apparait

Exemples

• Exemples de mots de passe sécurisé– p@ssw0rd– d1ction n@ire– dictionnaire_01

• Exemples de mots de passe non sécurisés– Trop court: p@sw0r– Trop long: dictionnaire_01_ dictionnaire_01– Sans chiffre: p@ssword– …

L’information circule

ATDD cycle model by Jim Shore with changes suggested byGrigori Melnick, Brian Marick, and Elisabeth Hendrickson

Scénarii Distillés

Exemples

ATDD cycle model by Jim Shore with changes suggested byGrigori Melnick, Brian Marick, and Elisabeth Hendrickson

Développer

ATDD / BDD : bien faire ce que je dois faire

Le métier pilote le développement

TDD : bien faire les choses

Émergence du design

On commence au Rouge

Il manque la Fixture

Fixture: code de liaison entre le test (les tableaux) et le code du sysème testé (SUT)

Ecriture de la Fixture

Prêt à Développer

Première Etape

TDD – Ecriture du Test

TDD – Ecriture du Code

Vérification Fonctionnelle

Fonctionnalité Terminée

Les exemples permettent de prouver "scientifiquement" la théorie du développeur

Les tests d'acceptance sont le scanner du projet

Enfin les tests : l’exploration

Aspect Technologique

Aspect MétierS

up

po

rt d

u D

éve

lop

pe

me

nt

Critiq

ue

du

Pr o

du

it

Tests ExploratoiresTe

sts d

'Accepta

nce

Tests

Unita

ires

et d'In

tégra

tion

Disponibilité

Scalabilité

Sécurité …*ité

Rendre les spécifications exécutables

Différentes approches– Proche du code

• JBehave, Rspec, Easyb…

– Format moins technique• Wiki : Fitnesse/SLIM, GreenPepper…• HTML : Concordion, Robotframework…

– De nouveaux outils en cours de maturation• Twist, JBehave 2…

Les Pères Fondateurs

• JBehave : Dan North, Chris Matt• Test Driven Development: Kent Beck• FIT: Ward Cunningham• Example Driven Development: Brian

Marick• User Stories: Mike Cohn• Domain Driven Design: Eric Evans• Test Obsessed: Elisabeth Hendrickson

Bilan

Une meilleure communication entre les différents acteurs du projet

• Discuss : tous ensemble• Distill : définition par l'exemple• Develop : pilotage par l'exemple - "FAIT"• Demo : Validation

Bref, une seule équipe

Emergence d'une nouvelle génération d'outils pour relever de nouveaux défis

• Intégration au cycle de vie du projet (SCM)• Facilité de prise en main par la MOA• Meilleure Intégration avec les outils de développement• Rapports plus complets (couverture des exigences, évolution dans le temps…)

Perspectives

5 doigts : ExcellenteSuper c'est exactement ce qu'il me fallait !

4 doigts : BonneTrès intéressant,

3 doigts : Juste MoyenneIntéressant, sans plus. Je n’ai pas perdu mon temps.

2 doigts : UtileBof ! J'ai perdu du temps.

1 doigt : Inutile Je n'ai rien appris. J’ai vraiment perdu mon temps

ROTI (Return On Time Invested)

merci aux sponsors !

top related