Chaque programmeur, de temps en temps, passe une journée parfaite. Vous vous réveillez 5 minutes avant que votre alarme ne se sente bien. Le petit déjeuner est fait et sur le comptoir, avec du café frais, donc vous pouvez prendre quelque chose et sortir par la porte. Pendant votre trajet, vous atteignez chaque feu vert et le trafic semble être particulièrement léger. En contemplant la journée qui vous attend, vous êtes en mesure de comprendre pleinement la conception et les conséquences de la tâche qui vous attend, qui a été bien planifiée avec des exigences fermes.
Vous vous mettez au travail et vous constatez que vous n'avez pas d'e-mails importants, pas de messagerie vocale en attente et que vos collègues sont soit absents, soit à des réunions auxquelles vous n'avez pas à assister. Vous lancez votre éditeur et vous êtes immédiatement dans la zone, vous pouvez sentir la structure du code et voir vos structures de données et algorithmes se mettre en place dans un ensemble magnifique et cohérent. Les pensées circulent entre vos mains vers le clavier, saisissant un code parfaitement formé qui est élégant, maintenable et sans aucun bug à trouver.
Pendant la journée, vous travaillez sans interruption, le bureau est calme et vous êtes tellement concentré que vous n'êtes jamais tenté de passer du temps à vous tenir au courant des actualités, des blogs, etc. Lorsque vous compilez et exécutez vos tests, vous constatez que tout fonctionne sans accroc, bien sûr, vous saviez que ce serait le cas, et à la fin de la journée, vous vous engagez sans conflits. En regardant l'horloge en sortant, vous réalisez que vous avez mis 12 heures et que cela ressemblait à une brève session de codage de 20 minutes.
Ce jour-là, ce jour parfait, c'est ce que nous supposons avoir à chaque fois que nous devons estimer quelque chose.