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
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
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
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
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
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.
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.