Les bugs du temps

Chaque année, j’ai l’impression que c’est la même chose. A chaque passage à la nouvelle année, ou à chaque changement d’heure d’hiver/d’été, on entends parler d’un logiciel ou d’un appareil qui plante lamentablement. Cette année, les iPhone encore sous iOS4 ont rencontré des bugs avec l’application Horloge. En 2008, plus aucun Zune ne démarrait.

J’avais beau réfléchir, je voyais mal pourquoi autant de grands constructeurs rencontraient régulièrement des problèmes avec la gestion du temps et des fuseaux horaires. Après un peu de recherche et un petit tour sur Reddit, j’ai compris pourquoi.

Voici la règle générale pour gérer la date et l’heure partout dans le monde.

  • Une année dure 365 jours, une journée dure 24 heures, une heure dure 60 minutes et une minute dure 60 secondes.

Et maintenant, voici les exceptions.

Bon courage si un jour vous devez développer un système de gestion d’horaires.

L’article décrivant le bug du Zune de 2008 résume à mon avis bien la situation :

Quand un gros bug comme celui-ci est découvert, c’est tentant d’en faire des tonnes et de se moquer des développeurs qui ont sorti ce code défectueux. Et je pense que c’est une erreur qui aurait dû être détecté lors des tests ou d’une revue de code. D’un autre côté, j’ai moi même fait tellement d’erreurs depuis des années que je suis réticent à l’idée de me moquer des autres. Et je pense que la principale leçon de cet incident n’est pas le refrain habituel qui dit que Microsoft sont nuls. C’est plutôt l’observation qu’un logiciel c’est compliqué. Des pièges subtils vous attendent même dans ce qui semble le plus simple algorithme.