Note de lecture : Le bon moment, par Daniel H. Pink

Note : 5 ; Timing is everything !

Chaque livre écrit par l’auteur de « Drive » mérite à minima l’attention. Ce nouvel opus ne va pas concurrencer le titre phare de l’auteur, mais il a nombre de chose à nous apprendre. Le titre ne cache pas son jeu, c’est de moment, de timing et de synchronisation dont il va être question. Qu’on le veuille ou non, le facteur temps est presque toujours le plus important.

Ce volume est au format de poche, promesse d’une lecture rapide qui sera tenue. L’écriture a dû en être moins rapide quand on voit le nombre d’études et d’histoires sur lesquelles l’auteur s’appuie. Le texte occupe 270 pages en 7 chapitres, sur 3 parties. La première, « la journée » ne compte que 2 chapitres, mais sur 110 pages. Le premier évoque l’architecture secrète de la vie quotidienne ! Il nous montre, avec de très nombreuses études à l’appui, que nous avons bel et bien une rythmicité quotidienne et que notre énergie et notre humeur varient dans la journée. Pour la plupart d’entre nous, cela marche mieux le matin, mais ce n’est pas vrai pour tous et cela varie aussi au fil du temps, passant le plus souvent du soir vers le matin. Rien que ce chapitre vaut le détour et peut vous aider dans votre vie quotidienne !

Au second chapitre, l’auteur va nous parler de l’après-midi que l’on peut voir comme la zone de tous les risques. Du constat des problèmes d’attention dont l’après-midi est la cause, l’auteur nous fait un plaidoyer des « pauses vigilances » qu’il associe à 5 principes directeurs. Là aussi un bon savoir « à emporter ». Même si vous lisez le chapitre l’après-midi !

Lire la suite

Note de lecture : Designing Data-Intensive Applications, par Martin Kleppmann

Note : 10 ; Monumental! Book of the year 2021 !

Une somme de connaissances, cet imposant ouvrage, n’est pas moins que cela. Le titre laisse présager que l’on va parler big data. C’est plus subtil que cela, car il s’agit avant tout les principes et mécanismes fondamentaux des grosses architectures data, certes en faisant référence aux classiques du marché, pour comprendre les spectres d’utilisation des différentes solutions. On va donc y parler stockage, systèmes réparties, transactions, streaming, etc. Et ce n’est pas du léger.

Léger, l’ouvrage ne l’est clairement pas vu de l’extérieur (et comme nous le verrons, cela va se gâter à l’intérieur) : 550 pages divisées en 3 parties pour un total de 12 chapitres. Nous avons donc des chapitres très conséquents, il n’y a aucun doute. La première partie traite des fondamentaux. Cela couvre 150 pages sur 4 chapitres. C’est une introduction en douceur, le propos y est tout à fait abordable. Le premier chapitre, fort d’une vingtaine de pages, nous invite à comprendre ce qu’est un système fiable, scalable et maintenable. Il ne s’agit pas juste de généralités, car l’auteur y présente ainsi la structure des données dans les SGBDR, dans un système de streaming tel que Storm. On y apprend ce qu’est un percentile et beaucoup d’autres choses. Bref, un chapitre en douceur mais solide, épaulé par une trentaine de références bibliographiques.

En débutant le chapitre 2, j’ai été frappé par la gravure représentant la table des matières du chapitre. Le premier chapitre en avait une aussi, ainsi qu’en fait tous les chapitres du livre ! Modèles de données et langages de requêtes sont au menu de ce chapitre diablement passionnant. Non seulement on rentre en profondeur dans les structures des différents modèles de données et les paradigmes des langages de requêtes, qu’ils soient déclaratifs ou impératifs, mais l’auteur nous donne un éclairage historique remontant au Codasyl. Brillant.

Lire la suite

Note de lecture : Site Reliability Engineering, par Betsy Beyer, Chris Jones, Jennifer Petoff & Niall Richard Murphy edt.

Note 4 ; Les bases d’une nouvelle discipline au milieu d’essais assez hétéroclites.

Le SRE est l’une des nouvelles tendances du moment. Elle figure le pendant « run » du devops de manière générale, mais reste parfois difficile à distinguer aussi clairement. Le présent ouvrage a mis en lumière cette nouvelle discipline, aussi pourrait-on le qualifier « d’historique ». Dans les faits, il s’agit avant tout d’un recueil d’articles. Malgré le travail éditorial effectué, il ne faut pas en attendre le niveau de cohérence d’un ouvrage classique.

Avec ses 475 pages rythmés sur 34 chapitres et structurés en 5 parties, l’ouvrage est une belle bête, au moins au niveau du volume. La première partie ne compte que deux d’entre-eux sur une vingtaine de pages et sert d’introduction aux parties suivantes. « Introduction » est d’ailleurs le titre du 1er chapitre. Celui-ci nous esquisse en quelques lignes ce qu’est le SRE chez Google. Car j’ai oublié de préciser qu’il s’agit d’articles en provenance de Google. Le second chapitre ne se situe guère en continuité car il évoque l’environnement de production. Cette infrastructure est gérée par « Borg » qui n’est pas moins que l’ancêtre de Kubernetes !

La seconde partie assoie les principes du SRE. Elle compte 7 chapitres pour un total de 75 pages. Elle débute par un chapitre 3 qui a pour but de nous donner un éclairage « risques ». C’est surtout la notion de budget d’erreur qui y est important. Le chapitre 4 aborde une notion clé du SRE : le SLO pour Service Agreement Objective, que Google préfère au SLA. Les auteurs nous expliquent comment construire ces SLO par rapport aux SLI (« I » pour indicateur), et ce par l’exemple. Un bon chapitre. Le chapitre 5 est consacré au labeur, que l’on pourrait aussi appeler travail de m… Surtout ce chapitre entrouvre un aspect majeur du RSE : Google emploie pour ce travail des développeurs plutôt que des ingénieurs système car l’objectif est d’éliminer ou automatiser tout cela plus que d’effectuer des corrections !

Lire la suite

Note de lecture : Team Topologies, par Matthew Skelton & Manuel Pais

Note : 9 ; Un framework résolument Lean et pragmatique pour repenser l’organisation IT du 21ème siècle à la lumière de la loi de Conway. Book of the year 2020 !

Existe-t-il des règles ou des guides pour structurer une organisation en équipes selon des principes agiles ? On ne manque certes pas de textes qui, en cherchant à investir le domaine de l’organisation nous abreuvent de principes aussi flous que péremptoires. Mais dès qu’il s’agit d’entrer dans le concret, il n’y a plus rien, si ce n’est la « loi de Conway » qui accuse maintenant plus de 53 ans ! C’est bien à ce sujet que s’attaquent les auteurs. Ils s’appuient justement sur la loi de Conway pour développer le modèle qu’ils proposent et développent dans ces pages.

L’ouvrage n’est guère imposant avec son moyen format et ses 185 pages toutefois imprimées en couleur ! La lecture est rythmée par 9 chapitres rassemblés en 3 parties. Mais n’oubliez pas de lire d’abord la préface qui vous livre le modèle « team topologies ». La première pépite est ici. La première partie, elle, couvre une soixantaine de pages sur 3 chapitres et annonce la couleur en s’intitulant « l’équipe comme moyen de livrer ». Le premier chapitre serait plutôt une chasse aux anti-patterns, ou plus exactement aux organigrammes organisationnels : Ils ne prennent pas en compte les lignes de communication et sont un obstacle au flux.

Le second chapitre est consacré à la loi de Conway, ou plutôt à ce qu’il coutume d’appeler « la manœuvre Conway inversée », où comment organiser ses équipes en fonction de l’architecture que l’on souhaite. Et dans le cas présent, il est beaucoup question de microservices et d’équipes « orientées flux » qui sont la pierre angulaire de l’approche. Le chapitre n’est pas simple à suivre et cela va encore se complexifier au chapitre 3. C’est l’équipe, au singulier, qui est l’objet du chapitre. Le focus est très clair ici : favoriser la formation d’équipes dans la durée en limitant leur taille en se conformant au « nombre de Dunbar ». Mais il s’agit alors de limiter le nombre de domaines (et surtout de domaines complexes à confier à l’équipe.

Lire la suite

Note de lecture : Kafka : The Definitive Guide, par Neha Narkhede, Gwen Shapira & Todd Palino

Note : 7 ; Pour comprendre réellement Kafka, par ceux qui l’ont fait… Mais probablement hélas dépassé.

Voici un ouvrage qui, s’il n’est peut-être pas le « definitive guide » qu’il promet d’être (je reviendrais là-dessus) va nous permettre de réellement appréhender ce qui est aujourd’hui l’un des joueurs dominant du monde du big data. Qui de mieux placé pour cela que l’équipe qui fut à l’origine du projet chez LinkedIn ? C’est la promesse du livre et elle est bel et bien tenue.

Justement le texte, parlons-en. Ilse présente en 11 chapitres totalisant 280 pages. Il débute classiquement par un premier chapitre « Meet Kafka » qui nous présente la bête en 16 pages. En fait il fait bien mieux qu’une simple présentation. Certes, il évoque les principes généraux du middleware orienté messages, mais surtout ce chapitre permet d’appréhender le principe de la rétention basée sur le disque. Partitionning, réplication et mirroring sont aussi abordés mais ils seront plus développés par la suite. L’installation de Kafka est au cœur du second chapitre. Ou pas exactement, en fait. Certes, le chapitre aborde de manière bien décomposée l’installation de Kafka, mais aussi de Zookeeper. Mais ce qui occupe la plus grande partie des 20 pages de ce chapitre est consacré à la configuration du broker, mais aussi du cluster jusqu’à des questions assez délicates liées à la JVM ou aux écritures sur disque. En réalité, la configuration de Kafka va bien plus loin que cela, mais on est déjà largement au-delà du niveau « premier contact » !

Au chapitre 3, nous nous frottons à l’écriture d’un « producteur », c’est-à-dire de l’alimentation de Kafka, et ce via du code Java. J’ai bien aimé les extraits de code, ni trop courts faute de quoi il nous manque le contexte, ni trop long quand le code utile est noyé dans une litanie. La partie est plutôt complète, intégrant bien sûr la construction et l’envoi d’un message, puis intégrant progressivement, la configuration, la sérialisation avec Avro puis finalement le partitioning. Un régal. Le chapitre 4 lui fait écho en nous livrant le même exercice côté consommateur. Et l’on va assez loin, je dois dire : désérialisation, bien sûr, mais aussi rebalancing, groupes de consommateur et gestion de l’offset de lecture (qui est bel et bien un élément important à gérer côté consommateur).

Lire la suite

Note de lecture : Agile Conversations, par Douglas Squirrel & Jeffrey Frederick

Note : 5 ; Des cadres de conversation essentiels, mais difficiles à appréhender !

Les transformations agiles ne sont pas seulement le fait d’adoption de pratiques, elles passent par des conversations qui favorisent le changement de culture. C’est tout l’objet de ce texte. Il ne s’agit pas de n’importe quelles conversations, mais d’un processus, d’une progression entre 5 types de conversation.

Avec moins de 190 pages et un format réduit, il a tout d’une lecture légère. Mais il n’en est rien, la prose ne s’avale pas d’un trait. L’ouvrage est composé de 2 parties très inégales. La première a une nature plutôt introductive et ne compte que 2 chapitres totalisant 50 pages. Le premier d’entre eux, escaping the software factory est une simple introduction à l’agilité, au lean et au devops. Il a le mérite de poser les principes de ces 3 courants de pensée, avec une mention spéciale aux principes du devops que l’on ne rencontre pas souvent écrits. Le second chapitre « improving your conversations » est une introduction à la seconde partie. Les types de conversation décrits dans cette seconde partie obéissent tous au cadre des « 4 Rs » décrit ici. C’est pour faciliter les deux premiers Rs (record & reflect) que les auteurs utilisent le format de conversation sur 2 colonnes utilisé par la suite et détaillé ici.

La seconde partie propose 5 types de conversations qui forment autant de chapitres. Ils sont à prendre dans l’ordre, car ils forment un édifice où une conversation sert de base à la suivante. Le chapitre 3 nous propose la conversation de la confiance, qui est bel est bien la fondation de l’édifice agile. Le cœur de cette conversation est le « TDD for people », un cycle délimité par l’action et l’observation, mêlant croyance, hypothèse est sens. C’est un concept plutôt difficile à appréhender et plus encore à adopter. Prévoyez de le relire deux ou trois fois.

Lire la suite

Note de lecture : Introduction to Apache Flink, par Ellen Friedman & Kostas Tzoumas

Note : 3 ; Apache Flink pour les executives.

Voici un petit traité qui promettait d’en savoir plus sur Flink en 6 chapitres et à peine une centaine de pages. Le texte me laisse quelque peu sur ma faim, me donnant plutôt l’impression d’un ouvrage dédié aux « executives ».
Le premier chapitre cherche à répondre à la question fondamentale « pourquoi Apache Flink » en 18 pages. On y répond surtout au « pourquoi le streaming processing » dans la première moitié, mais le chapitre se rattrape un peu en donnant les clés du positionnement de Flink par rapport aux autres frameworks de streaming. Bienvenu également, la vue aérienne des API et des librairies sus-jacentes qui expose les vues « batch » et « streaming » de Flink. Mais ce chapitre présente surtout les différents cas d’usages dans différents domaines.

Le second chapitre est d’avantage consacré aux aspects architecture, et met en lumière l’articulation transport / processing. Au moins le propos clarifie l’importance de Kafka dans ce contexte. Mais il manque quand même cruellement de précisions plus concrètes : le reste du texte donne quelques schémas de très haut niveau et d’autres cas d’usage. J’aurais préféré une vision dynamique des fonctionnements en mode stream et batch.

Au chapitre 3, nous allons voir ce que Flink fait. Le sujet est abordé sous l’angle des caractéristiques du framework : gestion des fenêtres glissantes, des états et des « checkpoints ». Littéralement, le chapitre répond bien à ce que fait Flink, mais sans laisser transparaître « comment » il le fait ce qui est quelque peu frustrant.

Lire la suite

Note de lecture : More Fearless Change, par Mary Lynn Manns & Linda Rising

Note : 4 ; Un pattern language organisationnel, qui nous aide à réflechir aux tactiques de changement mais s’avère bien aride à lire !

Publié 10 ans après l’original, ce nouvel opus ne se présente pas comme une seconde édition. C’est pourtant ce qu’il est à mes yeux. Ce sont plusieurs dizaines de patterns organisationnaux qui peuplent les près de 300 pages de cet ouvrage. Car il s’agit bien d’un recueil der patterns, ou plus précisément d’un « langage de patterns » car ceux-ci sont liés les uns aux autre pour former une grande toile.
Je suis un afficionado des patterns de la première heure, mais je dois aussi avouer qu’ils engendrent des livres dont la lecture est plutôt austère. C’est l’objectif qui est aussi malheureusement atteint ici au long des 3 parties de cet ouvrage.

La première partie est aussi la seule à être explicitement découpée en chapitres, 5 en l’occurrence qui couvrent 25 pages. Point de patterns ici, mais les plus notables y sont référencés au sein de cette vue générale bien construite. N’hésitons pas à dire que c’est la partie la plus agréable de l’ouvrage. Chaque chapitre de cette partie adresse un aspect spécifique de la stratégie du changement : établir une stratégie, développer une vision, chercher de l’aide, cibler les résistances etc. Les quelques pages consacrées à chaque sujet sont autant de teasers.
La seconde partie ne compte que quelques pages au sein desquelles les auteurs développent deux histoires de changement. Cela faisait peut-être bien sur le tableau blanc mais tombe à plat une fois couché sur le papier. On aurait tout aussi bien pu s’en passer.

Lire la suite

Note de lecture : Apache Kafka, par Nishant Garg

Note : 3 ; Une introduction rapide (et hélas obsolète) mais qui ne vous conduira pas bien loin.

Si vous n’avez pas le temps, mais alors vraiment pas le temps, ce très court texte pourrait bien être pour vous. En quelques 88 pages et 6 chapitres, il vous met le pied à l’étrier sur la compréhension de base de Kafka. Ca, ce sont pour les bonnes nouvelles. Du côté moins glorieux, sachez que ce court texte est vraiment très mal noté un peu partout et qu’il y a de bonnes raisons à cela. J’ai obtenu cet ebook grâce à une offre promotionnelle de lot et je serais certainement allé dans le même sens si je l’avais payé plein tarif !

De plus l’ouvrage date maintenant terriblement. En 8 ans, Kafka est passé de la version 7 à la version 2.8, ce qui est énorme, sans compter l’écosystème qui s’est formé autour. Passons maintenant (rapidement) le contenu en revue. Le premier chapitre présente Kafka très rapidement. C’est fort succinct, mais au moins les concepts de base sont posés. Plus succinct encore, le chapitre 2 évoque l’installation de Kafka, mais seulement en version développeur / local. La compilation de l’outil est évoquée, mais cela ne parait pas spécialement pertinent, la même information est disponible en ligne.

Passons au chapitre 3 et à la configuration d’un cluster. Cette fois, c’est la version 0.8 qui nous sert de référence ! L’auteur passe en revue 3 configurations de complexité croissante et nous propose de les explorer en mode « hello world ». Bien sûr, on est très loin des informations nécessaires pour la production, ou même à un véritable développement, mais cela correspond au niveau d’information que je cherchais. Au chapitre 4, on nous promet de découvrir l’architecture de Kafka. Cela reste très haut niveau, du niveau décideur, mais là encore cela correspondait à mon besoin. On y évoque les partitions, le miroring et la réplication façon Powerpoint.

Lire la suite

Note de lecture : Conduire le changement, par John Kotter

Note : 8 ; La référence de la conduite du changement, et pour de bonnes raisons !

Les 8 étapes du changement de Kotter sont un grand classique. Cet ouvrage est en quelque sorte le guide de l’utilisateur de ces 8 étapes. La traduction française m’a fait un peu peur au début. Elle s’avère quelque peu laborieuse et franchement pas excellente, mais on échappe quand même aux problèmes de contresens qui peuplaient les traductions il y a 25 ans. C’est une lecture aisée, quoique moins rapide que ce à quoi je m’attendais, les nombreux exemples bien choisis aidant à rendre la lecture agréable.

Le volume est de taille raisonnable, avec 215 pages. Le découpage en douze chapitres regroupés en 3 parties aide à bien rythmer la lecture. La première partie est introductive, comme on peut s’y attendre. Il faut compter 40 pages et 2 chapitres pour celle-ci. Le premier d’entre-eux évoque les 8 erreurs conduisant à l’échec des transformations. Ces 8 erreurs, bien illustrées font directement écho aux 8 étapes du changement. Peut-être de manière trop flagrante. La véritable introduction est le chapitre suivant qui présente réellement les 8 étapes et justifie la nécessité de les suivre dans l’ordre prescrit.

Place à la seconde partie, le plat de résistance avec 8 chapitres sur plus de 140 pages. On s’en doutera, les 8 chapitres correspondent aux 8 étapes du changement du framework. C’est donc sans surprise que le chapitre 3 s’intitule « instaurer un sentiment d’urgence ». L’ennemi du sentiment d’urgence, c’est l’autosatisfaction, son allié : les crises ! L’auteur structure ce volet autour de 9 thèmes pour renforcer le sentiment d’urgence. L’ensemble est clair, concret et directement utilisable ! Au chapitre 4, c’est la formation de la coalition qui est au menu. Elle doit combiner management et leadership, avoir le bon niveau d’autorité et surtout être alignée sur un but commun.
Le chapitre 5 sur la création de la vision et de la stratégie nous apprend peu de choses. C’est un sujet assez récurrent et convergent pour qu’il y ait ici peu de surprise ou d’originalité. Toutefois, tout comme dans le reste du texte le propos est limpide et efficace. Moins galvaudé et pourtant fort utile, le chapitre 6 est là pour nous aider à éviter de rater le « dernier mètre ». J’ai particulièrement le volet « diriger par l’exemple ».

Lire la suite