Développement logiciel et méthodes agiles

3 mars 2008

SigmaT 5

Un petit billet sur ce blog en sommeil depuis bien longtemps pour signaler que le vendredi 28 mars se tiendra la 5ème édition du Séminaire d'Information Gratuit sur les Méthodes Agiles de Toulouse.

Tous les détails utiles sont chez Claude.

23 septembre 2007

SigmaT 3 : épilogue

Le 3ème SigmaT s'est tenu vendredi dernier. Comme on pouvait l'espérer la session fut intéressante.

Lire la suite...

20 septembre 2007

Persistance

Depuis notre précédente livraison, notre logiciel peut être considéré comme acceptable pour une utilisation basique : lister le contenu d'un podcast audio, sélectionner un morceau et l'écouter. C'est là une des forces de l'agilité : fournir rapidement un système ayant une réelle utilité tout en garantissant que ce système va pouvoir aisément évoluer par rajout (sans douleur) de nouvelle fonctionnalités.
C'est ce que nous allons faire aujourd'hui pour continuer notre aventure de conception émergente. Le problème récurrent de notre utilisateur est qu'il doive sans cesse saisir l'URL de son podcast à chaque lancement du logiciel. Cela devient vite laborieux et son besoin le plus prioritaire est donc que le logiciel mémorise cette URL.

Lire la suite...

12 septembre 2007

Deuxième livraison

Nous sommes toujours dans la grande saga de l'été sur la conception émergente. Après l'intégration d'un second scénario, notre deuxième version du logiciel est sur le point d'être terminée.
Allons-nous y parvenir aujourd'hui ?

Lire la suite...

4 septembre 2007

Rentrée agile

Septembre, la fin de l'été (a-t-il vraiment commencé ?), la rentrée des classes...

Les agilistes du sud-ouest font aussi leur rentrée. Cela se passera le 21 septembre dans un amphi de l'université Paul Sabatier pour le 3ème "Séminaire d'Information Gratuit sur les Méthodes Agiles de Toulouse".
Toutes les informations utiles sont chez Claude Aubry avec entre autres le programme bien garni de cette rencontre. J'aurai, par ailleurs, le plaisir d'y faire une intervention sur la conception émergente.

2 septembre 2007

Nouveau scénario

La première version de notre logiciel étant livrée, nous allons attaquer la deuxième en rajoutant un scénario de sélection et écoute de podcast. Nous sommes face au premier vrai défi. Le secret de l'agilité, c'est d'écrire du code facile à modifier.
Ce nouveau scénario va nous donner l'occasion de vérifier cette affirmation et de voir, du moins l'espère-t-on, évoluer notre conception en conséquence.

Lire la suite...

24 août 2007

Finalisation avant 1ère livraison

Après avoir terminé l'implémentation de notre 1er scénario, nous sommes presque sur le point de pouvoir livrer une 1ère version de notre logiciel. Notre client ayant mis en évidence un cas d'utilisation non couvert par nos tests, nous allons nous empresser de rectifier le tir. J'entends déjà les esprits chagrins se lamenter "Voilà ce qui arrive quand on veut laisser émerger la conception au lieu de bien réfléchir avant de se lancer dans le codage !" J'ai envie de leur répondre que, permièrement, en se contentant de réfléchir sur papier, on a bien peu de chances de découvrir les cas limites. En l'occurrence, le client n'a vu le problème que parce qu'il avait le logiciel définitif devant lui et non pas des diagrammes à l'exécutabilité hypothétique ou une vulgaire maquette. Deuxièmement, moi, au moins, j'ai déjà un logiciel près d'être livré. Si j'avais passé mon temps à "concevoir" dans un état de pure abstraction, j'aurais gaspillé une bonne partie de mon temps.
Ceci étant dit, retournons au travail. Une URL invalide saisie comme source pour notre podcast fait planter le logiciel et cela n'est pas acceptable.

Lire la suite...

21 août 2007

Intégration

Troisième volet de la saga sur la conception émergente. Après avoir implémenté la logique de notre premier scénario, il est temps d'obtenir une première version utilisable de notre application. Pour cela, il suffit de donner corps aux composants d'interaction avec l'environnement du logiciel, l'interface utilisateur et l'accès à des documents XML, puis d'intégrer l'ensemble de nos composants au sein d'un exécutable. L'utilisation de TDD pour la réalisation de composants d'interaction externe est toujours un point délicat. Si le monde extérieur est lourd à simuler, les tests unitaires perdent de leur intérêt car le temps passé à mettre en oeuvre l'environnement de test devient prohibitif. En même temps, si les composants ne sont pas suffisamment testés, la mise au point de l'ensemble après intégration peut rapidement devenir fastidieuse.

Lire la suite...

16 août 2007

TDD sur page blanche

Après quelques considération d'ordre général sur la conception émergente, il est temps d'entrer dans le vif du sujet. Comme prévu, nous allons essayer de faire émerger la "conception" du code que nous allons écrire. Comme nous en sommes au début du projet, nous n'avons aucune base sur laquelle ancrer notre code mais ce n'est pas grave. L'essentiel est de faire un peu de conception sur papier -- suffisamment pour démarrer l'écriture d'un premier test. Le TDD fera le reste. Le premier scénario à implémenter est "L'utilisateur s'abonne à un flux de podcast et visualise la liste de ses éléments". Nous allons donc commencer par en proposer une représentation simple sous forme de diagramme de séquence, puis, nous implémenterons la logique de ce scénario à travers un ensemble de composants mis en évidence par le diagramme.

Lire la suite...

10 août 2007

Conception émergente

Le développement dirigé par les tests ou TDD, popularisé par eXtreme Programming, est une technique de développement logiciel très usitée au sein des personnes pratiquant les méthodes agiles. Son principe de base, "toujours écrire un test qui rate avant d'écrire le code qui permet de le faire passer", a pour avantage de focaliser l'attention du développeur sur l'écriture de code destiné exclusivement à remplir les fonctionnalités souhaitées pour le logiciel. Il participe ainsi à la mise en application d'un des principes du manifeste agile "Working software is the primary measure of progress".
Par ailleurs, son approche très séquentielle (un test après l'autre) et sécurisée (les tests déjà présents garantissent le bon fonctionnement de l'ensemble au fur et à mesure des modifications) fait écho à un principe non moins important : "Welcome changing requirements, even late in development".

Le TDD, de par son nom plutôt trompeur, est parfois considéré à tort comme une méthode de test. En réalité, il n'est rien de moins qu'une méthode de développement qui, par affinages successifs, guide la conception d'un logiciel.
Contrairement à d'autres méthodes qui prévoient une phase dite "de conception" où un grand nombre d'abstractions composant le logiciel sont imaginées et documentées en amont de l'écriture de code, le TDD favorise une conception au fil de l'eau au fur et à mesure que les abstractions recherchées apparaissent dans le code déjà écrit et testé. On parle alors de conception émergente.

Lire la suite...

9 août 2007

Pod pod pod pod

Thanks to Jeremy D. Miller I just discovered a place that is worth a web surf: Process, People, and Pods. Fred George started to blog less than a month ago and, in a few articles, he described the very nature of agile software development.
From agility inner secret to encounters of the third kind (of developers) and path to development wisdom, we go through all what we would like to tell about our jobs if we knew the words for that.

Oh, and did I tell you about the pods? You should really read those ones too!

27 juin 2007

Les exigences non satisfaites, le cancer du logiciel

Les Burndown Chart de Release fournissent un bon moyen de visualiser l'avancement d'un projet de développement logiciel à l'échelle de l'itération. Ils permettent d'estimer visuellement la bonne marche de l'équipe et ainsi d'anticiper les retards trop importants en modulant le contenu du projet.
Certains jours, l'interprétation que l'on peut avoir de ces graphiques prend une saveur assez particulière...

Lire la suite...

21 mars 2007

XP Day France 2007

XP Day France, manifestation consacrée à XP et à l'agilité, va voir sa 2ème édition se dérouler les 2 et 3 mai prochains.

Pour diverses raisons personnelles, je n'y serai pas mais je relaie ici l'information car, suite à ma participation au 2ème SIGMA Toulouse, je suis de plus en plus convaincu que de tels évènements auraient intérêt à se multiplier si les professionnels du logiciels ne veulent pas rester englués dans des approches datant d'une époque révolue.

Je suggère donc à tous ceux qui ont la possibilité de s'y rendre, qu'ils soient chefs de projet, manager ou simple développeur de ne pas manquer le rendez-vous. Ils auront une occasion unique de dialoguer avec des personnes qui peuvent vraiment leur apporter une vision différente et efficace d'envisager leur pratique professionnelle.

16 mars 2007

SIGMAT 2.0

Le deuxième SIGMAT a eu lieu aujourd'hui et je suis vraiment très content d'avoir pu y participer autant comme intervenant que comme membre de l'auditoire.

J'ai tout particulièrement été surpris que plusieurs personnes fassent le déplacement à Toulouse depuis Montpellier ou Bordeaux pour parler d'agilité pendant quelques heures. Cela me conforte dans l'idée que je ne suis pas seul à penser qu'il y a du bon dans les méthodes agiles et que les idées qu'elles véhiculent gagneraient à être mieux médiatisées dans les métiers du logiciel.
Ma conclusion est sans appel : expérience à renouveler.

Je joins ici les slides de ma présentation qui, je l'espère, n'aura choqué personne en ce qui concerne les traits parfois un peu poussifs utilisés pour décrire les principes agiles (mais qui est donc ce dingue qui veut transformer les développeurs en kolkhozniks ?...)

Lire la suite...

8 mars 2007

MOE et MOA sont dans un bateau

Un excellent billet de Claude Aubry sur les notions de "Maîtrise d'ouvrage" et "Maîtrise d'oeuvre" dans un monde agile me donne l'occasion de parler d'un syndrome assez fréquent dans le monde du développement logiciel : celui de l'emprunt abusif à d'autres disciplines.

Wikipédia l'explique très bien : MOA et MOE sont des termes empruntés au secteur des Travaux publics.

Alors, pourquoi ont-ils débarqués dans le logiciel ?

Lire la suite...

13 janvier 2007

Scrumification

Dans le cadre de mon activité professionnelle, j'ai toujours appliqué une démarche de dissémination de pratiques agile dans un processus existant, ce qui produit en pratique des méthodes de travail un peu bricolées et spécifiques à un contexte donné.

En ce début d'année, je change un peu mon fusil d'épaule. Ce changement n'a rien de dogmatique et découle plutôt d'une démarche opportuniste. Il est des contextes où les changements que peuvent apporter de légères orientations un peu plus agiles obtiennent de très bon rendements. Il en est d'autres où les mêmes changements apportent moins que ce que l'on espérait : il faut alors savoir se poser les bonnes questions...

Lire la suite...

22 décembre 2006

Accusé, levez-vous !

Hier, je parlais de l'article de Valtech Mag sur le chef de projet agile et de l'utilité d'une telle notion. Le hasard a fait que je lise ce soir un billet de Tom Looy sur le DDR : "Développement Dirigé par la Responsabilité" (ou ADD : Accountability Driven Development en version originale).
Le hasard faisant, selon la formule, toujours bien les choses, Tom Looy apporte une réponse à une des questions que je me posais : qu'est-ce qui pousse les gens à encore raisonner en termes de chef de projet là où il n'y en a plus forcément besoin ?

Lire la suite...

21 décembre 2006

Y-a-t-il un chef dans le projet ?

Le Valtech Mag nous parle du chef de projet dans un fonctionnement agile. Le sujet mérite que l'on s'y attarde car, comme le dit à juste titre l'article "l’agilité est bel et bien en train de révolutionner le rôle du chef de projet".

Lire la suite...

17 novembre 2006

The Time Dilation of an Ideal Day

Ideal Day, Story Points, Load Factor, Velocity... Lots of concepts for a simple goal : predicting the amount of work that will get done for a given date. Anybody who went through this kind of measurement system probably tried to grasp its validity. Dave Churchville wonders "How long is an ideal day ?" in calendar time. Ed Gibbs rebounds on the difficulty that people have with story points when time units come more naturally.

I'm no exception. I used plain story points for a while but I recently started to trick this tool to get (I hope) a better matching between the developer estimates and the amount of work units.

Lire la suite...

12 novembre 2006

Exprimer ses besoins

Il y a quelques temps, dans un billet sur la qualité, j'ai mentionné le rôle que joue l'expression des besoins dans la réalisation d'un produit de qualité. J'y raconte comment les pratiques de XP on-site customer et small release permettent de s'assurer que les attentes exprimées sont les bonnes et que l'on n'en prend pas en compte un trop grand nombre simultanément.

Aujourd'hui, un billet de Claude Aubry qui explique le besoin de prioritisation des exigences lors de la réalisation d'un système m'incite à revenir sur le sujet en réfléchissant à la meilleure façon d'exprimer les attentes d'un client dans une approche agile.

Lire la suite...

- page 2 de 3 -