Note de lecture : Test Driven, practical TDD and acceptance TDD for Java developers par Lasse Kolkela

Note : 6 ; Infatigable bavard!

Lasse Kolkela est un fervent pratiquant de l’extreme programming, c’est dans cet esprit qu’il nous livre cet opuscule. Le texte est long (hélas, vraiment long) de 470 pages hors annexes, et ne compte que 12 chapitres, chacun étant donc également assez long. Ces 12 chapitres sont eux-mêmes regroupés en 3 parties qui forment comme on le verra une progression assez logique dans le texte.

La première partie, intitulée « primer » est une introduction au TDD, tel que l’on peut en voir par ailleurs. Les 4 chapitres qui composent les 150 pages de cette première partie ne sont ni meilleurs, ni moins bons que ce que l’on peut voir par ailleurs. En fait, 3 de ces quatre chapitres sont même carrément longs, l’auteur ayant visiblement beaucoup de difficulté à exprimer son propos avec concision. Cela rend la lecture franchement pénible.

La seconde partie, consacrée à l’application de TDD à différentes technologies est sans contestation la meilleure. Elle sauve le livre. L’auteur nous montre comment on peut effectivement avoir une approche TDD dans des environnements complexes (applications Web, accès aux bases de données, programmation multi-threads et développement Swing). Là où beaucoup d’auteurs (y compris Kent Back) se contentent de nous donner des exemples triviaux, Lasse Kolkela nous expose « par a + b » comment faire du TDD dans la vraie vie, avec des problématiques réelles. Les exemples sont pertinents, bien expliqués avec une progression logique.

La troisième partie est consacrée à « acceptance TDD » et tourne autour de FIT. Si le propos est intéressant, quoique trop raccroché à XP à mon goût, la verbosité de l’auteur rend de nouveau la lecture peu plaisante.

En conclusion : il y a de la matière, et l’on trouvera plus spécialement utile la seconde partie. Mais j’aurais d’avantage apprécié le livre (et donc mieux noté) si il avait comporté 150 pages de moins !

test-driven

Référence complète : Test Driven, practical TDD and acceptance TDD for Java developers – Lasse Kolkela – Manning 2008 – ISBN : 1-932394-85-0 ; EAN13 : 978 1932394856

Test Driven: Practical TDD and Acceptance TDD for Java Developers

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

Note de lecture: The Art of Project Management par Scott Berkun

Note : 6 ; Intéressant, mais verbeux et désordonné.

Scott Berkum se moque des outils de gestion de projet ou des principes de management. Ou plutôt : peut-être ne s’en moque-t-il pas (sa culture est d’ailleurs plutôt étendue), mais il a décidé de ne pas baser son livre là-dessus. Il préfère s’appuyer sur son expérience et développer son texte autour de thèmes issue de celle-ci. Le cocktail est plutôt intéressant et est loin de limiter la portée de celui-ci à la simple gestion de projets.

La première partie est consacrée aux « plans », à la façon de les aborder et pourquoi ils échouent de façon récurrente. Avec les plans vient la Vision. Celle-ci est partie intégrante du rôle de chef de projet et du leadership qu’il doit avoir par rapport à l’équipe.

La seconde partie évoque les « savoir-faire » spécifiques au rôle du chef de projet : spécifications, décisions et communication.

La troisième partie traite le management. Le management est avant tout affaire de Leadership et de confiance.

Bien que le plan montre une certaine structure, le propos en a globalement assez peu. Le livre se présente d’avantage comme une longue causerie de l’auteur, celui-ci souhaitant partager son expérience et son savoir-faire, qui sont certains. Il s’appuie aussi pour cela sur son expérience personnelle, et ses anecdotes (dont il est parfois la victime) illustre parfaitement le propos. Long, le livre l’est sans aucun doute, avec ses 340 pages pratiquement vides d’illustrations (on en a bien quelques une de l’auteur, faites à main levée, mais…).

La verbosité de l’auteur rend hélas l’ouvrage un peu long à lire, surtout en langue anglaise. Une version française existe, sur laquelle je ne peux me prononcer. Essayez-là, elle allège peut-être le poids d’une lecture par ailleurs instructive ?

art-project-management-oreilly

Vous pouvez également aller voir le site de l’auteur

Référence complète : The Art of Project Management – Scott Berkun – O’Reilly & associates 2005 – ISBN: 0-596-00786-8

The Art of Project Management

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

31 ans de « book of the year »

En réponse à Dimitri Baeli, je dévoile ici ma ma liste complète de “book of the year”. En voici les principes:

  • Il s’agit d’un livre que j’ai lu pendant l’année en question. Ce n’est pas nécessairement un livre édité durant l’année en question !
  • C’est une question de coup de coeur, en principe il fait partie des mieux notés de l’année, mis en fait je ne vérifie même pas ça ! C’est complètement subjectif et je ne cherche même pas à me justifier !
  • J’ai le droit de changer d’avis jusqu’au 31 décembre de l’année. Mais après c’est trop tard, c’est gravé dans le marbre.
  • Je peux avoir plus d’un book of the year ! C’est mon classement à moi, je fais ce que je veux.
  • Il y a toujours un book of year. Si je n’ai lu que des navets, c’est le moins pire qui gagne.

Bon après, il y a aussi des “books of the decade”. Si vous être sages, ce sera pour un autre post !

1981 : Cours de Basic, analyse et programmation – D. Lautier & J.P. Lerner – Masson

1982 : La pratique du TRS-80, volume II, compléments basic & programmation Z80 – Pierre Giraud & Alain Pinaud – Editions du PSI

1983 : Suites pour PC 1500 : 20 programmes en Basic – Jean-François Sehan – Editions du PSI

1984 : Le Pascal par la pratique – Pierre Le Beux & Henri Tavernier- Sybex

1985 : Programmation du 6809 – Rodnay Zacks & William Labiak – Sybex

1986 : Gödel, Escher, Bach: Les brins d’une guirlande éternelle – Douglas Hofstadter – InterEdition

1987 : Au cœur de l’Atari ST – Laurent Besle – Eyrolles

1988 : PostScript par l’exemple – Adobe systems inc. – InterEdition

1989 : La bible PC, 2nd édition – Michael Tischer – Micro Application

1990 : Le langage C – Brian W. Kernighan & Denis M. Ritchie – Masson

1991 : Développer avec Turbo Pascal pour Windows – S. Van Gelderen – Sybex

1992 : Programmer sous Windows 3.1, 3ème édition – Charles Petzold – Microsoft press

1993 : Le génie logiciel – Ian Sommerville – Addison Wesley

1994 : Effective C++ – Scott Meyers – Addison Wesley

1995 : Design Patterns, Elements of reusable object oriented software – Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides – Addison Wesley

1996 : OMT, Modélisation et conception orienté objet – James Rumbaugh, Michael Blaha, Frederick Eddy, William Premerlani & William Lorensen – Masson

1997 : MFC Programmation sous Windows – Jeff Prosise – Microsoft press

1998 : Applying Use Cases, a practical guide – Geri Schneider & Jason P. Winter – Addison Wesley

1999 : Mastering the Requirements process – Suzanne Robertson & James Robertson – Addison Wesley

1999 : Refactoring, Improving the design of existing code – Martin Fowler & al. – Addison Wesley

2000 : The Usability Engineering Lifecycle – Deborah J. Mayhew – Morgan Kaufman

2000 : Extreme Programming Explained: Embrace Change – Kent Beck – Addison Wesley

2001 : Peopleware: Productive projects and teams, 2nd edition – Tom DeMarco & Timothy Lister – Dorset House

2002 : Rapid Development, taming wild software schedules – Steve McConnell – Microsoft press

2002 : The Pragmatic Programmer: From journeyman to master – Andrew hunt & david Thomas – Addison Wesley

2003 : Agile Software Development: Principles, Patterns & practices – Robert C. Martin, with James W. Newkirk & Robert S. Koss – Addison Wesley

2004 : Enterprise Patterns and MDA, Building better software with Archetype Patterns and UML – Jim Arlow & Ila Neustadt – Addison Wesley

2005 : Effective Enterprise Java – Ted Neward – Addison Wesley

2006 : Project Retrospectives, a handbook for team reviews – Norman L. Kerth – Dorset House

2007 : Release it! – Michael T. Nygard – Pragmatic Bookshelf

2008 : More Joel on Software – Joel Spolsky – Apress

2009 : Scrum and XP from the Trenches, how we do Scrum – Henrik Kniberg – InfoQ

2010 : Scaling Lean and Agile Development – Craig Larman & Bas Vodde – Addison Wesley

2011 : Système Lean 2nd edition, penser l’entreprise au plus juste – James Woomaack & Daniel Jones – Village Mondial

Note de lecture : Système Lean, 2ème édition, par James Womack & Daniel Jones

Note: 9 ;La transition vers le Lean : en pratique (mon “book of the year 2011)

Que n’ai-je lu ce livre avant ? Pourquoi l’ai-je laissé prendre la poussière ? Passé mon enthousiasme initial, j’ai simplement mis le bouquin de côté attendant le jour propice pour me lancer dans une lecture qui s’annonçait rébarbative. La lecture n’a rien de rébarbative, les auteurs connaissent leur sujet, il savent comment le découper et le présenter, ils savent écrire … et ils savent raconter des histoires !

Je ne détaillerais pas les chapitres un à un . Le livre en lui-même est divisé en 3 parties.

La première partie « les principes de la démarche Lean » couvre 5 chapitres et totalise 83 pages. On y traite successivement de la valeur, de la chaine de valeur, du flux, du système tiré et de la perfection. Chaque chapitre étant une introduction au chapitre suivant. Cette première partie permet de comprendre les principes globaux qui guident Lean : ce qui est valeur contre ce qui est gâchis, pourquoi s’intéresser à la chaine de valeur complète depuis la matière première jusqu’au consommateur et donc la nécessité de passer à un système « tiré » ! La logique de raisonnement est limpide, seul le 5ème chapitre détonne un peu et est un peu moins fluide dans sa compréhension.

Dans la seconde partie « de la théorie à la pratique », les auteurs couvrent des exemples de transition vers le Lean. Il s’agit de loin de la partie la plus passionnante de l’ouvrage. On y voit concrètement et de manière magistralement racontée la façon et les personnes ayant conduit à ce changement. Des anecdotes émaillent les récits et l’histoire des entreprises y est même racontée. Afin d’éclairer le sujet, les auteurs ont couvert de très diverses typologies d’entreprises : depuis l’entreprise familiale, à l’entreprise de moyenne taille jusqu’au géant industriel. Puis afin de couvrir la diversité culturelle, ces 3 exemples sont complété d’un cas de figure Allemand (Porsche en l’occurrence) et d’un cas au Japon. Ces 160 pages passent vraiment très vite !

La troisième partie qui couvre 65 pages sur 4 chapitres sert de synthèse et de conclusion au livre. Elle reprend les éléments de la seconde partie pour en tirer des leçon et des tendances.

Même s’il couvre uniquement le volet « système de production » du Lean, cet ouvrage est sans doute le premier que je lis qui m’a permit de toucher du doigt la véritable nature de l’approche Lean. Les récits sont édifiants à cet égard.

Le seul véritable reproche que je puis faire est que les parties 1 et 2 n’ont guère été retouchées depuis la première édition, c’est à dire depuis 1996 ! C’est bien dommage, car il aurait été intéressant de poursuivre chaque histoire jusqu’à la traversée de la bulle Internet, alors que le récit s’achève ici avant le véritable avènement du Web. Cet dimension n’est d’ailleurs jamais évoquée dans la seconde partie. Ce livre n’est par ailleurs pas un livre de recette de mise en place du Lean, il n’a pour but que de faire comprendre la nature fondamentale de cette approche. Ce n’est pas facile car ce mouvement est très souvent mal compris et dévoyé, je pense donc que cet ouvrage devrait être la lecture préalable à la mie en œuvre des outils Lean.

Une excellent lecture que je recommande fortement et a mérité son label « book of the year » !

systeme-lean

Référence complète : Système Lean, 2ème édition, penser l’entreprise au plus juste – James Womack & Daniel Jones – Village Mondial 2005 (V.O. : Lean Thinking ; Simon & Schuster 2003) – ISBN : 2-7440-6136-0

Système Lean, penser l’entreprise au plus juste


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

Note de lecture : The Clean Coder, A code of conduct for Professional Programmers par Robert C. Martin

Note : 8 ; Les enseignements de 40 ans d’expérience

Ce livre se veut la suite du « clean code » parut dans la même collection. L’approche de l’auteur y est différente, car il y parle de son expérience personnelle, de ses réussites mais surtout de ses échecs ! Ce livre, écrit sur le ton de la confidence est vraiment très agréable à lire. Le propos se rapproche beaucoup de celui du « pragmatic programmer » : que devez-vous faire pour vous comporter en vrai professionnel du développement ? J’avoue que je préfère le livre d’Andy Hunt et Dave Thomas, mais celui-ci apporte nombre d’enseignements avec lesquels je me sens en phase, même si uncle Bob vend ici son « software crafmanship » et qu’il s’agit somme toute d’un autre exercice tournant autour de son ego…

Le livre comporte 14 chapitres totalisant 185 pages. C’est donc un ouvrage assez court.

Les 3 premiers chapitres tournent autour de l’éthique du travail : qu’est-elle, quand doit-on savoir dire « non » et qui signifie réellement dire « oui ».

Les chapitres 4 à 7 sont focalisés sur le cœur des pratiques de développement. Certaines des idées mises sont curieuses, comme l’idée d’éviter l’état de concentration intense pour développer (le « flow ») ! Par contre l’idée de la pratique et des « coding dojos » sont elles, intéressantes.

Les chapitres 8 à 10 ont trait aux pratiques projet : stratégies de test, gestion du temps et des estimations. On n’y trouve pas grand chose de nouveau, du moins qui n’ait été développé ailleurs (dans les ouvrages de McConnell ou de Mike Cohn, par exemple). Mais le propos reste plaisant.

Enfin les chapitres 11 à 14 sont relatifs aux pratiques d’équipe : gestion de la pression, collaboration ou mentoring.

Le livre ne recèle pas d’apport nouveau. Il s’agit plutôt d’un condensé d’idées reprises d’ailleurs. Souvent synthétisées, par fois avec des raccourcis. Le livre conviendra aux praticiens agiles lisant peu, pour qui ce texte court et facile à lire donnera de nombreux pointeurs vers les différents sujets constituant le quotidien du projet, tout en donnant un guide pour ce qui est du professionnalisme du développeur.

clean-coder

Référence complète : The Clean Coder, A code of conduct for Professional Programmers – Robert C. Martin – Prentice Hall / Robert C. Martin series 2011 – ISBN : 978 0 13 708107 3

The Clean Coder: A Code of Conduct for Professional Programmers

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

Note de lecture : Présentation Zen, par Garr Reynolds

Note : 7 ; Transformer des présentations ennuyeuses en expérience émotionnelle !

Ce livre est à l’image du Zen dont il s’inspire : il donne un message simple et pourtant difficile à décrire ! Je ne vais essayer de décrire par la table des matières ce livre de 220 pages, mais me contenter d’une description générale.

Tout d’abord, le livre lui-même : il fait 220 pages, mais est très loin d’être couvert de texte. Il se lit donc plutôt rapidement. En fait, le livre expose par lui-même les conseils que l’auteur veut faire passer : simplicité, clarté, pureté, élégance. Nous avons donc à faire à un livre à la mise en page soignée, imprimé en couleur sur papier glacé ! Les principes et conseils de l’auteur sont abondamment illustrés. Très abondamment illustrés ! Et c’est une bonne chose.

Le contenu lui-même, maintenant. Le principe des « présentations zen » est en fait très simple, il se résume en gros comme suit :

  • Les présentations doivent être belles, simples et élégantes.
  • La présentation ne doit pas être redondante avec la prose du présentateur. Evitez les diaporamas remplis de texte, avec des listes à puce (comme ici). Si nécessaire on peut distribuer un document papier complémentaire à l’auditoire (avec des listes à puce ici, donc finalement ça va).
  • Une présentation doit être préparée et scénarisée, comme l’est une performance scénique. Car c’est une performance scénique.
  • Un visuel est une aide qui doit agir au niveau émotionnel. Ce n’est pas un document. Un visuel sans la prestation du présentateur ne sert à rien.

L’ouvrage décrit et développe les quelques principes que j’ai maladroitement retranscrit ici. Il y a de nombreux conseils, mais surtout la volonté de faire passer un état d’esprit, une idée de ce que doit être une présentation réussie. C’est sans doute pour cela que ce livre est difficile à décrire : c’est d’avantage une source d’inspiration que des recettes de cuisines.

Si vous vous livrez parfois à des présentations en public, ou à des formations, ne passez pas à côté de ce livre : je pense et j’espère qu’il vous inspirera, comme il l’a fait pour moi !

presentation-zen

Référence complète : Présentation Zen, pour des présentations plus simples, claires et percutantes – Garr Reynolds – Pearson 2008 (V.O. : Presentation Zen : Simple Ideas on Presentation Design and Delivery, ISBN : 978-0-321-52565-9) – ISBN : 978-2-7440-2270-8

Presentation Zen: Simple Ideas on Presentation Design and Delivery


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

Note de lecture: Liferay in Action par Richard Sevoz Jr

Une bonne introduction au développement d’application sur Liferay avec les outils Liferay.

Ce genre d’ouvrage destiné à décrire le « how to » d’une plateforme spécifique est souvent un livre de commande, et par conséquent d’un style sinon laborieux du moins peu enthousiasmant. La bonne surprise est que ce n’est pas le cas ici. Richard Sevoz sait écrire et son style contribue grandement à rendre agréable une lecture qui serait sinon d’un style assez aride.

Un autre point aussi assez important : on n’en prend pas pour trop cher ici ! Le livre se limite à 300 pages auxquelles il faut rajouter les 50 pages d’annexes. Celles-ci fourmillent de matière intéressante sur les API, l’IDE, etc… Le texte en lui-même est découpé en 10 chapitres regroupés en 3 parties.

La première partie « working with Liferay and Portlets » est constituée de 2 chapitres et couvre 60 pages. Cela couvre la découverte de la plateforme Liferay (au chapitre 1) à la réalisation d’une Portlet « hello world » au chapitre 2. Ce faisant on découvre comment Liferay structure un site et la mise en place de l’environnement de travail. C’est simple et progressif, mais certains aspects (surtout sur la structure du portail) sont passés un peu rapidement !

La seconde partie « writting applications on Liferay’s plateform » couvre 5 chapitres totalisant 140 pages. C’est le cœur de l’ouvrage. Le chapitre 3 se focalise sur l’écriture d’une Portlet « data driven » en utilisant les outils et frameworks spécifiques à Liferay. Au chapitre 4 on met en place un MVC qui est là aussi un Framework spécifique Liferay. Le chapitre 5 consacré aux Layouts et Thèmes est à mon avis raté : il est confus et rentre peu dans la matière. A mon avis cela aurait mérité une partie spécifiquement consacré à cela, quitte à réduire sur d’autres aspects. Le chapitre 6 consacré à l’interfaçage avec des sites sociaux est asse original, même si les exemples ne sont guère convaincants. Cette seconde partie se conclue par un chapitre consacré aux API de collaboration : discussions, rating et assets. Le sujet est couvert un peu rapidement mais on moins on met le pied à l’étrier !

La troisième partie « customizing Liferay » est longue de 100 pages couvrant 3 chapitres. Elle adresse les aspects avancés de Liferay, et n’est donc pas un aspect obligatoire : Le chapitre 8 couvre les « hooks permettant de personnaliser le comportement par défaut de Liferay. Un aspect qui nécessite la plus grande vigilance ! Le chapitre 9 traite des « ext » plugins. C’est un aspect que l’on préfèrera certainement éviter, mais il est utile de savoir que c’est là et qu’on peut l’utiliser ! Enfin le chapitre 10 propose de faire le tour des API Liferay les moins utilisées afin de ne pas rater certaines des possibilités méconnues de la plateforme.

Le focus de ce livre est clairement de développer sur Liferay avec les outils et frameworks de Liferay et uniquement cela. C’est intéressant car complémentaire dans l’approche avec le « Portlet in Action » sorti au même moment. D’un autre côté beaucoup des outils et frameworks présentés semblent d’un autre âge : le MVC semble assez pathétique, pour ne pas parler du Velocity qui se marrie avec un Javascript qui nous plonge 10 ans dans le passé ! Et je parle même pas du build avec Ant ! Sur ce point d’ailleurs, l’auteur semble … disons conservateur car une chaine de build avec Maven semble exister !

En conclusion : on ne perd pas son temps avec ce livre. C’est une très bonne introduction à Liferay et en connaître les outils est utile, quitte à les abandonner. Pour aller plus loin, on préfèrera le « Portlet in Action » et on s’intéressera globalement aux frameworks et outils de build plus au goût du jour !

liferay-in-action-manning

Référence complète : Liferay in Action – Richard Sevoz Jr – Manning 2011 – ISBN : 978-1-935182-82-5

Liferay in Action: The Official Guide to Liferay Portal Development


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