Devoxx France 2012, Développeur 2.0 : la release note !
Devoxx France 2012, c'était la semaine dernière. Voici un résumé à mi-chemin entre l'édito et la synthèse, de ce qui m'aura marqué lors de cette première édition en France !
Au programme, des conférences, des ateliers, des stands et des sponsors (parmi lesquels so@t cette année!), des quizzs, des cadeaux, des goodies, mais surtout des speakers allant de la star internationale à la célébrité plus locale, en passant par le plus modeste mais néanmoins talentueux collègue, camarade ou geek anonyme croisé au détour d’un couloir, avec qui nous avons pu partagé ces 3 jours…
So what ?
Alors que retenir de cette édition 2012 ? Certains, tout d'abord, auront profité de cette opportunité pour acquérir de nouvelles connaissances sur les frameworks et les technologies d’aujourd’hui et demain (Play!, Spring, GWT, Guava, HTML5, la programmation concurrente, la manipulation de bytecode, les optimisations, la performance… Pour ne citer que quelques exemples).Cétait
également une très bonne occasion pour s'enrichir des
retours d’expérience de nos ainés et confrères, sur des sujets
concrets, de la vraie vie des IT (je pense par exemple aux talks «
Deadlock
Victim »
, par Heinz
Kabutz et
Olivier
Croisier,
ou « OOM
m’a tuer »
de Renaud
Bruyeron et
Frank
Pavageau sur
le tuning du GC de la JVM, ou encore au
sujet
« Pimp
My Legacy »
par François
Ostyn,
de so@t, un sujet très pragmatique sur les bonnes pratique à
adopter sur une application legacy)
Mais
à mon sens, Devoxx2012
aura avant tout été l'occasion de prendre
un peu de recul sur le métier d’IT, ce qui nous sommes, et ce vers
quoi nous nous dirigeons…
Les architectures de demain
A
Devoxx
France, on
découvre des outils, mais aussi et surtout des architectures.
A
quoi ressembleront les systèmes d’information de demain ?
Après
le client/serveur, le client lourd, le web 1.0, le web 2.0, ou encore
le cloud et les technologies mobiles, quelles seront les
architectures de l’avenir ?
Habib
Guergachi a
apporté une réponse possible lors de son talk sur les Web
Orientaed Architectures «
Architecture d’avenir ? L’Histoire nous le dira »…
Pour
résumé, Habib est convaincu de l'obsolescence des technologies
basées sur les serverus J2EE, le RPC, le statefull, les appels
synchrones. L’avenir
sera asynchrone, REST et stateless !
Les WOA (basées sur les 3 standards HTTP + URI + HTML) seront caractérisées en particulier par :
- un découpage fin des services en applications autonomes et un couplage faible entre ces applications.
- des liens faibles entre les données (plus de Foreign Key, de transactions etc… Les liens entre données sont matérialisés par leur URL sur le Web et les applications orchestrent les appels à d’autres applications)
- La « relaxation temporelle » : les appels entre applications seront aussi cools que Fonzie... A-t-on vraiment besoin que l’ensemble des données soit cohérente entre elles dans un révérenciel temporel commun ? En réalité la plupart du temps, c’est une contrainte que l’on s’impose de manière inutile, alors qu’il suffirait d’une cohérence sur un référentiel temporel local, la synchronisation des données peut être retardée… (on parlera de « fenestre d’incertitude temporelle »)
- L’idempotence des services (2 appels successifs identiques ont même effet qu’un seul)
- HATEOAS (Hypermedia as the Engine of Application State)
Bien qu’il soit difficile de couvrir un sujet aussi vaste en seulement 55min, Habib aura malgré tout réussi à piquer ma curiosité…
Des remises en question
Ce qui est également
enrichissant dans ce genre d’événement, c’est que l’on peut y
rencontrer des personnalités aux idées parfois assez subversives. Je
pense notamment à Grégory
Weinbach et
à sa présentation très intéressante « Il
n’y a pas de bon Modèle Métier »,
sur la modélisation du monde réel dans nos applications. Une
approche différente de celle que j’ai pu voir en usant mes jeans
sur les bancs de l’école, et qui a le mérite, qu’on y adhère ou pas,
de nous inviter à nous
interroger, et remettre en cause les percepts qu’on pense gravés
dans le marbre !
L’idée de base est
la suivante : le métier est impossible à modéliser dans un système
informatique. On ne peut qu’y « projeter » une vue contextuelle
des objets métier (Par exemple, la représentation d’un objet «
livre » est différente pour un auteur, un lecteur, un éditeur, un
vendeur, un client…) Partant
de ce constat, on aura traditionnellement tendance à créer un
modèle unique, le plus complet possible, qui puisse servir quelque
soit les « contextes » qu’on a pu recensés (pour l’auteur, le
lecteur l’éditeur… etc)
Malheureusement,
cette approche conduit à un modèle de données tentaculaire,
complexe. D’une part ce dernier ne permet pas d’implémenter
facilement les services répondants aux exigences des utilisateurs.
D’autre part il devient tellement complexe et couplé qu’il
devient de plus en plus coûteux à maintenir !
Le
credo de Grégory est donc de découper
le
modèle de données en partant des cas d’utilisation définis avec
les utilisateurs, pour
aboutir à une modélisation par use case…
Le
monde métier est ainsi représenté dans plusieurs modèles, en
fonction de son contexte ! On obtient alors un
modèle qui représente ce qu’on peut faire avec le logiciel, et
non pas la réalité.
Une
chose est sure, c’est un sujet à controverse .
Les changements dans notre métier : les méthodes agiles mènent la danse !
Les choses changent. Un constat : le logiciel devient un « consommable » qui a une durée de vie parfois très courte, mais qui requiert un Time To Market de plus en plus court. Tout le monde s’accorde à le dire, les méthodologies de développement de papa ne fonctionnent plus ; c’est une confirmation, à présent, ce sont les méthodes agiles qui mènent la danse !
Et sinon, que trouve-t-on sous le capot ?
Take it easy !
Le
problème que nous avons parfois, nous autres développeurs, c'est
que nous avons tendance à chercher à mettre en place des solutions
techniques complexes, par intérêt pour les « belles
mécaniques » avant de chercher à répondre au besoin de
l’utilisateur…
« La simplicité est la sophistication ultime » (L.
de Vinci).
Allons-nous donc revenir à des choses techniques simples ? Mauvaise
nouvelle pour nous autres technophiles ?
Et
bien peut-être… C’est en tout cas une tendance évoquée par
plusieurs conférenciers présents à Devoxx
2012.
l’IT
coûte en effet de plus en plus cher pour une entreprise, avec une
productivité de plus en plus faible, parce que les
SI sont devenus des mastodontes tentaculaires tellement complexes et
opaques, que la plus petite évolution nécessite des jours et des
jours d’analyse et de tests.
Les
enjeux à venir ne seront peut-être pas de proposer des solutions
toujours plus innovantes, génériques et complexes mais de répondre
à la première attente de nos clients : ses besoins.
Dev’ Qualitat
D'autre part, le
logiciel coûte cher pour une autre raison : un autre
sujet abordé par Frédéric
Dubois de
Xebia, sur la qualité logicielle « Pour un développement durable
»
Le choix de la « non
qualité » est malheureusement trop souvent fait, en
ayant pour objectif la réduction des coûts (Mais le calcul est-il
judicieux quand
on sait que 20% du coût d’une application est porté par sa
création, et 80% par sa maintenance ?)
Frédéric
a abordé durant ce talk les éléments générateurs de qualité, en
allant du staffing d’une équipe de dev, à la montée en
compétence des développeurs juniors par le mentoring, les tests (le
test first, les TDD…), l’intégration continue, le refactoring,
les pratiques XP et les méthodes agiles.
Le
mot de la fin ? La qualité est une force que nous devrons mettre en
avant face à la montée en puissance de l’offshore…
Des réflexions sur l’avenir, des prises de conscience
A Devoxx, nous avons parlé de «
développement
durable »,
mais c’était en fait un leurre... Et bien, en partie seulement !
Et oui, nous avons également
parlé de Green IT, lors de la conférence d’Olivier
Philippot intitulée
« Obésiciel
et impact environnemental : Green Patterns appliqués à Java ».
Pas de piège, il s’agissait bien d’éco-conception des
logiciels.
Alors
vous me direz bien sûr, qu’on a tellement d’autres problèmes à
régler aujourd’hui que bon… Oui peut-être, mais les impacts sur
notre planète existent (consommation d’énergie, fabrication du
hardware, problématique du recyclage…), et surtout, ils ne font
que croître avec le temps ! Le sujet va devenir de plus en plus
préoccupant : l’IT se développe partout, avec de plus en plus de
services (google, facebook, twitter…). Les terminaux quant à eux
ont des durées de vie de plus en plus courte, avec la course à
l’innovation…
Alors
me direz-vous, tous en pagne à vélo pour aller bloguer à haute
voix dans les rues de Paris ? Non, on doit pouvoir trouver des
compromis. Mais
que faire à notre niveau, en tant que développeur ?
On évoque souvent le
cloud comme solution, qui permet de mutualiser les ressources et
éviter de démarrer des serveurs qui dorment toute la journée.
C’est effectivement une solution intéressante, mais la
chose
à privilégier avant tout, comme
dans la vie réelle, c’est
d’éviter le gaspillage.
C’est
quoi le gaspillage en IT ?
- éviter le phénomène d’ « obésiciel » (nous avons tendance à sur-équiper nos logiciels. On dit que 45% des fonctionnalités d’un logiciel ne servent jamais, et 19% rarement… Ca en fait du disque et du CPU consommé pour rien. Amusant, on en revient à des considérations économiques : implémenter les besoins du client, et uniquement les besoins réduisent également les coûts financiers)
- gérer la fin de vie d’une application (une application dé-commissionnée qui tourne toujours pour rien sur un serveur… C’est ballot)
- désinstaller ce qui ne sert pas en définitive et consomme inutilement
- « bulker » les appels CPU, disque, réseau, etc… (Oh ! du covoiturage !) et éviter les trajets inutiles parfois insoupçonnés (connections 3G…)
Alors, à quand un Grenelle de l’IT ?
Le mot de la fin
Voilà ! J'aimerais terminer par quelques remerciements, à tous les speakers tout d'abord, un grand merci également à l'organisation, ainsi qu’à So@t qui aura sponsorisé cet événement Devoxx France 2012 et m'aura permis d'y participer... Et pour finir, n'oublions pas que toutes les conférences seront rapidement disponibles sur Parleys !