A la Poursuite du Code en Rouge

Affichage des articles publiés par Guillaume

Je suis allé au 17ème BarCamp parisien, sur le thème  « OpenWeb + Cloud + Geo + Social ». C’était à la fois un sujet que je suis de près et l’occasion de découvrir un BarCamp…

Pour résumer, je dirais que la philosophie est qu’un BarCamp est à une conférence ce qu’un wiki est à un site web. Comparons avec une conférence traditionnelle : liste d’orateurs et sujets déterminée, auditoire attentif, mais dont la participation se limite aux questions-réponses de clôture après chaque présentation.  Le BarCamp se veut participatif : chacun se présente rapidement, lance des mots-clés, et on essaie sur tableau blanc de constituer des groupes de travail ad-hoc autour d’un thème (démo, présentation, atelier, session de programmation).

Bon, ce que je constate c’est que même si la conférence s’auto-organise librement, ce sont les têtes d’affiche (évangélistes auprès des développeurs pour les APIs de google et de Mozilla par exemple), dont la présence avait attiré les foules, qui ont fait leurs présentations… certes de façon informelle, sans transparents, en face à face. Je suis un peu resté sur ma faim, car en allant à une conférence sur un sujet que l’on suit de près, eh bien on risque de s’ennuyer… Les sessions d’introduction à GWT ce n’était pas la peine, et la séance d’autocongratulation autour de FireFox son XUL m’a lassé. Je n’ai pas vu la suite, j’ai préféré passer ma soirée en famille qu’à partager des pizzas avec des hackeurs fous. Allez savoir, j’ai peut-être raté le meilleur moment… Il s’agit effectivement d’un évènement principalement social.

Le passage qui m’a intéressé était une table ronde autour d’un sujet que je ne connaissais pas : FOAF+SSL. Ça m’a rappelé l’époque ou je starteupais dans le web-sémantique… Habile transition : ma conclusion perso est que ce genre d’évènements est intéressant quand on est entrepreneur et que l’on veut réseauter, ou bien un développeur qui veut s’initier simplement à des nouvelles technologies. Sinon… je garde un faible pour les conférences avec de sympathiques papiers à lire et relire. Par exemple, tout de même, les PLoP, c’est quand même du bon stimulant neuronal !

Du management…

Un collègue m’a récemment envoyé un papier de Steven Kerr  »On the folly of rewarding A, while hoping for B« . Il montre que très souvent le discours officiel d’une organisation est de vouloir un comportement, tout en mettant en place un système de récompense/punition qui dans les faits pousse les gens à un comportement tout autre, voire opposé. Rolls Eyes Par exemple on demande à un joueur de sport collectif d’avoir « l’esprit d’équipe » et pourtant on ne félicite que les actions individuelles. D’ailleurs, on ne résume un match de football que par les noms des buteurs. Ainsi, agacé qu’un joueur fasse trop de passes à l’adversaire, un entraineur sanctionne chaque passe ratée ; au match suivant personne ne fait plus aucune passe et le jeu est bloqué. DOH!

Exemple parfait de contre-productivité : une clinique veut réduire le nombre de décès. On met donc en place une prime qui doit récompenser le chirurgien qui a moins de X décès dans le mois sur le billard. Que va-t-il se passer ? On peut parier que dans les mois suivants tous les chirurgiens vont toucher la prime… En effet, dès qu’ils s’approchent du quota fatidique, ils repoussent toutes leurs opérations délicates au mois suivant ! Du coup les gens décèdent dans leur lit en attendant l’opération, mais ça n’est pas le problème du médecin. Tout le monde touche sa prime, cependant le nombre de décès global de la clinique augmente…

Cette théorie semble être un grand classique du management (le papier remonte à 1975) mais je n’en avais jamais entendu parler. Et quand je l’ai lu j’ai eu une illumination. Tenez, imaginez que vous vous tenez sur une grande étendue de sable, une sorte de drap rouge à la main ; vous le secouez un peu en vous demandant pourquoi vous avez ça à la main  Question , quand vous entendez un bruit de sabots tagadam-tagadam dans votre dos  Confused et *vlan* Beat Up

… au génie logiciel.

J’ai compris beaucoup de choses sur le projet de développement en lisant cela.  Finalement, qu’est-ce que l’on demande aux développeurs ? Comportement ‘A’ : « Produire du code de qualité, maintenable par autrui ». Qu’est-ce que l’on récompense ? Les délais de livraison : comportement ‘B’. Je n’ai jamais vu un développeur se faire sanctionner pour du code mal écrit, non commenté ou conçu de traviole. Par contre, prenez du retard sur le développement, vous allez vous faire enguirlander et vous devrez rester tard tous les soirs pour faire bonne figure. Donc, si vous avez envie d’une vie de famille ou de loisirs : bâclez votre code. Devil Ne commentez surtout pas, et ne testez que si l’on vous le demande. De toute façon c’est votre successeur qui sera pénalisé par le code non-maintenable ; c’est lui qui ratera ses deadlines Grin *niark niak niak niak* (<- rire façon méchant dans James Bond).

Rendre ‘A’ inévitable, récompenser  ‘B’

On va pas chasser le naturel, alors on va biaiser un peu. Continuez à récompenser les délais (‘B’), mais considérez ‘A’ comme acquis. Il faut intégrer le contrôle qualité continu et automatisé à tout environement de développement. Il doit être impossible de réussir un « build » (et donc de livrer) si l’artefact en question ne respecte pas tous les standards en vigueur. J’ajouterai même une revue obligatoire de tout code, du stagiaire au chef de projet, avant de pouvoir placer le post-it dans la colonne « fait » du tableau blanc. Passez par la colonne « en revue », ne touchez pas vingt-mille francs. Enfin pas tout de suite… Soyons fous, récompensons la qualité Alien .

PS: merci à Majirus pour l’article

En complément de mon billet sur les navigateurs, voici une petite sélection d’extensions à FireFox qui en font mon navigateur préféré. Je vous fais deux lots, correspondant à mes deux usages de FireFox : surf  pur Cool et développement web Alien

Pour le surf sur internet :

Adblock Plus

OK, c’est standard, tout le monde installe cette extension qui sert à filtrer les publicités (images, animations flash, applets…) par combinaison de listes blanches et listes noires. Simple, efficace. Pensez à autoriser définitivement les sites de confiance (via  le bouton ajouté par l’extension) pour y masquer les boutons proposant de bloquer les animations flash par exemple.

GMail Manager

Une sorte de xBiff (le truc qui clignote en bas de l’écran quand vous avez reçu un mail) pour un ou plusieurs comptes gmails. Pratique et efficace. Les mots de passes peuvent être stockés, je vous recommande dans ce cas-là d’activer le mot de passe global FireFox : un mot de passe unique à l’ouverture de FireFox qui débloque les mots de passe enregistrés et les cookies.

Speed Dial

Une page d’accueil montrant des vignettes des sites pour un accès rapide à ses sites favoris. Similaire à la page d’accueil de google chrome, sauf que chrome détermine tout seul les pages les plus fréquemment accédées, alors qu’ici on choisit soi-même.

Et enfin le duo de choc, la combo-qui-tue, mes deux amours :

Foxmarks Bookmark Synchronizer :wub:

Offre une synchronisation des marques-pages, bookmarks, favoris ou signets (appelez-ça comme vous voudrez) entre plusieurs navigateurs, donc par exemple entre PC-boulot et PC-maison. Franchement, j’ai essayé toutes les solutions depuis l’invention des bookmarks, et celle-ci est la première à me satisfaire pleinement. C’est gratuit, on peut accéder à la copie de bookmarks sur internet, qui fait office de backup avec historique, on peut créer plusieurs profils (boulot ; maison ; mobile) et ne partager que certains répertoires de favoris avec tel ou tel profil (donc les sites de l’intranet qui ne fonctionnent qu’au bureau ne polluent pas mes bookmarks à la maison). Permet également (depuis très récemment il est vrai) de synchroniser avec IE. Si on est parano on peut choisir son propre site FTP pour stocker sa copie de référence des bookmarks.

Read It Later :wub:

Un bouton qui permet de marquer à tout moment une page « à lire plus tard ». Ensuite, quand un a un petit moment devant soi, le bouton permet de faire défiler ces pages marquées « plus tard » à tête reposée. L’extension ajoute également un petit bouton dans google reader, ce qui permet de marquer un billet dans un flux RSS pour lecture différée également. Et comme cette extension sauve la liste des pages pour lecture ultérieure dans un dossier particulier de bookmarks, celui-ci est synchronisé parfaitement entre tous mes navigateurs par Foxmarks. Ta-daaaa Smile troisième Loi de Clarke : «Toute technologie suffisamment avancée est indiscernable de la magie» Shock

Pour le développement Web :

Web Developer

Ajoute une barre de boutons proposant une foule d’options pour mettre au point une page HTML récalcitrante : surligner les blocks, afficher les inputs, y compris cachés, éditer les cookies ou le CSS sur place. Bref, votre débuggeur d’HTML.

FireBug

Je l’utilise surtout pour débugger des échanges entre navigateur et serveur : FireBug permet d’inspecter les échanges GET/POST et réponses du serveur. Affiche également le source ou le DOM du HTML résultant.

FirePHP :ninja:

Idée brillante, cette extension permet d’afficher des logs (codées façon log4j) d’une application PHP. Le principe est de fournir une librairie PHP qui permet de mettre ces infos de log dans les entêtes HTTP, qui restent invisibles de l’HTML, mais sont exploitées par l’extension FirePHP et affichées proprement en dessous de la page. J’adore ! Attention, nécessite l’installation de FireBug au préalable.

Voilà pour aujourd’hui. Cerise sur le gâteau, c’est très simple pour vous d’essayer, désactiver, réactiver, désinstaller toutes ces extensions. L’installeur d’extensions depuis FireFox est un régal : recherche par le nom, installation en quelques clics, utilisation… que du bonheur :happy: Aaaaah si seulement l’installeur d’Eclipse (et ça vaut également pour le prochain Eclipse 3.5 :cwy: ) était aussi agréable à utiliser…

Logo firefox 3

:wub: Firefox !

Ca reste mon navigateur de choix. C’est pas la vitesse du rendu HTML ni du moteur JavaScript qui m’attire (encore que…), mais tout simplement les plugins. C’est la grande force de Mozilla, cette extraordinaire variété d’extensions plus utiles les unes que les autres. Ainsi qu’un très bon gestionnaire des favoris, et mes favoris sont mon second outil de travail (après google, of course). En passant, tiens, ma configuration de Firefox pourrait faire l’objet d’un autre billet.

Second :

8) Google Chrome.

J’aime beaucoup ce navigateur, je l’ai beaucoup utilisé à sa sortie avant de revenir à Firefox. L’idée derrière chrome est tout-à-fait valide : le web est de plus en plus utilisé comme plateforme d’applications, et le surf sur des pages d’information statiques n’est plus du tout le seul usage du web. Chrome est une avancée significative en tant que plateforme pour faire tourner des applications web en plein écran sans les chichis du navigateur qui justement sont gênants quand je ne navigue pas, c’est-à-dire gmail, google reader voire facebook. Le lanceur chrome de gmail « en tant qu’application » a remplacé avec bonheur mon client de messagerie dans mon menu démarrer. Mais, en tant que navigateur, chrome est en retard sur firefox.

« Bon » dernier :

:getlost: Internet Explorer…

Complètement dépassé. Je ne tirerai pas sur l’ambulance. Je garde quand même un souvenir ému :cwy: des « XML data island » dans des iframe cachées qui permettaient de bien s’éclater :ninja: longtemps avant qu’un quidam ne nous ponde le terme d’AJAX. Aaaaaah la génération de DHTML&javascript par une tétrachiée de XSL inmaintenables… Eek!

Le seul intérêt de garder IE sur sa machine c’est pour aller sur les sites qui n’ont été testés que sous IE et ne fonctionnent que sous IE. Bon, d’un autre côté c’est pas comme si on pouvait le désinstaller de windows… Mad

En conclusion, on déduit de tout ceci que j’ai vendu mon âme à Google, mon coeur à l’open-source et mes données personnelles à facebook… Grin