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.
TDD sur page blanche
Oaz » 16 août 2007, 07:18 - En français
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.
aucun commentaire Lire la suite
Conception émergente
Oaz » 10 août 2007, 12:10 - En français
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.
aucun commentaire Lire la suite
Pod pod pod pod
Oaz » 9 août 2007, 23:55 - In English
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!
Les exigences non satisfaites, le cancer du logiciel
Oaz » 27 juin 2007, 02:29 - En français
Certains jours, l'interprétation que l'on peut avoir de ces graphiques prend une saveur assez particulière...
un commentaire un rétrolien Lire la suite
XP Day France 2007
Oaz » 21 mars 2007, 14:01 - En français
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.
SIGMAT 2.0
Oaz » 16 mars 2007, 23:45 - En français
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 ?...)
MOE et MOA sont dans un bateau
Oaz » 8 mars 2007, 00:57 - En français
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 ?
Scrumification
Oaz » 13 janvier 2007, 02:23 - En français
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...
Accusé, levez-vous !
Oaz » 22 décembre 2006, 01:12 - En français
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 ?
Y-a-t-il un chef dans le projet ?
Oaz » 21 décembre 2006, 02:01 - En français
5 commentaires 2 rétroliens Lire la suite
The Time Dilation of an Ideal Day
Oaz » 17 novembre 2006, 01:02 - In English
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.
Exprimer ses besoins
Oaz » 12 novembre 2006, 22:30 - En français
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.
Black-box project management
Oaz » 3 novembre 2006, 22:06 - In English
Years ago, I was appointed software project manager for the first time. Being a software developer, I intuitively knew that I should be careful with scope, cost and dates issues. I was reluctant to draw a full gannt chart too early in the project because I suspected that people would rely too heavily on it. The projects director I was reporting to told me : "This is not a way to run a project. You must list every task for the project, estimate them and put them in the chart then you will get a release date. From there you will start tracking the team progress". I complied with the order.
Any experienced project manager obviously knows what happened : as the first tasks were not completed on time, the release date started to slip.
The estimates were indeed very bad. Half of the developers had just graduated from university and relying on their estimates was the worst thing to do but the rookie project manager didn't know that.
Now imagine this project is a big black box with 3 levers...
aucun commentaire Lire la suite
QOTD
Oaz » 12 juillet 2006, 17:35 - En français
I mentioned an example of agile effectiveness in terms of Visa.
The waterfall example is to have to go to the bank for a loan, fill out forms in a meeting, reschedule for approval, and sign off on contract. On the other hand Visa lets the borrower make the decisions about how much and how often within a predetermined limit.
People go for Visa because it allows for iterations that are self determined, and very frequent compared to a bank loan process.
Il reste à se demander qui est l'équivalent de Cofidis, Sofinco et Finaref...
Dis moi comment tu codes, je te dirai qui tu es
Oaz » 11 juillet 2006, 18:33 - En français
Je reviens ici sur cette pratique qui me parait essentielle car elle permet d'en dire bien plus long sur une personne que la stricte évaluation des compétences techniques.
Comment être vraiment sûr de recruter un mauvais ingénieur informatique
Oaz » 25 juin 2006, 00:30 - En français
Malheureusement, ces règles ont un défaut. Elles laissent transparaître, de manière diffuse, un des travers que l'on retrouve de plus en plus souvent chez les agilistes : la croyance que constituer une équipe de développement consiste principalement à réunir un ensemble de personnes très ouvertes au dialogue et capables d'acquérir les connaissances qu'elles n'ont pas.
Je propose donc ici quelques règles supplémentaires qui peuvent permettre de se laisser définitivement phagocyter par cette idéologie.
Que fait-on dans la dernière itération ?
Oaz » 24 juin 2006, 00:10 - En français
S'il est vrai que la dernière itération peut avoir un statut particulier (le RUP parle, par exemple, de phase de transition), on peut légitimement se demander si les activités de test et de correction de bugs décrites dans cet article y ont véritablement leur place. J'ai abordé ce point en commentaire sur le billet de Claude Aubry mais, en réfléchissant un peu, je me suis dit qu'il y avait matière à creuser un peu plus le sujet.
3 commentaires un rétrolien Lire la suite
Jardiner agile n'est pas si facile
Oaz » 13 juin 2006, 06:59 - En français
Je n'ai pas pour habitude d'aller chercher des exemples d'agilité ou de non-agilité dans des domaines qui n'ont qu'un très lointain rapport avec le développement logiciel mais, sur ce coup, le discours de certains protagonistes m'a inévitablement fait penser à quelque chose de connu.
aucun commentaire un rétrolien Lire la suite
To Fix or Not to Fix : That is the Question
Oaz » 12 juin 2006, 20:41 - In English
I must confess that I had not fully understood the arguments in his first post. Indeed, one of the biggest misconception in software development is that bugs don't need to be prioritized just like any other feature.
That being said, it is a wise decision to let the business, the customer or the product owner, decide if the development team should implement new features or fix a few more bugs. Now the problem is : does the business have enough information to make a good decision ?
« billets précédents - page 4 de 5 - billets suivants »


Commentaires / Comments