Tech-Meetup Smart Transport #04 chez OnePoint, avec WeProov, Onecub et Citeazy
Mdday2010 modelisation-agilite
1. Modélisation et Agilité sont-ils compatibles ?
La piste du Domain Driven Design (DDD) et du Behaviour
Driven Development (BDD)
Retour d’expérience Administration du Canton de Vaud
Jérémie Grodziski
Jeremie.grodziski@redsen.fr
Grégory Weinbach
gweinbach@objetdirect.com
1GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
Bernard Quinodoz
2. Notre métier
Comment industrialiser
nos développements
applicatifs ?
Comment moderniser notre
patrimoine applicatif ?
Comment former
efficacement nos
collaborateurs ?
Quels outils, quels
frameworks choisir ?
Depuis 12 ans, Objet Direct répond concrètement à ces
questions avec des prestations de conseil et d’expertise dans
le domaine du génie logiciel objet.
Comment aligner le SI sur
les processus métiers de
l’entreprise ?
Quelle démarche projet,
quelle méthode pour
améliorer nos processus
projets ?
2GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
3. OBJET DIRECT, une offre IT complète
Formation, coaching
Réalisation de projets
Offres de conseil IT
3GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
4. OBJET DIRECT filiale du groupe VISEO,
Multi-spécialiste de votre SI
Optimisation et
intégration des processus
Pilotage de l’entreprise
Optimisation de la
performance
CONSEIL
AUDIT / DIAGNOSTIC
DEVELOPPEMENT
INTEGRATION
TIERCE
MAINTENANCE
APPLICATIVE
VENTES DE
LICENCES
Conseil architecture du SI
Applications métiers
spécifiques
Web
&
Objet
ERP BIWeb et
Objet
4GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
5. Groupe VISEO
Une présence sur chaque continent
Paris
Bordeaux
Toulouse
Lyon
Grenoble
Marseill
e
Morlaix
Les implantations de VISEO permettent
d’accompagner les clients dans leurs projets
internationaux et d’adresser des clients locaux
VISEO Inc.
Création 2005
VISEO
GmBH
Création 2007
VI- ONE
North Africa
Création 2004 VISEO Asia
Hong Kong/
Singapour
Création 2009
Un maillage régional pour favoriser la
proximité avec nos clients
5GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
6. Présentation Redsen
Conseil SI &
Urbanisation
Conseil en
Organisation et
Gestion de Projets
Expertise &
Accompagnement
Projet
Formation
MASTER DATA MANAGEMENT
ENTERPRISE ARCHITECTURE
AUDIT ALIGNEMENT
STRATÉGIQUE DU SI
ATELIERS
DE RÉFLEXION
VEILLE
SÉMINAIRES
STRATEGIC DESIGN
DOMAIN DRIVEN DESIGN
TEST ET BEHAVIOUR DD
ACCOMPAGNEMENT QUALITÉ
AGILE
PMO
ITIL
EXPERTISE LANGAGE
ET PLATEFORMES
DATA
MANAGEMENT
BUSINESS
INTELLIGENCE
6GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
7. Contexte
¡ L’Administration du Canton
de Vaud
● Application de gestion
• Maintenance coûteuse
• Refonte engagée
7GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
11. Bonjour, pouvez vous me
décrire votre activité
principale?
Nous gérons principalement les
dénonciations suite à des
contraventions ou des délits.
Dans quel but ?
le but est d’encaisser le paiement de
l’amende que doit le contrevenant
Qu'est-ce qu'un dossier ?
Un dossier est créé lorsqu'une
préfecture reçoit une dénonciation.
Il permet de suivre les actions
réalisées de la procédure
d'encaissement.
Nous gérons des dossiers notamment
pour encaisser les amendes.
Comment faites vous ?
11GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
12. Un constat simple
GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 12
[ Pour faire un bon logiciel vous devez savoir
de quoi il parle
● son Domaine
13. Qui connait le Domaine ?
GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 13
[ Le spécialiste du Domaine J
● Comment faire « entrer » le Domaine
dans le logiciel ?
14. La connaissance sur le domaine est
collectée dans un Modèle qui est une
vue sur le Domaine
GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 14
[ le Modèle de Domaine !
15. Pourquoi concevoir avec des modèles ?
Pour communiquer Pour réfléchir
Pour maîtriser la
complexité
15GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
16. GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 16
DomaineDomaine ModèleDomaine Modèle Code
Ubiquitous Language
Domaine Modèle Code
18. Constituer le modèle de Domaine
¡ La manière traditionnelle
GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 18
Analyse
Conception
Développement
19. Constituer le modèle de Domaine
¡ Le Modèle de Domaine selon le DDD
GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 19
22. Nous gérons principalement les
dénonciations suite à des
contraventions ou des délits.
le but est d’encaisser le paiement de
l’amende que doit le contrevenant
Un dossier est créé lorsqu'une
préfecture reçoit une dénonciation.
Il permet de suivre les actions
réalisées de la procédure
d'encaissement.
Nous gérons des dossiers
notamment pour encaisser les
amendes.
22GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
27. « User story »...
¡ « Saisir une dénonciation »
En tant que secrétaire
Lorsque je reçois une dénonciation suite au délit
Je veux saisir cette dénonciation
Afin de déclencher la procédure
27GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
28. « Etant donné un contexte / un état … »
3
2
1
« Alors je constate… »
Enchaînement
d’actions sous
forme de scénarios
Comportement d’un système
vu de son usage
« Quand je fais l’action… »
28GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
Système
29. Scénario abstrait
Saisir une dénonciation :
Etant donné une dénonciation et une infraction reçue
Quand la secrétaire saisit cette dénonciation
Alors un nouveau dossier est créé suivant la procédure choisie
Alors l'action effectuée et son auteur sont présent dans le
suivi administratif du dossier
Alors le dossier appartient à la bonne préfecture
Alors le dossier concerne la bonne personne
Alors le dossier se trouve dans le bon état
Alors le solde du dossier est correct
Alors une dénonciation associée au dossier a été créée
Alors les informations de la dénonciation sont correctes
29GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
30. …et scénario concret
Etant donné une dénonciation reçue par Gérard concernant Jérémie Grodziski
05.11.1976 pour une contravention CIRCULATION_ROUTIERE dont les faits sont
"excés de vitesse » émise au 20.03.2010 par "la Gendarmerie cantonale" référence
123987456
Etant donné que l'infraction a été commise le 19.03.2010 10:30 à Autoroute
Lausanne Genève, hauteur Morges
Etant donné que les dispositions légales enfreintes sont LCR 90/1, 91/4a
Quand Gérard saisit la dénonciation pour CONTRAVENTIONS_PROCEDURE_SC a la
Préfecture de Morges abrégée MOR
Alors un dossier suivant la procédure CONTRAVENTIONS_PROCEDURE_SC est créé
Alors l'action SAISIR_DENONCIATION est renseignée dans le suivi administratif avec
la date du jour et l'utilisateur zptdce
Alors le dossier appartient à la Préfecture de Morges
Alors le dossier concerne Jérémie Grodziski
Alors le dossier se trouve dans l’état ATTENTE_DECISION_SENTENCE
Alors le solde du dossier est égal a 0
Alors une dénonciation liée au dossier est créée
30GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
31. Etant donné une dénonciation reçue par Gérard concernant Jérémie Grodziski
05.11.1976 pour une contravention CIRCULATION_ROUTIERE dont les faits sont
"excés de vitesse » émise au 20.03.2010 par "la Gendarmerie cantonale" référence
123987456
Etant donné que l'infraction a été commise le 19.03.2010 10:30 à Autoroute
Lausanne Genève, hauteur Morges
Etant donné que les dispositions légales enfreintes sont LCR 90/1, 91/4a
Quand Gérard saisit la dénonciation pour CONTRAVENTIONS_PROCEDURE_SC a la
Préfecture de Morges abrégée MOR
Alors un dossier suivant la procédure CONTRAVENTIONS_PROCEDURE_SC est créé
Alors l'action SAISIR_DENONCIATION est renseignée dans le suivi administratif avec
la date du jour et l'utilisateur zptdce
Alors le dossier appartient à la Préfecture de Morges
Alors le dossier concerne Jérémie Grodziski
Alors le dossier se trouve dans l’état ATTENTE_DECISION_SENTENCE
Alors le solde du dossier est égal a 0
Alors une dénonciation liée au dossier est créée
31GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
32. Etant donné une dénonciation reçue par Gérard concernant Jérémie
Grodziski 05.11.1976 pour une contravention CIRCULATION_ROUTIERE dont
les faits sont "excés de vitesse » émise au 20.03.2010 par "la
Gendarmerie cantonale" référence 123987456
Etant donné que l'infraction a été commise le 19.03.2010 10:30 à
Autoroute Lausanne Genève, hauteur Morges
Etant donné que les dispositions légales enfreintes sont LCR 90/1, 91/4a
Quand Gérard saisit la dénonciation pour CONTRAVENTIONS_PROCEDURE_SC à
la Préfecture de Morges abrégée MOR
Alors un dossier suivant la procédure CONTRAVENTIONS_PROCEDURE_SC est
créé
Alors l'action SAISIR_DENONCIATION est renseignée dans le suivi
administratif avec la date du jour et l'utilisateur Gérard
Alors le dossier appartient à la Préfecture de Morges
Alors le dossier concerne Jérémie Grodziski
Alors le dossier se trouve dans l’état ATTENTE_DECISION_SENTENCE
Alors le solde du dossier est égal a 0
Alors une dénonciation liée au dossier est créée
32GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
33. Etant donné une dénonciation reçue par Gérard concernant Jérémie
Grodziski 05.11.1976 pour une contravention CIRCULATION_ROUTIERE dont
les faits sont « excés de vitesse » émise au 20.03.2010 par "la
Gendarmerie cantonale" référence 123987456
Etant donné que l'infraction a été commise le 19.03.2010 10:30 à
Autoroute Lausanne Genève, hauteur Morges
Etant donné que les dispositions légales enfreintes sont LCR 90/1, 91/4a
Quand Gérard saisit la dénonciation pour CONTRAVENTIONS_PROCEDURE_SC à
la Préfecture de Morges abrégée MOR
Alors un dossier suivant la procédure CONTRAVENTIONS_PROCEDURE_SC est
créé
Alors l'action SAISIR_DENONCIATION est renseignée dans le suivi
administratif avec la date du jour et l'utilisateur Gérard
Alors le dossier appartient à la Préfecture de Morges
Alors le dossier concerne Jérémie Grodziski
Alors le dossier se trouve dans l’état ATTENTE_DECISION_SENTENCE
Alors le solde du dossier est égal a 0
Alors une dénonciation liée au dossier est créée
33GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
36. Sous le capot… un framework BDD
Scénarios
TXT
Adaptateurs
Code Java
Modèle du
domaine /
Code Java
Junit
avec
JBehave
Exécution
parse
exécuteinvoque
36GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
37. Adaptateurs du scénario vers le code
des POJOs du domaine
When
Then
37GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
38. Adaptateurs du scénario vers le code des
services métiers (avec persistance)
When
Then
38GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
39. Challenger mon modèle
Etant donné une dénonciation reçue par Gérard concernant
Jérémie Grodziski 05.11.1976 pour une contravention
CIRCULATION_ROUTIERE dont les faits sont "excés de
vitesse » émise au 20.03.2010 par "la Gendarmerie
cantonale" référence 123987456
Etant donné que l'infraction a été commise le 19.03.2010
10:30 à Autoroute Lausanne Genève, hauteur Morges
Etant donné que les dispositions légales enfreintes sont LCR
90/1, 91/4a
Quand Gérard saisit la dénonciation pour
CONTRAVENTIONS_PROCEDURE_SC a la Préfecture de
Morges abrégée MOR
Alors un dossier suivant la procédure
CONTRAVENTIONS_PROCEDURE_SC est créé
Alors l'action SAISIR_DENONCIATION est renseignée dans
le suivi administratif avec la date du jour et l'utilisateur
zptdce
Alors le dossier appartient à la Préfecture de Morges
Alors le dossier concerne Jérémie Grodziski
Alors le dossier se trouve dans l’état
ATTENTE_DECISION_SENTENCE
Alors le solde du dossier est égal a 0
Alors une dénonciation liée au dossier est créée
exécuté par
validé par
39GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
Scénarios
TXT
Modèle du
domaine /
Code Java
40. « Manifeste Agile »
Individus et
interactions
Logiciels opérationnels
Collaboration avec les
utilisateurs
Adaptation au
changement
Processus et
outils
Documentation
exhaustive
Négociation
contractuelle
Suivi d’un plan
« Nous reconnaissons la valeur des
seconds éléments mais privilégions
les premiers »
40GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
41. « Manifeste Agile »
Individus et
interactions
Logiciels opérationnels
Collaboration avec les
utilisateurs
Adaptation au
changement
Processus et
outils
Documentation
exhaustive
Négociation
contractuelle
Suivi d’un plan
« Nous reconnaissons la valeur des
seconds éléments mais privilégions
les premiers »
41GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
[DDD]
Analyste/Concepteur = Développeur
[DDD et BDD]
Les scénarios sont exécutables,
Modèle = code
[BDD]
Scénarios = Supports de validation
[BDD]
Itératifs, Cycles courts, Feedback
immmédiat
42. Incrémental ? Au niveau technique et
fonctionnel
Domaine
Service
User Interface
Test avec les objets du domaine (POJO)
Test avec les services incluant la persistance
Test de l’interface web avec Selenium
..avec le même scénario mais des adaptateurs
différents !
Au niveau fonctionnel, avec des
scénarios enrichis au fur et à
mesure avec les cas exceptionnels
et les cas d’erreurs
Au niveau technique
42GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
43. Bilan
¡ Niveau d’anomalies extrêmement bas
¡ Refactoring majeur du métier fait en 2 jours sans aucune
régression
¡ Modification des processus prenant 30 jours avec l’application
existante, 0,5j maintenant
¡ Réelle capitalisation sur le domaine, isolée de la technique
¡ Complexité très basse dans les rapports de qualimétrie
¡ Les utilisateurs sont satisfaits, prêt à évangéliser l’approche,
veulent les modèles dans l’application !
¡ Productivité
¡ Maintenabilité à long terme ?
43GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
44. Chiffres
¡ 156 user stories, environ 250
scénarios
¡ 50 000 lignes de codes
¡ 300 classes du domaine
¡ 600 j/h développement aujourd’hui,
800 à terme
44GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
45. La clé de l’agilité de l’approche
Des scénarios exécutables permettent de
valider et de
construire le modèle du domaine dans
des itérations courtes, de manière
incrémentale avec feedback immédiat
BDD
DDD
Agilité
45GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
46. La clé de l’agilité de l’approche
Des scénarios exécutables permettent de
valider et de
construire le logiciel dans
des itérations courtes, de manière
incrémentale avec feedback immédiat
BDD
DDD
Agilité
46GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation