jeudi 26 juin 2008

Extreme Programming Adventures in C#

Extreme Programming Adventures in C#,par Ron Jeffries

Ou les aventures informatiques de Ron en C#! Pourquoi une aventure? car il ne connait pas C# et va le découvrir au cours du projet. Prenant prétexte de développer une application de type XML Notepad avec Visual Studio, on va suivre la pensée de l'auteur et voir comment ses pratiques XP l'aident à avancer:

Plus que de la conception émergente, on assiste aussi à de la connaissance émergente!

L'approche XP de faire aussi simple que possible

Everything should be made as simple as possible, but not one bit simpler, A. Einstein

est particulièrement pertinente dans un contexte de découverte d'un nouvel environnement et/ou d'un nouveau language: La construction se fait au fur et à mesure que l'on avance dans le projet et dans la connaissance du C#.

Pour les tests utilisateurs, il nous fait une belle démonstration de l'importance des tests et non d'un framework de tests. Même si la solution est très contextuelle, elle est simple, adaptée au problème et sa conception a évoluée avec le code lui-même. Efficace.

Il nous livre également une expérience intéressante sur la stabilité du code fasse au changement: une fonction Undo arrive assez tard dans les demandes utilisateur. Une question se pose alors: Est-ce qu'une conception amont intégrant cette fonctionnalité aurait été plus pertinente?
Une première implémentation arrive assez rapidement au détriment de l'efficacité. L'utilisateur est content mais le développeur moins et prévoit donc une étape d'optimisation de la solution.
Après quelques faux départs s'appuyant sur de la conception papier, la solution d'optimisation apparaitra simplement par itérations sur la solution initiale.

Toutes les pratiques XP ne sont pas utilisées puisqu'il travaille seul et est son propre client, mais on assiste tout de même à quelques séances de pair programming et à ses doutes lorsqu'il travaille seul.

Concernant le Refactoring, l'essentiel de sa pratique est de supprimer la duplication de code

"Once and only once" de martin Fowler

"Don't repeat yourself" (DRY) des Pragmatic Programmers

Ce n'est donc pas un livre pour apprendre le C# mais bien pour voir de l'extreme programming en oeuvre dans un contexte certe un peu particulier qui apporte un éclairage différent.

samedi 7 juin 2008

Implementing Lean Software Development: From Concept to Cash

Implementing Lean Software Development: From Concept to Cash

Second livre de Mary et Tom Poppendieck, qui font partie des premiers théoriciens du mouvement agile dans le développement logiciel. Ce livre est à la fois pratique car il donne des pistes pour un amorçage lean mais également théorique pour permettre de comprendre les fondements de lean.

Le livre est quelques fois un peu répétitif même si les éclairages sont différents. Mais globalement, il est très intéressant avec les "Try this" de chaque chapitre, les mythes de chaque valeur, la roadmap pour démarrer.

Je serais interessé de savoir si quelqu'un a lu leur premier livre "agile tool kit" et s'il est complémentaire à celui-là?


Laurent Morisseau, auteur de ce blog, pour me contacter