Steve Ballmer, le patron de Microsoft, s'exprimait la semaine dernière face à des grands comptes sur la sécurité

Pourquoi du code écrit fortuitement par un bidouilleur en Chine et donné à un projet libre, pourquoi son pédigrée serait-il meilleur d'une façon ou d'une autre que celui de code (propriétaire) écrit dans un environnement controlé ?

Steve, si tu me lis, voici comment on travaille, chez Mozilla :

  1. Le code est écrit par un développeur motivé, non par la crainte d'être viré, mais parce qu'il aime travailler sur ce problème. Ce travail doit être fait en accord avec le module-owner, responsable de cette partie du code.
  2. Le code est rendu disponible quand il est fini, pas quand un VP qui n'y connait rien l'a décidé. Comme le dit très bien Robert X. Cringely, chez Microsoft, on est viré pour avoir raté la date butoir, pas pour avoir produit du code pourri.
  3. Le développeurs demande à un collègue de relire son code, et s'engage à faire des modifications qui lui sont envoyées en retour. C'est la notion de review.
  4. Il demande ensuite la super-review à un super-reviewer, un expert qui a une vision globale du projet, qui peut lui demander à nouveau des modifications pour une meilleure cohérence de l'ensemble du projet. (D'après ce que je sais, la notion de super-review est inexistante chez Microsoft)
  5. Ensuite, le code est intégré dans l'arbre CVS, qui journalise toutes les modifications faites au code. On sait à chaque instant qui a écrit ou modifié telle ou telle ligne de code, et à quelle date.
  6. Un ensemble de machines (les Tinderbox) compilent en permanence le code contenu dans l'arbre sur différentes plateformes. En cas d'incident à la compilation, le développeur (qui doit attendre la confirmation que tout s'est bien passé) retire son code de l'arbre.
  7. De plus, un systeme dit de CVS Blame permet de savoir qui est l'auteur de quelle ligne, et pourquoi elle a été rajoutée et modifiée (on connait le numero de bug correspondant, ainsi que les identifiants des reviewers et super-reviewers). Par exemple, voir l'historique du fichier editor.js de Mozilla. Autrement dit, chaque modification dans chaque ligne de code peut être littéralement tracée par qui veut...
  8. Enfin, le code inclut est testé par des centaines de milliers de testeurs. Oui, des centaines de milliers. Soit probablement mille fois plus que chez Microsoft. Comme on dit chez Mozilla : Our army of testers makes us great. C'est la plus belle assistance qualité qu'on puisse s'offrir. Sauf qu'elle est gratuite...

Voici quelques questions à poser à Microsoft la prochaine fois que vous aurez l'occasion de les croiser.

  • Puis-je voir le code source des logiciels que j'ai acheté chez vous, de façon à verifier qu'il se comporte bien comme prévu, et que le code qui m'a été donné est bien celui qui est à la base de mon logiciel ? (Pour cela, il est impératif de pouvoir le compiler vous-même).
  • En cas de bug, comment puis-je signaler un problème, voir si d'autres l'ont rencontré, et savoir quand, comment et par qui il sera résolu ?
  • Puis-je financer des équipes pour améliorer le logiciel Microsoft que j'utilise, en vue de rajouter une fonctionnalité qui me manque, de corriger un bug qui me gène ou de porter ce logiciel que j'ai payé sur une autre plateforme comme Linux ou Mac ?
  • Ce logiciel que j'ai acheté, puis-je le partager avec d'autres personnes (morales ou physiques) afin de mutualiser les coûts d'achats de licence et de développement de fonctionnalités supplémentaires ?
  • Combien de personnes, pendant combien de temps, ont testé ce logiciel ?
  • Quelle est la marge brute de la division qui produit le logiciel que vous me vendez ? (réponse : plus de 85% pour les divisions Windows et Office, les autres divisions sont déficitaires)

Si possible, prenez une photo de votre interlocuteur chez Microsoft quand il bafouille une excuse vaseuse en guise de réponse. Et envoyez-la moi !

Bien évidemment, Microsoft et la majorité d'autres éditeurs de logiciels vous répondront par la négative s'ils sont francs, et par du pipeau marketing genre shared source, s'ils ont déjà été confrontés à la question (je reviendrais sur le sujet du shared source un peu plus tard).

On voit donc que dans la notion du logiciel Libre, ça n'est pas tant l'éventuelle gratuité qui compte, mais bien la qualité du logiciel produit (et la fiabilité qui en découle) et la liberté de l'utilisateur. Rien de moins.