SlideShare uma empresa Scribd logo
1 de 39
Soigner sa schizophrénie MOA / MOE Voyage autour des spécifications exécutables Rémy Sanlaville Expert Senior en Ingénierie Logicielle   Orange Labs [email_address] Emmanuel Hugonnet Architecture J2EE Silverpeas [email_address] Hervé Lourdin Architecte Sénior / Coach agile OCTO Technology [email_address]
Contrat de la session Ce que vous verrez dans cette session ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ce que vous ne verrez pas dans cette session ,[object Object],[object Object],[object Object]
Double Personnalité Double Audience " Stakeholders are the people whose life you touch with your software " Dan North   MOA MOE
Deux hémisphères MOA MOE Architecture Technique Artisanat Bien faire Ce qu’il faut faire Idées Métier Valeur
Un problème de communication
Communication MOE exprime Client délivre comprend décrit MOA Insatisfaction Gaspillage Besoin Couvert
Fonctionnalités  et leur utilisation pour un logiciel Source CHAOS
Communication Définition de "terminé" MOA MOE
ATDD cycle model by Jim Shore with changes suggested by Grigori 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 by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
Un Langage  Commun External  Domain Specific Language Given … When … Then …
Spécifier par l’exemple ,[object Object],Les utilisateurs doivent utiliser des mots de passe sécurisés (une chaine de caractères dont la taille est comprise entre 8 et 20 Et qui contiennent  au moins une lettre, un chiffre et un caractère spécial)
Atelier de Spécifications Discussion Que ce passe t'il si un utilisateur entre un mot de  passe non sécurisé ? Pouvez vous me donner des exemples de mots de passe sécurisés et non sécurisés ? Quels sont les caractères spéciaux ? Comment prend on en compte les espaces ? Que fait on pour les mots de passe basés sur un  dictionnaire avec une substitution simple comme  ‘p@ssw0rd’ ? Comment gère t on les comptes existants ? Comment savoir que cette fonction est "terminée" ?
Atelier de spécifications Discussion ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les scénarii Etant donné   un nouvel Utilisateur Lorsqu 'il crée un compte avec un mot de passe sécurisé Alors  le message 'SUCCESS' apparait Et lorsqu'il  essaye de se connecter sur ce compte  Alors  le message 'Hello $login' apparait Etant donné   un nouvel Utilisateur Lorsqu 'il crée un compte avec un mot de passe non sécurisé Alors  le message 'FAILURE' apparait Et lorsqu'il  essaye de se connecter sur ce compte  Alors  il n'y parvient pas et le message 'FAILURE' apparait
Exemples ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
L’information circule
ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
Scénarii Distillés
Exemples
ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
Développer ,[object Object],[object Object],[object Object],[object Object]
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 Tests Exploratoires Tests d'Acceptance Tests Unitaires  et d'Intégration Disponibilité Scalabilité Sécurité … *ité Aspect Technologique Aspect Métier Support du Développement Critique du Produit
Rendre les spécifications  exécutables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les Pères Fondateurs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bilan ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Perspectives ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],ROTI  (Return On Time Invested)

Mais conteúdo relacionado

Semelhante a At2009 Soigner Sa Schizophrenie 1.2

Soigner sa schizophrénie MOA/MOE - Voyage au pays des spécifications exécutables
Soigner sa schizophrénie MOA/MOE - Voyage au pays des spécifications exécutablesSoigner sa schizophrénie MOA/MOE - Voyage au pays des spécifications exécutables
Soigner sa schizophrénie MOA/MOE - Voyage au pays des spécifications exécutablesAgile Tour Genève
 
Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010François Wauquier
 
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...CERTyou Formation
 
BDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéBDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéCARA_Lyon
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_finalDuchess France
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_finalagnes_crepet
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilNormandy JUG
 
Api - mix it 2013
Api - mix it 2013Api - mix it 2013
Api - mix it 2013Eric D.
 
Introduction à l'agilité
Introduction à l'agilitéIntroduction à l'agilité
Introduction à l'agilitéRomain Couturier
 
Description Du Réseau REME de l'AQME
Description Du Réseau REME de l'AQMEDescription Du Réseau REME de l'AQME
Description Du Réseau REME de l'AQMEydaigle
 
Quand on change de code, on prévient !(1)
Quand on change de code, on prévient !(1)Quand on change de code, on prévient !(1)
Quand on change de code, on prévient !(1)Guillaume Renaudin
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationPHPPRO
 
Comment communiquer sur Internet
Comment communiquer sur InternetComment communiquer sur Internet
Comment communiquer sur InternetSage france
 
Introduction au BDD (Behavior Driven Development)
Introduction au BDD (Behavior Driven Development)Introduction au BDD (Behavior Driven Development)
Introduction au BDD (Behavior Driven Development)Fabian Vilers
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowMathias Kluba
 
Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Thomas Choppy
 
LemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreLemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreClément OUDOT
 

Semelhante a At2009 Soigner Sa Schizophrenie 1.2 (20)

Soigner sa schizophrénie MOA/MOE - Voyage au pays des spécifications exécutables
Soigner sa schizophrénie MOA/MOE - Voyage au pays des spécifications exécutablesSoigner sa schizophrénie MOA/MOE - Voyage au pays des spécifications exécutables
Soigner sa schizophrénie MOA/MOE - Voyage au pays des spécifications exécutables
 
Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010
 
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...
 
BDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéBDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilité
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
Api - mix it 2013
Api - mix it 2013Api - mix it 2013
Api - mix it 2013
 
Introduction à l'agilité
Introduction à l'agilitéIntroduction à l'agilité
Introduction à l'agilité
 
Soigner Sa Schizophrénie
Soigner Sa SchizophrénieSoigner Sa Schizophrénie
Soigner Sa Schizophrénie
 
Description Du Réseau REME de l'AQME
Description Du Réseau REME de l'AQMEDescription Du Réseau REME de l'AQME
Description Du Réseau REME de l'AQME
 
Quand on change de code, on prévient !(1)
Quand on change de code, on prévient !(1)Quand on change de code, on prévient !(1)
Quand on change de code, on prévient !(1)
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
Comment communiquer sur Internet
Comment communiquer sur InternetComment communiquer sur Internet
Comment communiquer sur Internet
 
Agile Tour 2016 @ Lille
Agile Tour 2016 @ LilleAgile Tour 2016 @ Lille
Agile Tour 2016 @ Lille
 
Introduction au BDD (Behavior Driven Development)
Introduction au BDD (Behavior Driven Development)Introduction au BDD (Behavior Driven Development)
Introduction au BDD (Behavior Driven Development)
 
Tutoriel java
Tutoriel javaTutoriel java
Tutoriel java
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
 
Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Ged Open Source - Documation 2010
Ged Open Source - Documation 2010
 
LemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreLemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libre
 

Mais de Emmanuel Hugonnet

You're a pretty fly for a WildFly
You're a pretty fly for a WildFlyYou're a pretty fly for a WildFly
You're a pretty fly for a WildFlyEmmanuel Hugonnet
 
Agile Tour 2009 Coding Dojo Kata ATDD
Agile Tour 2009 Coding Dojo Kata ATDDAgile Tour 2009 Coding Dojo Kata ATDD
Agile Tour 2009 Coding Dojo Kata ATDDEmmanuel Hugonnet
 
Innovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette AutomatiséInnovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette AutomatiséEmmanuel Hugonnet
 
Coding Dojo in the Alps - Retour d'expérience
Coding Dojo in the Alps - Retour d'expérienceCoding Dojo in the Alps - Retour d'expérience
Coding Dojo in the Alps - Retour d'expérienceEmmanuel Hugonnet
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange LabsEmmanuel Hugonnet
 
Java Content Repository avec Jackrabbit
Java Content Repository avec JackrabbitJava Content Repository avec Jackrabbit
Java Content Repository avec JackrabbitEmmanuel Hugonnet
 
Le modèle d’acquisition de compétences de Dreyfus
Le modèle d’acquisition de compétences de DreyfusLe modèle d’acquisition de compétences de Dreyfus
Le modèle d’acquisition de compétences de DreyfusEmmanuel Hugonnet
 
Ddj Architecture & Design The Distributed Agile Team
Ddj   Architecture &  Design   The Distributed Agile TeamDdj   Architecture &  Design   The Distributed Agile Team
Ddj Architecture & Design The Distributed Agile TeamEmmanuel Hugonnet
 
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4Emmanuel Hugonnet
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
Ddj Architecture & Design Beyond Functional Requirements On Agile Projects
Ddj   Architecture & Design   Beyond Functional Requirements On Agile ProjectsDdj   Architecture & Design   Beyond Functional Requirements On Agile Projects
Ddj Architecture & Design Beyond Functional Requirements On Agile ProjectsEmmanuel Hugonnet
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes PratiquesEmmanuel Hugonnet
 

Mais de Emmanuel Hugonnet (16)

You're a pretty fly for a WildFly
You're a pretty fly for a WildFlyYou're a pretty fly for a WildFly
You're a pretty fly for a WildFly
 
J2EE m’a tuer
J2EE m’a tuerJ2EE m’a tuer
J2EE m’a tuer
 
At2009 Coding Dojo ATDD
At2009 Coding Dojo ATDDAt2009 Coding Dojo ATDD
At2009 Coding Dojo ATDD
 
Agile Tour 2009 Coding Dojo Kata ATDD
Agile Tour 2009 Coding Dojo Kata ATDDAgile Tour 2009 Coding Dojo Kata ATDD
Agile Tour 2009 Coding Dojo Kata ATDD
 
Innovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette AutomatiséInnovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette Automatisé
 
Coding Dojo in the Alps - Retour d'expérience
Coding Dojo in the Alps - Retour d'expérienceCoding Dojo in the Alps - Retour d'expérience
Coding Dojo in the Alps - Retour d'expérience
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Java Content Repository avec Jackrabbit
Java Content Repository avec JackrabbitJava Content Repository avec Jackrabbit
Java Content Repository avec Jackrabbit
 
Le modèle d’acquisition de compétences de Dreyfus
Le modèle d’acquisition de compétences de DreyfusLe modèle d’acquisition de compétences de Dreyfus
Le modèle d’acquisition de compétences de Dreyfus
 
Ddj Architecture & Design The Distributed Agile Team
Ddj   Architecture &  Design   The Distributed Agile TeamDdj   Architecture &  Design   The Distributed Agile Team
Ddj Architecture & Design The Distributed Agile Team
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Ddj Architecture & Design Beyond Functional Requirements On Agile Projects
Ddj   Architecture & Design   Beyond Functional Requirements On Agile ProjectsDdj   Architecture & Design   Beyond Functional Requirements On Agile Projects
Ddj Architecture & Design Beyond Functional Requirements On Agile Projects
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
 

At2009 Soigner Sa Schizophrenie 1.2

  • 1. Soigner sa schizophrénie MOA / MOE Voyage autour des spécifications exécutables Rémy Sanlaville Expert Senior en Ingénierie Logicielle   Orange Labs [email_address] Emmanuel Hugonnet Architecture J2EE Silverpeas [email_address] Hervé Lourdin Architecte Sénior / Coach agile OCTO Technology [email_address]
  • 2.
  • 3. Double Personnalité Double Audience " Stakeholders are the people whose life you touch with your software " Dan North MOA MOE
  • 4. Deux hémisphères MOA MOE Architecture Technique Artisanat Bien faire Ce qu’il faut faire Idées Métier Valeur
  • 5. Un problème de communication
  • 6. Communication MOE exprime Client délivre comprend décrit MOA Insatisfaction Gaspillage Besoin Couvert
  • 7. Fonctionnalités et leur utilisation pour un logiciel Source CHAOS
  • 8. Communication Définition de "terminé" MOA MOE
  • 9. ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
  • 10. Ensemble tout devient possible Atelier de spécifications Bug Bash copyright by Hans Bjordahl — www.bugbash.net
  • 11. ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
  • 12. Un Langage Commun External Domain Specific Language Given … When … Then …
  • 13.
  • 14. Atelier de Spécifications Discussion Que ce passe t'il si un utilisateur entre un mot de passe non sécurisé ? Pouvez vous me donner des exemples de mots de passe sécurisés et non sécurisés ? Quels sont les caractères spéciaux ? Comment prend on en compte les espaces ? Que fait on pour les mots de passe basés sur un dictionnaire avec une substitution simple comme ‘p@ssw0rd’ ? Comment gère t on les comptes existants ? Comment savoir que cette fonction est "terminée" ?
  • 15.
  • 16. Les scénarii Etant donné un nouvel Utilisateur Lorsqu 'il crée un compte avec un mot de passe sécurisé Alors le message 'SUCCESS' apparait Et lorsqu'il essaye de se connecter sur ce compte Alors le message 'Hello $login' apparait Etant donné un nouvel Utilisateur Lorsqu 'il crée un compte avec un mot de passe non sécurisé Alors le message 'FAILURE' apparait Et lorsqu'il essaye de se connecter sur ce compte Alors il n'y parvient pas et le message 'FAILURE' apparait
  • 17.
  • 19. ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
  • 22. ATDD cycle model by Jim Shore with changes suggested by Grigori Melnick, Brian Marick, and Elisabeth Hendrickson
  • 23.
  • 24. On commence au Rouge
  • 25. Il manque la Fixture Fixture : code de liaison entre le test (les tableaux) et le code du sysème testé (SUT)
  • 26. Ecriture de la Fixture
  • 29. TDD – Ecriture du Test
  • 30. TDD – Ecriture du Code
  • 33. Les exemples permettent de prouver "scientifiquement" la théorie du développeur Les tests d'acceptance sont le scanner du projet
  • 34. Enfin les tests : l’exploration Tests Exploratoires Tests d'Acceptance Tests Unitaires et d'Intégration Disponibilité Scalabilité Sécurité … *ité Aspect Technologique Aspect Métier Support du Développement Critique du Produit
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.

Notas do Editor

  1. Le terme de schizophrénie (« schizo » du grec «  σχίζειν  » [ phon . schizein] signifiant fractionnement et «  φρήν  » [ phon . phrèn] désignant l’esprit) La schizophrénie est une psychose, c’est-à-dire une maladie mentale dont le malade n’est pas conscient et caractérisée par la perte du contact avec la réalité et par des troubles plus ou moins graves de la personnalité.
  2. Jusqu'à présent la communication MOA / MOE : idée / réalisation se fait par l'intermédiaire de l'écrit (spécifications , cartes CRC, …).
  3. The ATDD Cycle Discuss : work with the business stakeholders to understand their real needs and concerns. In traditional environments, this is usually called “requirements elicitation.” In the context of Agile development, the purpose of this discussion is not to gather a huge list of requirements but rather to understand what the business stakeholder needs from one particular feature. During these discussions, ask questions designed to uncover assumptions, understand expectations around non-functional needs such as stability, reliability, security, etc., and explore the full scope of work the business stakeholder is requesting. Distill : collaborate with the business stakeholders to distill their stated needs into a set of acceptance tests, or examples, that define “done.” These tests should focus on externally detectable behavior and will be expressed in tables or keywords. Develop : write the code to implement the requested feature using test-driven development (TDD). Demonstrate : show the business stakeholder the new feature in the emerging system and request feedback.
  4. Le scénario ne passe pas Ecrire le code nécessaire au scénario Ecrire le test unitaire Ecrire le code nécessaire au test unitaire Valider le scenario Le scénario ne passe pas Ecrire le code nécessaire au scénario Ecrire le test unitaire Ecrire le code nécessaire au test unitaire Valider le scenario