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 !