Note de lecture : Patterns for Effective Use Cases, par Steve Adolph & Paul Bramble, with Alistair Cockburn & Andy Pols

Note: 7 ; Un (excellent) complément au « Writting Effective Use Cases » d’Alistair Cockburn.

Les cas d’utilisation sont un peu passés de mode depuis la grande époque UML, jusqu’au début des années 2000. C’est bien de cette époque que date cet ouvrage dont on peut pourtant dire qu’il serait injuste de le considérer comme passé de mode ! Il s’inscrit dans la lignée du « writting effective Use Cases » d’Alistair Cockburn qui promeut une écriture intentionnelle, courte et efficace par rapport aux Cas d’Utilisation « interactionnels » qui noircissent beaucoup de pages et ont donné une image si déplorable de cette pratique.

L’ouvrage a adopté le forme « Pattern Language ». Elle n’est pas toujours appropriée pour un livre d’environ 200 pages, mais on doit bien constater qu’ici cela ne pose guère de problème. Ceux-ci sont partitionnés sur 7 chapitres (auxquels il faut ajouter le chapitre introductif). Chaque pattern occupant environ 6 à 8 pages, donc assez pour être développé et pas trop pour ne pas devenir indigeste. Le premier chapitre investigue ce qu’est réellement un cas d’utilisation de qualité. C’est du moins la promesse faite par ce chapitre dont le titre est un peu trompeur. Si les auteurs nous montrent effectivement ce qu’est un bon Cas d’utilisation par rapport aux mauvais cas d’utilisation (toute ressemblance avec les bons et les mauvais chasseurs…), le chapitre sert surtout de table de matière et au langage de patterns et d’introduction à la forme pattern. Cela dit, il n’y a rien de mal à cela et c’est même nécessaire.

Le chapitre 2 nous prend un peu par surprise : « The Team » évoque les aspects collaboration et coopération gravitant autour de l’écriture des cas d’utilisation ! Ainsi, ParticipatingAudience met l’accent sur l’implication des utilisateurs et des parties prenantes, tandis que BalancedTeam détaille la pertinence de former des groupes d’écriture diversifiant les points de vue. En réalité, les éléments évoqués sont un peu des nouvelles d’hier, mais les expliciter ne peut pas faire de mal. Le chapitre 3 « The Process » s’inscrit dans la continuité. Le chapitre est assez riche et ne commet pas l’erreur de proposer un workflow de rédaction. BreathBeforeDepth est sans doute l’un des patterns cruciaux de ce chapitre. Les auteurs y référencent de très nombreux autres patterns, sans doute trop. Mais le propos est crucial pour la réussite d’une démarche « cas d’utilisation ». Je suis plus surpris d’y trouver TwoTierReview qui aurait d’avantage eu sa place dans le chapitre précédent, à mon avis. Le QuittingTime est une bonne idée : il rappelle que « pas trop n’en faut » et qu’ajouter du détail peut être contre-productif. C’est une mise en garde dont j’ai eu à faire bon usage, car je dois avouer avoir été coupable de ce travers !

Lire la suite
Publicité

Note de lecture : Gestion de Configuration : Maîtrisez vos changements logiciels, par Linda Djezzar

Note: 6 ; Une très bonne introduction aux processus de gestion de configuration, même si elle me laisse un peu sur ma faim.

Cet ouvrage fort digeste est destiné à faire comprendre ce qu’est la gestion de configuration, ses enjeux, sa mise en œuvre et ses apports. En ce sens, le livre est avant tout destiné aux managers. Comme nous allons le voir, il fait quand même l’effort de s’ancrer dans la réalité des outils de gestion de configuration, on pourrait presque dire qu’il s’agit d’un ouvrage hybride !

Justement, jetons un coup d’œil au texte. Tout d’abord, il est court avec ses 140 pages, ce qui renforce son ancrage vers les managers (quoique pour eux, même cela commence à être long…). Le texte est rythmé en 9 chapitres, ce qui constitue une taille moyenne assez réduite pour chaque chapitre. J’aime bien. Pour structurer encore plus, malgré la taille réduite du texte, les chapitres sont regroupés en 3 parties. La première d’entre-elle, « l’état de l’art », est constituée de 3 chapitres sur une cinquantaine de pages. Et l’on va commencer à explorer les concepts de base au premier d’entre-eux, sur une douzaine de pages. Après un trop court éclairage historique, on rentre directement dans un ensemble de définitions, certes rébarbatives, mais que l’auteure arrive à rendre digestes. Finalement, c’est la fin du chapitre qui serait la plus intéressante, mais les fonctions de la gestion de configuration sont traitées bien succinctement…

Même s’il ne compte qu’une quinzaine de pages, le second chapitre reprends là où le premier nous avait laissé en plan : les fonctions de la gestion de configuration. Bien sûr, on ne peut pas dire que le panel d’outils évoqués respire la modernité (CVS, PVCS, Clear Case…), ni que l’inscription dans le cycle de travail soit d’inspiration agile, mais il ne faut pas oublier que le texte date du début des années 2000 et au moins l’illustration est bien ancrée dans la réalité du cycle de développement. Le 3ème chapitre va donner à manger aux managers et aux cellules qualité avec l’évocation des modèles de maturité. Ce n’est pas le meilleur moment du livre.

Lire la suite

Note de lecture : Configuration Management Principles and Practices, par Anne Mette Jonassen Hass

Note: 4; Trop volumineux et pas du tout agile, mais avec certaines bonnes idées.

De prime abord, l’ouvrage attire l’attention : la gestion de configuration est une pièce essentielle de nos pratiques d’ingénierie, et en voire la mouture agile manquait cruellement jusqu’à présent. Mais comme nous allons le voir, il est plutôt curieux que cet ouvrage ait été édité dans la « Agile Software Development series », car il est résolument orienté processus.

Les 350 pages de ce volume sont structurées en 5 parties pour un total de 26 chapitres. C’est assurément une belle bête, toutefois bien rythmé. La première partie compte 5 chapitres pour environ 75 pages pour répondre à cette question : qu’est-ce que la gestion de configuration ? C’est par des définitions et un métamodèle que le premier chapitre tente de répondre à cette question. On y passe en revue des concepts tels qu’identification, stockage, change control… cela semble complet mais c’est surtout complexe !

On passe la seconde avec les modèles de maturité : CMMi d’abord puis SPICE ensuite, plus précisément dédié à la gestion de configuration mais sans un poil d’agilité. Un chapitre fort ennuyeux. Dans la même veine, le chapitre 3 nous présente les standards internationaux ! C’est plus ennuyeux encore, mais on sera sans doute content d’avoir un endroit où les retrouver… Le chapitre 4 est très court, il s’agit juste d’une évocation des organismes gravitant autour de ce sujet. Enfin cette première partie se referme sur une évocation des tâches liées à la gestion de configuration. Le propos n’est pas inoubliable.

Lire la suite

Note de lecture : Rapid Development, par Steve McConnell

Note : 9 ; Passionnant, complet et éclairé ! Book of the year 2002 !

Voici un livre à coté duquel il ne faut pas passer. Ne vous laissez pas intimider par le titre, qui peut vous faire croire qu’il s’agit d’une apologie du RAD: il n’en est rien, il s’agit plutôt du développement efficace ».
Avec pas moins de 600 pages constitués de 43 chapitres regroupés en 3 parties, voilà bien un ouvrage impressionnant. La première d’entre-elle couvre une centaine de pages avec 5 chapitres. Le très court chapitre introductif évoque les « pratiques efficaces » évoquées dans l’ouvrage et comment elles se structurent. C’est au second chapitre que l’on en apprends plus avec les 4 piliers du développement rapide associé à 4 dimensions sur lesquelles on peut agir.

Le 3ème chapitre aborde les erreurs classiques des projets listés selon les 4 dimensions (personnes, processus, produit et technologie) avec chaque fois un petit paragraphe descriptif. C’est synthétique et efficace. Le chapitre suivant qui s’attaque aux fondamentaux est plutôt touffu, car il aborde les différents volets tels que gestion de projet, pratiques d’ingénierie et assurance qualité (où bizarrement, on parle assez peu de tests. C’est un peu old school, mais il faut aussi considérer l’âge vénérable de l’ouvrage… La gestion des risques au chapitre 5 est aussi un peu « à l’ancienne », mais dans la catégorie le texte fait remarquablement bien le travail, avec une nomenclature et une catégorisation des risques ainsi qu’une démarche claire et guidée.

La seconde partie, qui reprend le titre de l’ouvrage compte pour sa part 10 chapitres pour un total de 280 pages. Le chapitre 6 qui l’ouvre attaque les problématiques liées au développement rapide. On y trouve pêle-mêle des préoccupations telles que la planification des dates de réalisation, les attentes irréalistes ou la perception de lenteur. Chaque sujet est traité avec finesse et pertinence. Le chapitre 7 nous offre une belle perspective historique sur les cycles de développement, allant du cycle en cascade au modèle en spirale en passant au « code and fixe » (le mode bordel). Il ne s’arrêta pas là car il évoque aussi le stagged delivery et le prototypage. Bref, une belle représentation de différents modèles où est juste absent le mode agile encore très embryonnaire à cette époque. Même si le corpus de connaissance sur les estimations n’est pas directement transposable au monde agile (il s’appuie beaucoup sur le point de fonction), même si le cône d’incertitude est un sujet de discorde avec Laurent Bossavit, ce chapitre 8 rentre remarquablement en profondeur dans le sujet et sera à lui seul une lecture recommandée.

Lire la suite

Note de lecture : Waltzing with Bears, par Tom DeMarco & Timothy Lister

Note : 6 ; La continuité de Peopleware, mais décevant quand même

Ce nouvel opus du binôme DeMarco – Lister est dédié à la gestion du risque, la « gestion de projet pour les adultes » comme le disent si bien les auteurs. L’originalité de ce court opuscule est l’approche « probabilistique » du risque, au contraire de la plupart des approches qui voient la gestion des risques comme un phénomène binaire.

Malgré la petite taille de cet opuscule qui ne compte que 175 pages, les auteurs sont parvenus à découper celui-ci en 5 parties pour un total de 23 chapitres ! Il faut donc s’attendre à ce que ces derniers soient plutôt courts. Le propos est par ailleurs assez dense, on le verra. La première partie tente de répondre au « pourquoi » de la gestion des risques, sur un peu moins de 30 pages réparties sur 4 chapitres. Elle s’ouvre sur un chapitre abordant l’attitude des projets par rapport aux risques, dont les auteurs nous assènent qu’ils doivent être vus comme des opportunités. Cela se résume bien par la citation d’ouverture : si un projet n’a aucun risque, ne le faite pas ! Au second chapitre, on découvre quelles sont les activités de la gestion de risque. Cela nous amène à comprendre que, ainsi que les auteurs l’énonce dans le titre du chapitre, que la gestion de risque, c’est en définitive la gestion de projet pour les adultes.

Le 3ème chapitre est un interlude, où l’absence de gestion de risque est illustrée via la gestion des bagages du nouvel aéroport de Denver. Un propos précis, agréable à lire et mettant en évidence les lacunes de gestion des risques. C’est un plaidoyer pour la gestion des risques qui enfin conclut cette première partie. Il liste en une dizaine de points les avantages à tirer d’une gestion des risques sérieuse.

Lire la suite

Note de lecture : Joel on Software, par Joel Spolsky

Note : 8 ; Inclassable, instructif et passionnant.

Aussi surprenant que cela puisse paraitre, ce livre est simplement la compilation des « posts » de Joel Spolsky sur son blog « Joel on Software ». Les textes n’en ont pas été retouchés, ni rallongés pas plus qu’ils n’ont été agrémentés. Ils ont simplement été mis en page, rassemblés en un livre avec table des matières, index, couverture, relire et tout et tout.

Donc ce que vous pouvez acheter sous forme de livre, vous pouvez le lire gratuitement sur le net ! Le livre, justement, couvre 45 posts regroupés en 4 parties (la 5ème est consacrée aux annexes). Les posts sont ainsi regroupés de manière thématique et la taille de ces parties est en conséquence inégale. La première partie va aussi s’avérer la plus longue. Elle regroupe 19 posts et cible les pratiques de développement (au sens large). 3 sujets ont attisé ma curiosité ici. La série de 4 posts sur les spécifications, d’abord. Elles contiennent les germes de la définition du PO mais révèlent aussi un point de vue pour moi dépasser : écrire pour limiter la communication entre les intervenants, et gagner en efficacité ! Le second sujet a trait au craftsmanship. Il est la prémices du mouvement du même nom, même si l’auteur ignore encore (ou volontairement ?) la culture agile naissante. Le troisième sujet est marginal et évoque le « biculturalisme » chez Microsoft. Un sujet qui explique bien des choses sur la société.

La seconde partie est consacrée à la gestion des développeurs et est riche de 9 posts. Le plus célèbre, et très souvent référencé encore aujourd’hui est « The Law of Leaky Abstraction ». Cette loi stipule qu’une abstraction de haut niveau, destinée à masquer une réalité de plus bas niveau, montrera des failles ou des faiblesses dans certaines conditions. Le corolaire de cette loi est qu’on ne peut se contenter de connaitre cette abstraction de haut niveau, mais qu’il est nécessaire de connaitre voir de maitriser le niveau sous-jacent, car il expliquera certains comportements de cette « abstraction qui fuit ». Je conseille aussi deux posts consacrés au recrutement et à la rémunération. Vous n’êtes pas obligés d’être d’accord avec l’auteur, mais au moins donnent-ils à réfléchir.

Lire la suite

Note de lecture : Applying RCS and SCCS, par Don Boliger & Tan Bronson

Note : 8 ; Une excellente surprise, qui va plus loin que la mise en œuvre de RCS en présentant les finalités de la gestion du changement.

Pourquoi parler de SCCS et de RCS quand on utilise Clear Case ? au mi-temps des années 90, c’est le genre de questions que l’on pouvait se poser. Cet excellent ouvrage ne se limite pas à la comparaison de ces 2 utilitaires (il donne la préférence à RCS, l’ancêtre de CVS). Nous allons le voir.
L’ouvrage est du genre mastoc avec ses 23 chapitres sur 440 pages hors annexes. Comptez 50 pages de plus pour ces dernières ! Le premier chapitre est un simple tour de chauffe destiné à présenter les concepts de base de la gestion des sources.

Les chapitres 2 à 4 viennent en triplet, et ce sera vrai pour la suite de l’ouvrage : d’abord les principes généraux, puis la déclinaison RCS et enfin celle de SCCS. On commence ici avec les concepts de base : la copie de travail d’un fichier, la gestion du verrouillage… Bref, tout ce qui permet de faire une modification. Le chapitre RCS marche exactement dans les traces du chapitre 2 en présentant la syntaxe de cet outil pour lancer les commandes correspondantes. Il en va presque de même pour SCCS dont la philosophie est légèrement différente. Mais un tableau récapitule lesdites commandes pour les deux outils à la fin de chaque chapitre. Pratique.

Le second triplet nous fait faire un grand bond en avant, car on y aborde les concepts tels que branches, numéros de révision et snapshots. Les auteurs adoptent un angle « cas d’utilisation », plus pragmatique mais pas toujours facile à suivre. Pour la déclinaison RCS, le texte s’appuie beaucoup sur les fonctionnalités de branching (et donc de merge) de l’outil, tandis que le snapshot n’est guère évoqué. Côté SCCS, les choses paraissent même plus pauvres, mais on parvient à faire le lien avec le chapitre des généralités.

Lire la suite

Note de lecture : Effective methods for Software testing 2nd edition, par William E. Perry

Note : 6 ; Une approche des tests très développée et d’une vision très large, mais présentée en cycle « V » classique…

Voilà le seul ouvrage traitant de tests « à l’ancienne » de ma bibliothèque. Cela rend ce volume d’autant plus important qu’il éclaire un pan de la culture test qu’il est nécessaire de comprendre. Dans le monde agile, les tests sont essentiels, et s’ils sont en majeure partie abordés différemment, comprendre cet écosystème reste un élément majeur pour aborder le changement.

Le livre est volumineux, certes, avec 800 pages mais ce n’est pas le plus volumineux publié dans le domaine. Au moins est-il bien rythmé avec 26 chapitres regroupés en 5 parties. A première d’entre-elles ne couvre qu’un seul chapitre sur une trentaine de pages. Son focus est l’évaluation des compétences et capacités de test. On y distingue l’évaluation du processus de test et l’évaluation des testeurs, le tout s’appuyant sur des corpus de connaissance entretenus par des organismes. Bref, on nage en plein dans les grilles d’audit. Cela ne fait guère envie mais au moins, on sait ce qui existe en la matière.

Avec 4 chapitres sur plus de 120 pages, la seconde partie est plus conséquente. Elle évoque la mise en place d’un environnement de test. Nous allons voir en quoi cela consiste. Le chapitre 2 adresse la stratégie de test, mais l’approche proposée, axée sur les phases de développement et les facteurs de risques ne se projette pas sur un cycle de développement agile. Dans la continuité, le chapitre 3 nous propose de construire une méthodologie de test, mais clairement axée sur un modèle en cascade, qui se conclut par un plan de test dont le template est passé en revue « in extenso ». Là non plus, rien de directement exploitable, mais il est riche d’enseignement de voir un véritable plan de test qui est souvent évoqué de manière bien abstraite.

Lire la suite

Note de lecture : Des solutions Objet, par Grady Booch

Note : 8 ; Toute la perspicacité et l’expérience de Grady Booch dans cet incontournable ouvrage. Malheureusement, la traduction française et la qualité éditoriale ne sont pas à la hauteur.

Grady Booch est ce que nous pourrions appeler un récidiviste. Encore une fois il nous gratifie d’un excellent ouvrage. Aujourd’hui, il s’agit de mettre en lumière les meilleures pratiques sur la gestion de projets objets, itératifs et incrémentaux. Trois éléments principaux servent de charpente à l’ouvrage : Les histoires vécues (par Grady Booch), les conseils et les trucs et astuces.

Le livre lui-même est composé de 7 chapitres totalisant 290 pages pour sa partie principale. Le premier chapitre « premier principes » se focalise sur la nature incrémentale et itérative des projets objet, tout en mettant l’accent sur le fait que la structuration objet est facilitante mais ne suffit pas à garantir le succès d’un projet. L’auteur met clairement l’accent sur la nature émergente du projet et de son architecture, ce que sous-tend le caractère itératif, une architecture qui ne s’arrête d’ailleurs pas à la décomposition en classes. C’est un très bon chapitre qui met le doigt là où il faut.

Le second chapitre « produit et processus » est moins passionnant et date bien le livre d’une époque « anté-agile ». La première partie du chapitre pose des concepts et conseils de structuration objet qui forment le socle de la « méthode Booch » que l’on retrouvera plus tard en partie dans UML », tandis que la seconde partie est d’avantage focalisée sur la méthode. On y voit les prémices d’Unified Process, même si en l’état c’est plus léger. Mais il reste indiscutablement un fossé avec l’agilité.

Lire la suite

Note de lecture : Managing Risk, par Elaine M. Hall

Note : 5 ; Une appréhension remarquable du sujet, mais exposée de façon par trop abstraite.

Les ouvrages publiés sous le sceau du SEI ont la réputation d’être pointus et hermétiques. Celui-ci ne fait pas exception. L’auteur est une consultante reconnue qui a entre autres œuvré sur des contrats militaires. L’humour et la poésie n’ont guère leur place et, comme nous allons le voir, l’approche est très structurée. De quoi donner froid dans le dos aux tenants de l’agilité à première vue, mais cela peut être différent en y regardant de plus près.
L’ouvrage n’est pas anecdotique avec ses 360 pages hors annexes. Il ne compte pas moins de 5 parties pour un total de 23 chapitres. Au moins cela rythme-t-il la lecture ! Dans la première partie, nous allons partir à la découverte de la gestion des risques, le tarif est de 65 pages sur 3 chapitres. Le premier chapitre est aussi le plus conséquent de cette partie, et il est même assez dense. Il présente nombre de concepts insoupçonnés de la gestion de risque. Les plus importants (que l’on retrouvera plus tard) sont le risque à grande échelle et le risque à petite échelle.

Au chapitre 2, il est question de la formule du succès selon l’auteur, le P2I2 : People, Processus, Infrastructure et Implémentation ! On y trouve quelques graines d’agilité, avec la volonté d’impliquer tout le monde et de procéder par petites étapes, par exemple. Cette première partie se conclut par le « risk management map », pour progresser depuis le traitement du problème (mode réactif) à une vision d’opportunités. La déclinaison de cette progression sur les 4 thèmes vus au chapitre précédent reste quand même à ce stade assez abstraite.

La 2nd partie (comme les 3 suivantes) aborde l’un des axes du P2I2, à savoir ici : le processus. Le thème est couvert par 5 chapitres pour un total de 85 pages. Le chapitre 4 qui débute cette partie va s’attaquer à l’identification des risques. Le chapitre est vraiment très « processus », avec des checklists, un template d’identification de risque, des tâches et des étapes. Mais la maitrise du sujet par l’auteure est indéniable, il n’y a qu’à regarder la taxonomie des risques qu’elle nous propose. Au chapitre 5 on passe à l’analyse. Je l’ai trouvé plus intéressant : il se divise en une partie consacrée aux méthodes d’analyses et une seconde dédiée aux techniques d’évaluation. De l’analyse en kit, en quelque sorte.

Lire la suite