Note de lecture : Réussir votre parcours professionnel en temps de crise, par Willet Weeks

Note : 4 ; Une vision assez vintage des changements d’orientation des « C levels ».

Il faut replacer ce texte dans son époque, à savoir la crise de la première guerre du golfe et la récession des 3 années qui suivirent. Le monde a bien changé depuis et c’est sans doute ce décalage qui rend la lecture savoureuse, car le texte était clairement pertinent à l’époque. En fait, il l’est toujours à maints égards.

C’est un texte assez court, il compte moins de 150 pages. Il est découpé en 2 parties pour un total de 7 chapitres. La première partie « êtes-vous prêt à affronter le changement ? » regroupe 3 d’entre eux pour un total d’environ 60 pages. Il commence par un chapitre pour nous aider à déterminer si nous sommes d’un naturel casanier ou aventurier. Le propos est clair et peut aider à des prises de consciences. Toutefois je trouve les traits un peu violemment marqués. L’auteur nous propose 2 questionnaires pour nous aider. Très bonne idée.

C’est également sur un questionnaire que débute le second chapitre « le poids des habitudes ». J’y retrouve certains éléments de l’excellent livre de Charles Duhigg, à savoir que les habitudes nous aident à dédier notre attention à des choses plus importantes. Mais on peut très rapidement devenir prisonniers de nos habitudes ! Le message est clair : il est indispensable de se débarrasser de nos fixations passées. Cette première partie se conclut sur un chapitre pour nous aider à identifier nos besoins et nos atouts. J’y retrouve les éléments de la motivation intrinsèque chers à Daniel Pink. Et surtout l’auteur nous exhorte à ne pas confondre souhaits et besoins. Les atouts sont plus légèrement traités. Mais surtout l’auteur nous propose un processus à base de matrices pour étudier l’adéquation d’un poste avec nos besoins/atouts. Un peu lourd mais intéressant.

Lire la suite

Note de lecture : Le système X Window, par Oliver Jones

Note : 7 ; X Window (enfin) abordable !

Pas facile de trouver un livre abordable sur la programmation X Window. Il faut dire que le sujet est plutôt un gros morceau. Je ne peux me targuer d’être un spécialiste du sujet, et ce livre m’a paru de bonne facture, du moins pour une introduction sur le sujet.

L’ouvrage accuse quand même près de 500 pages réparties sur 12 chapitres, hors annexes. Avec 70 pages, elles ne constituent pas une partie négligeable, mais leur intérêt est assez varié : par exemple le listing des polices de caractères est plutôt fastidieux et d’un intérêt limité. Le premier chapitre introduit X Window, d’un point de vue principe de fonctionnement, d’un point de vue architecture et d’un point de vue structuration des toolkits. X Window est un système complexe et le positionnement des toolkits est particulièrement important à comprendre. Un chapitre bien écrit et posant de bonnes bases. Le chapitre 2 poursuit par une « introduction opérationnelle » via le célèbre « hello world » version X Window, donc nécessairement un peu compliqué, mais bien expliqué. Mais pourquoi diable avoir traduit en français le programme, y compris les noms de variables ?

Le chapitre 3 aborde les concepts de X Window. Avec une quarantaine de pages, c’est l’un des plus conséquents de l’ouvrage, mais ce n’est pas non plus le plus digeste. Malgré quelques extraits de code, le propos reste très conceptuel et l’auteur nous laisse parfois le soin de faire le lien entre les différents concepts. Le chapitre est toutefois incontournable pour bien aborder la suite. Plus imposant encore avec 80 pages, le chapitre 4 consacré aux fenêtres explore en profondeur ce concept central de X Window. L’auteur balaie bien dans les coins, depuis la structure jusqu’à la gestion des évènements en passant par les états et la description exhaustive des différentes structures manipulées. C’est quelque peu fastidieux mais plus concret que le chapitre précédent. Ce sont ensuite plus d’une centaine de pages consacrées à l’affichage de graphiques dans ces fenêtres au chapitre 6. Le propos est très complet, depuis la gestion des canaux, jusqu’à l’affichage de texte, en passant par l’affichage de bitmaps, de figures et l’usage de copier-coller et autres joyeusetés. L’approche est agréable, voir ludiques avec chaque fois des extraits de code pour illustrer chaque concept.

Lire la suite

Note de lecture : Comprendre DCE, par Ward Rosenberg, David Kenney & Gerry Fischer

Note : 7 ; Un exposé limpide des concepts de DCE. Au-delà de cet environnement, il permet de comprendre les concepts inhérents aux systèmes distribués.

L’environnement DCE n’a pas été un franc succès dans le monde UNIX. Néanmoins, c’est de cette norme que s’est inspiré Microsoft pour Windows NT. DCE, c’est « le réseau est l’ordinateur » à l’heure pré-Web. Et l’ouvrage présente l’ensemble des services pensés pour en faire une réalité. Ne nous laissons pas abuser par l’apparence préhistorique de la chose : ces services sont bien pensés, repris parfois moins bien à l’heure du Web, le propos du livre reste intéressant. Voyons cela.

Au total, l’ouvrage compte 235 pages hors annexes, structurées en 14 chapitres. Ces dernières occupent 35 pages et ne sont guère passionnantes, à l’exception des questions / réponses. Le premier chapitre « le réseau devient l’ordinateur » donne une vue haut niveau de l’architecture et des motivations de DCE. Il est peu technique et constitue une bonne introduction au sujet. Le chapitre 2 entre directement dans le vif du sujet en abordant l’élément central de DCE, ce qui nous conduit rapidement à parler de service de nommage, d’annuaire, de sécurité, etc.
Le RPC est en quelque sorte la brique de base pour ce qui est de l’interaction entre ordinateurs pour DCE. C’est le sujet du chapitre 3. Ce chapitre décompose toutes les étapes, depuis la compilation avec l’IDL jusqu’au protocole d’appel en passant par la recherche du service dans l’annuaire distant. Une solide présentation du sujet. La présentation des threads DCE au chapitre 4 est un peu plus décevante et ne rentre pas réellement dans le cœur du sujet.

Le Security Service est un sujet sérieux et même complexe quand il s’agit de sécuriser les appels entre cellules. Et c’est bien de cela qu’il s’agit au chapitre 5. Le propos est clair et bien illustré, mais laisse quand même un léger goût d’inachevé en fin de chapitre. Le Directory service, avec d’abord le CDS puis le GDA, est aussi un sujet d’ampleur. On ne lui reprochera pas d’être traité légèrement au chapitre 6. C’est l’un des aspects qui a le plus vieilli avec l’arrivée du Web. Et si le texte est bien écrit, il n’est pas non plus palpitant à lire.

Lire la suite

Note de lecture : Au cœur de Corba avec Java, par Jérôme Daniel

Note : 7 ; Corba clairement expliqué

Dans les années 90, Corba régnait en maître sur les applications distribuées ou peu s’en faut. Celui-ci, paru vers la fin de l’ère Corba, a pour but de nous initier complètement à Corba en s’appuyant sur une implémentation Java. Mais c’est avant tout un livre sur Corba. L’auteur, Jérôme Daniel est l’architecte de l’ORB JavaORB (il est également celui de OpenORB, son successeur). Il est donc logique que les exemples s’appuient sur ce broker.

L’ouvrage est assez conséquent, puisqu’il compte 380 hors annexes, structurées en 4 parties pour un total de 20 chapitres. La première partie se focalise sur les mécanismes de base, mais la facture est quand même de 6 chapitres pour 115 pages ! Le premier chapitre traite des environnements répartis et plus particulièrement de l’invocation à distance (donc de RPC) et tout ce qui va avec : fiabilité et sécurité. Le second chapitre, c’est un peu le « hello world » avec Corba, en y incluant de l’IDL, l’implémentation client et serveur jusqu’à l’exécution. C’est très bien fait. L’IDL, justement, va être utilisé opérationnellement au chapitre 2 durant lequel nous allons développer un véritable serveur Corba. Même si cela reste simple, on y est très bien guidé. Le 3ème chapitre est un peu en décalage des 2 premiers, car il prend des allures de manuel de référence IDL, bien qu’étant moins sec que ce qu’il est convenu de croiser en la matière.

En abordant le chapitre 4, on prend bien conscience que l’IDL est au cœur de Corba, car c’est encore de cela qu’il est question ici, sur les aspects avancés, en continuité directe du chapitre 3. Le chapitre 5 continue dans la même voie, mais en abordant des sujets qui font la jonction avec les ORB : identifiants, contextes d’opération, etc. Alors que ce chapitre devrait redevenir concret à l’image des deux premiers, cela reste hélas pas mal abstrait ! Cette partie se referme sur un chapitre 6 évoquant les références, contextes et autres URL. Il s’y trouve pas mal de code, ce qui mitige un peu le côté aride du propos.

Lire la suite

Note de lecture : L’art de la guerre, par Sun Tzu

Note : 7 ; Un classique intemporel, mais aussi une source d’inspiration pour la stratégie des entreprises !

Livre mythique par un auteur … Eh bien, dont on ne sait même pas s’il a vraiment existé ! Il existe de nombreuses éditions de ce livre et tout autant de traductions. Celle-ci semble n’être pas la plus mauvaise.

L’introduction, par exemple, nous redonne le contexte social et militaire : là où Sun Tzu promeut une guerre sans bataille, la réalité des guerres médiévales sont des batailles faisant des centaines de milliers de morts ! Comme tout ouvrage de ce type, l’introduction est un peu longue, une cinquantaine de pages avant d’arriver aux 13 chapitres du texte principal. Ce texte principal ne couvre que 40 pages ! Les « commentaires suivis » s’étendent eux sur 200 pages, également structurés suivant les mêmes 13 chapitres. Le premier d’entre eux ne couvre que 3 pages et introduit les 5 facteurs de la victoire et les conditions pour l’emporter (le mensonge).

Au chapitre 2 « les opérations » nous apprend peu de choses transposables à l’époque moderne, si ce n’est l’importance de la maîtrise du facteur temps. Dans « combattre l’ennemi dans ses plans », Sun Tzu nous énonce les 5 cas où l’on peut prévoir la victoire, ils sont pour plus de la moitié encore largement d’actualité. L’évitement de l’engagement est par ailleurs un thème récurrent de Sun Tzu. C’est un thème qui revient d’ailleurs dans le chapitre suivant « les formations militaires ».

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