Unified Dev 0.12.0 livre la jointure, pas les intégrations
Linear et Jira sont arrivés dans la même release. C'est la moitié ennuyeuse. La moitié intéressante, c'est la décision qui se cache dessous.
Unified Dev 0.12.0 est sorti aujourd’hui avec 30 fonctionnalités, 35 correctifs, 8 refactors et 6 gains de performance. Le titre que tu verras est “intégrations Linear et Jira”. Ce n’est pas le titre que j’écrirais.
Le vrai mouvement de cette release, c’est qu’un tracker n’est plus un fournisseur. Un tracker est un contrat. Linear et Jira sont deux implémentations du même contrat. Si on livre Asana ensuite, la surface du produit ne change pas.
Un contrat, chaque appel de liste
Jusqu’à la 0.12.0, l’app portait des adaptateurs par fournisseur. Chaque nouveau tracker signifiait un nouveau module, une nouvelle couche de requêtes, une nouvelle passe de mapping et un nouveau lot de bugs à traquer. Le trio avait un coût réel : l’UI devait apprendre le vocabulaire de chaque fournisseur, la boucle de sync devait traiter chacun comme un cas particulier, et “change de tracker” était une ligne de roadmap à laquelle personne ne croyait.
La 0.12.0 réduit tout cela à un seul contrat de tracker avec un jeu de verbes : lister, créer, mettre à jour, fermer, commenter. Les drivers connaissent Linear et Jira. Le reste de l’app ne les connaît pas. Listes d’issues, colonnes kanban, filtres, mutations, sync et notifications lisent tous la même forme, quel que soit le fournisseur.
Les protocoles fournisseurs ont quitté la codebase entièrement. Ils vivent dans omnitrack, une crate open source qui porte GraphQL pour Linear et REST pour Jira. Unified Dev l’importe et écrit des drivers fins qui traduisent les types du fournisseur vers notre forme et inversement. Ajouter le prochain fournisseur est un driver, pas un trimestre de travail.
La hiérarchie est le produit
Un contrat seul ne rend pas les trackers interchangeables. Le modèle du produit doit suivre.
La 0.12.0 a remodelé la hiérarchie. Une organisation possède des projets. Un projet possède des repos. Un repo possède des sources. La source est le seul endroit qui sait qu’elle vient d’un fournisseur. Tout ce qui est au-dessus est à toi.
Cette dernière ligne est ce qui rend un échange gratuit. Connecte un board Jira et un repo GitHub au même repo de projet, et Unified Dev les traite comme une seule surface. Remplace le board Jira par une équipe Linear le mois suivant et tes issues, ton historique de PR, ton suivi du temps et tes filtres ne bougent pas. Le fournisseur a changé. Le repo, non.
L’objection évidente
“Pourquoi ne pas écrire une app Linear et la livrer ? Jira a une marketplace. Linear a un répertoire d’apps. Choisis un camp.”
Le verrouillage fournisseur est une fonctionnalité pour le fournisseur et un impôt pour toi. Chaque app par fournisseur que tu livres double la surface que tu dois maintenir en vie quand le fournisseur casse son API ou que le client s’en va. Unified Dev paie la jointure une fois. Le prochain fournisseur coûte un week-end, pas un trimestre.
La ligne à retenir
La 0.12.0 livre 30 fonctionnalités et 35 correctifs. Celle à retenir, c’est le contrat. Si ton tracker est un contrat, la prochaine intégration est un week-end.