BodySplash.fr

Aller au contenu | Aller au menu | Aller à la recherche

samedi 20 novembre 2010

Bilan Agile Tour Bordeaux 2010

Je m'y prend bien tard, mais je me colle enfin à faire mon petit bilan de l'agile tour bordeaux, en tant qu'organisateur/orateur/spectateur. Je le fais bien sûr uniquement car je ne peux décemment pas faire mon retour sur l'Agile Tour Toulouse avant celui de Bordeaux :)

city_11.jpg

Organisateur

Le fait de nous y prendre très en avance ne nous a pas vraiment empêché de frôler plusieurs fois la catastrophe :)

Le programme a été très dur à monter : mélanger des sessions d'1h30, d'1h et 2h, c'était vraiment un sacré casse tête si on ne veut pas forcer les gens à rester dans la même salle toute la journée. Du coup, nous avons du mettre en concurrences certaines sessions que nous aurions préféré pouvoir proposé en suivant. Je pense qu'il va falloir que l'on revienne à un format plus homogène. Trouver un équilibre dans le niveau des sessions est également toujours un beau défis, mais l'agilité étant fondamentalement simple à apprendre mais excessivement difficile à digérer, je ne pense pas que l'on puisse vraiment proposer des sessions soit disant "pour experts". Soit on a la culture agile, et donc on sait que tout au plus, on va trouver à l'agile tour des pistes à creuser, soit on est au début du chemin, et dans ce cas l'agile tour va tenter d'insuffler les prémices de cet état d'esprit. L'Agilité s'acquiert sur une longue durée, et une journée comme l'Agile Tour ne peut en aucun cas remplacer un travail d'expérimentation et d'apprentissage de longue haleine.

Nous avons eu pas mal de demandes de sponsoring comme ça s'est vu. Je tiens bien à souligner que nous avons gardé une indépendance totale vis à vis d'eux: être sponsor ne donnait en aucun cas le droit de faire pression d'une quelconque manière sur le contenu de la journée. Le soucis du coup a plus été l'effet défilé pendant le mot du matin, nous verrons bien comment régler le soucis la prochaine fois.

Orateur

at2010speaker.jpgJe suis assez satisfait du retour d'expérience que Michael et moi avons animé. J'ai déjà écrit un retour à ce sujet sur le blog d'Arpinum, je ne vais pas trop y revenir. La difficulté tenait dans l'angle à adopter pour ce retour, car résumer 3 ans en 1h n'est vraiment pas évident. La vidéo, scindée en deux parties, est disponible avec les autres sur vcasmo.

Spectateur

Comme on peut s'en douter, je n'ai pu voir voir grand chose, ce qui est excessivement frustrant. J'ai tout de même eu l'occasion d'entamer quelques conversations intéressantes, même si parfois un peu écourtées.

Kata marrant, par la paire Gaillot/Perret :

Je ne pensais pas pouvoir autant rire devant un kata. J'ai eu littéralement mal aux côtes en les regardant. Il est juste dommage qu'il y eu une grosse baisse de régime au bout d'un certain temps, mais dans l'ensemble, c'était juste énorme. L'idée était donc de jouer un kata classique, mais y ajoutant toutes les 5 minutes des contraintes inventées par le public en les piochant au hasard. Cela a entrainé des moments épiques que j'aurais vraiment du mal à décrire correctement ici. Le reproche qui a été fait à cette session est que passé le côté fun, finalement elle ne servait à rien : impossible de convaincre un timide du tdd de se mettre à l'utiliser, et les vieux routiers ont bien ri mais n'ont rien appris. Personnellement, je ne suis pas d'accord. Déjà, il se trouve que si, une personne dans la salle a découvert le TDD par cette session, et a été bluffée. Ensuite, cette session je trouve a servi d'une sorte de piqure de rappel : il FAUT s'amuser en travaillant. L'opposé du travail n'est pas le jeu, mais l'oisiveté. S'amuser en travaillant est indispensable pour le rendre intéressant, et par la même nous permettre d'être plus productif, plus créatif et nous faire prendre le recul nécessaire à mieux appréhender les situations. L'auto-dérision, la curiosité et le

Stubs et mocks montent sur scène :

Voilà un atelier original animé par le très toulousain Olivier Azeau. L'idée est de faire jouer les différents composants intervenant dans un développement piloté par les tests par des personnes réels, permettant ainsi de mieux mettre en évidence leurs rôles, interactions et motivations. Honnêtement, je n'ai jamais attaché une grande importance à faire la différence entre les différents doubles de tests, et cette session m'a inculqué ce savoir sans douleur.

Bref

Et, voilà tout ce que j'ai pu voir. Le reste du temps, j'étais soit à l'accueil, soit en train de discuter avec quelques personnes, ce qui est d'ailleurs également un format fort intéressant. Cela me fait dire d'ailleurs que l'année prochaine il faudra vraiment que j'aille faire un tour à l'Open Space.

Je garde une bonne impression de cette journée : pas mal de monde, un beau lieu, des conférences que j'aurai toutes eu envi de voir, des conversations intéressantes et des gens sympas. L'Agile Tour est toujours l'occasion de croiser pas mal de monde que je ne vois pratiquement que là, comme la très sympathique équipe toulousaine qui je l'espère se reconnaitra :) . Nous allons bien sûr réfléchir à comment améliorer encore l'expérience l'année prochaine, et tous les retours sont les bienvenues à ce sujet là.

vendredi 17 septembre 2010

Frameworks productifs

J'aimerai ici faire un billet pour faire une petite mise au point. Les frameworks "productifs" type RoR, Grails, Play! et j'en passe ont clairement le vent en poupe. L'idée au combien louable, est bien sûr d'automatiser au maximum les tâches rébarbatives du développeur lorsqu'il s'attaque à une application web. J'imagine que toute cette mouvance a pu naître d'un écoeurement bien naturel vis à vis des piles ou frameworks plus anciens, comme Struts, toute la pile JEE et même ASP.NET avec ses bons vieux WebForm.

Ce qui me chagrine dans l'histoire, c'est que philosophiquement, je suis de tout coeur derrière ces idées de simplifications : je n'ai jamais pu encadrer le xml au kilomètre de Spring à l'époque, les Web Form me faisaient faire des cauchemars tant leur opacité était grande et je n'ai jamais été pour une multiplication des couches sans une grande nécessité.

Ceci dit, ne jetons pas le bébé avec l'eau du bain. Je m'explique. Pour paraphraser Eric Evans dans DDD, la complexité d'une application réside dans le métier qu'elle tente de représenter. Comment cela se traduit? Pour moi, cela veut dire que quelque soit les frameworks que j'utilise, ils ne devront jamais entamer ma capacité à modéliser le métier. Le succès, la richesse et l'efficacité de mon application dépendent essentiellement de ma capacité à capter la subtilité du métier. Comment mettre le maximum de chance de mon côté? En développant le modèle en isolation de tout autre considération, à l'aide d'une approche objet, d'un bon framework de tests unitaires et de bons outils de refactoring. La présentation, la persistence, le cache, tout le reste est superflu et doit le moins possible, voir pas du tout, impacter mon domaine.

Bref, après autant de blabla, voilà donc enfin ce qui me chagrine dans ce que j'ai pu voir des quelques frameworks productifs que j'ai essayé : ils sont invasifs. Le choix d'Active Record pour la persistance est une friction dans le développement du métier, car la persistance n'est alors plus transparente. Pour respecter le principe de responsabilité unique, vu que les "entités" gèrent la persistance, nous devons développer les véritables objets métier à part, et ils doivent agréger alors ces entités. Cela implique une complexification non négligeable du développement du domaine. Du coup, beaucoup des exemples que j'ai pu observer se contentent de montrer une application CRUD, avec un métier anémique contenu dans les contrôleurs, mais aucune application n'est réellement du CRUD au final.

La véritable productivité est liée à la maintenabilité, et la maintenabilité est très liée à l'isolation du métier (et aux tests bien sûr :) ). Oui du coup, avec cette philosophie en tête sur Tiron, nous n'avons pas choisi un de ces beaux frameworks à la mode, et nous avons du construire notre propre pile (jQuery/Restlet/Freemarker/Hibernate pour les curieux), et je pense que notre productivité actuelle en considérant la complexité du métier que nous devons gérer n'a pas à pâlir face à la concurrence.

P.S : je ne suis pas un expert de ces frameworks je l'avoue. Si quelqu'un peut me démontrer le contraire de ce que j'avance, j'en serai très heureux.

mercredi 17 mars 2010

Tiron

Je ne l'ai peut-être pas encore assez crié sur tous les toits, mais Tiron est sorti dans sa première version publique. Plus besoin de parler Du Projet, je peux maintenant officiellement l'appeler Tiron, même si le mot avait déjà du m'échapper. Ceci n'est bien entendu pas la fin, finalement en terme de rythme de développement, ça ne change pas grand chose pour nous, modulo bien entendu certaines nouvelles tâches très marranteS comme maintenir le site de présentation, faire le support et déployer la nuit. A ça bien sûr il faut ajouter les joies du marketing et de la communication, car c'est bien d'avoir un bon produit, mais c'est mieux si tout le monde le sait. logo tiron

Si vous avez suivi un peu ce blog, vous savez sans doute qu'un des objectifs premiers, avant même de penser à une exploitation commerciale, était de mieux nous former à l'agilité, et à XP en particulier. Et oui, il a plus de deux ans maintenant nous n'étions pas les extrémistes que nous sommes aujourd'hui. Même si nous avions déjà acquis un certain nombre de pratiques d'ingénieries, il nous manquait beaucoup du second côté de la pièce : la gestion du projet et la planification. On peut dire que de ce point de vue, l'objectif de Tiron est pleinement atteint. Nous avons non seulement très largement consolidés nos pratiques, mais nous avons également énormément appris sur la planification et la négociation avec le product owner. La particularité bien entendu du rythme de développement était que nous ne travaillons tous ensemble que deux demi-journées par semaine, et ce mode particulier a bien entendu beaucoup influencé Tiron. Tout d'abord, car le temps était très précieux, donc la priorisation par la valeur et toujours faire le plus simple qui fonctionne a été cruciale pour sortir quelque chose dans un temps raisonnable; ensuite nous avions du coup énormément de temps pour réfléchir sur nos décisions, ce qui n'était pas toujours un avantage d'ailleurs. Maintenant que nous avons une démarche commerciale, cette agilité sans concession nous fournit certains avantages sur la concurrence. Nous sommes réactifs, il n'y a moins de gaspillage (globalement toutes les fonctionnalités sont utilisées), et nos coûts de développement et d'exploitation sont inférieures nous permettant de pratiquent un prix plus attractif. screen1.png

La nouvelle grande difficulté maintenant est que l'équipe est seulement partiellement à temps plein, et synchroniser le travail fait "le soir" et le travail de la journée est assez épineux, sans compter les soucis de rythme soutenable et de diffusion de la connaissance.

Pour conclure, bien sûr nous attendons de voir le succès que va remporter notre logiciel, mais l'agilité est clairement ce qui nous a permis de sortir un produit de qualité, concurrentiel et dans un délais raisonnable par rapport au temps que nous avions. Je pense que c'est un bon début de preuve empirique pour dire que rien n'est utopique, que non l'agilité et XP en particulier ne sont pas un ensemble de pratique ou l'en prend ce que l'on veut : l'agilité fonctionne vraiment à son plein potentiel que par la synergie de l'ensemble de ses pratiques, et bien entendu par les valeurs de ce qui la pratique.

lundi 2 novembre 2009

Les deux écoles de TDD

Je ne sais pas pourquoi ces derniers temps, j'entend pas mal de retours comme quoi le refactoring serait ralenti par les tests unitaires. L'explication derrière cette affirmation douteuse est qu'il faut bien souvent modifier les tests en même temps que le code de production.

J'ai tendance à croire que cette idée bizarre est née d'une des deux écoles de TDD. Ces deux approches ont été bien décrites par Martin Fowler dans son article sur les mocks et les stubs.

Je vais me permettre de le paraphraser ici :

  • L'approche classique essaye d'utiliser le plus possible de vrais objets, et un "double" s'il est difficile ou gênant d'utiliser l'implémentation réelle (par exemple, l'envoie d'un mail)
  • L'approche par Mock va utiliser dans tous les cas des doubles de test pour tout objet ayant un comportement intéressant.

Pour qualifier ces deux méthodes, Mister Fabien parle de tests Boîte Noire et de tests Boîte Blanche.

Appliquer systématiquement une approche par mock implique une chose : on teste plus la chorégraphie de notre objet que ses résultats. Nous allons vérifier que tel méthode de tel mock a été appelé avec tel paramètre, et que si nous retournons tel valeur, alors notre objet va se comporter de telle manière. Ce faisant, nous liions inexorablement notre test avec l'implémentation sous-jacente, rendant par la même plus douloureux le refactoring, car il nous faudra effectivement changer les tests en même temps que le code de production. L'écriture des tests peut être fastidieux en plus, vu la quantité d'éléments à doubler (constat fait par exemple lors du JUG Bordelais sur le sujet

Dans une approche classique, comme nous testons la plupart du temps le comportement extérieur, nous nous moquons éperdument de l'implémentation, pour vu que le résultat soit bon, et nous passons également moins de temps à écrire nos doubles.

lundi 6 avril 2009

Scrum, c'est xp sans le côté geek

Je vais simplement ici vous conseiller de regarder la vidéo qui suit, (et merci à Fabien pour le lien). Le titre est provocateur, mais finalement assez vrai. Bref, je vous laisse en compagnie d'un des papas de l'agilité. Cliquez ici, si si.

jeudi 12 février 2009

Comment juger un développeur?

La question est classique, mais le débat est revenu plusieurs fois ces dernières semaines ou moi au d'autres collègues avons du faire passer quelques entretiens. C'est une question bien entendu très ouverte, donc je vous laisse vous défouler dans les commentaires :)

Très personnellement, je ne pense pas que l'on puisse juger quelqu'un à la somme de ses connaissances. Mieux vaut une tête bien faite qu'une tête bien pleine comme disait l'autre. Donc, contrairement à ce qu'on pourrait penser, même si par curiosité je vais demander, je ne vais pas attendre de quelqu'un qu'il sache tout de l'agilité, des principes SOLID, de DDD etc. etc. Je vais sans doute me moquer encore plus des connaissances encore plus techniques comme les détails d'mplémentation de tomcat ou ses différents connecteurs. Mais alors qu'est-ce qui importe? Ce qui importe, c'est que tous les éléments que je viens de citer peuvent s'apprendre. C'est donc mon premier grand point: savoir et vouloir apprendre.

Ensuite, à mon sens ce qui fait le plus la qualité d'un développeur c'est la qualité de son code. Oh la belle phrase. Qu'est-ce que ça veut dire? Essentiellement pour moi qu'il est maintenable. Comment rend on le code maintenable? Essentiellement en lui donnant du sens. Ca a peut être l'air tout con comme ça, mais j'ai très personnellement le sentiment qu'en France le code est très mal vue, et que globalement la grande majorité des formations que nous recevons sont à base de "le code c'est le mal, mais plus tard vous serez chef de projet et vous en ferez plus". A partir de là pourquoi dépenser des efforts dans quelque chose qui est apparemment par définition imbitable et chiant?

Mais je digresse, pour résumer en deux principes, voilà finalement ce que je recherche:

  • amélioration continue
  • donner du sens au code

Ce qui me plaît dans ces deux principes, c'est qu'ils permettent de juger tant les débutants que les vieux routiers. Une fois que ces deux qualités sont identifiées, il suffit d'estimer "l'avancement" sur le chemin. Par exemple, donner du sens au code commence par bien nommer ses variables, et continue (bien) plus tard par DDD.

vendredi 30 janvier 2009

Scrum vs XP le retour

Il y a quelque temps déjà, j'avais écrit un billet concercnant Scrum Vs XP. Peut-être l'avez vous lu, peut-être pas, mais l'essence de ce que je disais alors entre autre, était que je me méfiais de Scrum car il passait sous silence toutes les techniques d'ingénierie en se concentrant sur la gestion de projet. C'était un danger pour moi, car il me semblait, et me semble toujours, qu'il est impossible de réussir un projet agile sans les pratiques d'ingénierie qui vont bien. Comment travailler en itération si à chaque passage on ne fait que grossir la dette technique n'est-ce pas?

Je vous reparle de tout ça car il se trouve que Martin Fowler en parle aujourd'hui . Alors oui je vous link ça car vous vous en doutez, je suis fier d'avoir obtenu les mêmes concluions que Fowler :) Ceci dit, je vous le fait passer également car j'aime bien montrer que je ne parlais pas dans le vent, et que le phénomène que j'avais anticipé existe réellement. Fowler est plus dans le consensus que moi, et ne démonte pas Scrum. Mais personnellement, je maintiens ce que je disais: pourquoi choisir Scrum quand XP est complet et n'induit pas le risque d'oublier ou le planning ou l'ingénierie?

jeudi 29 janvier 2009

Moins d'idées reçus

Je vais ici faire bêtement de le résumé d'un résumé, mais allez jeter un coup d'oeil ici

Voilà? C'est fait? Bien. J'aime l'idée de casser le vieil adage qui consiste à croire qu'un bon travailleur/développeur/tout ce que vous voulez/ est bon parce qu'il reste jusqu'à pas d'heure, et/ou qu'il est capable de gérer plein de tâches en même temps:

If you switch attention from a primary task to a secondary one—from a program you're writing to an email that's just come in—the time it takes to complete the program increases by an average of 25%. Imagine the impact when many people now check email 50, 75, 100 times a day.

Je n'ai pas forcément grand chose à ajouter. C'est juste dans ma grande série du moment changeons le monde

lundi 12 janvier 2009

Intéressant

Sur le blog de Denis Dollfus, on peut trouver un petit test visant à mesurer le niveau d'agilité au sein de votre organisation.

Nous sommes d'accord pour dire que ce test n'est pas exhaustif, mais bon, c'est un commencement. Nous l'avons fait pour juger le niveau d'agilité du Projet, et nous avons obtenu... 100% ingénierie, 100% management.

Ça a tout de même quelque chose de rassurant de voir que nous sommes apparemment sur la bonne voie.

mercredi 31 décembre 2008

Changements

Voilà presque un an que nous travaillons sur "Le Projet", mais je n'en ai pas parlé depuis avril. Je vais corriger le tir en tentant un bilan de l'année.

Lire la suite...

vendredi 19 décembre 2008

Amazon EC2

J'imagine que vous en avez entendu parler, c'est le grand buzz ces derniers temps, j'ai nommé donc le "Elastic cloud computing" d'amazon, ou Amazon EC2 pour les intimes. Je suivais l'histoire de loin, sans trop m'y intéresser, mais il se trouve que depuis 2 semaines, je suis amené à "jouer" avec, et je dois dire que je suis vraiment vraiment vraiment impressionné par ce que je découvre. Je pense même pouvoir dire que la plate-forme EC2 est enfin le premier outil agile dans le milieu de la production.

La base

Alors pourquoi une telle déclaration fracassante? Laissez-moi vous introduire aux concepts d'EC2 si vous ne les connaissez pas encore. Je ne vais pas essayer d'expliquer le buzz word qu'est devenu cloud computing, et je vais juste dire que le but d'EC2 est de pouvoir sans friction instancier des serveurs à la volée. Une tâche qui auparavant était incroyablement pénible se voit ici réduit à une banale opération de routine ne prenant que quelques minutes. Oui en un instant il est possible d'avoir un serveur booté et opérationnel. Bien entendu, pour réussir cet exploit, le service s'appuie sur de la virtualisation, et si mes informations sont bonnes il utilise VirtualBox.

Alors Comment ça s'attaque?

Par défaut, pour jouer avec le service, Amazon livre un ensemble d'outils en ligne de commande qui permettent donc de faire toutes les opérations (recherche d'images, création d'images, instanciation, sécurité, assignation d'adresse, fermeture des serveurs etc etc). Il faut avouer que ce n'est pas forcément très sexy, et l'utilisation intensive de clefs ssh plus le fait que les ids générés par Amazon ne sont pas très "users friendly" n'améliorent pas vraiment la chose. Ceci dit, étant donné que pour fonctionner, ces outils appellent juste une api publique exposée via WebService, il n'a pas fallu longtemps pour que quelqu'un ne nous sorte quelque chose de plus fun : ElasticFox. Et alors là les enfants, on rentre vraiment dans une nouvelle dimension. Instancier un serveur se fait en deux clicks. Tout n'est pas encore possible par cet outil, mais pour 90% des tâches, il fait bien le boulot.

Agile nous disons-donc

Alors pourquoi est-ce que je dis que c'est un outil agile? Parce qu'il automatise une tâche jusqu'à alors fastidieuse et la transforme en une opération d'une telle banalité qu'elle se fait oublier. De plus, la politique de facturation du "Pay Per Use" est également un concept lié à l'agilité (on ne paie que ce qu'on consomme). L'outil essaye de s'adapter juste à nos besoins, et ne nous fait payer que ce que nous avons consommé. Dans le genre 0 gaspillage, c'est pas mal.

Limites

Cependant, tout n'est pas merveilleux. Niveau tarification, il faut bien se rendre compte que même si on paie en fonction de notre consommation, il existe un seuil à parti duquel il est plus intéressant de louer un "vrai" serveur. C'est un excellent outil pour absorber des besoins ponctuels sans perdre un rein, mais pour des besoins "fixes", les solutions standards restent moins cher. Si on a besoin pour des questions de redondance d'avoir deux serveurs physiquement différents, Amazon ne peut pas le garantir, on peut très bien avoir instancier deux serveurs sur la même machine sans le savoir.

Enfin, quand Richard Stallman dit quelque chose, j'ai tendance à être plus méfiant :)

vendredi 14 novembre 2008

Correction

En me relisant quelques jours plus tard, je me rend compte que mon précédent billet n'était pas particulièrement clair.

Je vais reprendre, si vous le voulez bien (et même si vous ne voulez pas d'ailleurs). L'idée d'origine du billet était de définir de manière générale ce qu'était un outil agile, en partant de la remarque que j'avais glané comme quoi maven serait anti-agile. Cette remarque m'avait un peu choqué, tant l'adoption de maven a réduit les frictions sur notre projet. Où se situait donc la différence entre ces deux avis? Dans notre cas, nous rencontrions des soucis de compilation, de déploiement et de gestion de dépendances. La convention de projet de maven, sa gestion native des cycles de vie et ses entrepôts nous ont permis de résoudre tous nos problèmes et simplifier grandement notre environnement. Dans le deuxième cas, le peu que j'ai pu juger est essentillement que l'équipe a voulu changer radicalement le comportement de base de maven. Je veux bien croire qu'il est difficile à configurer, mais dans ce cas je me suis demandé s'il était l'outil vraiment adapaté s'il demandait tant d'efforts à manipuler.

Ma conclusion, un peu classique comme je le disais, qu'un outil ne peut pas vraiment être jugé de manière générale comme étant agile. Tout dépend du contexte et des problèmes que l'on tente de résoudre. De plus, le mauvais choix d'un outil peut être un énorme générateur de gaspillage.

dimanche 9 novembre 2008

Outil agile

Au détour d'une conversation, un collègue nous a dit qu'il trouvait que Maven n'était pas un outil agile. Je dois avouer que je suis de plus en plus en grand suppprter de maven donc, forcément j'ai été choqué.

La raison évoquée était que quand on veut changer le comportement de base de maven, on rencontre beaucoup trop de résistance. Que ce besoin soit légitime ou pas, le fait est qu'effectivement maven était un frein dans ce cas. Mais l'agilité n'est pas une question d'outil. L'agilité est une question de s'améliorer et de réduires les résistences. Il n'y a pas d'outil magique, de balle d'argent, qui va permettre d'être agile du jour au lendemain. Dans notre cas, Maven a réduit la friction du processus de compilation et de déploiement, tout en nous permettant de gérer de manière plus saine nos dépendances. En gros, ça a été un franc succès, mais seulement je pense car nous avions expérimenté les limites d'Ant. Le grand intérêt de Maven, c'est justement ses conventions qui permettent de s'abstraire de beaucoup de la verbosité d'ant, pour ne parler que de la compilation. Enfin, il ne faut jamais oublier que tenter de tordre un outil ou d'essayer de l'utiliser dans une optique qui n'était pas la sienne n'est jamais une bonne idée.

Cette conclusion est assez conventionnelle, et on peut la lire finalement dans n'importe quel bon article sur l'agilité, mais il est, je trouve, toujours intéressant d'arriver par soit même aux mêmes conclusions.

mardi 30 septembre 2008

Le plus simple qui fonctionne

Laissez moi vous raconter aujourd'hui une petite anecdote qui, je trouve, cadre bien avec la recherche de simplicité du moment.

Il y a quelques années de cela, alors que je commençais à peine ma carrière de développeur, s'est posé alors un moi un problème normalement simple: je voulais que ma machine à café s'allume toute seule le matin pour me servir le divin breuvage dés le réveil. Je me met à réfléchir au problème, et je pense tout de suite à un minuteur ou une horloge intégrée à la machine. Je fais quelque recherche, et je tombe sur des modèles assez luxueux intégrant cette fonction. Bien entendu, ces machines faisaient beaucoup plus que je n'attendais, mais bon, je commençais à gagner ma vie, je me suis dit que tant pis, j'étais prêt à dépenser plus d'argent.

Le temps passe un peu, et un jour que je passe chez mes parents, je ne sais pas pourquoi, je soumet le problème à mon père. Il me tend alors tout simplement un programmateur journalier.

J'imagine que vous avez saisi le sens de l'anecdote, mais moi à l'époque, je suis resté scotché devant la "beauté" de cette réponse: simple, pas cher, et correspondant exactement à ce que je demandais. Je me sers encore de cette histoire régulièrement dans mon travail pour me rappeler l'essence ce que je cherche à faire: rester au plus simple.

samedi 20 septembre 2008

Question d'équilibre

J'aimerai aborder le sujet de scrum vs XP ici.

Je me bats contre cette vieille légende qui veut que Scrum couvre la gestion de projet, et XP le développement. Alors oui, Scrum ne couvre que la gestion de projet, mais XP couvre tout. Oui, oui, oui et encore oui, XP parle de gestion de projet, la preuve en image ou

Scrum je trouve, favorise cette vieille séparation développement/gestion tout en ignorant royalement l'importance de la mise en place de bonnes pratiques. Il se trouve qu'actuellement, je n'ai effectivement pas croisé d'environnement ou Scrum avait était mis en place seul, sans les pratiques issues d'XP pour le développement. Mais dans un futur pas si lointain que ça, quand l'agilité aura été reprise et vendue par des commerciaux ne voyant là qu'une offre de plus, je crains fort que l'importance de cet équilibre ne passe à la trappe. C'est pour cette même raison que le débat existe sur la certification Scrum.

XP est un tout cohérent, convaincu de la nécessité de ne rien délaisser: ni la gestion, ni le développement. De fait, XP me paraît plus agile que ne l'est Scrum. Dans le contexte ou il est encore difficile de vendre l'agilité, certains disent donc que mieux vaut vendre Scrum, la méthode fait moins peur. L'agilité était avant tout un changement radical de la manière d'envisager notre métier, et un ensemble de valeurs fortes, continuer à nourrir les fausses croyances me semble préjudiciable.

Ce que j'ai pu modestement observer jusque là, c'est qu'une adoption complète d' XP donne d'excellents résultats à tous les niveaux: qualité du projet, humeur et efficacité de l'équipe, sérénité globale etc etc; Une adoption par compromis ne donne qu'un sentiment mitigé chez tous les acteurs du projet, qui se demandent alors ou est ce fameux gain tant promis par l'agilité, car la différence n'est du coup, pas vraiment bluffante. La puissance d'XP est dans la synergie de TOUTE ses pratiques.

Pour conclure, ce qui m'attriste le plus dans cette histoire, c'est que nous devrions normalement nous concentrer à essayer de nous améliorer, plutôt que de juger de qui est le plus agile. Cependant, il me semble que ce grand virage vers l'agilité ne peut être entrepris par quelqu'un que s'il a toutes les cartes en main.

mercredi 30 avril 2008

Spring

Ah voilà quelques temps que je n'avais pas parlé du projet n'est-ce pas? Et bien il est temps de corriger cette erreur avec un petit billet rapide.

Lire la suite...

mardi 12 février 2008

Symposium DNG - Domain Driven Design

Bon, me voilà devant un billet bien difficile à écrire. Critiquer une conférence de Sami Jaber est un exercice périlleux, mais bon, je suis fou je tente ma chance.

Lire la suite...

mercredi 6 février 2008

TDD

Au détour d'un coin de web, je suis tombé sur un article intéressant de Patrick Smacchia

Lire la suite...

mardi 22 janvier 2008

Restons simple

Une pratique fondamentale d'xp est de garder le design simple.

Lire la suite...