Retour sur le Mix-IT 2015 (Lyon)

L'édition 2015 du Mix-IT s'est tenue les 16 et 17 avril au CPE de Lyon. Retour sur cet événement.

  1. Agilité
  2. L'importance de la performance :
  3. Le succès Lichess.org
  4. Javascript
  5. Bases de données

Élao avait l'immense plaisir d’être présent à l’édition 2015 du Mix-IT qui s’est déroulée les 16 et 17 avril derniers au CPE de Lyon (Ecole Supérieure de Chimie Physique Electronique). Outre notre présence parmi les sponsors, nous avons également tenu un stand proposant de s’initier à Curvytron, le jeu vidéo développé par notre équipe.

Au programme, bonne humeur, convivialité, lightning talks, key notes, conférences, ateliers pratiques, crêpes artisanales et viennoiseries. Doté d'une organisation bien rôdée, le Mix-IT s'est déroulé dans de parfaites conditions et proposait cette année un programme extrêmement alléchant, à un tarif défiant toute concurrence.

Retour sur quelques temps forts qui nous ont particulièrement marqués :

Agilité

Qui dit Mix-IT dit agilité. Il y a eu des très bonnes conférences concernant l'agilité durant ce Mix-IT 2015. J'ai choisi de vous parler de celle de Cédric Bodin : "Le pourquoi du pourquoi de l'agilité".

Le pourquoi du pourquoi de l'agilité par Cédric Bodin

La conférence commence par la présentation du CHAOS Manifesto écrit par The Standish Group. Ce manifeste recense des données concernant les projets liés à l'IT, et notamment le taux de réussite des projets waterfall (non agiles), en comparaison avec le taux de réussite des projets agiles. En vient en suite un portrait de l'agilité afin de nous expliquer pourquoi les projets agiles réussissent globalement mieux que les projets classiques.

Ensuite, Cédric nous fait découvrir les différentes facettes de l'agilité. Pour cela, il se base sur plusieurs présentations des plus grands agilistes de ces dernières années.

Ce fabuleux voyage agile se compose de 5 étapes :

Historique : La place de l'agilité et de l’homme dans les projets de Cédric Pourbaix

Pourquoi est-ce si compliqué de mener des projets ? C'est pourtant quelque chose que l'on fait depuis plus de 2000 ans (pyramides, grandes cathédrales, pont du Gard, etc). Avant, c'était l'excellence technique qui prônait et qui était le moteur du projet. Après la révolution industrielle, la nécessité de produire plus vite apparaît. En conséquence, moins de temps est alloué à la formation des équipes. On entre dans un mode "usine". C'est durant cette période que Frederick Winslow Taylor présente sa forme d'organisation scientifique du travail : Le Taylorisme. Les projets prennent une dimension plus verticale en séparant la conception, la formation et l'exécution. À ce moment de l'Histoire, un projet équivaut à un cahier des charges.

Mais la vision de Taylor est aux antipodes de ce que l'on voit aujourd'hui dans le monde de l'informatique : Le développeur apporte de la valeur en CONCEVANT des services, pas en les produisant. Le développeur n'est pas un maçon. Ce qu'on pourrait comparer à la maçonnerie, c'est la compilation d'un programme. Et dans la tâche du développeur, on sait que cette durée est insignifiante.

Aujourd'hui, la gestion de projets informatiques agile est anti-Tayloriste dans sa définition. Il n'y a pas de "one best way" pour mener les projets informatiques à bien.

Culturelle : Quarante ans de crise, dix ans d'agilité de Laurent Bossavit

La question est la suivante : est-ce que le génie logiciel est une construction sociale ? Le génie logiciel est une promesse de contrôle : on contrôle les choses, on veut savoir ce que l'on fait dans les moindres détails. À l'inverse, l'agilité est dans une philosophie de réactivité, de lâcher prise. On veut exploiter le talent, la valeur humaine.

Anthropologique : Anthropologie de l'Agile de Christian Fauré

On ne vit plus dans une ère Darwinienne. L'humanité évolue beaucoup plus vite à travers la technologie, qu'à travers les mutations de son ADN. On est dans une ère d'innovation constante. Tout circule très vite aujourd'hui : télévision, radio, réseaux sociaux. Pour s'adapter au marketing stratégique et à son besoin de réactivité indispensable, l'Homme a conçu les méthodes agiles. Anthropologiquement, on constate un phénomène de prolétarisation de notre société. Les exécutants perdent la connaissance, le savoir de leurs métiers en cours de route. Or, ici, la sphère de l'agilité encourage une disparition de la frontière entre théoriciens (ceux qui concoivent) et praticiens (ceux qui produisent). Les développeurs sont garants de la conception ainsi que de la réalisation.

Re-anthropologique : La horde agile de Pablo Pernot

Cette présentation aborde deux points. Une étude sur le niveau de satisfaction en fonction de la taille des groupes, où l'on voit qu'il y a deux pics de satisfation notables : à 7 et 50 personnes. Le premier étant la taille moyenne des équipes SCRUM. L'autre représentant la population moyenne des tribus dans les temps médiévaux. Puis le fait que, durant l'antiquité, le dessin était le meilleur vecteur de transmission du savoir. Bien plus efficace que les cahiers de charges textuels qui subsistent encore aujourd'hui. Mettre un mot sur une réalité, sur un concept, c'est déjà tordre le message d'une certaine manière. Le fait de verbaliser une idée peut en faire perdre sa notion. On parle alors de verbal overshadowing. Ces deux concepts définissent la horde agile : elle est hétérogène, c'est à dire constituée de groupes de tailles restreintes avec des profils complémentaires. Et collaborative, ayant un but commun et des moyens de communication adaptés.

Psychologique : Embracing uncertainty de Dan North

Aujourd'hui, on optimise les méthodes agiles pour obtenir de la certitude. Mais ce n'est pas une bonne idée. Dan North nous explique qu'il faut mettre l'accent sur la découverte plutôt que sur la répétabilité. Ne pas chercher à tout prix à réutiliser certains composants déjà faits ou certains patterns qu'on a l'habitude d'utiliser. Mais plutôt profiter du fait qu'il y ait de nombreuses façons de bien faire les choses pour gagner en maturité, en connaissance et en simplicité. Mais tout ce processus n'est pas naturel. Il faut changer les mentalités dans l'éducation. L'incertitude est une bonne chose, embrassons-la.

Conclusion

Cette conférence de Cédric Bodin était vraiment intéressante. Pourquoi ? Parce que contrairement aux autres conférences, il n'est pas là pour nous livrer un avis tout fait sur le sujet. Il n'essaye pas non plus de vendre sa méthode miracle, ou même ses services de coach agile. Au contraire, il nous apporte, le plus objectivement possible, des élements de réflexion sur l'agilité selon divers aspects : historique, culturel, anthropologique, etc. Ce que j'en retiens, c'est que l'agilité est probablement le moyen le plus adapté à l'heure actuelle pour mener à bien les projets informatiques. De par sa méthodologie, ses outils, sa mentalité et son histoire.

L'importance de la performance :

Paul Bakaus a insisté sur l'importance des performances d'une application :

Temps de chargement : 1s

Votre application doit être prête à l'emploi en maximum 1 seconde dès le premier accès de l'utilisateur. Sinon vous commencez à perdre des utilisateurs. À partir de 3 secondes, vous perdez 40% des utilisateurs. Et au-delà de 10 secondes, il ne reste plus personne !

Temps de réponse : 100ms

Lorsque votre utilisateur effectue une action, il doit recevoir un retour en moins de 100ms. Cela ne veut pas dire que la requête, par exemple, doit être traitée par votre serveur dans ce laps de temps, mais un loader doit s'afficher ou le bouton changer d'état. Note : l'utilisateur commence à ressentir un "retard" à partir de 150ms et une réelle gêne au-delà de 200ms.

Boucle et animation : 6ms

Vos animations et transitions doivent tourner à une fréquence de 60 images par seconde pour une impression de fluidité. Cela donne une période (temps disponible pour génerer chaque image) de 16ms. Sur ces 16ms, il est recommandé de n'en utiliser que 6 au maximum pour garantir 60 FPS de manière constante. Pourquoi ? On réserve 4ms pour les traitements intégrés (gpu, navigateur, etc...), ce qui nous laisse donc 12ms. Si on s'autorise à utiliser entièrement ces 12ms, la moindre frame dépassant ce temps d'exécution entraînera un dépassement. En ne s'autorisant que la moitié de ces 12ms (6ms), on prévoit le cas des frames trop longues !

Voici un article intéressant pour ceux qui souhaitent approfondir le sujet : Platform Success Model Explainer.

Le succès Lichess.org

Lichess.org est un site de jeu d'échecs en ligne.

Le projet est Open Source, gratuit à 100% pour tous ses utilisateurs et sans publicité ! En quelques années, il a réussi à se hisser en deuxième position du classement mondial des sites d'échecs en ligne, face à de nombreux sites à but lucratif portés par de grosses sociétés.

Comment arrive-t-il à surpasser ses concurrents sans avoir leurs moyens ?

  • Domination technique : proposer un service plus rapide, plus performant, où l'utilisateur attend moins (l'importance de la perfomance … ;)).
  • Qualité du service proposé : donner aux utilisateurs des fonctionalités pertinentes, qu'ils attendent (ici plus de 10 variantes du jeu d'échecs, l'analyse de ses parties, le jeu contre l'ordinateur, …). Le site bénéficie des conseils de la part de joueurs d'échecs de haut niveau et tient compte de leur avis d'expert.
  • Rapidité / Agilité : itérer rapidement pour proposer souvent du contenu à jour, s'adapter rapidement, expérimenter en réduisant le coût de l'échec.

Javascript

Javascript a été à l'honneur durant cette édition du Mix-It puisque pas moins de cinq sessions étaient consacrées au langage ou à des outils issus de ce langage :

  • deux ateliers qui abordaient respectivement le développement d'applications mobiles avec Appcelerator Titanium et la découverte des nouveautés Ecmascript (Le JavaScript du futur au bout des doigts) ;

  • une conférence intitulée Changez d'avis sur Javascript durant laquelle Damien Feugas a présenté quelques-unes des nouveautés introduites par les spécifications d'EcmaScript 6 'Harmony', parmi lesquelles la déclaration de classes Objet calquée sur la plupart des langages objets (Java, C#, etc.), l'introduction du mot-clé 'super', la fonction 'Flèche' qui permet de conserver le contexte 'this' à l'intérieur des fonctions, et quelques autres fonctionnalités utiles. Le conférencier n'a malheureusement pas pu aborder des concepts importants tels que les Promesses et les Générateurs, sans doute faute de temps, mais il n'en demeure pas moins que la conférence était très didactique et très agréable à suivre. Notez que la publication officielle de cette spécification devrait intervenir au cours de l'année 2015, et que pour l'heure la plupart des navigateurs et librairies serveur (Node.js, Io.js, etc.) ne l'implémentent que partiellement ;

  • deux séances de Live Coding consacrées à des librairies Frontend : les ficelles de Marionnette, un plugin Backbone.js présenté de manière très vivante par Romain Maton, qui a pris le temps d'expliquer les principes de Backbone au public majoritairement ignorant de cette technologie, et React.js pour les néophytes, séance durant laquelle Nicolas Cuillery a développé devant l'assistance une application mettant en oeuvre les différents composants concourant au pattern Flux (Store, Dispatcher & View) à l'aide de la librairie JS qui a actuellement le vent en poupe : React.js.

Bases de données

Au cours de sa conférence intitulée Tips and tricks for clean relational db schemas, Clément Delafargue a insisté sur la nécessité de reprendre la main sur son schéma et cesser de déléguer cette tâche aux ORM, qu'il semble ne pas particulièrement apprécier et auxquels il préfère des librairies plus légères et davantage orientées requêtes (POMM, Jooq, etc.). Il a également fait quelques rappels de base sur la conception d'un bon schéma de données et mentionné quelques fonctionnalités très utiles proposées par PostgreSQL, un système de gestion de base de données qu'il affectionne (et nous ne saurions le blâmer pour ce choix). En résumé, des conseils très utiles dispensés par un conférencier qui assume manifestement certains partis pris.

On ne quitte pas le domaine des données, avec OrientDB - the 2nd generation of (MultiModel) NoSQL, la conférence au cours de laquelle Luigi Dell'aquila a présenté la base de données No-SQL orientée graphes OrientDB. OrientDB se pose en tant que base de données multi-modèles puisqu'elle permet de modéliser des données dans la plupart des formats No-SQL (clés/valeurs, colonnes, graphes, documents). La liste de ses fonctionnalités s'avère particulièrement impressionnante. Jugez plutôt : requêtage SQL possible, schéma de données optionnel, transactions, sharding, gestion des groupes et permissions, etc. Elle semble combiner les avantages des deux mondes (SQL et No-SQL) et notamment pallier les limitations du modèle relationnel sur de gros volumes. Luigi Dell'aquila est un orateur remarquablement plaisant et enthousiaste, qui sait capter l'attention de l'auditeur. Sa conférence donne sincèrement envie de s'intéresser à l'outil. Reste à confirmer, à l'usage, les espoirs nés des promesses d'OrientDB.