Note de lecture : Lean Software Development, An agile toolkit, par Mary Poppendieck & Tom Poppendieck

Note: 8 ; L’anti-taylorisme tel que nous l’enseigne l’industrie !

Le « Lean Développement » dont Mary Poppendieck est l’une des figures de proue est l’adaptation au monde du développement logiciel du mouvement « Lean production » issue de l’industrie, pratiqué notamment chez 3M et Toyota. L’ouvrage n’hésite d’ailleurs pas à illustrer les concepts évoqués par des exemples tirés de l’histoire de ces 2 sociétés (et d’autres).

Le Lean Développement, comme la plupart des méthodes agiles, ne propose pas un cadre prescriptif pour la construction logicielle, mais un ensemble de 7 principes et de 22 pratiques.

  • Eliminer le déchet : c’est l’un des principes fondamentaux du Lean développement (et des méthodes agiles en général). Il s’agit de se débarrasser de ce qui est inutile et ne participe pas à la chaîne de valeur, en utilisant deux outils que sont le repérage du gâchis et le « value stream map ».
  • Amplifier l’apprentissage : le développement d’un système informatique n’est pas une activité de production, mais un travail de développement (comme son nom l’indique), où la découverte et l’expérience jouent un rôle prépondérant. Ce principe est supporté par des outils tels que le feedback, les itérations, la synchronisation des acteurs et le « set based développement » qui privilégie la communication basé sur les contraintes (qui permet de laisser les options ouvertes) plutôt que celle basée sur les choix (qui ferme ces options).
  • Décider aussi tard que possible : Ne pas s’enfermer dans le choix de certaines options tant que l’on peut garder les options ouvertes ! Ce principe est soutenu par des outils tels que « l’option thinking », le « dernier moment raisonnablement possible » par l’utilisation d’abstraction d’interfaces ou de paramètres lors de la conception
  • Délivrer aussi rapidement que possible : cette pratique dont le nom est auto explicite s‘appuie sur des outils tels que le « pull system », où le travail est tiré, choisi au moment où l’on peut l’effectuer plutôt que d’être assigné à l’avance de façon autoritaire ; une approche directement héritée des « kanban » , la « théorie des queues », le « coût des délais ».
  • « Team empowerment » est un des fondements des méthodes agiles, mais aussi de ce que l’on appelle parfois le « Toyotisme ». Il s’agit ici de descendre le pouvoir de décision au niveau de ceux qui réalisent le travail, une approche servant-based management en rupture totale avec le taylorisme. 
  • L’intégrité : Ce principe se décline en « intégrité conceptuelle » dans laquelle les principes centraux du système fonctionnent de façon cohérente, et en « intégrité perçue » dans laquelle le système assure le bon équilibre entre fonctionnalités, ergonomie, fiabilité et critères économiques.
  • Voir l’ensemble : ce principe nous invite à améliorer le processus de développement en le considérant dans sa globalité plutôt que par optimisations locales, en utilisant des outils tels que les mesures ou les contrats.

Cet ouvrage est à mon avis hautement instructif, pratique et éclairé, il considère le développement logiciel comme une activité exploratoire, donnant la part belle à l’initiative, à l’organisation émergente et au leadership, par opposition aux processus prescriptifs, gérés par le contrôle de la conformité aux plans. Le texte rompt l’idée préconçue que le processus de développement doit être identique au processus de production et que le taylorisme est la réponse ultime de l’organisation, alors même que cette illusion a pris fin depuis plus d’un demi-siècle.

Ce livre n’évite aucun sujet épineux et traite même des aspects contractuels de la réalisation de projets, qui est un sujet hautement problématique des méthodes agiles. Les apports de la logistique industrielle que nous offrent les auteurs sont originaux et particulièrement instructifs, le plus souvent en rupture avec les idées préconçues que nous pouvons avoir sur le sujet.

La compacité du texte (186 pages) sera, j’espère, un argument supplémentaire pour vous décider à en aborder la lecture. A dévorer sans réserve !

lean-soft-dev-toolkit

Référence complète : Lean Software Development, An agile toolkit – Mary Poppendieck & Tom Poppendieck – Addison Wesley / ASD series 2003 – ISBN: 0-321-15078-3

Lean Software Development: An Agile Toolkit for Software Development Managers


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

Note de lecture : The Art of Lean Software Development, par Curt Hibbs, Steve Jewett & Mike Sullivan

Note: 3 ; Tour d’horizon superficiel du développement agile .. sans vision particulièrement « lean » !

J’ai l’habitude d’apprécier les livres succincts. Ils ont le bon goût d’aller à l’essentiel et ainsi de distiller efficacement une information utile. J’étais curieux de voir ce qu’il en allait être de cet ouvrage à la fois particulièrement court (120 pages) et pas spécialement bon marché ! Une autre source de curiosité était la juxtaposition des mots « Lean » et « développement ». Si le sujet est à la mode et que l’on développe largement la pensée « lean » dans la communauté agile, j’avoue avoir encore du mal à cerner en quoi le lean influence les pratiques de développement popularisées par les méthodes agiles.

Globalement, ce livre est hélas une déception. Il constitue certainement une bonne approche pour sensibiliser des managers aux grands principes du développement agile : il reste au niveau des grands principes et fait le tour d’horizon des pratiques agiles en expliquant leur utilité. Ainsi 6 chapitres sur les 9 que compte l’ouvrage sont dédiés aux principales pratiques de développement déjà promues par Scrum, XP ou les pragmatiques programmeurs :

  • Scripter les builds et utiliser un gestionnaire de version, plutôt que de compter sur une procédure interactive pour rendre un « build » répétable.
  • Automatiser les tests, au niveau des tests de développements ou des tests comportementaux (tests d’intégration ou de recette). Ce chapitre présente d’ailleurs un condensé plutôt réussi du sujet, même s’il reste un peu superficiel.
  • Mettre en place une intégration continue.
  • Optimiser le volume de code, en ne gardant que le code utile. Ce qu’on appelle le YAGNI (you ain’t gonna need it) dans XP.
  • Petites itérations. Inutile d’épiloguer, le titre parle de lui-même.
  • L’implication continue de l’utilisateur, en l’impliquant dans la boucle de feedback de l’itération. Ce que les auteurs appellent aussi le « CRACK customer » (Collaborative, Representative, Authorized, Commited, Knowledgeable).

Finalement, seul le chapitre 9 approche les pratiques Lean et leur application au développement logiciel. Les auteurs évoquent ici les ateliers Kaizen et le value stream mapping essentiellement et mentionnent les autres pratiques Lean (ainsi que des approches complémentaires comme la théorie des contraintes). 

L’intérêt de sortir un livre de sensibilisation sur les pratiques de développement agile en 2009 alors que le sujet est déjà bien couvert m’échappe un peu, je dois dire. Je mettrais celui-ci au niveau du livre de Craig Larman (agile and iterative development, a manager’s guide) pour ce qui est du public visé, avec un très gros point en faveur de ce dernier ouvrage. Enfin, le titre du livre est assez trompeur, comme j’ai pu le dire.

Sans doute pourrais-je proposer de lire cet opuscule à un développeur ou à un manager désireux d’acquérir une compréhension de premier niveau des principales pratiques agiles. La brièveté du texte sera là une réelle qualité.

En conclusion : un livre bien trop cher eut égard au contenu et dont l’intérêt est peu probant par rapport à la bibliographie existante. Il reste toutefois une petite niche de lecteurs potentiels auxquels je pourrais même conseiller l’ouvrage. Le passionné n’y trouvera pas son compte.

art-of-lean-agile-dev

Référence complète : The Art of Lean Software Development – Curt Hibbs, Steve Jewett & Mike Sullivan – O’Reilly 2009 – EAN : 978 0 596 51731 1

The Art of Lean Software Development: A Practical and Incremental Approach


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

Note de lecture : UML Distilled 3rd edition, par Martin Fowler

Note : 9 ; Une édition encore meilleure (si c’est possible) d’un ouvrage qui ne cesse de me surprendre par sa qualité et se concision.

On est toujours en droit de se demander si une nouvelle édition n’est pas un simple lifting, surtout quand il s’agit comme ici d’un best seller. J’en veux pour témoin l’habillage résolument clinquant de la jaquette, on croirait Elvis Presley à sa grande époque !

Ce livre présente UML2, et ce fut l’un des premiers. Outre la présentation précise et efficace d’UML2, les points de différence avec UML1 sont soulignés. Le livre reste toujours aussi agréable à lire. Il est intéressant de noter, tout comme la seconde édition mettait un coup de projecteur sur Unified Process, ce sont ici les méthodes Agiles qui sont mises en lumière. Cela induit un petit travers dans la présentation de la notation dont je me serais bien passé. Il est préférable dans ce type d’ouvrage, de présenter la notation pour elle-même, mais c’est résolument le point de vue adopté par l’auteur : filtrer de la norme UML ce qui est utile et important à utiliser dans le cadre d’un projet. N’attendez donc pas une description exhaustive d’UML 2.0 !

J’ai souvent remarqué que les très bon livres utilisent les pages internes des couvertures comme « cartes de référence ». C’est encore le cas ici : Les éléments constitutifs de la notation sont présentés sous forme graphique, regroupés par type de diagramme, avec le renvoi vers la page descriptive. Vraiment très pratique !

J’ai souvent fait remarqué la concision et la clarté de la prose de Martin Fowler. Il est ici au sommet de son art. On a même peine à croire, la dernière page refermée que tout tient en moins de 200 pages, annexes comprise, le texte étant par ailleurs largement aéré par les nombreux diagrammes illustrant le texte. C’est un tour de force, d’autant qu’au grée des éditions et des normes successives d’UML ajoutant de nouveaux éléments, le volume du livre n’a pas augmenté d’une seule page.

Je ne vais pas détailler le contenu du livre. De manière globale, Martin Fowler a vétillé le volume consacré à chaque sujet en fonction de l’importance relative dans un usage réel au sein d’un projet. Ainsi le diagramme de classe se taille la part du lion. Le diagramme de séquence et le diagramme d’objet (et le diagramme de communication qui est son complément naturel) sont aussi très correctement traités. A l’autre extrémité, le diagramme de déploiement, d’interaction, de temps ou les collaboration sont abordés très succinctement en seulement 2 pages. Pourtant en 2 pages seulement l’auteur concentre l’essence de l’information sur ces digrammes et le lecteur intéressé y trouvera déjà de quoi les utiliser concrètement. De toute manière d’autres livre plus massifs existent pour traiter cette matière plus en profondeur, ce n’est pas le créneau de ce livre.

UML est un bon outil. Pas seulement pour le spécificateur, mais aussi pour le développeur ou toute personne au sein des projets pour simplement communiquer de manière efficace. Mais tout le monde ne peut ou ne veux investir beaucoup de temps à comprendre cet outil. UML distilled est sans contestation possible le livre idéal pour cela. Mon conseil ? Faites figurer ce livre de force dans toute bibliothèque d’un projet. Il contient le substantifique moelle de la notation UML qui peut être acquise avec un investissement de temps complètement optimisé. Ce serait dommage de passer à côté.

UML-distiled-3edt

Référence complète : UML Distilled, a brief Guide to the standard Modeling Language, Third edition – Martin Fowler – Addison Wesley / O.T. series 2003 –ISBN: 0-321-19368-7

UML Distilled: A Brief Guide to the Standard Object Modeling Language


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

En finir avec le Product Owner ?

Nous nous retrouvons de nouveau pour le troisième volet de mon feuilleton de l’été. Après le roadmap et le backlog, occupons-nous un peu du Product Owner. Si vous discernez ma logique, vous devriez pouvoir deviner quel sera l’épisode suivant …

Je rappelle de nouveau mon mot d’avertissement : J’ai écrit le texte qui suit avec l’intention qu’il soit lu de façon critique. Ne prenez pas ces idées ou ces points de vue pour argent comptant. Utilisez-les comme source de réflexion pour vous forger votre propre réflexion.

C’est bien sûr vrai de tous les textes que l’on peut être amené à lire, mais ça l’est encore plus ici !

Product Owner qui es-tu ?

En passant en revue ce que dit la littérature, nous devons comprendre que le Product Owner est visionnaire, leader mais également berger de l’équipe (1) il est aussi responsable du ROI du projet (2). On lui attribue aussi la responsabilité du contenu du produit, donc les fonctionnalités subordonnées à la vision, de leur échelonnement dans le temps (qui conditionne le ROI) et des choix tactiques au jour le jour (3). Il est aussi le point de convergence aux autres acteurs de l’entreprise partie prenantes dans le projet (4)

Bref, le Product Owner doit plus ou moins ressembler à ça :

rodina

Product Owner, pourquoi es-tu là ?

Fondamentalement, Scrum a été pensé comme un processus de développement logiciel. Cela semble bien de prime abord : après tout, développer du logiciel, c’est notre boulot !

En pratique, Scrum a planté une clôture autour de l’équipe du développement (le “team”) et de son berger (le Scrum Master, on s’occupera de son cas dans un épisode ultérieur). La relation entre l’intérieur de la clôture et ce qu’il y a à l’extérieur est reporté  sur une personne unique qui s’occupera donc de tout le reste, à savoir ce qui n’est pas du développement.

Product Owner, es-tu Superman ?

A ce stade, vous pouvez déjà répondre à cette question en comparant votre PO à sa représentation picturale ci-dessous.

superman-standing

Pourquoi Superman ? Cessons d’occulter ce qui se passe derrière la barrière et tentons de dresser une liste de ce que le périmètre produit va représenter si l’on englobe non plus seulement le développement mais tout ce que va prendre en compte cette activité produit. Ma liste va être bien naïve, n’étant hélas pas un spécialiste de la question, disons que c’est juste pour amorcer la réflexion.

  • Connaissance métier sur le périmètre couvert par le produit.
  • Compréhension de la segmentation du marché selon différentes dimensions : maturité, domaine d’activité, profils d’utilisateurs.
  • Stratégie de vente, de pénétration et de fidélisation, pour le volet commercial.
  • Appréhension des différents facteurs de risques : volatilité et compréhension du marché, positionnement de la concurrence, incertitudes sur les facteurs internes et externes influençant le déroulement du marché.
  • Connaissance des opportunités d’alliance, pour renforcer une position sur un marché (coalition), soit pour développer une “verticale”. Les options dégagées peuvent redessiner le contour fonctionnel du produit et/ou influer sur la priorité des différentes fonctionnalités.
  • Maîtrise du modèle de cash-flow afin d’optimiser les revenus générés par le produit et/ou permettre la récurrence de ces revenus.

Vous pouvez ajouter vos propres points à cette liste déjà longue, mais on constate déjà que cela fait beaucoup. La plupart des entreprises l’ont d’ailleurs acté : elles placent derrière le PO non pas une mais plusieurs personnes pour couvrir ces différentes facettes. Mais du point de vue de l’équipe située dans l’enclos, on ne veut pas trop le savoir : on ne veut voir qu’une seule tête.

A défaut d’être un Superman, le PO sera donc un “hub”. Cette capacité à être un “hub” vient-elle naturellement avec la capacité visionnaire dont nous avons parlé plus haut ? Vous devinerez certainement ma région d’origine à ma réponse : peut-être bien que oui, peut-être bien que non …

Un des éléments que j’apprécie particulièrement dans les approches agiles, c’est l’effacement les responsabilités au sein de l’équipe. L’équipe est responsable de délivrer le produit. Cela requiert différentes compétences qui sont assurées par la complémentarité des membres de l’équipe, mais sans qu’il soit nécessaire de dresser des rôles. Plus simplement dit: c’est travailler en bonne intelligence. Curieusement, ce que l’on accepte et que l’on acte côté du côté de l’équipe de développement ne s’étend pas côté produit…

NOUS versus VOUS

Arrivé à ce point, j’en reviens à l’aspect que j’ai évoqué plus haut : il y a ce qui est dans l’équipe de développement et ce qui est en dehors. Et ce qui est en dehors se résume au Product Owner. Mais outre le fait d’occulté la complexité et les ramifications de ce rôle, l’autre effet collatéral malheureux est que si le Product Owner fait partie de Scrum, il ne fait pas partie de l’équipe !

Avez-vous déjà entendu le P.O. déclarer lors d’une démo : “vous avez fait du bon boulot” ? Beaucoup d’entre-vous répondrons oui, et penserons qu’ils ne voient pas le problème. Et il n’y a pas de problème apparent, l(intention est clairement bonne. Mais pourquoi diable ce PO ne se sentait pas partie prenante de cet effort ? Pourquoi n’a-t-il pas déclaré “nous avons fait du bon boulot” ou plus modestement “nous avons fait du boulot dont nous pouvons être fiers” ?

La réponse est qu’hélas Scrum ne nous aide pas ici. Si l’intention des créateurs de Scrum était et est toujours d’englober PO et équipe dans une même dynamique, cette séparation permet de retomber très facilement dans une logique de répartition des tâches, plutôt qu’une logique d’endossement d’un leadership. D’ailleurs à ma connaissance, rien dans Scrum ne dit que le PO et seul le PO doive maintenir le backlog. Rien ne dit non plus que l’équipe ne doive pas se sentir impliqué dans la qualité de celui-ci. Et je pourrais continuer longtemps. Pourtant il m’apparait qu’il est facile d’avoir cette lecture, et que de nombreuses équipes qui viennent d’anciens processus et font partie de “l’early majority” de la courbe de Moore pour l’adoption de Scrum penchent en ce sens. Je ne suis pas non plus certain que les consultants qui épaulent ces équipes les aident toujours dans la bonne direction …

J’en appelle maintenant à Gilles Mantel qui nous a bien dynamisé avec sa “Scrum Master Academy”: il est peut-être temps de s’attaquer aussi à une “Product Owner Academy” ! L’un des articles pourrait être “Product Owner, ta place est au milieu de l’équipe”.

Du Product Owner à la MOA

J’ai récemment lu un billet d’Audrey Pedro à propos du rôle de “Product Owner Proxy” qui faisait écho au billet de Claude Aubry sur le même thème allant dans l’autre sens. Qui a raison, que penser ?

Je trouve intéressant cette émergence du concept de “Product Owner Proxy”. Non que je lui donne raison, et je penche là dans le sens de Claude, mais parce que je pense qu’il est la réponse à la légèreté avec laquelle Scrum appréhende ce rôle qui est, je le répète ici un peu différemment : tout ce qui n’est pas lié au développement va dans l’escarcelle du PO. C’est à la fois trop pour un seul homme (ou une seule femme) et une incitation à retomber dans de vieux réflexes contre lesquels la communauté agile s’est battu pendant des années: le partitionnement en rôles.

Le Product Owner Proxy est ni plus ni moins que la résurgence du concept de MOA : un intermédiaire, avec des compétences n’existant pas dans l’équipe de développement, mais qui n’est pas le “sachant” métier et doit se retourner vers ce référent métier (le vrai PO) pour avoir des réponses ! Nous avons là une belle équation perdant-perdant:

  • L’équipe n’a plus accès au référent métier capable non seulement de lui transmettre ses besoins, mais une appréhension de son métier qui passe par des remarques, des discussions informelles et toutes sortes d’éléments intangibles qui ne sont perceptibles que par le contact direct
  • L’équipe perd la responsabilité de la compréhension du fonctionnel car c’est le P.O. proxy qui fait cela. Elle se replie sur le développement et fait … ce qu’on lui dit de faire. Vous pouvez coller le vocable que vous voulez, mais j’estime qu’ici on n’est déjà plus dans un projet agile, car l’état d’esprit n’y est plus.
  • Si par hasard l’équipe vient à dialoguer directement, c’est cette fois le P.O. proxy qui voit échapper une partie de la compréhension du besoin … et risque de se retrouver sur le bord de la route.
  • Il faut bien sûr pour compléter cette évocation parler du Product Owner qui perd le contact quotidien avec l’équipe, voir avec la réalité du développement et va établir une relation “moi / vous” avec l’équipe, comme je l’ai évoqué plus haut.
maitrise-ouvrage

Après avoir donné raison à Claude, donnons aussi raison à Audrey ! Audrey définit avec justesse les missions qu’elle remplit. Cela signifie qu’il y a du boulot à faire, aucun doute. Et s’il y a du travail à faire pour épauler la vision du P.O., il doit être fait. Mais pas en créant un nouveau rôle accentuant une vision du développement en silo qui n’a rien à faire dans une approche agile, mais en intégrant cette personne à l’équipe de développement !

Une seule équipe

Là où j’entends parler de rôle, je voudrais parler de compétences ! Plutôt que de raisonner sur la base d’attribution de tâches liées aux rôles, acceptons l’idée que nous avons besoin d’un ensemble de compétences (développement, test, architecture, ergonomie, mais aussi compréhension du besoin, marketing, etc…) pour couvrir tout ce qu’il y a à réaliser. Cela nous amène vers plusieurs conséquences, que je vais illustrer en faisant d’Audrey ma “persona” (bien que je ne la connaisse pas) :

  • Audrey n’a plus une étiquette particulière. Elle est intégrée à l’équipe. Elle n’est plus nécessairement la seule à accomplir les tâches qu’elle a décrite, bien que ses connaissances lui confèrent un leadership sur ces parties. Mais c’est un leadership lié aux compétences, non au fait qu’elle soit dépositaire d’un rôle.
  • Intégrée à l’équipe, elle embrasse non plus l’étroite mission du P.O. proxy, mais l’objectif de l’équipe: délivrer un produit. Elle est prête à intervenir plus largement, sur des aspects qu’elle connait moins et où elle n’aura pas le leadership: ergonomie, tests fonctionnels, etc… L’acquisition de ces nouvelles compétences lui ouvrira de nouvelles perspectives vers le futur, mais surtout elle va se montrer plus polyvalente sur le projet actuel.
  • J’ai parlé de l’objectif de l’équipe : délivrer un produit. Et j’ai certainement tord. Nous venons de redessiner le contour d’une équipe plus large incluant le P.O. proxy, mais aussi le P.O. ! L’objectif de l’équipe n’est plus alors de livrer un produit mais de rendre un service. Le succès du projet n’est plus la livraison du produit mais l’accomplissement de l’objectif business initial du projet. La construction du produit y est incluse. L’équipe élargie fait bloc derrière cet objectif business et cesse de limiter son horizon à la construction du produit.

Dans son billet, Audrey parle d’assurer la sérénité de l’équipe. Si l’on parle d’éviter les perturbations qui gênent l’avancement du projet, alors je suis d’accord. Mais si l’on parle d’isoler l’équipe des réflexions et questionnements fonctionnels, je ne le suis pas. Le rôle d’une équipe agile est d’être au front, au contact avec les problématiques métier. C’est vrai que c’est moins confortable que de travailler sur l’intégration de la librairie machin-bidule. Mais c’est de ce contact qui naissent la richesse et les solutions innovantes.

Justement, en parlant d’innovation.

Lean Startup

Le courant du Lean Startup illustre parfaitement ce mode de pensée: le processus est complètement orienté, non plus même sur la valeur délivrée au client, mais vers sa compréhension et l’apprentissage de l’impact de ce que nous faisons sur celui-ci. De facto, l’équipe englobe la totalité des personnes qui vont assurer cette mission. L’un des points du livre qui m’a interpellé à postériori, c’est qu’à aucun moment Eric Ries n’évoque la notion de “rôle”. Vous n’en trouverez même pas l’entrée dans l’index de fin.

Quelle solution ?

Dans mon esprit, Scrum a définit le Product Owner comme le dépositaire de la direction à emprunter. Peut-être l’appellation “propriétaire” induit-elle un biais malheureux : elle incite les autres acteurs du projet à abdiquer une participation active à la compréhension et à la définition du besoin.

Personnellement, je n’ai jamais vu de projet sur lequel il n’y avait pas un initiateur, une personne “portant” l’idée. Parfois cette personne disparait derrière la lourdeur des structures ou la “culture du comité”. Mais c’est cette personne qui est pour moi le P.O. Elle n’a pas toujours les qualités de superman évoquées plus haut mais cela ne devrait pas être prépondérant, par exemple en suivant les lignes directrices esquissées plus haut:

  • Il n’y a qu’une équipe et elle englobe tout le monde y compris le Product Owner.
  • La réussite de l’objectif business (et non uniquement la construction du produit) est l’affaire de tous. Tout le monde doit se sentir concerné et tout le monde peut contribuer.
  • Jetez aux orties les abaques d’affectation de types de tâches en fonction des rôles.

Et vous, quelle est votre vision du Product Owner ?

Références

(1) Agile Product Management with Scrum ; Roman Pichler ; Addison Wesley 2010 ; p. 4

(2) Agile Project Management with Scrum ; Ken Schwaber ; Microsoft Press 2004 ; p. 20

(3) Scrum Le guide pratique de la méthode agile la plus populaire 2nd édition ; Claude Aubry ; Dunod 2011 ; p. 30

(4) The Scrum Field Guide ; Mitch Lacey ; Addison Wesley 2012 ; p. 72

Note de lecture : The Joy of Patterns, par Brandon Goldfedder

Note : 3 ; Un workshop pour Design Patterns vraiment léger  !

Cet ouvrage est dans la même lignée que “Design Patterns Explained”. Ce livre aborde les patterns pour les nouveaux venus, mais avec perspicacité. Il mise beaucoup sur l’apprentissage par l’exemple et 3 gros exemples en Java, C++ et Visual basic y sont développés.

L’ouvrage débute par ce que sont les patterns, leur nature et leur structure, avec un petit détour vers les patterns language. Plus surprenant, le chapitre dédié aux concepts de base de l’orienté objet. Je pense que cibler les nouveaux venus à l’objet pour un ouvrage, même d’introduction, aux patterns est assez questionnable.

Globalement, même s’il est agréablement écrit, cet ouvrage est quand même un peu léger, avec ses 110 pages hors annexes (volumineuses, qui contiennent le code source), et même 65 pages si je ne compte que ce qui est vraiment le cœur du livre !

Du côté des bonnes nouvelles, le texte est concis et l’auteur excelle à expliquer ses raisonnements. Beaucoup de diagrammes UML émaillent l’ouvrage, en taille « pour aveugles » mais ils n’aident pas tellement à l’exception des quelques diagrammes de séquence qui sont bienvenus.

joy-of-patterns

Référence complète : The Joy of Patterns: Using Patterns for Enterprise Development – Brandon Goldfedder – Addison Wesley / Software Patterns Series 2001 – ISBN: 0-201-65759-7

The Joy of Patterns: Using Patterns for Enterprise Development


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