Blog Zenika

#CodeTheWorld

Événements

Mix-IT 2015 – Jour 2

Voici un retour sur la deuxième journée de Mix-IT 2015. La première journée est résumée dans le billet précédent.
MixIT02 Zenika

Aller sur Mars… Ou presque

Keynote – par Florence Porcel
C’est Florence Porcel, auteur, comédienne, blogueuse et animatrice, qui commence cette deuxième journée avec une keynote d’ouverture que tout le monde attend. Rentrons tout de suite dans le vif du sujet : Florence a candidaté au projet Mars One (oui, oui, l’aller simple sur Mars en 2025) et est arrivée au round 2 du classement, c’est à dire dans les 705 premiers sur 202 586 candidats, précisément. Une série d’articles qu’elle a publié sur son site parle de ce projet.
Florence commence par nous donner quelques chiffres sur la planète rouge : -63°C en moyenne, 95% de CO2, aucune trace de vie (pour l’instant…). Il y a actuellement deux rovers sur Mars : Curiosity (2012) et Opportunity (2004). Ce dernier était censé fonctionner pendant 6 mois. Les russes sont les premiers à avoir tenté l’exploration du sol martien sans succès, avec Mars 1 (1962), puis Mars 2 (1971). Il faudra attendre 1976 pour avoir la première photographie par les américains avec Viking 1. Depuis 1970, la NASA affirme que les premiers hommes iront sur Mars dans 20 ans. Affaire à suivre ?
Nous continuons la keynote avec les projets de vols habités sur Mars. Inspiration Mars : envoyer un couple sur la planète, financé par un multimilliardaire américain, et Mars One. Ces deux projets sont loin d’être concrétisés car les coûts sont exorbitants. Il a fallu plus de 2 milliards de dollars pour envoyer Curiosity et les organisateurs de Mars One prévoient d’envoyer des humains à partir de 2026 avec 6 milliards de budget. Florence a participé à la mission Mars Society (simulation de 15 jours en conditions réelles dans le désert de l’UTAH).
On s’aperçoit au fur et à mesure de la présentation que le rêve de notre comédienne (aux études littéraires mais passionnée par l’astronomie depuis son plus jeune âge) est de poser les pieds sur cette planète un jour ou l’autre. Une belle leçon de vie qui nous montre que ce sont nos passions qui font de nous ce que nous sommes !

Selling BDD to the business

Conférence – par Dan North (slides)
 
MixIT 2015 Zenika
Dan North nous présente ici, non pas une conférence sur les principes de la méthode agile BDD, mais sur comment vendre cette pratique aux personnes décisionnaires. Il commence par énumérer les différents acteurs d’un projet et leurs fonctions :

  • L’équipe production : analystes, développeurs, testeurs. Ils produisent des logiciels, des systèmes pour des clients.
  • L’équipe business : ils représentent le consommateur, le client, ils ne veulent pas se préoccuper de la partie technique (IT).
  • L’équipe management : ils sont garants de la livraison. Ils embauchent les meilleurs et pourtant rien ne se passe jamais comme prévu (retards, instabilités, évolutions contraignantes, etc.).

Les décisionnaires d’un projet veulent des livraisons dans les clous, des évolutions rapides, des fonctionnalités à haute valeur ajoutée (seulement 25 à 30% sont réellement utilisées !). Ils veulent maîtriser les risques et pouvoir utiliser les estimations comme des certitudes.
Meet BDD : Dan nous explique comment cette méthode peut permettre à tous les acteurs d’un projet de travailler en harmonie et dans le meilleur des mondes.
On commence par remplacer test par should. Les tests deviennent beaucoup plus intéressants car on ne “teste” pas des fonctionnalités mais on décrit des comportements. Mais ce n’est pas tout ! Voici la définition du BDD par son auteur (j’ai nommé M. Dan North) :

Behaviour Driven Development is about implementing an application by describing its behaviour from the perspective of its stakeholders.

Un jour, une personne fait la remarque que cette phrase est une description et non une définition. Dan revient alors avec quelque chose de plus complet :

BDD is a second generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.

Les concepts clés de cette définition :

  • outside-in : on commence par définir un usage, un comportement (UI).
  • pull-based : rien ne devrait être fait sans qu’il n’y ai un réel besoin.
  • multiple-stakeholder : les décisionnaires travaillent tous ensemble.
  • multiple-scale : on applique le BDD de bout en bout (e2e).
  • high-automation : automatiser les tâches ennuyantes, répétitives (tests unitaires / d’acceptances).
  • agile methodology : on préfère l’humain au process, le logiciel à la documentation.

Dan récapitule les éléments importants à prendre en compte : résultats, coûts, risques et certitudes. Enfin, il conclu en nous expliquant que travailler avec le BDD permet d’avoir de meilleurs livrables, ce qui rend le client satisfait, qui ne peut que s’empresser de faire de bons retours pour le bonheur des équipes projets. Nous savons ce qu’il nous reste à faire (point de vue de développeur) !

Cloud Native Apps with Spring Cloud

Conférence – par Brian Clozel (slides)
Les microservices ont le vent en poupe en ce moment. Quoi de mieux qu’une conférence de Brian Clozel (Spring Framework commiter chez Pivotal Software) sur le sujet, avec Spring Cloud et Netflix OSS !
 
MixIT0203
Brian commence en toute logique par une présentation sur les microservices. Peut-on dire que ce type d’architectures diffère en tout point des architectures monolithiques ? La réponse n’est pas si simple. Ces dernières sont utilisées par des serveurs d’applications où l’ensemble des responsabilités est contrôlé par une même entité. Il en résulte des systèmes de nature complexe mais globalement simple à exploiter dont l’aspect modulaire ne vient que du langage / framework, la stack technologique étant généralement compliquée à faire évoluer. Une architecture microservices représente un système complexe à base de plusieurs services simples. Elle est plus difficile à appréhender mais aussi beaucoup plus modulable grâce à sa multitude de sous-systèmes. Les déploiements n’en sont que plus fréquents.
On continue la présentation avec Spring Cloud, un projet qui fournit des outils pour implémenter rapidement des patterns propres aux systèmes distribués (configuration management, service discovery, circuit breakers, intelligent routing, etc.), puis Netflix OSS, une plateforme regroupant tous les projets open-source de Netflix. Brian introduit alors Spring Cloud Netflix, l’intégration de projets open source Netflix pour les applications Spring Boot.
Enfin, Brian nous présente un cas concret d’application pour illustrer l’utilisation des concepts, projets et outils évoqués plus haut. Voici ce que nous passons en revue :

  • Eureka : service discovery (Netflix OSS)
  • Ribbon : client load balancing (Netflix OSS)
  • Hystrix : circuit breaker (Netflix OSS)
  • Config Server
     : configuration management (Spring Cloud)

La conférence se termine sur une démonstration en live de l’application présentée. Pas d’effet démo à l’horizon, les différentes étapes s’enchainent avec fluidité jusqu’à ce que les applaudissements de la salle retentissent. Bravo !

OrientDB – the 2nd generation of (MultiModel)NoSQL

Conférence – par Luigi Dell’Aquila (slides)
Luigi Dell’Aquila (Director of Consulting chez Orient Technologies) nous parle ici d’OrientDB, la nouvelle génération de base de données multi-modèles NoSQL.
C’est tout naturellement que la présentation commence par un rappel sur les catégories de bases de données NoSQL. Nous distinguons deux groupes : les bases orientées clé / valeur, documents et colonnes puis les bases orientées graphe. Luigi met en avant les problématiques liées aux bases relationnelles (JOIN, Index Lookup) et explique que les performances des requêtes se dégradent au fur et à mesure que la base grossit (O(Log N)). C’est ainsi que beaucoup de produits NoSQL évitent de gérer des relations.
Luigi continue avec un point sur les bases de données orientées graphe et commence avec une définition de Marko A. Rodriguez :

A graph database is any storage system that provides index-free adjacency

S’en suit un rappel sur la théorie des graphes (G = (V, E)) et la présentation de modèles de graphes simples avec des relations 1-N / N-M. La gestion des relations dans une (vraie) base orientée graphe est décortiquée, et comparée avec une base relationnelle : dans la première, la relation est créée une seule fois alors qu’elle est calculée pour chaque requête dans la dernière. La complexité passe de O(Log N) à O(1), le temps de parcours n’étant pas affecté par la taille de la base. Cependant, la plupart des produits NoSQL sont performants dans un cas d’utilisation unique et sont utilisés à 90% comme bases secondaires.
La deuxième génération de base de données NoSQL introduit l’aspect multi-modèles (clé / valeur, document, graphe, objet au sein d’un unique SGBD). Luigi met un point d’honneur à rappeler que quelques SGBD se disent multi-modèles mais ne possèdent pas de vrai moteur de graphe (les clauses JOIN sont conservées et exécutées). Il présente OrientDB comme la première base aliant la flexibilité des documents et la connectivité des graphes. Parmi la liste (non exhaustive) des fonctionnalités présentes, on trouve :

  • Operational / Graph / Document database
  • Object-Oriented Concepts
  • Schema-full / Schema-less / Schema mix
  • User and Role security
  • Record Level Locking
  • SQL
  • Multi-master replication
  • Sharding
  • Server-side functions

Luigi termine sur une démonstration qui impressionne par la multitude de possibilités qui s’offre à l’utilisateur, notamment au niveau de la visualisation / édition (graphique) des graphes, du requêtage (SQL, JSON, parcours de graphe) et de l’écriture de fonctions (accès REST). Une présentation réussie qui donne particulièrement envie de s’intéresser de près à OrientDB.

Reading Code Good

Keynote – par Saron Yitbarek
En tant que développeur, nous passons évidemment beaucoup de temps à écrire du code. Mais nous en passons encore plus à en lire. Pour cette avant dernière keynote de Mix-IT, Saron Yitbarek (développeuse autodidacte) nous décrit son parcours et nous explique comment être efficace dans la lecture de code.
Professeur de chimie organique, journaliste, chercheuse en biochimie sont les métiers avec lesquels Saron commence sa carrière. Son envie de créer la pousse à s’essayer au monde des startups dans les branches commerce et marketing avant de se dire que les plus cools, c’est les développeurs (comment lui donner tort…). Elle commence alors un boot camp de trois mois pendant lequel elle apprend Ruby et Rails. Sa formation terminée, Saron s’aperçoit que le niveau d’expert est encore bien loin. Sa solution pour y arriver : passer une heure chaque dimanche matin à lire du code avec ses amis développeurs. Le premier code club est créé. Son retour d’expérience nous donne les points clés pour que la lecture de code soit la plus efficace possible :

  • Choisir une base de code (~ 100 lignes)
  • Interagir en équipe avec le code
  • Choisir un leader qui s’assure que tout le monde participe
  • La base de code étudiée ne doit pas systématiquement être exemplaire
  • Identifier et travailler les points sensibles

Saron décide alors de partager son concept de code club sur twitter. Le succès est tel qu’elle lance par la suite la plateforme CodeNewbie.
Notre speakerine déborde de motivation et nous avons pu ressentir sa passion tout au long de sa présentation. Au dela de ce que nous avons pu apprendre sur la lecture de code, cette keynote représente une vraie success story à l’américaine comme on aimerait en voir plus en France.
Un grand merci à tous les organisateurs, conférenciers et animateurs d’ateliers qui nous ont permis de passer deux superbes journées. L’édition de l’année prochaine est attendue avec impatience.
MixIT0204
 

Auteur/Autrice

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.