SlideShare a Scribd company logo
1 of 33
Download to read offline
Implémentation d’un
Domain Specific Language
     en entreprise




 Soutenance
                                    Promotion
Mémoire de fin   Brice Argenson
                                  SUPINFO 2010
   d’étude
Agenda

 Contexte

 Problématique

 Définition d’un DSL

 Mise en œuvre

 Réflexion

 Conclusion

                        www.xebia.fr / blog.xebia.fr   2
CONTEXTE


Xebia
La mission
Xebia


 Stage de fin d’étude chez Xebia IT Architect

  ▶   Groupe d’experts dédié aux technologies Java
  ▶   Présent au Pays Bas, en France et en Indes
  ▶   Un modèle d’entreprise vertueux
       » Relations proches avec le client
       » Partage de connaissance
       » Participation à la communauté




 Envoyé en régie chez un client grand compte

                                 www.xebia.fr / blog.xebia.fr   4
La mission


 Module de facturation

 Refonte globale de l’outil de gestion interne

 Règles de facturation

  ▶   Nombreuses

  ▶   Changent souvent




                         www.xebia.fr / blog.xebia.fr   5
L’existant


 Logiciel de facturation : Magora

 Une application / client

 Développement long

 Pas de factorisation des règles

 Pas de connexion à la BDD métier


                       www.xebia.fr / blog.xebia.fr   6
PROBLEMATIQUES
Problématiques


 Comment créer et modifier des règles ?

  ▶   Utilisation d’un pseudo langage



 Comment éviter l’intervention des développeurs ?
  ▶   Interprétation au « Runtime »



 Utilisation d’un DSL !

                              www.xebia.fr / blog.xebia.fr   8
Problématiques


 Comment introduire un DSL ?

  ▶   Le rendre utilisable par les gens du métier

  ▶   En expliquer la plus value

  ▶   Accompagner les utilisateurs




                               www.xebia.fr / blog.xebia.fr   9
QU’EST CE QU’UN DSL ?


Définition
Différents types
Définition


 Définition exacte pas évidente




       « Domain Specific Language (noun):
   a computer programming language of limited
  expressiveness focused on a particular domain »
                 - Martin Fowler -



                      www.xebia.fr / blog.xebia.fr   11
Définition


 Existent depuis longtemps
  ▶   awk, sed

  ▶   CSS

  ▶   Configurations XML

  ▶   Excel




                           www.xebia.fr / blog.xebia.fr   12
Différents types


 DSL externes

 DSL internes

 « Language Workbench DSL »




                   www.xebia.fr / blog.xebia.fr   13
Différents types


 DSL pour personnes techniques

  ▶   Configuration XML, Expression Language, …


 DSL pour tous

  ▶   Excel, Kodu, …




                             www.xebia.fr / blog.xebia.fr   14
MISE EN OEUVRE


Solutions choisies
Résultats
Choix méthodologiques


 Scrum




                 www.xebia.fr / blog.xebia.fr   16
Choix méthodologiques




                 www.xebia.fr / blog.xebia.fr   17
Choix méthodologiques




                 www.xebia.fr / blog.xebia.fr   18
Choix méthodologiques


 Quatre principes directeurs :

  ▶   Individus et interactions contre processus et outils

  ▶   Logiciel qui fonctionne contre documentation exhaustive

  ▶   Collaboration du client contre négociation de contrat

  ▶   Réponse au changement contre suivi d'un plan prédéfini




                               www.xebia.fr / blog.xebia.fr     19
Choix techniques




                   www.xebia.fr / blog.xebia.fr   20
Choix techniques


 DSL interne en Groovy

  ▶   Démarrage rapide


  ▶   Coût d’entrée faible

  ▶   Compétences en Groovy

  ▶   Plus rassurant




                              www.xebia.fr / blog.xebia.fr   21
Résultats


 Première version fonctionnelle

  ▶   Adapté pour un seul client

  ▶   Échéance imposé par le client

  ▶   Jeune avec quelques maladresses d’implémentation


       » Dette technique !




                              www.xebia.fr / blog.xebia.fr   22
Résultats




            www.xebia.fr / blog.xebia.fr   23
Résultats




            www.xebia.fr / blog.xebia.fr   24
Résultats



 Application bien accueillie

 +500 factures

 < 1% d’erreur




                       www.xebia.fr / blog.xebia.fr   25
Et ensuite…


 Nouvelles échéances
  ▶   2 mois
  ▶   2 mois et demi
  ▶   3 mois


 Règles foncièrement différentes

 Dette technique

 Manque de temps !

                       www.xebia.fr / blog.xebia.fr   26
Et ensuite…


 Référents métier ne s’impliquent pas assez

 Intérêt et complexité de le solution mal compris

 Échéances plus importantes !

  ▶   Abandon du DSL  augmentation de la
      productivité




                      www.xebia.fr / blog.xebia.fr   27
Et ensuite…


 Changements radicaux de certaines parties

 Très peu de changements pour d’autres

 Utilisation d’un DSL technique

 Améliorations par rapport à l’existant

  ▶   Mais toujours un besoin de développeur(s)




                             www.xebia.fr / blog.xebia.fr   28
REFLEXIONS
Réflexions


 Projet particulièrement innovant et ambitieux
  ▶   Trop ?


 Premiers résultats en quelques mois

 Mais problème d’adoption par le métier




                      www.xebia.fr / blog.xebia.fr   30
Réflexions


 Notion de DSL difficile à comprendre

  ▶   Peur ?


 Très peu d’existant / d’éléments de comparaison

 Langages textuels effrayants

  ▶   DSL graphiques ?




                         www.xebia.fr / blog.xebia.fr   31
Réflexions


 La programmation pour tous !

  ▶   « Savoir utiliser l’informatique sans savoir programmer, c’est
      comme savoir lire sans savoir écrire ! » - Bernard Ourghanlian


 Exemple de succès :

  ▶   Excel




                              www.xebia.fr / blog.xebia.fr             32
CONCLUSION

More Related Content

Viewers also liked

Reforma laboral. Análisis de las modificaciones introducidas en el texto por ...
Reforma laboral. Análisis de las modificaciones introducidas en el texto por ...Reforma laboral. Análisis de las modificaciones introducidas en el texto por ...
Reforma laboral. Análisis de las modificaciones introducidas en el texto por ...Universidad Autónoma de Barcelona
 
Luz Angela Reyes Rios
Luz Angela Reyes RiosLuz Angela Reyes Rios
Luz Angela Reyes RiosLuz Rios
 
Juegos-Navas de Tolosa
Juegos-Navas de TolosaJuegos-Navas de Tolosa
Juegos-Navas de Tolosapakocelta
 
Catalogo aldea 2013-14
Catalogo aldea 2013-14Catalogo aldea 2013-14
Catalogo aldea 2013-14maestrocurro
 
Présentation destination CES Las Vegas 2015
Présentation destination CES Las Vegas 2015Présentation destination CES Las Vegas 2015
Présentation destination CES Las Vegas 2015Marseille Innovation
 
Starter? Partez de l’idée que vous n’aurez pas de salaire les premiers mois
Starter? Partez de l’idée que vous n’aurez pas de salaire les premiers moisStarter? Partez de l’idée que vous n’aurez pas de salaire les premiers mois
Starter? Partez de l’idée que vous n’aurez pas de salaire les premiers moisMartin van Wunnik
 
CAMILLE SAINT-SAËNS
CAMILLE SAINT-SAËNSCAMILLE SAINT-SAËNS
CAMILLE SAINT-SAËNSluisel
 
Leads b2b performance in 2014
Leads b2b performance in 2014 Leads b2b performance in 2014
Leads b2b performance in 2014 agence b2b
 
09 jm goujon 2012 06 27 spectr ag journée meito brest
09  jm goujon 2012 06 27 spectr ag journée meito brest09  jm goujon 2012 06 27 spectr ag journée meito brest
09 jm goujon 2012 06 27 spectr ag journée meito brestYann Dieulangard
 
Le pont-chaban-delmas-dit-le-pont-ba-ba
Le pont-chaban-delmas-dit-le-pont-ba-baLe pont-chaban-delmas-dit-le-pont-ba-ba
Le pont-chaban-delmas-dit-le-pont-ba-baGerard Houdinet
 
Jeu risques sécurité
Jeu risques sécuritéJeu risques sécurité
Jeu risques sécuritéCIPE
 

Viewers also liked (20)

Com tour de france des bulles octobre 2012
Com tour de france des bulles   octobre 2012Com tour de france des bulles   octobre 2012
Com tour de france des bulles octobre 2012
 
Reforma laboral. Análisis de las modificaciones introducidas en el texto por ...
Reforma laboral. Análisis de las modificaciones introducidas en el texto por ...Reforma laboral. Análisis de las modificaciones introducidas en el texto por ...
Reforma laboral. Análisis de las modificaciones introducidas en el texto por ...
 
PAQL
PAQL PAQL
PAQL
 
Communication entreprise (1)
Communication entreprise (1)Communication entreprise (1)
Communication entreprise (1)
 
Luz Angela Reyes Rios
Luz Angela Reyes RiosLuz Angela Reyes Rios
Luz Angela Reyes Rios
 
Qué es arte
Qué es arteQué es arte
Qué es arte
 
Medef manifeste cop21
Medef manifeste cop21Medef manifeste cop21
Medef manifeste cop21
 
Juegos-Navas de Tolosa
Juegos-Navas de TolosaJuegos-Navas de Tolosa
Juegos-Navas de Tolosa
 
Tourisme durable à Tsinjoriake
Tourisme durable à TsinjoriakeTourisme durable à Tsinjoriake
Tourisme durable à Tsinjoriake
 
Catalogo aldea 2013-14
Catalogo aldea 2013-14Catalogo aldea 2013-14
Catalogo aldea 2013-14
 
Palmarès 2011 v1
Palmarès 2011 v1Palmarès 2011 v1
Palmarès 2011 v1
 
Présentation destination CES Las Vegas 2015
Présentation destination CES Las Vegas 2015Présentation destination CES Las Vegas 2015
Présentation destination CES Las Vegas 2015
 
Starter? Partez de l’idée que vous n’aurez pas de salaire les premiers mois
Starter? Partez de l’idée que vous n’aurez pas de salaire les premiers moisStarter? Partez de l’idée que vous n’aurez pas de salaire les premiers mois
Starter? Partez de l’idée que vous n’aurez pas de salaire les premiers mois
 
CAMILLE SAINT-SAËNS
CAMILLE SAINT-SAËNSCAMILLE SAINT-SAËNS
CAMILLE SAINT-SAËNS
 
Leads b2b performance in 2014
Leads b2b performance in 2014 Leads b2b performance in 2014
Leads b2b performance in 2014
 
09 jm goujon 2012 06 27 spectr ag journée meito brest
09  jm goujon 2012 06 27 spectr ag journée meito brest09  jm goujon 2012 06 27 spectr ag journée meito brest
09 jm goujon 2012 06 27 spectr ag journée meito brest
 
Tech trends 2013
Tech trends 2013Tech trends 2013
Tech trends 2013
 
Laf l'ours et l'oursone
Laf   l'ours et l'oursoneLaf   l'ours et l'oursone
Laf l'ours et l'oursone
 
Le pont-chaban-delmas-dit-le-pont-ba-ba
Le pont-chaban-delmas-dit-le-pont-ba-baLe pont-chaban-delmas-dit-le-pont-ba-ba
Le pont-chaban-delmas-dit-le-pont-ba-ba
 
Jeu risques sécurité
Jeu risques sécuritéJeu risques sécurité
Jeu risques sécurité
 

Similar to Soutenance mémoire : Implémentation d'un DSL en entreprise

Keynote drupagora 2015 7
Keynote drupagora 2015 7Keynote drupagora 2015 7
Keynote drupagora 2015 7Core-Techs
 
Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...Microsoft Ideas
 
Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013Charbel Abdo
 
Modèles Business Open Source - Success story eXo
Modèles Business Open Source - Success story eXoModèles Business Open Source - Success story eXo
Modèles Business Open Source - Success story eXoeXo Platform
 
Web perf Silicon Comte
Web perf Silicon ComteWeb perf Silicon Comte
Web perf Silicon ComteSilicon Comté
 
Presentation du guide 2017 - web-conférence FFFOD du 14/02/17
Presentation du guide 2017 - web-conférence FFFOD du 14/02/17Presentation du guide 2017 - web-conférence FFFOD du 14/02/17
Presentation du guide 2017 - web-conférence FFFOD du 14/02/17FFFOD
 
Retours d&rsquo;expérience sur la conduite de projets BI sur les technologies...
Retours d&rsquo;expérience sur la conduite de projets BI sur les technologies...Retours d&rsquo;expérience sur la conduite de projets BI sur les technologies...
Retours d&rsquo;expérience sur la conduite de projets BI sur les technologies...Guillaume Meyer
 
Offre de formations PEAKS
Offre de formations PEAKSOffre de formations PEAKS
Offre de formations PEAKSMarine Quillon
 
PHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadiennePHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadienneDamien Seguy
 
Gestion applicative des données, un REX du Ministère de l'Éducation Nationale
Gestion applicative des données, un REX du Ministère de l'Éducation NationaleGestion applicative des données, un REX du Ministère de l'Éducation Nationale
Gestion applicative des données, un REX du Ministère de l'Éducation NationaleObeo
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilNormandy JUG
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Ametys
 
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012Chipway
 
Bien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web DesignBien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web DesignGreg Hoin
 
Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Thomas Choppy
 
Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012Microsoft
 
DODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez CroesusDODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez CroesusMartin Deslongchamps
 
PréSentation Nuxeo Openadira
PréSentation Nuxeo   OpenadiraPréSentation Nuxeo   Openadira
PréSentation Nuxeo OpenadiraThierry CHABROL
 
Kiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetKiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetDevclic
 
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7OSInet
 

Similar to Soutenance mémoire : Implémentation d'un DSL en entreprise (20)

Keynote drupagora 2015 7
Keynote drupagora 2015 7Keynote drupagora 2015 7
Keynote drupagora 2015 7
 
Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...Customer Show case : Mise en place d’une solution de gestion de projet avec l...
Customer Show case : Mise en place d’une solution de gestion de projet avec l...
 
Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013Exemple de mise en place d'une solution EPM 2013
Exemple de mise en place d'une solution EPM 2013
 
Modèles Business Open Source - Success story eXo
Modèles Business Open Source - Success story eXoModèles Business Open Source - Success story eXo
Modèles Business Open Source - Success story eXo
 
Web perf Silicon Comte
Web perf Silicon ComteWeb perf Silicon Comte
Web perf Silicon Comte
 
Presentation du guide 2017 - web-conférence FFFOD du 14/02/17
Presentation du guide 2017 - web-conférence FFFOD du 14/02/17Presentation du guide 2017 - web-conférence FFFOD du 14/02/17
Presentation du guide 2017 - web-conférence FFFOD du 14/02/17
 
Retours d&rsquo;expérience sur la conduite de projets BI sur les technologies...
Retours d&rsquo;expérience sur la conduite de projets BI sur les technologies...Retours d&rsquo;expérience sur la conduite de projets BI sur les technologies...
Retours d&rsquo;expérience sur la conduite de projets BI sur les technologies...
 
Offre de formations PEAKS
Offre de formations PEAKSOffre de formations PEAKS
Offre de formations PEAKS
 
PHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadiennePHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadienne
 
Gestion applicative des données, un REX du Ministère de l'Éducation Nationale
Gestion applicative des données, un REX du Ministère de l'Éducation NationaleGestion applicative des données, un REX du Ministère de l'Éducation Nationale
Gestion applicative des données, un REX du Ministère de l'Éducation Nationale
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
 
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
 
Bien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web DesignBien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web Design
 
Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Ged Open Source - Documation 2010
Ged Open Source - Documation 2010
 
Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012
 
DODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez CroesusDODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez Croesus
 
PréSentation Nuxeo Openadira
PréSentation Nuxeo   OpenadiraPréSentation Nuxeo   Openadira
PréSentation Nuxeo Openadira
 
Kiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetKiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internet
 
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
 

More from Brice Argenson

RSpock Testing Framework for Ruby
RSpock Testing Framework for RubyRSpock Testing Framework for Ruby
RSpock Testing Framework for RubyBrice Argenson
 
Serverless Applications
Serverless ApplicationsServerless Applications
Serverless ApplicationsBrice Argenson
 
Serverless - Lunch&Learn CleverToday - Mars 2017
Serverless - Lunch&Learn CleverToday - Mars 2017Serverless - Lunch&Learn CleverToday - Mars 2017
Serverless - Lunch&Learn CleverToday - Mars 2017Brice Argenson
 
Docker 1.13 - Docker meetup février 2017
Docker 1.13 - Docker meetup février 2017Docker 1.13 - Docker meetup février 2017
Docker 1.13 - Docker meetup février 2017Brice Argenson
 
Docker 1.12 & Swarm Mode [Montreal Docker Meetup Sept. 2016]
Docker 1.12 & Swarm Mode [Montreal Docker Meetup Sept. 2016]Docker 1.12 & Swarm Mode [Montreal Docker Meetup Sept. 2016]
Docker 1.12 & Swarm Mode [Montreal Docker Meetup Sept. 2016]Brice Argenson
 
Packagez et déployez vos applications avec Docker - Montréal CloudFoundry Mee...
Packagez et déployez vos applications avec Docker - Montréal CloudFoundry Mee...Packagez et déployez vos applications avec Docker - Montréal CloudFoundry Mee...
Packagez et déployez vos applications avec Docker - Montréal CloudFoundry Mee...Brice Argenson
 
The Patterns to boost your time to market - An introduction to DevOps
The Patterns to boost your time to market - An introduction to DevOpsThe Patterns to boost your time to market - An introduction to DevOps
The Patterns to boost your time to market - An introduction to DevOpsBrice Argenson
 
Introduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsIntroduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsBrice Argenson
 
Java EE - Servlets API
Java EE - Servlets APIJava EE - Servlets API
Java EE - Servlets APIBrice Argenson
 
JS-Everywhere - SSE Hands-on
JS-Everywhere - SSE Hands-onJS-Everywhere - SSE Hands-on
JS-Everywhere - SSE Hands-onBrice Argenson
 
JS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-onJS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-onBrice Argenson
 

More from Brice Argenson (12)

RSpock Testing Framework for Ruby
RSpock Testing Framework for RubyRSpock Testing Framework for Ruby
RSpock Testing Framework for Ruby
 
Serverless Applications
Serverless ApplicationsServerless Applications
Serverless Applications
 
Serverless - Lunch&Learn CleverToday - Mars 2017
Serverless - Lunch&Learn CleverToday - Mars 2017Serverless - Lunch&Learn CleverToday - Mars 2017
Serverless - Lunch&Learn CleverToday - Mars 2017
 
Docker 1.13 - Docker meetup février 2017
Docker 1.13 - Docker meetup février 2017Docker 1.13 - Docker meetup février 2017
Docker 1.13 - Docker meetup février 2017
 
Docker 1.12 & Swarm Mode [Montreal Docker Meetup Sept. 2016]
Docker 1.12 & Swarm Mode [Montreal Docker Meetup Sept. 2016]Docker 1.12 & Swarm Mode [Montreal Docker Meetup Sept. 2016]
Docker 1.12 & Swarm Mode [Montreal Docker Meetup Sept. 2016]
 
Packagez et déployez vos applications avec Docker - Montréal CloudFoundry Mee...
Packagez et déployez vos applications avec Docker - Montréal CloudFoundry Mee...Packagez et déployez vos applications avec Docker - Montréal CloudFoundry Mee...
Packagez et déployez vos applications avec Docker - Montréal CloudFoundry Mee...
 
The Patterns to boost your time to market - An introduction to DevOps
The Patterns to boost your time to market - An introduction to DevOpsThe Patterns to boost your time to market - An introduction to DevOps
The Patterns to boost your time to market - An introduction to DevOps
 
Introduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsIntroduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with Jenkins
 
Java EE - Servlets API
Java EE - Servlets APIJava EE - Servlets API
Java EE - Servlets API
 
JS-Everywhere - SSE Hands-on
JS-Everywhere - SSE Hands-onJS-Everywhere - SSE Hands-on
JS-Everywhere - SSE Hands-on
 
JS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-onJS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-on
 
Effective Java
Effective JavaEffective Java
Effective Java
 

Soutenance mémoire : Implémentation d'un DSL en entreprise

  • 1. Implémentation d’un Domain Specific Language en entreprise Soutenance Promotion Mémoire de fin Brice Argenson SUPINFO 2010 d’étude
  • 2. Agenda  Contexte  Problématique  Définition d’un DSL  Mise en œuvre  Réflexion  Conclusion www.xebia.fr / blog.xebia.fr 2
  • 4. Xebia  Stage de fin d’étude chez Xebia IT Architect ▶ Groupe d’experts dédié aux technologies Java ▶ Présent au Pays Bas, en France et en Indes ▶ Un modèle d’entreprise vertueux » Relations proches avec le client » Partage de connaissance » Participation à la communauté  Envoyé en régie chez un client grand compte www.xebia.fr / blog.xebia.fr 4
  • 5. La mission  Module de facturation  Refonte globale de l’outil de gestion interne  Règles de facturation ▶ Nombreuses ▶ Changent souvent www.xebia.fr / blog.xebia.fr 5
  • 6. L’existant  Logiciel de facturation : Magora  Une application / client  Développement long  Pas de factorisation des règles  Pas de connexion à la BDD métier www.xebia.fr / blog.xebia.fr 6
  • 8. Problématiques  Comment créer et modifier des règles ? ▶ Utilisation d’un pseudo langage  Comment éviter l’intervention des développeurs ? ▶ Interprétation au « Runtime »  Utilisation d’un DSL ! www.xebia.fr / blog.xebia.fr 8
  • 9. Problématiques  Comment introduire un DSL ? ▶ Le rendre utilisable par les gens du métier ▶ En expliquer la plus value ▶ Accompagner les utilisateurs www.xebia.fr / blog.xebia.fr 9
  • 10. QU’EST CE QU’UN DSL ? Définition Différents types
  • 11. Définition  Définition exacte pas évidente « Domain Specific Language (noun): a computer programming language of limited expressiveness focused on a particular domain » - Martin Fowler - www.xebia.fr / blog.xebia.fr 11
  • 12. Définition  Existent depuis longtemps ▶ awk, sed ▶ CSS ▶ Configurations XML ▶ Excel www.xebia.fr / blog.xebia.fr 12
  • 13. Différents types  DSL externes  DSL internes  « Language Workbench DSL » www.xebia.fr / blog.xebia.fr 13
  • 14. Différents types  DSL pour personnes techniques ▶ Configuration XML, Expression Language, …  DSL pour tous ▶ Excel, Kodu, … www.xebia.fr / blog.xebia.fr 14
  • 15. MISE EN OEUVRE Solutions choisies Résultats
  • 16. Choix méthodologiques  Scrum www.xebia.fr / blog.xebia.fr 16
  • 17. Choix méthodologiques www.xebia.fr / blog.xebia.fr 17
  • 18. Choix méthodologiques www.xebia.fr / blog.xebia.fr 18
  • 19. Choix méthodologiques  Quatre principes directeurs : ▶ Individus et interactions contre processus et outils ▶ Logiciel qui fonctionne contre documentation exhaustive ▶ Collaboration du client contre négociation de contrat ▶ Réponse au changement contre suivi d'un plan prédéfini www.xebia.fr / blog.xebia.fr 19
  • 20. Choix techniques www.xebia.fr / blog.xebia.fr 20
  • 21. Choix techniques  DSL interne en Groovy ▶ Démarrage rapide ▶ Coût d’entrée faible ▶ Compétences en Groovy ▶ Plus rassurant www.xebia.fr / blog.xebia.fr 21
  • 22. Résultats  Première version fonctionnelle ▶ Adapté pour un seul client ▶ Échéance imposé par le client ▶ Jeune avec quelques maladresses d’implémentation » Dette technique ! www.xebia.fr / blog.xebia.fr 22
  • 23. Résultats www.xebia.fr / blog.xebia.fr 23
  • 24. Résultats www.xebia.fr / blog.xebia.fr 24
  • 25. Résultats  Application bien accueillie  +500 factures  < 1% d’erreur www.xebia.fr / blog.xebia.fr 25
  • 26. Et ensuite…  Nouvelles échéances ▶ 2 mois ▶ 2 mois et demi ▶ 3 mois  Règles foncièrement différentes  Dette technique  Manque de temps ! www.xebia.fr / blog.xebia.fr 26
  • 27. Et ensuite…  Référents métier ne s’impliquent pas assez  Intérêt et complexité de le solution mal compris  Échéances plus importantes ! ▶ Abandon du DSL  augmentation de la productivité www.xebia.fr / blog.xebia.fr 27
  • 28. Et ensuite…  Changements radicaux de certaines parties  Très peu de changements pour d’autres  Utilisation d’un DSL technique  Améliorations par rapport à l’existant ▶ Mais toujours un besoin de développeur(s) www.xebia.fr / blog.xebia.fr 28
  • 30. Réflexions  Projet particulièrement innovant et ambitieux ▶ Trop ?  Premiers résultats en quelques mois  Mais problème d’adoption par le métier www.xebia.fr / blog.xebia.fr 30
  • 31. Réflexions  Notion de DSL difficile à comprendre ▶ Peur ?  Très peu d’existant / d’éléments de comparaison  Langages textuels effrayants ▶ DSL graphiques ? www.xebia.fr / blog.xebia.fr 31
  • 32. Réflexions  La programmation pour tous ! ▶ « Savoir utiliser l’informatique sans savoir programmer, c’est comme savoir lire sans savoir écrire ! » - Bernard Ourghanlian  Exemple de succès : ▶ Excel www.xebia.fr / blog.xebia.fr 32

Editor's Notes

  1. Xebia a été fondé au Pays Bas en 2001 avec pour objectif l’amélioration de la qualité du développement Java. En 2004, de nombreuses entreprises telles que KLM, UWV, Prorail, Achmea et Rabo Bank avaient fait confiance à Xebia. Après le succès des différents projets, de nouvelles antennes virent le jour dont une à Gurgaon en Inde et une à Paris en France. Peu après de nouveaux comptes tels que EDF, SFR et Saint-Gobain s’ajoutèrent à leurs clients.
  2. un langage de programmation informatique : Un DSL est un langage informatique utilisé par les humains pour communiquer à la machine ce qu’elle doit faire. une expressivité limitée : Un DSL fournit le minimum de fonctionnalité nécessaire pour un domaine donné. On ne peut construire une application complète avec un DSL, mais il peut être utilisé pour une partie précise.  dédié à un domaine : Un langage limité n’a d’intérêt que s’il est prévu à un usage précis.