XP Days 2006 France

XP Days 2006 France ont été deux jours de discussions intenses, de rencontre avec d’autres professionnels passionnés. Des présentations riches en contenu. Ces deux jours ont été épuisants, mais il n’y a pas mieux pour améliorer ses compétences personnelles. “Apprendre avec plaisir” serait un bon slogan. C’était la première fois que j’assistais à ce type d’évènement. Une révélation. Le rendez-vous est pris pour l’année prochaine.

Cuisine et Programmation

Musique et Programmation Les spécifications sont à la programmation ce qu’une partition est à la musique. La véritable performance ne se réalise qu’à partir du moment où l’on arrive à s’en détacher. Avez-vous déjà demandé à un ordinateur de jouer une partition de musique ? J’ai essayé, ça ne fonctionne pas. Avec du bon matériel, on obtient un air juste, mais sans âme, sans émotion. Un logiciel informatique n’est pas seulement le produit d’une activité rationnelle, c’est pour cette raison que la génération automatique d’un logiciel à partir d’un modèle UML ne fonctionne pas.

The psychology of computer programming

Par Gerald M. Weinberg, éditions Dorset house publishing Il s’agit ici de la version “Silver anniversary”. Apprenez comment il y a 25 ans, Gerald Weimberg formalisait l’“egoless programming”. Dans un monde où les technologies naissent et meurent en quelques années, on s’aperçoit que les règles psychologiques qui régissent l’activité de programmation sont bien toujours les mêmes. Gerald Weinberg est une référence dans le monde de l’édition d’ouvrage sur le génie logiciel.

Better, Faster, Lighter Java

Par Bruce A. Tate et Justin Gehtland, édition O'Reilly Un ouvrage pour aprendre à lutter contre les “big bloats”. La sur-ingénierie nous guette à tout les instants dans la création d’une application informatique. La simplicité est une valeur essentiel et indispensable.

Programmation délibérée

Avez-vous déjà vu un code où toutes les fonctions commenceraient par tester tous les paramètres reçus et qui retourneraient null si l’un des paramètres est null ? Ce type de code existe sûrement (Il est étonnant de constater que tout ce que l’on peut imaginer de plus horrible existe déjà), mais je ne l’ai jamais rencontré. J’ai par contre souvent lu du code où cette intention était présente. Cette pratique s’appelle de la programmation défensive.

Boucle "for" ou Boucle "while", laquelle est la plus rapide ?

Aujourd’hui, on m’a affirmé que les boucles While étaient plus rapides que les boucles For ! Cette affirmation m’a paru pour le moins étrange, et j’ai décidé de vérifier rapidement ce qu’il en était. J’ai fait ma petite expérience en Java. Expérience Voici le code source de l’expérience: public class LoopSpeedTest extends TestCase { private static final int VERY_BIG_NUMBER = 10000000; private static final int NOMBRE_ITERATION_EXPERIENCE = 1000; public void testForLoopSpeed() throws Exception { mesureTempsExperience("for", new Experience() { public void run() { for (int i = 0; i < VERY_BIG_NUMBER; i++) { } } }); } public void testWhileLoopSpeed() throws Exception { mesureTempsExperience("while", new Experience() { public void run() { int i = 0; while (i < VERY_BIG_NUMBER) { i++; } } }); } private void mesureTempsExperience(String nom, Experience experience) { List<Integer> resultats = new ArrayList<Integer>(NOMBRE_ITERATION_EXPERIENCE); int somme = 0; for (int indexExperience = 0; indexExperience < NOMBRE_ITERATION_EXPERIENCE; indexExperience++) { Chronometer.

The Pragmatic Programmer

par Andrew Hunt et David Thomas, edition Addison Wesley Que pourrait-on vouloir devenir quand on cherche à faire carrière dans le développement logiciel ? “Pragramtic programmer” nous trace un chemin et les conseils pour y arriver.

Design patterns par la pratique

par A. Shalloway et J.R. Trott, edition Eyrolles Un bon livre sur les design patterns, avec une introduction sur la nouvelle façon de faire de la conception objet depuis l’introduction de ces dernières.

Client sur site

Suite à la lecture du livre "Software Craftsmanship", je me suis fait quelques réflexions sur la pratique de "client sur site" proposé par XP. Le cycle en V connaît un défaut majeur : l’effet “téléphone arabe”. L’idée de diviser le travail de développement logiciel par spécialisation spec/dev/test en donnant la responsabilité de chaque spécialité à des “chefs” distincts produit un effet de téléphone arabe. En effet la première équipe, chargée des spécification, explore l’“idée” du logiciel et imagine une solution permettant de répondre à tous les besoins du client.

Une métaphore du binômage

Dans la littérature sur l’eXtreme Programming, on parle du rôle des membres d’un binôme en tant que “Pilote” et “Copilote”. Après trois ans de pratique je viens seulement de réaliser que ces termes font sans doute référence à une équipe de pilote de rallye. Dans la voiture, un des deux équipiers a le rôle du pilote et son travail est de “manipuler” la voiture le plus rapidement possible. Pour améliorer ses performances, il se décharge complètement de la gestion de l’itinéraire sur son coéquipier.