Note de lecture : Use Case Modeling, par Kurt Bittner & Ian Spence

Note 6 ; Cas d’utilisation & Unified Process !

Cela n’apparaît pas dans le titre, mais voici le livre officiel sur l’utilisation des cas d’utilisation dans le RUP. Cela explique, comme nous le verrons, une orientation de l’ouvrage clairement orientée vers le processus, plutôt que vers la modélisation. Le cadre est donc franchement prescriptif, mais aussi avec quelques avantages à ce positionnement : l’articulation avec d’autres éléments du processus.

Le texte en lui-même couvre 300 pages sur 12 chapitres. Quand on considère le thème, on peut considérer que c’est un ouvrage franchement volumineux. Mais les chapitres restent de taille raisonnable. Le tout est structuré en deux parties. La première couvre 145 pages pour 5 chapitres. Son objectif est de nous mettre le pied à l’étrier avec les cas d’utilisation. Le premier chapitre est la très classique introduction, destinée à nous permettre d’appréhender la place des cas d’utilisation au sein de la gestion des exigences. Le style est plutôt guindé, mais néanmoins efficace pour à la fois donner un peu de contexte Unified Process et évoquer les finalités des cas d’utilisation sans les trahir.

Le second chapitre s’attaque aux éléments fondamentaux des cas d’utilisation. En réalité il couvre bien tous les éléments nécessaires pour les mettre en œuvre à l’exception des éléments les plus exotiques. L’approche consiste en une déconstruction systématique des éléments méthodologiques : éléments du modèle, acteurs, flux d’évènements, mais aussi artéfacts support. Le tout hélas sans exemple et sans aborder le fond de ce que sont les cas d’utilisation au long de ces 30 pages. Bref, tout y est, sauf l’essence même des cas d’utilisation. Le chapitre 3 parle d’établir la vision, mais en fait le titre est un peu trompeur : il traite de manière plus générale de l’approche « feature » telle qu’elle est proposée par Dean Leffingwell dans « Managing the Requirements process ». Une approche une fois encore très orientée processus à tel point que les presque 40 pages du chapitre s’articulent en étapes ! Cette approche vient, en théorie, intersecter l’approche Cas d’Utilisation qui a une orientation plus comportementale. Dans la pratique, les deux approches ne se rencontrent guère ici. L’un des points forts de ce chapitre est l’étude minutieuse des parties prenantes et de leurs représentants.

Lire la suite

Note de lecture : The Rational Unified Process, an introduction, 3rd edt., par Philippe Kruchten

Note : 6 ; Une importante revue de l’ouvrage

Rational Unified Process fut la méthode tendance jusqu’au milieu des années 2000. Cette 3ème édition est en quelque sorte la mouture ultime (en attendant sa renaissance dans les années 201x, sous le nom de SAFe). Chaque workflow de RUP est riche de descriptifs, de rôles et de pratiques, au point que chacun d’entre eux nécessite au moins un ouvrage pour couvrir le sujet. Ici, il s’agit plutôt d’un tour d’horizon de l’ensemble de ces workflows.

Contrairement à l’édition précédente qui ne représentait qu’une évolution mineure de livre (et du processus), celle-ci a fortement évolué, gonflant également l’édition d’une bonne quarantaine de pages, pour un total de 270 pages hors annexes. Le tout est divisé en deux parties inégales. La première compte 110 pages sur 6 chapitres et traite du processus dans sa globalité. Le premier chapitre est certainement particulier, car il traite de la notion de « best practices », mais surtout il est signé Grady Booch. Après une courte introduction sur cette notion de best practices et de développement itératif et incrémental, l’auteur nous évoque les propriétés d’un bon processus : gestion des exigences, modélisation visuelle, gestion du changement, etc… Bref, les propriétés mises en avant par RUP (ou UP).

Le second chapitre fait écho à ce premier chapitre en déclinant les propriétés évoquées sur RUP, puis en évoquant la structure en 2 dimensions du framework. Tout cela se lit facilement mais il est clair que l’on n’est pas rentré dans le vif du sujet. Le chapitre 3 reste très abstrait car il décrit le méta-modèle du framework : rôles, artéfacts, activités (et étapes d’activités), workflows et disciplines ! Les couches de « pilotage » que sont les guidelines et autres templates ne sont que brièvement décrits. L’ensemble revêt une certaine esthétique pour l’académicien ou le théoricien (moi par exemple) mais va sembler austère et très abstrait pour qui ne porte pas un intérêt aiguisé aux processus de développement !

Lire la suite

Note de lecture : The Unified Process Transition and Production Phases: Best practices in implementing the UP, par Scott W. Ambler & Larry L. Constantine

Note : 3 ; Un quatrième opus de la suite dédie à UP, d’avantage cohérent avec le sujet

Dernier opus de la série consacrée à Unified Process, celui-ci reprend la formule qui nous a tellement enchantée dans les volumes précédents. Celui-ci est fort de 280 pages et compte 8 chapitres, introduction et conclusion incluses. L’introduction, justement, est le seul chapitre réellement écrit pour correspondre au titre de l’ouvrage. Il compte une douzaine de pages et cherche à replacer chaque workflow dans le contexte de la phase de transition.

Le second chapitre va couvrir 35 pages et se focalise sur le workflow de déploiement. Il compte 6 articles dont 3 sont signés Scott Ambler (l’éditeur de l’ouvrage si vous avez suivi). Contrairement aux ouvrages précédents, la plupart de ces articles ont effectivement trait au déploiement et au rollout en phase de transition. Leur lecture nous laisse apparaitre le chemin parcouru depuis lors grâce au mouvement devops !

Le chapitre 3 traite du workflow « tests », et ce ne sont pas moins de 8 articles que nous retrouvons là ! Cem Kaner nous parle du recrutement de testeurs. Cela a peu à voir avec la phase de transition, mais non seulement l’idée est intéressante, mais on y trouve beaucoup de matière pertinente. Dans la même veine, James Bach évoque la formation des testeurs. Le propos mériterait toutefois d’être actualisé. Dans le style nostalgie, McGregor & Major nous parlent de « maximiser le ROI en sélectionnant les cas de test » ! Voilà une pensée définitivement issue de l’ancien monde ! Plus original, « don’t waste your bugs ! » nous propose une analyse qualitative des bugs pour estimer la maturité du code ! Le worflow « Project Management » est au menu du chapitre 4 et nous propose 6 articles. Bien qu’ils aient peu à voir avec le sujet, « making lemonade with lemon » aborde les besoins psychologiques des équipes. Un des rares écrits de Norman Kerth, donc à ne pas rater. « Looking back » est co-signé par Karl Wiegers et Johanna Rothman ce qui est en soi une raison de s’y arrêter. L’autre est que l’on y décrit la démarche de rétrospective.

Lire la suite

Note de lecture : The Unified Process Elaboration Phase, par Scott W. Ambler

Note : 2 ; Une compilation bien hétéroclite !

Tout comme le volume dédié à la phase « d’inception », ce volume regroupe un ensemble d’articles en provenance de Software Développement Magazine. Ils sont globalement organisés en worflows, ce qui nous donne 8 chapitres (en comptant introduction et conclusion), pour un total de 260 pages hors annexes.

Le premier chapitre est purement introductif. Il met en contexte le processus itératif par rapport aux processus en cascade et donne un aperçu des différents workflows, puis plus précisément de la phase d’élaboration. Tout cela ressemble pas mal au premier chapitre du volume consacré à la phase d’inception. Cela reste aussi très général. Place au workflow « Project management » au chapitre 2, qui va regrouper 6 articles. J’en retiens essentiellement deux : « managing collaborations » par Mary Loomis évoque les propriétés essentielles du cadre pour rendre possible cette collaboration. « implementing feature teams » par Jim McCarthy préfigure les équipes pluridisciplinaires que l’on retrouvera dans le fonctionnement agile. Aucun des 6 articles n’est lié à la phase d’élaboration ni même à Unified Process.

Le chapitre 3 aborde le workflow « business modeling” et ce sont 4 articles qui sont mis en avant ici. Malgré la présence d’un article de Martin Fowler, aucun d’entre eux ne retient mon attention. Ce workflow semble décidément une source d’embarras à décrire… Nous arrivons maintenant au chapitre 4 qui va évoquer le workflow de gestion des exigences. Nous avons 5 articles ici. Karl Wiegers nous offre toujours une prose de qualité et « Writing Quality Requirements » s’inscrit dans cette mouvance. Je garde. Puis « Prototyping from the User’s Viewpoint » est un des rares articles qui cadre vraiment avec la phase d’élaboration d’UP. Je garde également !

Lire la suite

Note de lecture : The Unified Process Inception Phase, par Scott W. Ambler & Larry L. Constantine

Note : 2 ; Pratiquement le désappointement annoncé !

Autant prévenir tout de suite, ce livre est une compilation d’articles parus dans « Software Development », ce qui peut expliquer l’aspect quelque peu hétéroclite de l’opuscule. L’intérêt des textes eux-mêmes est assez variable et va de passable à intéressant.

Les 280 pages de ce volume sont structurées en 7 chapitres qui sont autant de thèmes. Chaque chapitre rassemble lui-même plusieurs articles. Aucune originalité dans le premier d’entre-eux qui s’intitule sobrement « introduction ». Pour me faire mentir, ce chapitre-ci n’est pas une compilation d’article, mais une introduction, à Unified Process d’abord et à la phase d’inception ensuite. Ce n’est pas mal du tout en fait.

On rentre dans le dur au second chapitre « Best practices for business modeling » qui rassemble 5 articles sur 45 pages. A part peut être l’article consacré aux cartes CRC, les autres donnent vraiment l’impression d’être rentrés aux forceps dans ce thème. Le pire étant je pense la présentation d’UML par Scott Ambler qui n’a pas grand-chose à voir avec la choucroute. Si les contributeurs ont du mal à comprendre ce qu’est la modélisation métier, cela s’arrange au chapitre 3 consacré aux exigences. Et cela commence même très bien avec l’article d’Ellen Gottesdiener dédié au décodage des besoins métier. J’approuve aussi l’article suivant qui clame les droits du client, signé par Karl Wieger. L’article sur le JAD et les règles métiers méritent aussi une mention. Finalement seul le papier de Scott Ambler (encore lui) finira dans la corbeille du même nom.

Lire la suite

Note de lecture : Managing Software Requirements, par Dean Leffingwell & Don Widrig

Note : 7 ; Les exigences selon RUP, avec beaucoup d’éléments sur les pratiques, mais aussi un manque de matière sur la mise en œuvre.

Ce livre traite de la gestion des exigences vue par Rational Unified Process. Les auteurs ont d’ailleurs travaillé sur l’outil Requisit Pro. La lecture en est plaisante, le découpage en nombreux chapitres assez découplés bien que complémentaires y aide beaucoup. Comptez 385 pages pour ce volume qui comprend en sus près de 90 pages d’annexes ! Les 35 chapitres que les auteurs ont concoctés sont divisés, non en parties mais en 8 « skills », une petite subtilité, mais assez intelligente !

En une trentaine de pages comptant quand même 3 chapitres, la première partie fort opportunément appelée « introduction » est vite passée ! Si on s’intéresse aux grands classiques du « pourquoi » des exigences, c’est à dire le coût des exigences erronées, on arrive vite à la définition de ce qu’est une exigence au chapitre 2. C’est ici aussi que l’on introduit la pyramide problème / besoin / solution que j’aime tant ! L’auteur n’oublie pas que le développement logiciel, même dans l’ingénierie des exigences, est une affaire d’hommes et de femmes, il consacre le chapitre 3 à l’équipe et aux compétences. Bref, une première partie tout à fait sympathique.

Ce sont 3 chapitres (sur environ 40 pages) qui sont également consacrés à la seconde partie « Analyser le problème » qui est le premier « team skill » du livre. Nous voilà rentrés dans la matière. L’auteur nous propose 5 étapes pour définir le problème. Les choses sont rarement aussi simples que l’on puisse suivre une telle séquence de manière immuable, mais nombre d’analystes devraient s’inspirer de ce que l’on trouve ici : identification des acteurs, définition du périmètre du système et de ses contraintes et surtout, surtout : l’analyse causale ! La matière proposée concernant l’analyse métier est bien moins convaincante, mais on peut bien excuser de petites faiblesses… Le dernier chapitre de cette partie met surtout en musique ce que nous avons vu avec l’étude de cas du livre : HOLIS. Fort intelligemment, il ne se contente pas de reprendre la matière du chapitre 4, on y ajoute quelques petits éléments comme l’elevator statement.

Lire la suite

Taylorisme et travailleurs du savoir

Durant les formations, je me retrouve souvent en situation de devoir expliquer pourquoi (et en quoi) l’agilité est différente des processus classiques, mais pas seulement. Bien sûr on pense au bon vieux « cycle en V », la tarte à la crème des processus non-agiles, mais nous pouvons aussi évoquer les processus itératifs tels qu’Unified Process !

Unified Process est un cas intéressant, voir embarrassant. Certains le classent dans la limite basse des méthodes agiles [4] (après tout, on est loin du cycle en V), d’autres considèrent qu’il ne s’agit définitivement pas d’une approche agile. C’est mon cas. Je trouve par ailleurs intéressant de voir que Ken Schwaber lors de sa première présentation de Scrum en 1995 classait déjà ces approches (pourtant plutôt novatrices à l’époque) en dehors de ce que l’on appelait pas encore les « approches agiles » [1] !

Pour débuter notre reflexion, je vous propose de nous intéresser au modèle Cynefin.

Le modèle Cynefin

Le modèle Cynefin permet de classifier la complexité des contextes en fonction de la nature des relations de causalité entre problème et solution. Je simplifie un peu, pourtant cela doit sembler obscure. Ne vous en faites pas, cela deviendra plus clair lorsque nous expliquerons le modèle. Le voici.

image

Lire la suite

User Stories … What else ?

Voici le support de ma présentation, faite lors d’Agile Grenoble 2013. Elle aborde le sujet épineux de l’emprunt de techniques issues du monde non-agile dans nos projets agiles !

Le teaser

Les users stories sont rapidement devenus la formulation convenue du besoin. Mais est-ce la seule ? Est-ce toujours la meilleure ? On dit que quand on a un marteau, tout ressemble à un clou. Notre communauté agile tend à ignorer ce qui vient d’ailleurs. Pourtant ce qu’on appelle l’ingénierie des exigences est un domaine riche de plusieurs décennies de connaissances et de techniques. Certaines peuvent être utilisées directement, d’autres doivent être adaptées ou peuvent servir d’inspiration.

Cette présentation va nous permettre d’étudier ensemble plusieurs techniques et concepts du recueil des besoins et les regarder par le prisme de nos pratiques agiles. A l’aide d’exemples, nous verrons comment elles peuvent renforcer nos pratiques actuelles.

Ce que vous allez en retirer

Découvrir l’ingénierie des exigences, prendre conscience de la profondeur de ce domaine de connaissance. A la fin de cette session les participants auront des clés pour enrichir leur maitrise de la capture du besoin en s’alimentant hors du champs de l’agilité, et j’espère le goût de le faire !

Si j’ai assez de courage, je produirais cette présentation sous forme d’article. Mais alors pas avant Janvier !

Note de lecture : Software Project Management, par Walker Royce

Note : 6 ; La gestion de projets selon Unified Process.

Un ouvrage un peu dense et un peu difficile à lire, mais dont le contenu est indéniable, notamment sur les métriques de suivi de projet. Walker Royce porte un fardeau assez difficile : son père, Winston, est en effet l’auteur d’un article décrivant le cycle en cascade qui est à l’origine du « cycle en V »… à son corps défendant !

Les 4 parties constituées de 17 chapitres de la partie principale du livre couvrent un peu plus de 250 pages. Il faut y ajouter les très conséquentes 5 annexes de la 5ème partie qui totalisent à elles seules 150 pages !

La première partie « software management renaissance » comprend 4 chapitres et un peu moins de 70 pages. Bien entendu, le premier chapitre traite du modèle en cascade présenté dans l’article de 1970 de papa Royce. Plutôt que de critiquer son géniteur, Walker fustige, à juste titre je dois dire la manière dont le modèle a été mal compris. Le second chapitre, s’il est court avec sa dizaine de page, n’est pas une ballade de santé. Il présente l’évolution de l’économie du logiciel en terme de ROI, coût par SLOC, etc. En comparaison le 3ème chapitre qui présente logiquement l’amélioration de cette économie est nettement plus accrocheur. L’auteur y évoque l’influence de différents paramètres tels que le langage de programmation, l’utilisation de la conception orientée objet ou la pratique du peer review. Cette première partie se conclut par la comparaison des « anciens principes » contre les nouveaux (ceux de l’auteur). J’ai trouvé l’énoncé des 30 principes de Davis bien plus intéressante (même si certains sont clairement erronés), en regard des 10 principes de Royce.

La seconde partie « a software management process framework » rentre dans le dur de UP. 65 pages sur 5 chapitres y sont consacrés. Le chapitre 5 se focalise sur le concept de phase (vous savez, celui que l’on a abandonné avec agile…). Bien entendu ce sont les 4 phases d’UP qui y sont évoquées. C’est sans surprise que l’on aborde le chapitre 6 qui s’avère consacré à la question des artéfacts projet, les 25 pages de se chapitres évoque l’existence de nombre d’entre eux en les ventilant sur 5 pratiques d’ingénierie. Un chapitre que j’ai du mal à trouver passionnant, bien qu’il soit central dans les méthodes prescriptives et finalement bien abordé ici, y compris la discussion sur l’usage et l’apport d’artefacts formels. Les deux chapitres suivants sont étrangement courts. D’abord le chapitre 7 sur les modèles n’évoque que l’existence de 5 modèles (qui rappellent les 4 + 1 vues de Philippe Kruchten), mais sans aller plus avant parce que hors du sujet de l’ouvrage probablement. Ensuite le 8 chapitre 8 nous parle du workflow de l’itération, décrivant celle-ci comme un mini waterfall. Beurk ! Le dernier chapitre de cette seconde partie est plus ésotérique en évoquant les jalons majeurs et mineurs.

La troisième partie « software management disciplines » couvre 85 pages sur 5 chapitres. Il commence avec le chapitre 10 qui aborde la planification itératif et son outil phare : le WBS (Work Breakdown Structure). Encore un truc que l’on ne fait plus en agile. Toutefois si vous voulez rentrer dans le sujet, vous avez là une référence de première main. Non seulement il donne une méthode de découpage, mais évoque les répartitions budgétaires relatives et leur évolution en fonction des phases du projet ! Le chapitre 11 lui traite de l’organisation de projet, au sens « administratif ». C’est donc à des organigrammes qu’il nous faut faire face, avec des listes de responsabilités et tout et tout… Le chapitre 12 focalise sur l’automatisation du processus et notamment du change control. Bref, pas mal d’outillage « projet ». Fort logiquement, au chapitre 13, ce sont les indicateurs de management qui sont à l’honneur et principalement le fameux Erned Value Tracking (EVT). Le chapitre 14 aborde la customisation du processus (car UP se customise). Walker Royce aborde cela en classant les types de projet en 2 dimensions : la complexité technique sur un axe et la complexité de management sur l’autre. Chaque axe nécessite une emphase particulière sur certaines disciplines et certains artefacts. Il n’y a plus qu’à combiner les deux, hein ?

La dernière partie du corps du livre « looking forward » ne compte que 3 chapitres et se contente donc d’une trentaine de pages. Elle débute par le chapitre 15 qui évoque les projets dits « modernes ». C’est finalement là que l’on retrouve des choses qui se rapprochent le plus des projets agiles : des exigences qui évoluent, de l’intégration continue, mais le tout encore et toujours dans les fourches caudines d’XP aux forceps. Au chapitre 16, on tente de tourner notre regard vers un nouveau modèle économique des projets. Il s’agit en partie d’une remise en cause partielle des postulats de Boehm dans le cadre des développements actuels. La partie textuelle de cet ouvrage se conclu par un chapitre 17 assez courts évoquant les problèmes de transition vers ces processus…

La 5ème partie du livre est consacrée aux annexes. Comme je l’ai dit, elle est franchement volumineuse. L’annexe A évoque l’état des pratiques en s’appuyant sur des rapports. Hélas tout ce ceci n’est plus d’actualité, mais cette partie est au moins courte ! L’annexe B rentre dans le modèle COCOMO 2 de Boehm, et on s’en tire pour une vingtaine de pages. Une dizaine de pages sont consacrées à des métriques de changement qui à mon avis ne servent à rien. L’annexe D est un cas d’étude et franchement il faut être motivé pour s’en taper les 60 pages. Enfin, même si l’annexe D compte 30 pages, il est plus facile de s’y intéresser : challenger UP face à CMM peut s’avérer instructif.

Le livre est dense, très dense. Il traite de processus semi-prescriptif est déballant beaucoup de matériel, beaucoup de concepts et un niveau de technicité, en processus, en métriques et un petit peu dans tout, il faut bien le dire, qui est très élevé. Le vrai risque est d’être un peu noyé à force d’en vouloir pour notre argent. L’erreur de l’auteur est d’essayer d’augmenter le niveau de technicité, de finesse dans la maitrise et la gestion de projet, là où la clé serait plutôt la simplification.

software-proj-mgt-unified-framework

Référence complète : Software Project Management: A Unified Framework – Walker Royce – Addison Wesley 1998 – ISBN: 0-201-30958-0

Software Project Management: A Unified Framework

http://www.goodreads.com/book/add_to_books_widget_frame/0201309580?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Software Development for Small teams: A RUP centric approach, par Gary Pollice, Liz Augustine, Chris Lowe & Jas Madhur

Note: 2 ; « J’écris un programme avec 3 potes, et j’en profite pour écrire un bouquin là-dessus ».

On pourrait presque s’écrier : à l’arnaque ! On n’en est pas loin, et une note de « 2 », c’est plutôt bien payé. Mais commençons par le commencement. Le livre ne porte pas sur l’adaptation d’UP aux petites équipes, mais d’un seul et unique projet sur lequel les auteurs ont essayé UP, c’est donc d’avantage une étude de cas qu’une synthèse d’experts. D’ailleurs, en fait de projet, il s’agit plutôt d’un développement fait en marge de l’activité professionnelle des auteurs, on est donc très loin des conditions normales d’un projet, mais par contre très proche des conditions de développement en « open source », ce qui n’est malheureusement pas identifié, et devrait être valorisé dans le titre. Il y a bien peu de chose à retirer de cet ouvrage ; les conditions de projet ne sont pas là, l’utilisation d’UP est plus expérimentale qu’autre chose, l’outillage employé (et éhontément promu dans le texte) inapproprié n’était-ce le fait que les auteurs les connaissent parfaitement et en disposent gratuitement. Une fois que l’on a lu cela, on peut à juste titre se dire que l’on peut tous se mettre à écrire son livre.

Les 2 seuls points intéressant sont la description du développement de type open source / distribué et l’aspect « post mortem » particulièrement bien abordé. En bref : ne perdez pas votre temps sur ce bouquin.

soft-dev-small-teams-RUP

Référence complète : Software Development for Small teams: A RUP centric approach – Gary Pollice, Liz Augustine, Chris Lowe & Jas Madhur – Addison Wesley / O.T. series 2004 – ISBN: 0-321-19950-2

Software Development for Small Teams: A Rup-Centric Approach


http://www.goodreads.com/book/add_to_books_widget_frame/0321199502?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on