4 liens pour la semaine (2013-32)

Encore une sélection pour lire au bord de la plage:

  1. Kathy Sierra qui nous parle du coût en fatigue mentale lorsqu’on utilise une application. Très bon article via Hacker News.
  2. Bret Victor et sa dernière présentation sur le futur de la programmation. A mon sens moins percutant que son précédant article sur le sujet, mais à voir tout du moins. La discussion sur HN est intéressante aussi.
  3. Le NY Times qui nous raconte comment Toyota donne du lean plutôt que de l’argent aux associations. Un retour intéressant par Kevin Meyer sur le sujet : « When your organization donates to charitable causes, are they just fueling an inefficient process, or are they actually trying to create improvements? », j’adore !
  4. John Gruber qui tire un boulet justifié sur les analystes et leur fâcheuse tendance à choisir et adapter les faits pour qu’ils correspondent à leur vision du monde. C’est un défaut qu’on peut également retrouver chez nos utilisateurs en BI, à nous de bien dessiner les systèmes pour prévenir au maximum cet effet.

______________________

<< Semaine Précédente – Semaine Suivante >>

Le futur du décisionnel? Pas forcément là où on veut nous le faire croire…

Via Jason Kottke, cette jolie vidéo qui présente la chaîne d’assemblage de Tesla pour produire le Model S :

Prenez le temps de la regarder, elle est courte et elle vaut vraiment le coup d’œil.

Pour donner un peu de contexte, Tesla Motors est un constructeur automobile américain récent, spécialisé dans les voitures 100% électriques, lancé par Elon Musk, un Nikola Tesla moderne. Comme on le voit dans la vidéo, ils sont au somment niveau innovation.

Et un peu plus tôt, toujours via Kottke, il y a cette vidéo de l’usine d’assemblage NeXT, le constructeur informatique qu’avait lancé Steve Jobs avant de revenir chez Apple.

Ce qu’on peut voir dans ces vidéos, c’est pour une chaîne de fabrication le top en termes d’organisation, de flux de production, d’automatisation, d’intégration logistique, d’amélioration continue… (de lean manufacturing en sorte) qui mènent au top en terme de qualité et de temps de construction (3 jours pour une voiture, combien de temps pour un projet décisionnel?).

Et de là on peut faire le parallèle à notre activité de développement en décisionnel, sur SQL Server ou pas. Chez nous, pas d’usine logicielle, très peu de frameworks – ou qui ne font pas franchement rêver – le tout début de la génération automatique de code (il faut que je m’y mette), surtout des Best Practices transmises via savoir tribal et quelques Design Patterns (SSIS oui, SSAS et SSRS sont bien vides).

Ça c’est sur la conception, mais côté industrialisation on est aussi à la ramasse. Entre autres: un déploiement de toute une solution en un clic c’est encore trop risqué, un build complet ça n’est pas possible et ça ne sert surtout pas à grand chose, et si les tests automatisés fonctionnent bien en SQL OLTP, c’est encore dur de comparer des données en provenance de sources hétérogènes (SQL vs MDX vs DAX, à voir si ça n’est pas en train de changer).

On présente le futur de la BI comme étant un mix de Big Data, de Data Visualisation, d’in-memory, d’analyse prédictive, de stockage verticale ou encore de Cloud. Certes, mais je crois qu’avant cela il faudrait déjà qu’on rejoigne le présent du monde du développement logiciel. Ce serait déjà pas mal.

Deux points positifs cependant : on se rattrape sur les cycles d’amélioration continue : côté plateforme (base de données des bugs, templating, reporting sur l’usage et les performances…) et côté équipe (revue de code, plan de formation, plan de carrière, suivi des objectifs…). Et également avec la verticalisation, à savoir : on construit une fois, le plus proprement possible, et on réutilise sur d’autres projets qui utilisent les mêmes applicatifs sources. Mais ça ne marche que dans les marchés où les progiciels utilisés sont toujours les mêmes (compta d’entreprise, RH, CRM…), marchés qui sont finalement assez rares.

A nous donc d’arrêter de courir après les dernières modes, et de nous concentrer sur ce qui est vraiment important pour la croissance de notre « science » (dit-il tout en préparant un article sur Azure – spoiler : le IaaS c’est trop bien ;)).

Le retour des spécifications dans un projet décisionnel lean

Au risque de me faire encore conspuer par nos camarades agilistes militants, je vais vous raconter comment j’ai contribué à la sortie d’un des projets auxquels je participe du mode Agile/Lean. Car oui, je l’avoue, j’ai fait du lobbying pour le retour du cycle en V…

Tout commence par un projet de migration Cognos vers SQL Server, avec une petite équipe de développeurs experts et un client qui fait confiance. Aucun frein à la productivité, les résultats sont immédiats et visibles à travers les premiers états livrés après seulement quelques semaines de travail. Point de vue gestion de projet, l’équipe fonctionne alors en mode cowboy, juste quelques todo lists priorisées, une réunion de suivi hebdomadaire, et tout le monde est bien content.

Les choses s’accélèrent, la migration avance à bon rythme, et le succès rencontré par la production des premiers rapports déclenche la demande de nouveaux rapports. Le client trouve sa place en tant qu’évangéliste de la solution, il identifie des utilisateurs potentiels, vend sa solution en interne et génère encore plus de besoins.

On avance de 6 mois, et… la migration n’est toujours pas terminée. En effet la recette des rapports est décalée en permanence car chaque revue déclenche une flopée d’évolutions. Les nouvelles demandes s’entassent et parfois même disparaissent puisqu’elles ne sont pas suivie d’une manière centralisée (pas de réel backlog) et que la priorité est attribuée aux derniers utilisateurs venus se plaindre dans l’open-space. Il n’y a ni planning, ni suivi du consommé, ni documentation, et même l’architecture technique commence à en souffrir (effet de bord d’une autre décision qui n’est pas le sujet du jour).

Le problème est identifié et c’est à ce moment-là que je rentre en scène. Ma mission est évidemment de remettre de l’ordre dans tout ça. Je reprends donc la longue liste des demandes, je clarifie les items, génère un backlog unique et accroche au mur un beau Kanban tout neuf.

 Dilbert - Méthodes Agiles

Pourquoi un Kanban ?

  • L’équipe fonctionne en livraison continue, sans itération, point positif à conserver
  • On lui reproche un manque de visibilité sur son activité en cours, il faut y remédier
  • Les priorités changent tous les 2 jours, il faut pouvoir s’adapter
  • L’équipe travaille sur trop de sujets à la fois, il faut rationnaliser

On est donc dans le cadre d’application idéal pour cette technique.

Et hasard des réorganisations, c’est justement le moment où un des utilisateurs principaux de la solution, directement en provenance du métier, passe officiellement business owner à temps plein.

S’en suivent 2 mois plutôt positifs, où une fois les process mis en place, le business owner et les utilisateurs constatent une amélioration du delivery en terme de rythme, de réactivité et de visibilité sur l’activité (par ce que oui, un développeur qui ne fait pas de réunion et qui n’envoie pas de mail c’est bien un développeur qui travaille, et pas le contraire). Le reproche éternel de la capacité à s’engager sur des dates est évidemment toujours dans l’air, mais on atteint une visibilité à 3/4 semaines qui à mon sens est la seule période vraiment réaliste.

Et là, c’est le drame…

Devant le regain de productivité de l’équipe, les demandes explosent à nouveau. Les développeurs reçoivent plus de 5 mails par jour des utilisateurs, avec ou sans le business owner en copie. Les règles de gestion évoluent sans cesse, les couleurs dans les rapports aussi, les sources de données changent considérablement, et la mauvaise habitude de donner la priorité au dernier qui a parlé réapparaît. A nouveau l’équipe s’enlise et la satisfaction des utilisateurs sombre.

Pour moi le problème est clair : l’équipe est en sous-capacité. Si nous étions capables de dépiler plus vite les tickets, nous arriverions à retrouver un flux optimal. Mais dans notre cas, même avec l’ajout d’un développeur, la situation persiste. Le delta entre besoin et capacité de production est vraiment trop important. Pas possible d’ajouter plus de ressources, d’un point de vue budget et praticité, nous sommes au maximum.

 Dilbert - Product Owner vs Développeur

Alors j’ai pratiqué ce que je prêche, et j’ai demandé au business owner, qu’on considérera désormais comme un chef de projet MOA, de commencer à écrire des spécifications fonctionnelles. Chaque demande d’évolution doit mettre à jour la spécification correspondante, chaque nouveau besoin doit être pensé et écrit dans le dur.

Mon objectif est clairement d’introduire une contrainte au niveau métier, pour stabiliser la génération des besoins (le rythme est sincèrement démesuré) et ainsi faire basculer au niveau MOA le goulet d’étranglement du flux.

Car à être trop disponible et réactive, l’équipe de développement était devenue une extension du cerveau du business owner, et de certains utilisateurs trop exigeants. Chacune de leurs pensées à demi digérée était rapidement écrite dans un mail et transmise en priorité 1, trop souvent en totale contradiction avec l’info précédante. J’espère que le fait d’avoir à se poser pour penser et écrire concentrera leurs idées et diminuera les changements d’avis. Le travail de réconciliation et d’harmonisation fonctionnelle doit définitivement être réalisé par le business owner, pardon, le chef de projet MOA.

Evidemment c’est une étape temporaire, une astuce qui donnera également à l’équipe le temps de souffler un peu et traiter les vraies priorités. Je compte bien retourner à nouveau dans un mode plus lean une fois l’orage passé. Et je provoque en parlant du retour du cycle en V, puisqu’on conserve bien la livraison continue et le fonctionnement en mode pull. J’impose juste une contrainte de documentation plus lourde côté utilisateur avant d’accepter les activités dans le backlog.

On en reparle dans quelques mois, pour voir si l’expérience porte ses fruits !

PS : Evidemment toute cette histoire se vit dans un contexte d’entreprise plus global, sur fond de guerre politique entre services, de rachat de sociétés et d’avancement de carrière des internes, qui expliquent beaucoup plus mais que je ne peux évidemment pas raconter ici 😉

Savoir rester lean dans son projet décisionnel

Vous vous demandiez peut-être à quoi je passais mon début d’année (plutôt que de vous écrire des articles de 3 pages de long) ? Et bien en dehors de ma récente promotion (une fois nos expérimentations d’organisation stabilisées je vous en parlerai, soyez patients), je le consacre à la finalisation d’un projet de plusieurs mois, réalisé par un padawan de talent et supervisé par mes soins.

Padawans en tenue

Sont pas beaux mes padawans? Tenue obligatoire en clientèle!

Entre 2 anomalies à corriger, nous rédigeons la documentation et préparons le voyage de l’application de l’environnement de développement, et de notre responsabilité, à celui de production, et à la responsabilité de l’exploitation. Au passage c’est toujours pendant ce genre de transition que l’idée du devops revient me faire des yeux doux. Ou encore le concept de livraison continue. Malheureusement ici je n’ai pas réussi à convaincre le métier et l’IT de bosser en mode Agile. Mais ce n’est pas le sujet du jour, revenons à nos moutons !

La documentation technique terminée, elle est relue par le directeur d’étude (respect, ce n’est pas souvent que ça arrive). Et ce dernier s’étonne : quasiment pas de règles de gestion, un schéma en étoile simpliste, un cube à la DSV vide, des dimensions sans surprises techniques. Ok on trouve bien quelques calculs MDX, et ok la partie ETL fait pas loin d’une centaine de packages, mais ce n’est que parce qu’on a fait un bon travail et bien tout découpé en flux de données unitaires. En dehors de ça la solution semble étonnement vide pour 3 mois de développement.

Un tout petit plat gastronomique dans une grande assiette

Minimaliste mais plein de goût, comme au resto gastronomique!

Et bien pour tout vous dire, j’en suis assez fier. Parce que pour arriver à cette apparente simplicité, ce « vide » dans la solution, cela nous a demandé des efforts considérables. Un projet informatique est soumis à une certaine forme d’entropie. Plus on avance, plus des éléments viennent se rajouter, des fonctionnalités, des données, des exceptions, des contournements, et si on n’y fait pas attention, sans rien toucher au périmètre initial de l’application, la solution est tout de même devenue un plat de spaghettis indémêlables avant même la livraison du lot 1.

Lutter contre cette tendance demande un effort constant. Dès qu’on se relâche, on se retrouve avec des règles de gestion implémentées dans des vues (ou pire, dans la DSV du cube), parce que c’est rapide, plutôt que de faire les choses proprement et d’ouvrir une énième fois l’ETL, modifier les métadonnées, les flux, et tout re-tester après.

Mais il ne faut pas se leurrer : tout ça c’est de la dette technique, et rien de pire pour une solution informatique de commencer sa vie encore plus endettée qu’un étudiant américain ! Alors ne relâchez pas la lutte, pensez marathon plutôt que sprint (rien à voir avec SCRUM ;)), pensez Lean, et faîtes un cadeau au vous de dans 6 mois qui devra bosser sur le lot 2 ou corriger une anomalie: laissez-lui une solution toute propre, il vous remerciera!

4 liens pour la semaine (2013-09)

Un lien en français se cache parmi les 4! C’est exceptionnel 😉

  1. Jacques Mattheij sur le Domain Knowledge, ou la compétence fonctionnelle en français. Un article qui a particulièrement son sens dans le décisionnel.
  2. Kevin Meyer, expert du lean manufacturing, qui n’a donc rien à voir avec l’IT, nous donne sa vision du big data. Je suis évidemment bien d’accord.
  3. Samuel du blog Authueil, qui parle littérature, journalisme et presse politique. Ça fait mal.
  4. Sebastian Marshall avec une petite leçon de courtoisie que je trouve très utile. Il faut que je fasse attention!

______________________

<< Semaine Précédente – Semaine Suivante >>

Retour sur une partie de Kanbanzine, le jeu de découverte du Kanban

Hier soir, jeudi, j’étais chez Octo Technology pour assister à une partie de Kanbanzine.

Mon premier, Octo Technology, est un cabinet de conseil en IT à l’investissement fort dans les écosystèmes du développement et de la gestion de projet. Je leur tire d’ailleurs mon chapeau pour tout ce qui concerne le marketing. Je suis impressionné à la fois sur la qualité des messages et la qualité du design de leurs communications, c’est un bon exemple à suivre pour tous.

Mon second, Kanbanzine, est un jeu de société édité par l’association Métis émergence, dont l’objectif est la diffusion du Kanban en France. Pour faire très court, le Kanban c’est une méthode de gestion de projet appartenant à la mouvance Lean. Ses principaux attributs sont de représenter les tâches et le flux de production de manière visuelle (avec un board et des post-its), de limiter le travail en cours (WIP, « work in progress ») et de fonctionner en pull – plutôt que de pousser les tâches sur un planning, on les tire à l’instant t selon les besoins en cours.

Mon petit Kanban à moi!

Mon petit Kanban à moi! Oui, le « Done » est un peu vide…

Comme vous le savez, j’apprécie beaucoup la philosophie sous-jacente au lean, comme celle de l’agilité par ailleurs, et j’essaye de m’y exposer au maximum à travers plusieurs auteurs et ouvrages dont je vous parle de temps en temps.

Le dernier en date était d’ailleurs Personal Kanban, un bouquin décrivant l’application de ces méthodes à l’organisation personnelle. Vous comprendrez donc que je ne pouvais pas rater cette soirée de découverte du Kanban complet, surtout organisée autour d’un jeu de plateau.

Twilight Imperium

TWI : Un jeu de plateau pour gérer un projet, ou un projet pour gérer un jeu de plateau?

Après une rapide présentation de l’événement par l’organisateur, Cyrille Deruel, puis de l’association et du jeu par Alexis Nicolas et David Littel, nous voilà partis pour une partie de 3h (oui, on est passionné ou on ne l’est pas !). D’ailleurs au-delà de l’apprentissage du Kanban, Kanbanzine est également présenté comme un support de team-building, et plus globalement de découverte de ses équipes et de ses collaborateurs.

Je ne vais pas faire le compte-rendu détaillé de la partie, je vais plutôt vous faire directement mes retours :

  • Points positifs
    • C’est définitivement ludique
    • Le jeu est collaboratif, il est organisé autour d’un facilitateur, sorte de maître du jeu ou chef d’orchestre. Si ce dernier fait bien son job, c’est rythmé et sans temps morts
    • On est exposé aux éléments de base du Kanban de manière assez transparente
    • Le contexte (édition d’un magazine) n’est pas orienté autour du développement logiciel, on peut donc inviter des fonctionnels sans les effrayer
    • Le jeu propose des scénarios qui simulent des incidents, des situations réelles que l’on rencontre souvent dans la vraie vie et pour lesquels on apprend à réagir en adaptant la gestion de projet
    • Il y a suffisamment d’aléatoire pour rendre la partie intéressante, sans non plus risquer de tout perdre sur un jet de dés malheureux
  • Points négatifs
    • Pendant de l’aspect ludique et de la transparence de l’apprentissage : si le facilitateur ne met pas avant les mécaniques du Kanban aux bons moments, on risque de complétement rater le côté apprentissage
    • Si on arrive à comprendre l’intérêt de l’aspect visuel, du flux et du pull par le simple fait de jouer au jeu, on subit la limite du WIP sans comprendre l’intérêt positif de cette contrainte

Globalement je suis donc satisfait de l’expérience, et je trouve que le jeu répond bien à ses objectifs de team building et de découverte du Kanban. Par contre, vous l’aurez compris, ce n’est pas un outil d’apprentissage du Kanban ni de découverte de la philosophie du Lean à proprement parler.

Kanbanzine chez Octo

Un moment douloureux : annonce de la dernière décision de Philippe…

Merci beaucoup aux organisateurs, j’ai passé une soirée amusante en compagnie de gens sympathiques et pointus sur le Lean, l’Agilité et le 6 Sigma.

De mon côté j’ai noté qu’il fallait que je me renseigne sur David Anderson et l’autre jeu de découverte du Kanban. Et maintenant que par ici on maîtrise le décisionnel agile, voir comment on peut intégrer ces nouvelles méthodes d’organisation dans nos projets. On en reparle plus tard 🙂