Il s’agit tout simplement d’un recueil d’articles du blog Joel on Software venant compléter ceux qui avaient été sélectionnés pour constituer le premier recueil au titre éponyme Joel on Software. On pourrait donc légitiment se dire que l’on y trouvera pas le meilleur, que ce sera du réchauffé – un peu comme la suite, souvent peu inspirée d’un film à succès – et d’un côté c’est vrai, il y a indéniablement de ça. Mais en même temps lorsque l’on a beaucoup apprécié le premier – et c’est mon cas – on est bien content d’avoir du rab qu’il soit réchauffé ou pas. On pourrait aussi se dire tout aussi légitimement qu’il s’agit de vielles histoires – de dinosaures – du temps des grands débuts tonitruants d’Internet, c’est vrai aussi, mais certaines n’en restent pas moins édifiantes, le recul ne les rendant que plus vraies.

L’une de celles qui m’a le plus intéressée et racontée dans l’article Martian Headsets est le renversement du principe de robustesse dans le design1 qui se résume habituellement de cette façon.

Be conservative in what you do, be liberal in what you accept from others.

Il explique comment ce principe, qui parait évident tellement il est frappé de bon sens, a mené à la catastrophe de la non standardisation des navigateurs web et finalement à un gâchis colossal de temps et d’argent – sans parler de l’énervement engendré auprès des utilisateurs qu’ils soient informaticien ou pas d’ailleurs. A la lumière de cette expérience cette tolérance pourrait être prise pour du laxisme.

Et puis il y a l’intelligence de Joel Spolsky et son écriture enthousiasmante pleine d’humour qui rendrait agréable la lecture d’un article consacré à l’encodage des caractères – et c’est vrai, il existe.

Watching nonprogrammer trying to run software companies is like watching someone who doesn’t know how to surf trying to surf.

Encore un bon moment passé à lire des réflexions intéressantes avec un petit sourire aux coins des lèvres.


Spolsky, Joel. More Joel on Software, APress, 2008.


  1. In computing, the robustness principle is a design guideline for software (Wikipedia). ↩︎