Note de lecture : Modern Defense in Depth, par Stephen Gates

Note 4 ; Plus des intentions qu’un véritable concept

La défense en profondeur, c’est une architecture cyber qui est passé de mode, au profit du « zéro trust ». Pourtant ce court ouvrage veut nous vanter les mérites d’une nouvelle génération de défense en profondeur. Cela mérite que l’on y regarde de plus près. D’un format un peu plus petit que ce que l’on a coutume de voir, l’opuscule ne compte que 45 pages pour 5 chapitres. Ce n’est donc pas une lecture qui va nous garder en haleine très longtemps.

Le point de départ de cet opuscule est une conviction intime de l’auteur : la faiblesse de l’architecture de défense en profondeur réside dans le principe de base de l’indépendance des lignes de défenses, alors qu’il s’est forgé une vision selon laquelle ces lignes doivent au contraire être intégrées. C’est ce que nous allons voir.

Le premier chapitre est une critique de l’architecture de défense en profondeur : qu’est-ce qui ne marche pas et pourquoi ? Le teste dresse un constat sévère : les lignes de défense indépendantes ne protègent pas suffisamment contre les attaques externes, car il s’agit de produits indépendants que les attaquants apprennent à connaitre, mais ils ne protègent pas non plus les attaquent visant les utilisateurs internes, car elles sont inefficaces contre le phishing, par exemple. La critique la plus importante est sans doute celle du « bruit » générés par ces lignes indépendantes, qui reposent sur un SIEM pour corréler ces différentes informations et leur donner un sens. Ce chapitre n’est pas dénué d’intérêt, car même si le propos n’entre pas en profondeur, il fait un bon travail pour dresser un paysage des faiblesses pénitentielles d’une architecture de sécurité classique.

Continuer à lire « Note de lecture : Modern Defense in Depth, par Stephen Gates »

Note de lecture : The Creative Programmer, par Wouter Groeneveld

Note : 9 ; Inspiré et inspirant ! co-book of the year 2023 !

Cet ouvrage fait partie des (très) bonnes surprises de l’année 2023 ! J’ai ouvert l’ouvrage avec plus de curiosité que d’attentes pour ce texte que j’avais classé à priori dans la catégorie « craftsmanship », l’auteur semble d’un avis différent mais je vais rester sur mes positions. L’excellent « Pragmatic Learning & Thinking » d’Andrew Hunt semble avoir été le point de départ de ce texte qui développera sa propre originalité.

Avec 200 pages sur 9 chapitres, le livre garde une taille modeste, d’autant qu’il est bien écrit et se lit avec aisance. Aisance ne signifie pas absence de richesse : avec à la fois une connaissance pratique et une formation académique, l’auteur n’hésite pas à relier son propos à des références en psychologie ou en sociologie et d’autres encore. Il structure sa réflexion sur la créativité sur 7 axes auxquels sont consacrés un chapitre chacun. Fort classiquement, le premier chapitre est une introduction à ce qui suit. On y découvre différents types de créativité et bien entendu une introduction aux 7 thèmes qui seront développés par la suite. Le quiz proposé en fin de chapitre méritera aussi le détour !

Le second chapitre est consacré à la connaissance technique. Le texte se concentre sur la manière de collecter, reprendre et gérer les connaissances sous forme de notes ou de fiches. Ce sont des rencontres tout autant que des techniques que nous propose ici l’auteur : Niklas Luhmann et Vanevar Bush et son Memex dont les idées développées dans son article « As we may think » préfigureront les idées qui donneront naissance au Web. L’acquisition des connaissances est aussi affaire de pratiques délibérées, ce que Wouter Groeneveld nous partage avec son processus de prises de notes.

Continuer à lire « Note de lecture : The Creative Programmer, par Wouter Groeneveld »

Note de lecture : When Coffee and Kale Compete 2nd edt., par Alan Klement

Note : 6 ; Une référence incontestable du « job to be done » mis dont le fil conducteur est des plus alambiqués !

Le « job to be done » est un concept à cheval entre le marketing et la démarche produit, mais il est pour moi d’avantage du côté produit. Le concept est alléchant, car il nous fait quitter le domaine de la solution et même celui de la demande du client pour nous diriger vers celui des aspirations ! La mauvaise nouvelle est que le concept même est abordé, interprété et décliné différemment selon les différents membres influents de cette petite communauté. Il faut bien s’accrocher du côté des ouvrages de référence, et celui-ci émerge très nettement. Nous allons rapidement le comprendre, même si le texte n’est pas exempt de critiques.

Avec 210 pages, cette nouvelle édition reste un ouvrage relativement succinct. Il compte 15 chapitres pour sa partie principale, mais je vais y adjoindre la première annexe qui est la reprise d’un post de l’auteur. Le premier chapitre « challenge, hope and progress » est plus qu’une introduction, il nous dévoile déjà une bonne part du sujet. C’est toutefois une introduction quand même, car il met en lumière les lacunes de l’approche centré sur les besoins utilisateur avec son cortège de biais cognitifs. Il aborde aussi un concept qui reviendra au gré des chapitres : la création destructive. Car quand un client adopte (l’auteur préfère le terme « embauche ») un produit, il en abandonne un moins bien adapté à ses aspirations.

Le chapitre attaque le cœur du sujet : qu’est-ce que le « job to be done » (JTBD) ? Deux écoles s’affrontent pour le définir, et il ne s’agit pas de subtilités. La première école définit le JTBD comme le résultat d’une activité, matérialisée par la citation désormais fameuse : « le client ne veut pas une perceuse, il veut un trou de 12 millimètres ». Pour la seconde école de pensée à laquelle appartient l’auteur, ceci est une démarche qui s’arrête à mi-chemin. Pour lui, il ne va même pas s’agir d’accrocher un tableau au mur, mais de pouvoir se relaxer dans un salon où il se sent bien ! Le concept formulé est le « self-betterness », une meilleure version de lui-même où le « meilleur » correspond aux aspirations du client. Le chapitre 3 complète le précédent en énonçant les principes clés de la démarche, tels que la notion de progrès, la notion de « système » auquel participent le client, le producteur, la solution, etc. Ces deux chapitres forment la base théorique du JTBD. Les chapitres suivants n’en seront que les déclinaisons pratiques.

Continuer à lire « Note de lecture : When Coffee and Kale Compete 2nd edt., par Alan Klement »

Note de lecture : From CIA to APT, par Edward Amoroso & Matthew Amoroso

Note : 5 ; Un tour d’horizon éclectique

Dans le temps, on aurait appelé ce type d’ouvrage un abécédaire ! Je n’aurais probablement pas abordé cet ouvrage s’il n’allait pas de pair avec la série de cours en ligne de l’auteur sur la plateforme Coursera. Finalement, le lien est assez ténu, mais sans être enthousiasmant, je ne regrette pas pour autant cette lecture.

L’ouvrage, parlons-en ! Il est de format moyen, pour 112 pages seulement. Dans cet espace quelque peu réduit, on comptera tout de même 30 chapitres, tous respectablement illustrés. L’auteur trouve même la possibilité de présenter quelques personnalités sur une page à l’occasion de « spotlights ». Ce volume est édité à compte d’auteur, il ne faudra hélas pas compter sur une qualité éditoriale à tout casser. Impossible de passer tous les chapitres en revue, nous allons nous contenter d’en relever quelques uns que j’ai trouvés marquants.

Le chapitre 3 nous brosse un rapide payse des cyberattaquants: hackers, hacktivists, cybercriminels et APT (advanced persistent threats). La description est taillée à le serpe, mais dit en 3 pages ce sur quoi tout le monde est à peu près d’accord. Le chapitre 7 aborde la défense en profondeur. C’est un pilier de la cyberdéfense, pour tant il semble difficile de trouver une littérature décente sur le sujet. Ce chapitre nous laisse hélas aussi très largement sur notre faim, le thème est à peine effleuré. A contrario, le chapitre 8 pose très efficacement les bases de ce que sont les malwares et les anti-malwares. Les premiers avaient déjà été abordés au chapitre 5, c’est donc une suite. On sort avec une meilleure compréhension du sujet, même si on prend conscience, qu’il reste beaucoup à apprendre…

Continuer à lire « Note de lecture : From CIA to APT, par Edward Amoroso & Matthew Amoroso »

Note de lecture : Working Backwards, par Colin Bryar & Bill Carr

Note : 8 ; Comprendre ce que veut dire « être un Amazonien » !

Amazon ressemble parfois à un royaume mystérieux : immense et presque tout puissant, on ne sait pas trop comment cela fonctionne à l’intérieur, bien que des échos ou des bribes d’information parviennent parfois à nos oreilles. Cet ouvrage est le seul à nous ouvrir les portes pour nous faire découvrir comment le développement de produits fonctionne chez le géant du retail, et surtout nous faire appréhender le mode de pensée et les principes sous-jacent. Ils sont un fil rouge de l’ouvrage, ce que les auteurs appellent « être un Amazonien ».

L’ouvrage est de format moyen et compte 260 pages pour 10 chapitres. Ils sont structurés en deux parties inégales. Surtout la couverture brune un peu cheap et le papier peu blanchit nous plongent par anticipation dans l’univers Amazon ! La première partie « Beeing Amazonian » compte 6 chapitres et va nous distiller les principes et pratiques de la société, adossé à nombre d’histoires qui en illustrent la mise en œuvre. Le tour d’horizon des principes, c’est justement le thème du premier chapitre, « building blocs ». Bien qu’assez court, il nous présente par le menu les 14 principes de leadership de l’entreprise ainsi que les mécanismes de fonctionnement qui seront développés par la suite. C’est un chapitre d’introduction qu’il ne faut pas rater, mais aussi le seul qui ne s’appuie pas sur des exemples. Le second chapitre développe les principes et modalités de recrutement de l’entreprise, le « bar raiser ». J’y trouve une confirmation de mes idées : quelque soient les besoins, il n’y a pas d’allègement ou de voie rapide à un processus particulièrement coûteux, pas non plus de dérogation au niveau d’exigence technique mais surtout culturel dont est garant le « bar raiser », car en toute chose Amazon inscrit sa pensée sur le long terme, ce qui inclut le mode de rémunération.

Au chapitre 3, on aborde les principes d’organisation et on y apprend au passage que le fameux « 2 pizzas teams » n’a jamais été généralisé et est désormais un concept du passé. Place au « single threaded leader » ! Pour en résumer le principe : quand une initiative est lancée, son leader a une autorité suffisante pour prendre les décisions et cette initiative est son seul boulot, il n’y a pas de « leadership à temps partiel ». Mais l’aspect qui a le plus retenu mon attention est la gestion, ou plus exactement la non-gestion des dépendances. Ainsi la première étape de chaque initiative devient le chantier d’architecture pour mettre fin à ces dépendances pour mettre fin aux interdépendances entre équipes. La communication est au menu du chapitre 4 et les auteurs nous y introduisent le « 6 pagers » : il n’y a plus de présentations Powerpoint chez Amazon, tout est remplacé par des notes rédigées que sont lues individuellement mais ne font pas l’objet de présentations. Le narratif est d’ailleurs un thème récurrent de la culture Google, nous allons le voir dès le chapitre suivant.

Continuer à lire « Note de lecture : Working Backwards, par Colin Bryar & Bill Carr »

Note de lecture : Continuous Discovery Habits, par Teresa Torres

Note : 8 ; L’activité de discovery, par la pratique

Ce qui différencie une approche produit d’une approche projet, même agile, c’est un cycle résolument tourné vers le « discovery » pour alimenter le delivery. Teresa Torres nous propose nous seulement una approche ou cette découverte utilisateur s’effectue en continu plutôt que par cycle, elle nous propose un ensemble de pratiques allant de l’exploration des opportunités à la confirmation des hypothèses sur le produit réel. Ce texte s’inscrit dans la pensée de Marty Cagan et il se propose de poursuivre un propos plutôt ancré dans les principes par des pratiques concrètes qui s’articulent entre elles.

L’ouvrage est relativement modeste avec ses 230 pages. L’auteur nous les a structurées en 3 parties pour un total de 15 chapitres. La première partie est introductive avec 2 chapitres sur une trentaine de pages et se propose de nous faire découvrir le concept de « continuous delivery ». Sur une vingtaine de pages, le premier chapitre replace efficacement les points fondamentaux. D’abord le focus sur « l’outcome » qui différencie l’approche produit d’une approche projet centrée sur l’output. Une approche qui s’inscrit dans le sens proposé par Marty Cagan, avec le trio produit et l’état d’esprit qui vient avec. Le second chapitre introduit l’élément différenciant de la démarche de Teresa Torres : l’opportunity solution tree (OST) dont il sera question sur une grande partie de l’ouvrage.

Avec 160 pages et 11 chapitres, la seconde partie représente le coeur de l’ouvrage. Elle couvre ce que l’auteure appelle des habitudes (terme qu’elle semble préférer à « pratiques ») qui couvrent tout le cycle de discovery. C’est sur la notion d’outcome qu’explore plus particulièrement Teresa Torres sur le premier chapitre de cette partie. Elle différencie entre autres 3 types d’outcomes : business, produit et traction. Le texte nous donne de bons conseil pratiques pour diriger notre recherche d’outcome, le livre commence bien.

Continuer à lire « Note de lecture : Continuous Discovery Habits, par Teresa Torres »

Note de lecture : Inspired 2nd edt, par Marty Cagan

Note : 9 ; La référence sur le product management !

Si tous les chemins mènent à Rome, toutes les références à la démarche produit remontent à Marty Cagan, et plus précisément à son ouvrage vedette : Inspired. Non seulement l’auteur a construit une démarche produit tôt dans sa carrière dont se sont inspiré de très nombreux « purs players », mais il a accumulé une solide expérience et un regard très large sur les entreprises tech. Il nous livre ici sa vision sans retenue.

Avec plus de 300 pages, le texte peut paraitre conséquent, mais en réalité il s’aborde très bien. Avec 67 chapitres, chacun de quelques pages, le rythme de lecture est assez particulier, qui me rappelle un peu Kent Back qui aime bien procéder ainsi également. Mais l’auteur a structuré son propos en 5 parties, sous-découpées en sections pour certaines d’entre-elles, pour un total de 16 sections.

La première partie, « lessons from tech companies » compte 8 chapitres pour un total d’une trentaine de pages. L’auteur nous livre ici son analyse des facteurs de succès des entreprises « orientées produit », une analyse sans concession qui fait un peu mal aux entreprises classiques. Le chapitre 7, « beyond Lean and Agile » fait un peu mal, car si l’auteur est bien pro-agile, il tacle la manière dont cette agilité est mise en œuvre dans la plupart des entreprises, et je ne saurais lui donner tort. Les entreprises produit incarnent, nous dit-il, l’essence de l’agilité mais d’une manière peu reconnaissable par l’agilité corporate. D’accord, il ne le dit pas comme cela, mais c’est l’idée. Le chapitre 8 nous introduuit le « discover to deliver » qui sera un leitmotive pour la suite, et qui là encore est un marqueur différenciant de l’agilité classique.

Continuer à lire « Note de lecture : Inspired 2nd edt, par Marty Cagan »

Note de lecture : Beyond Requirements, par Kent J. McDonald

Note : 7 ; Spécifier, avec un vrai mindset agile

De prime abord, le titre fait penser au mariage du veau et du cochon. Mais très vite, on comprends qu’il n’en est rien, bien au contraire. Car ce volume va au-delà de la compilation de pratiques d’analyse agile, nous allons voir cela.

L’ouvrage est de taille moyenne avec ses 230 pages structurées en 3 parties pour un total de 15 chapitres. La première partie « Ideas » est forte de 75 pages sur 6 chapitres. Ici, on parle surtout de culture agile, certes centrée sur l’analyse mais sans entrer en profondeur dans les pratiques. Dans le premier chapitre « guiding principles », Kent McDonald nous distille ce qu’il a condensé en 7 principes directeurs sur lesquels s’appuient ses manières de raisonner et de prendre des décisions. Par la manière dont ces principes sont pensés et exposés, nous voyons rapidement que l’auteur est un agiliste de très haut niveau. Peut-être est-ce la 15ème fois que l’on vous assène des principes fondateurs ? Ne manquez pas ceux-cis. Au second chapitre, on entre plus spécifiquement dans le domaine de l’analyse. Et ce sont les concepts structurant de l’analyse agile qui sont développés ici. La référence au BABOK (Business Analysis Body of Knowledge) est certes austère, mais les 6 concepts évoqués ici serviront de cadre au reste de l’ouvrage. Il aborde aussi 2 piliers importants de l’approche produit moderne : outcome versus output et la dualité discovery / delivery.

Signe de l’influence de l’approche produit dans son cadre de spécification agile, l’auteur rend hommage au Lean Startup au chapitre 3. L’auteur ne se contente pas de paraphraser Eric Ries : il projette les concepts de l’approche au monde de l’entreprise. Un bel exercice. La prise de décision, sujet du chapitre 4 semble être un des thèmes favoris de l’auteur. Au menu de celui-ci, nous avons tout d’abord les mécanismes de la prise de décision elle-même, bien décomposés. Kent McDonald semble apprécier Chris Matts, c’est sans doute pourquoi nous avons un coup de projecteur sur les « real options ». C’est un bon teaser à « Commitment » ! Enfin, c’est un plaisir pour moi de voir que les biais cognitifs qui entachent si grandement les processus de décision ne sont pas oubliés.

Continuer à lire « Note de lecture : Beyond Requirements, par Kent J. McDonald »

Note de lecture : Pragmatic Unit Testing, in Java with JUnit, par Andrew Hunt & David Thomas

Note : 6 ; Des conseils simples, avisés et … pragmatiques, pour bien commencer avec les tests unitaires.

Dans la veine des « starter kits » écrits par les « pragmatic programmers », voici un opuscule consacré aux tests unitaires en général et à JUnit en particulier. L’objectif est très clair : mettre le pied à l’étrier de manière pragmatique, sans s’encombrer de beaucoup de théorie. De fait le livre est court, avec 125 pages (hors annexes), mais quand même découpé en 9 chapitres, chacun étant donc court.
Le premier chapitre est une prose introductive au « pourquoi » des tests. Il s’étend largement sur les contre-arguments à leur écriture, et permet de balayer les objections les plus courantes. Toujours une bonne chose de faite. Au second chapitre, nous pratiquons l’équivalent du très classique « hello world ». C’est minimal et le chapitre est très court. Ce n’est pas le cas du chapitre 3 qui nous accoutume aux autres éléments utilisés classiquement lors de l’écriture de tests unitaires : setup, tear down, test suite et assertions en tout genre. Nous sommes armés pour écrire des tests plutôt standard mais qui répondent aux besoins courants.

A partir du chapitre 4, il est davantage question d’écrire de bons tests et une bonne couverture de test. Les auteurs proposent l’acronyme Right-BICEP. Tout d’abord il s’agit de définir ce qu’est un résultat juste, puis d’appliquer les règles du BICEP (que je ne vais pas développer ici). Toutefois le « B » pour boundary va être l’objet plus spécifiquement du chapitre 5 où il va être développé selon un autre acronyme, le CORRECT. Les conditions aux limites sont souvent source d’erreur, les auteurs font un bon travail à bien cerner l’ennemi. Le chapitre 6 est consacré aux Mock objects. Ce chapitre est juste une introduction au sujet, utilisant EasyMock, mais elle est consistante. Elle marque aussi la temporalité du livre, car l’exemple choisi est le mock d’une servlet !

Le chapitre 7 va aborder les propriétés d’un bon test et c’est l’occasion d’un nouvel acronyme : A-TRIP. Car si un test doit être Automatique, il doit aussi complet (Thorough) en testant ce qui peut casser, Répétable en remettant le système en conditions initiales en fin d’exécution, Indépendant en ne supposant pas de séquence d’exécution et enfin Professionnel ! Cette dernière propriété est énoncée de manière bien curieuse. Les auteurs veulent simplement dire que le code du test doit respecter les mêmes qualités de conception et d’implémentation que le code de production. Il n’y a guère de code au chapitre 8. Celui-ci est consacré à l’organisation du code de test et au cycle de développement. Rien que de très classique ici, puisque l’on organise le code façon Maven et que l’on préconise le test en continu sans toutefois aborder le TDD. Le livre se referme sur un chapitre 9 consacré à la conception, plus précisément aux implications du test unitaire sur la conception, ce que les auteurs appellent le « test-driven design ».

Continuer à lire « Note de lecture : Pragmatic Unit Testing, in Java with JUnit, par Andrew Hunt & David Thomas »

Note de lecture : The Incremental Commitment Spiral Model, par Barry Boehm, Jo Ann Lane, Supannika Koolmanojwong & Richard Turner

Note 3 : Se retrouver à lire un livre que l’on n’a pas envie de lire…

Et ainsi donc, le développement itératif et incrémental est désormais acquis au développement agile ! Tout le développement itératif et incrémental ? Non ! Un village résiste encore et toujours : il s’appelle « spirale de Boehm ». Cet ouvrage est peut-être son chant du cygne, l’avenir nous le dira.

L’ouvrage que nous allons explorer nous présente l’ultime version du modèle en spirale. Il compte environ 250 pages découpés en 16 chapitres, eux-mêmes structurées en 4 parties. Si ces caractéristiques laissent présager une lecture pas trop longue et bien rythmée, c’est sans compter sur l’austérité de la prose ! Il est temps de s’y attaquer. L’introduction permet aux auteurs de positionner le « incremental commitment spiral model » que nous nommerons maintenant ICSM sur le même créneau des méthodes adaptatives que les approches agiles qui sont d’ailleurs citées. Elle ne cherche pas à s’y opposer, mais à se positionner différemment en s’appuyant sur 4 principes sur lesquels nous reviendront. Le but est de se tailler une place dans les environnements plus classiques et « legacy » qui sont quand même prêts à accueillir un cycle itératif. En prime, ce chapitre 0 nous propose une belle vue actualisée du cycle en spirale : l’ouvrage aura ainsi au moins une valeur archéologique !

La première partie compte 4 chapitres sur 80 pages. Ils vont détailler les 4 principes de l’ICSM que nous avons mentionné. Le premier chapitre aborde la question de la valeur pour les parties prenantes. Il s’appuie sur les leçons tirées de 2 histoires, notamment de la conception d’un équipement hospitalier. Ce principe est adossé au « success critical stakeholder » ou SCS. Ce principe est un mélange de modernité (la mesure du succès est le succès du SCS) et de choses plus anciennes avec une approche en phases qui rappelle étrangement Unified Process ! On n’échappe d’ailleurs pas à une matrice critères de succès / parties prenantes ! Au second chapitre, on aborde la notion d’engagement incrémental : c’est le cône d’incertitude qui est mis à l’honneur ici. Cette fois encore le propos est illustré de deux histoires, un succès et un échec, le succès étant le projet TRW débuté en 1978 qui fut à l’origine du cycle en spirale ! Le chapitre fait apparaitre l’approche comme très technocratique et la prose est plutôt lourde. Le volet intéressant de ce chapitre est la comparaison de modèles incrémentaux allant du « prespecified » au « evolutionary concurrent ».

Le 3ème principe que nous découvrons au chapitre 3 est le « concurrent multidiscipline engineering ». Nous avons aussi droit à deux histoires, celle illustrant le succès étant le développement d’un drone. Le propos est alambiqué et assez lourd. Il s’éclaire vers la fin du chapitre quand l’auteur nous déclare que l’utilisateur peut rarement spécifier clairement ce qu’il veut au début du projet et qu’il nous faut donc mener de front l’affinage des besoins, la conception et le développement. Il s’agit bien du fonctionnement multidisciplinaire que nous connaissons en agile. Il est simplement exprimé de manière obscure ici. Le dernier principe est celui des décisions basées sur les risques, le sujet du chapitre 4. Le propos se concentre sur la valeur apportée par les études de faisabilité. L’auteur met aussi en perspective l’approche de Walker Royce intégrée à Unified Process comme étant un progrès par rapport au cycle en spiral initial ! Globalement la coloration « pré-agile » y est assez évidente.

Continuer à lire « Note de lecture : The Incremental Commitment Spiral Model, par Barry Boehm, Jo Ann Lane, Supannika Koolmanojwong & Richard Turner »