Pourquoi la gestion de programme est importante en open source

Tout le monde fait de la gestion de programme. Certains le font mal.
J’ai utilisé cette ligne pour rire au début des pourparlers, mais c’est vrai. La gestion de programme est, à la base, l’acte de coordonner les interfaces entre les équipes pour produire quelque chose de valeur. Dans les projets open source, le “quelque chose de valeur” est généralement le logiciel produit par la communauté. La plupart des communautés open source créent des logiciels, et presque aucune d’entre elles n’a de responsable de programme formel. Alors pourquoi avoir un gestionnaire de programme ?
La différence réside dans la gestion du développement logiciel avec intention plutôt que par accident. Plus la communauté est petite, plus il est facile de s’auto-coordonner. Le besoin de coordination intentionnelle augmente à mesure que la communauté grandit ou que le logiciel devient plus complexe.
Dans Le mois de l’homme mythique, Fred Brooks a noté que le nombre de canaux de communication augmente considérablement plus rapidement que le nombre de personnes travaillant sur un projet. Un gestionnaire de programme peut aider à simplifier les frais généraux de communication en servant de canal centralisé pour l’information. En se cachant sur les listes de diffusion et les canaux de discussion, le gestionnaire de programme voit ce qui se passe dans le projet et le communique largement à la communauté et au public. De cette façon, toute personne ayant besoin de connaître les détails de haut niveau peut consulter le résumé du responsable du programme au lieu de prêter attention à chaque chaîne elle-même.
Un bon gestionnaire de programme agit également comme un guide dans le développement et l’amélioration des processus. Pensez aux processus comme des pistes. Ils se développent de manière organique au fil du temps à mesure que les gens trouvent le meilleur itinéraire d’un endroit à un autre. Un sentier bien usé permet un voyage plus rapide et plus prévisible. Mais si chacun a ses propres variations sur le parcours, le sentier ne sera pas usé. Le travail du responsable du programme n’est pas de tracer une piste et de dire : “C’est par là que tout le monde doit aller !” Au lieu de cela, le gestionnaire de programme recherche les endroits où les chemins individuels sont similaires et aide la communauté à trouver un chemin optimal à partager. Ainsi, un responsable de programme ne dit pas : “C’est le processus que nous devons suivre pour développer notre logiciel”. Cela ne fonctionnerait pas bien dans un projet open source. Au lieu de cela, le gestionnaire de programme aide à définir un processus reproductible et prévisible basé sur ce que la communauté fait déjà.
De nombreuses activités touchent la gestion du programme, même si elles sont principalement gérées par d’autres fonctions de la communauté. Les exemples incluent le développement du calendrier, la planification des fonctionnalités, le tri des bogues, les décisions de publication, etc. Avec un tel éventail de compétences, vous aurez peut-être du mal à trouver une personne qui puisse être excellente dans tous ces domaines. Et même si vous trouviez une telle personne, elle n’aurait peut-être pas assez de temps à consacrer à tout faire. Vous pouvez répartir le travail entre plusieurs contributeurs tant que chacun comprend clairement ses responsabilités.
En fin de compte, le travail du gestionnaire de programme consiste à aider la communauté à éviter les surprises. Pour ce faire, ils communiquent le statut entre les équipes et s’assurent que tout le monde sait ce qui est nécessaire – et quand – pour produire une autre excellente version. Par nécessité, vous le faites déjà, alors autant le faire exprès.
Cet article est basé sur le livre de l’auteur, Gestion de programme pour les projets Open Source.