Abandon de la mise en production de la v1.3
Statut
Comme je m'y attendais un peu, on a pas vraiment avancé ici. Le délais prévu pour tester une release étant dépassé, et la branche de dev
avançant à grande vitesse, on ne peut pas se permettre de laisser traîner la v1.3 sans la clôturer. D'ailleurs, la branche de release ne peut déjà plus être mergée automatiquement dans dev
.
La version v1.3 est donc officiellement abandonnée.
Et maintenant ?
- Merger les correctifs de release dans
dev
- Fermer cette release
- Relancer une procédure de release sur une nouvelle v1.3 (sans doute appelée v1.4, je n'ai encore rien décidé à ce sujet), à partir d'une version actuelle de
dev
.
Analyse post-mortem
Pourquoi a-t-on abandonné cette release ?
Deux facteurs principaux :
- Comme prévu, j'ai levé le pied en novembre, donc je n'ai pas pu suivre cette release, et donc aucun suivi complet n'a été fait
- On a toujours un bug bloquant après 2 semaines de tests
Sur un sujet plus positif, la communication autour de la release a l'air d'avoir ramené pas mal de monde ; même si la majorité des bugs découverts sont hors du domaine de la release.
Concernant le manque de suivi
Le fait que je lève le pied en novembre était prévu de longue date, et normalement connu.
J'avais quand même pris le temps de lancer la release pour 2 raisons (toutes deux liées au rythme de développement en fait) :
- La release devenait très grosse, il était temps de lancer quelque chose
- Le rythme très élevé de développement me laissait penser qu'on aurait de quoi faire le suivi
Concernant le point 1, je reste persuadé que c'était la chose à faire : on s'est déjà cassé les dents sur une release énorme et horrible à tester, au début.
Concernant le point 2, j'ai clairement fait l'erreur de ne pas être plus clair sur mon manque de disponibilité et de ne pas avoir demandé explicitement à quelqu'un de suivre cette release.
Cela dit, je reste dubitatif sur le fait que si le développement a continué à un rythme ultra soutenu pendant ces 2 semaines (ce qui est génial), presque personne ne semble s'être inquiété du sort de la release (ce qui est dommage).
Concernant le bug bloquant
Si je déploie aujourd'hui, je n'ai aucun comportement clair sur l'ordre des topics et des forums. Le bug ne sera résolu que lorsqu'on aura un comportement défini et fiable là-dessus. Et aucune release ne pourra être lancée tant qu'il reste un bug bloquant.
Ce qui me chagrine ici, c'est qu'on a visiblement confondu vitesse et précipitation, ce qui a entraîné des situations bordéliques et ce fameux bug.
D'ailleurs, j'en profite pour rappeler ici une règle simple :
Il est absolument interdit de merger son propre code. Même s'il vous paraît inoffensif.
Les deux seules exceptions tolérées sont :
- Le cas d'un hotfix de production
- Un code qui ne touche que de la documentation ou des commentaires. Et encore, là vous devez laisser le temps aux autres développeurs de le commenter au besoin.
Que faire pour éviter un nouvel échec
Voici ce que je propose :
- Avoir un "responsable de release", quelqu'un qui a le temps, sur les 2 semaines de release, de s'assurer que la release est un minimum testée.
- Dès que la release est correctement testée, on la déploie. On a absolument pas besoin d'attendre la dernière minute pour ça : si d'évidence tout marche après 1 semaine de tests, allons-y !
- Toute autre bonne idée est la bienvenue…