Définition courte
Ensemble des objets qu'une équipe de développement met à disposition pour qu'un tiers — humain ou assistant — produise sur la codebase sans avoir à en deviner le fonctionnement : catalogue d'API internes, composants réutilisables, conventions, environnements cadrés, contrôles automatiques, fichiers d'instructions et skills.
Définition détaillée
Dans l'usage courant, « poser des rails » signifie empêcher de sortir de la route : le mot appartient au vocabulaire du garde-fou, et il désigne une limite imposée à quelqu'un dont on se méfie.
Dans les articles de ce blog, le terme garde ce sens mais ne s'y réduit pas, et c'est le second sens qui est le plus opérant : un rail est autant ce qui indique le chemin que ce qui empêche d'en sortir. Un catalogue d'API internes dit quoi appeler, une correspondance entre concepts métier et points d'entrée techniques dit où aller, des composants d'interface réutilisables dispensent de reconstruire. Ce que l'on gagne à les poser n'est pas d'abord de la sécurité, c'est du temps — celui que l'assistant passerait à chercher, à se tromper d'entrée, ou à réécrire ce qui existe.
Les rails se distinguent ainsi par leur destinataire : ils ne servent pas à celui qui les écrit, mais à ceux qui produisent ensuite.
Usage dans le domaine
Le terme sert dans les arbitrages d'investissement de plateforme, et dans la discussion sur l'ouverture d'une codebase à des profils non développeurs. Il permet de poser la question autrement que sous l'angle de l'autorisation : non pas « qui a le droit de produire ? » mais « qu'est-ce qui est préparé pour que produire soit possible ? ».
Synonymes et variantes
« Plateforme interne », « socle », « golden path » dans le vocabulaire du platform engineering. Le mot rails reste plus large : il couvre aussi les fichiers d'instructions et les skills destinés aux assistants, que le vocabulaire de plateforme ne recouvre pas.
À ne pas confondre avec
- Garde-fou — dispositif dont la seule fonction est d'empêcher une action dangereuse. Un contrôle de sécurité en intégration continue est un garde-fou ; il fait partie des rails, mais les rails ne s'y réduisent pas.
- Directive — règle écrite qui encode une façon de travailler à l'intention d'un agent. Une directive est l'un des rails possibles, sous forme de texte lu par l'assistant.
- Documentation — texte destiné à être lu par un humain pour comprendre. Certains rails sont de la documentation, d'autres sont des objets exécutables : composants, environnements, contrôles.
Exemples
Un environnement où un Product Manager compose des écrans internes, des requêteurs, des listes ou des graphiques en s'appuyant sur des API documentées et validées, toute la tuyauterie ayant été construite par les développeurs.
Ambiguïtés / débats
Le mot est presque toujours entendu dans son sens restrictif, et c'est ce qui fait perdre les arbitrages : présentés comme une protection, les rails se négocient contre une date de livraison. La tension entre les deux sens n'est pas tranchée dans l'usage général ; elle l'est ici au profit du sens double.