Décider d'un cycle de vie pour les projets, et d'un horizon
Une petite mairie a plus de projets imaginables que de temps pour les mener, et la crainte première est d'en oublier. La section 27 pose les quatre états — envisagé, engagé, terminé, écarté —, l'horizon en mois des envisagés, et surtout ce qu'on écarte : la matrice d'Eisenhower, un backlog séparé, une vue de rétrospective. Elle garde aussi la trace de ce que le premier essai a corrigé, dont l'immobilité de la barre d'horizon, abandonnée à l'usage. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -827,3 +827,228 @@ vont par paires. La génération aurait produit une liste exacte et illisible.
|
||||
Elle se lit, elle ne s'édite pas (décision 24) : rien n'y aurait de sens à désigner. `j`, `k`, `gg`
|
||||
et `G` y font donc ce qu'ils font dans un document — ils déroulent la liste. `gm` et `ga` marchent
|
||||
dans les deux vues, le reste attend le retour à la frise.
|
||||
|
||||
## 27. Le cycle de vie d'un projet, et l'horizon
|
||||
|
||||
L'outil est employé pour piloter les chantiers d'une petite mairie : beaucoup plus de projets
|
||||
imaginables que de temps pour les mener, et une crainte première — **ne rien oublier**. Une idée
|
||||
qu'on ne peut pas traiter cette année ne doit pas disparaître pour autant.
|
||||
|
||||
Or l'outil ne connaissait que les projets déjà planifiés. Tout ce qui n'était pas encore engagé
|
||||
vivait ailleurs — un carnet, une tête, un compte rendu de réunion — de sorte que l'arbitrage se
|
||||
rendait **sans voir le planning**, alors que c'est précisément le planning qui dit s'il y a la
|
||||
place.
|
||||
|
||||
### La priorité est une décision d'avant l'engagement
|
||||
|
||||
Le point de départ était une matrice d'Eisenhower dans le panneau d'un projet. Deux objections
|
||||
l'ont déplacée.
|
||||
|
||||
L'urgence est **déjà dans les dates**. La resaisir crée un champ qui se périme en silence : un
|
||||
projet coché « urgent » en juin ne l'est plus en septembre, et rien ne viendra le décocher.
|
||||
|
||||
Surtout, une fois un projet planifié, **l'arbitrage est déjà rendu** — ce sont ses dates qui le
|
||||
portent. Une priorité posée sur un projet engagé ne déciderait plus rien, elle commenterait. Le
|
||||
lieu de la priorisation est donc en amont, sur ce qui n'est pas encore engagé.
|
||||
|
||||
### Quatre états, dont deux se déduisent
|
||||
|
||||
Un projet traverse quatre états, et deux d'entre eux se lisent dans les données sans qu'on ait
|
||||
rien à tenir à jour :
|
||||
|
||||
| État | Comment on le sait |
|
||||
|---|---|
|
||||
| **Envisagé** | il n'a qu'un horizon, pas encore de phase |
|
||||
| **Engagé** | on lui a donné au moins une phase datée |
|
||||
| **Terminé** | toutes ses phases sont finies **et** on l'a acté |
|
||||
| **Écarté** | on a décidé de ne pas le faire |
|
||||
|
||||
Une règle unique les résume : **les phases commandent l'état, sauf quand on a prononcé quelque
|
||||
chose.** Livré n'est pas clos, et abandonner est une décision — ces deux-là s'actent. Le reste se
|
||||
déduit.
|
||||
|
||||
**Clore un projet termine toutes ses phases avec lui.** Sans cela la frise se contredirait : une
|
||||
ligne éteinte au-dessus de segments pâles, et la vue par mois annonçant des tâches à venir dans un
|
||||
projet fini. C'est donc la seule opération du cycle qui **écrase des données** — le statut d'une
|
||||
phase bloquée est perdu, et rouvrir le projet ne peut pas le deviner. Elle se confirme à ce titre,
|
||||
comme une suppression (décision 21), mais **seulement quand il reste quelque chose à écraser** : un
|
||||
dialogue qui ne prévient de rien apprend à cliquer sans lire.
|
||||
|
||||
Engager n'est donc pas un bouton : c'est un geste, celui de donner ses premières dates fermes. Et
|
||||
écarter n'est pas supprimer — le projet quitte la frise mais reste retrouvable, avec dans ses notes
|
||||
la raison pour laquelle on a dit non. Les mêmes idées reviennent tous les deux ans, portées par
|
||||
d'autres : savoir qu'on les a déjà examinées, et sur quel motif, a de la valeur.
|
||||
|
||||
### L'horizon est le repli des bornes
|
||||
|
||||
Un projet envisagé n'est pas une ligne hors du temps : il porte un **horizon**, exprimé en mois —
|
||||
« mars 2027 », « de mars à septembre 2027 », « courant 2028 » — et il se pose **sur la frise**, à
|
||||
cet horizon. C'est là que l'arbitrage devient concret : quand le printemps 2027 est déjà chargé et
|
||||
que six projets pâles s'y superposent, on décide devant l'évidence plutôt que dans l'abstrait.
|
||||
C'est ce qui remplace le calcul de charge que l'outil ne fera jamais.
|
||||
|
||||
La règle tient en une phrase, et elle ne mélange pas le saisi et le calculé :
|
||||
|
||||
> L'emprise temporelle d'un projet se calcule depuis ses phases. Un projet qui n'en a pas encore la
|
||||
> déclare à la main : c'est son horizon.
|
||||
|
||||
Les phases gagnent toujours. `bornesProjet()` fait déjà ce calcul et retourne `null` quand il n'y a
|
||||
aucune phase — l'horizon bouche ce trou, il n'ajoute pas de règle. Corollaire : **on ne réécrit
|
||||
jamais une saisie par un calcul**. Un projet qui perdrait sa dernière phase retrouve l'horizon qu'il
|
||||
avait déclaré, pas l'enveloppe des phases disparues.
|
||||
|
||||
Le grain est le mois, jamais l'année : en début de mandat, tout est à faire, et un horizon annuel ne
|
||||
range plus rien. Un horizon s'exprime comme un intervalle de mois plutôt que par des crans nommés —
|
||||
ni trimestre ni semestre à apprendre, un seul mécanisme, et trois propriétés qui en découlent :
|
||||
|
||||
- **la largeur de la barre pâle *est* l'incertitude**, l'œil la lit sans qu'on l'écrive ;
|
||||
- **la précision de l'horizon suit la maturité du projet** : on resserre à mesure qu'on y voit
|
||||
clair. Il n'y a pas de frontière entre envisagé et engagé, il y a un dégradé ;
|
||||
- **engager, c'est préciser au jour près** ce qui était au mois près.
|
||||
|
||||
La barre d'un projet envisagé se dessine donc autrement : pâle, aux bords fondus, et **accrochée au
|
||||
mois** — jamais au jour. C'est l'accroche au lundi de la décision 9 poussée d'un cran : le geste
|
||||
existe, il ne permet simplement pas de poser une date qu'on n'a pas.
|
||||
|
||||
Elle fut d'abord rendue **immobile**, au motif qu'interdire physiquement valait mieux qu'une
|
||||
convention. L'usage a tranché autrement, et pour une bonne raison : on ajuste un horizon *en
|
||||
regardant ses voisins*, pour voir si le printemps 2027 est déjà chargé. Obliger à passer par un
|
||||
panneau pour ce réglage-là, c'est le faire à l'aveugle. L'accroche au mois suffisait à protéger ce
|
||||
qui devait l'être.
|
||||
|
||||
L'horizon **survit à l'engagement**. Non pour le comparer à ce qui a été planifié, mais parce que ne
|
||||
rien effacer est ici plus simple qu'effacer, et parce qu'il sert de filet si le projet se dépeuple.
|
||||
|
||||
### Un horizon échu remonte à la surface
|
||||
|
||||
Un backlog échoue toujours de la même façon : tout ce qu'on n'ose pas refuser y atterrit, il gonfle,
|
||||
plus personne ne le relit. Les deux garde-fous habituels — un plafond, une péremption qui efface —
|
||||
sont ici interdits par la crainte de départ.
|
||||
|
||||
L'horizon en fournit un meilleur : **un projet dont l'horizon est dépassé se signale**. On est en
|
||||
juin, quatre projets visaient le premier trimestre : il faut trancher, on repousse ou on écarte.
|
||||
Rien ne disparaît, mais rien ne dort — et la relecture tombe d'elle-même au rythme des arbitrages
|
||||
budgétaires.
|
||||
|
||||
### Ce qui ancre un projet écarté
|
||||
|
||||
La question n'a pas la même réponse selon d'où vient l'écartement.
|
||||
|
||||
Un projet écarté **depuis l'état engagé** garde ses phases datées, dont certaines ont réellement eu
|
||||
lieu. Il a un ancrage, et un vrai : le travail fait ne doit pas s'effacer, puisque la frise est notre
|
||||
mémoire.
|
||||
|
||||
Un projet écarté **depuis l'état envisagé** n'a rien. Son horizon a cessé d'être une prévision — on
|
||||
ne le fera pas à cette date, on ne le fera pas du tout — et l'y laisser serait un mensonge sur la
|
||||
frise.
|
||||
|
||||
D'où **la date d'écartement**, posée automatiquement, jamais saisie. C'est l'ancrage commun aux deux
|
||||
cas, celui sans lequel les écartés ne forment plus qu'un tas. Il ne s'agit pas de journaliser les
|
||||
décisions — les comptes rendus de réunion font ce travail, et mieux — mais d'horodater une sortie.
|
||||
|
||||
La clôture est horodatée de la même façon, et c'est ce qui donne au modèle sa forme définitive :
|
||||
**les deux actes prononcés laissent une date, et ces deux dates sont l'unique trace de l'état dans le
|
||||
fichier.** Acter, c'est dater. Il n'y a pas de champ « état » — il se lit dans ces deux dates et dans
|
||||
la présence de phases.
|
||||
|
||||
On les retrouve d'abord en les cochant dans le filtre par état, ce qui les ramène dans la colonne
|
||||
des libellés, groupés et éteints. Cela répond à « je sais que ça existe, je veux le retrouver ». Cela
|
||||
ne répond pas à « relire d'un coup deux ans d'idées écartées avec leurs motifs », qui demanderait une
|
||||
liste — geste assez rare pour attendre que le manque se fasse sentir.
|
||||
|
||||
### La réanimation ne demande aucun mécanisme
|
||||
|
||||
Puisque les états se déduisent, il suffit de **retirer l'écartement** : le projet retrouve tout seul
|
||||
l'état que ses données commandent. Des phases, il redevient engagé ; un horizon seul, envisagé. Pas
|
||||
de destination à choisir, une seule commande.
|
||||
|
||||
Le système se referme bien : un projet écarté en 2026 et réanimé aujourd'hui revient avec un horizon
|
||||
périmé, donc se signale aussitôt comme échu. On le redate dans la foulée.
|
||||
|
||||
```
|
||||
écarté ←──────┐
|
||||
↗ ↑ │ réanimer
|
||||
/ │ │ (l'état se
|
||||
envisagé ──────┴─ engagé ──→ terminé recalcule)
|
||||
(un horizon) (≥ 1 phase) (acté)
|
||||
↑ │
|
||||
└──────────────┘
|
||||
s'il perd sa dernière phase
|
||||
```
|
||||
|
||||
### L'état ne passe pas par les tags
|
||||
|
||||
Un tag est libre, disparaît quand plus personne ne le porte, et dérive orthographiquement
|
||||
(décision 16) : trois propriétés inacceptables pour un état. Ce sont deux mécanismes indépendants
|
||||
qui filtrent la même frise, et les tags restent disponibles pour ce à quoi ils servent.
|
||||
|
||||
Les deux filtres ne se comportent d'ailleurs pas pareil, et il faut que cela se voie : **celui des
|
||||
tags est conjonctif, celui des états est disjonctif**. Un projet porte plusieurs tags mais un seul
|
||||
état — cocher `client` + `urgent` resserre, cocher `envisagé` + `engagé` élargit. La même case à
|
||||
cocher voudrait sinon dire deux choses opposées selon la ligne où elle se trouve.
|
||||
|
||||
Comme celui des tags, le filtre par état **n'est pas enregistré** : c'est un état de vue, pas un
|
||||
réglage.
|
||||
|
||||
### Ce que le premier essai a corrigé
|
||||
|
||||
Trois choses ne se sont vues qu'en manipulant l'outil, et toutes disaient la même : **un projet
|
||||
envisagé ne doit pas être un citoyen de seconde zone**.
|
||||
|
||||
**Engager démarre à l'horizon.** La première phase d'un projet envisagé naissait à la date du jour,
|
||||
comme celle de n'importe quel projet vide. Elle apparaissait donc à des mois de la barre pâle qu'elle
|
||||
venait remplacer, et le lien entre les deux se perdait. Elle commence maintenant au premier jour de
|
||||
l'horizon : engager, c'est préciser au jour près ce qu'on avait déclaré au mois près, pas repartir
|
||||
d'ailleurs.
|
||||
|
||||
**Les deux actes sont dans le panneau, pas seulement dans le menu.** Ils avaient été rangés dans le
|
||||
menu ⋯ au nom de la décision 20 — un bouton permanent se mérite, et clore un projet est rare. Mais
|
||||
c'est dans le panneau qu'on **lit** l'état du projet, donc c'est là qu'on cherche à en changer : les
|
||||
y chercher et ne pas les trouver coûte plus cher que deux boutons de plus. Ils figurent aux deux
|
||||
endroits, comme « plier » ou « masquer ».
|
||||
|
||||
**Les projets sans phase paraissent dans la vue par mois.** Ils n'y figuraient pas, faute de phase à
|
||||
lister — alors qu'un projet visé pour mars 2027 *arrive* bel et bien en mars 2027. Les omettre
|
||||
revenait à dire que la liste ne montre que l'engagé, quand toute cette décision pose le contraire.
|
||||
Ils s'y rattachent au premier mois de leur horizon, dans les mêmes colonnes que les phases mais en
|
||||
italique. C'est ce qui a fait renommer `phasesParMois` en `entreesParMois` : la liste ne montre plus
|
||||
seulement des phases.
|
||||
|
||||
La règle porte sur **l'absence de phases et non sur l'état**, exactement comme `empriseProjet` : un
|
||||
projet écarté avant d'avoir jamais été engagé n'a lui non plus que son horizon pour se situer, et
|
||||
il doit se retrouver là quand on ouvre le cimetière. La distinguer par l'état aurait fait du
|
||||
cimetière de la liste par mois une collection des seuls projets qui avaient démarré — soit
|
||||
l'inverse de ce qu'on y cherche.
|
||||
|
||||
### Ce qui a été reporté, et pourquoi
|
||||
|
||||
Ces choix ne sont pas des refus définitifs. Ils attendent leur moment, et il vaut mieux savoir
|
||||
lequel.
|
||||
|
||||
**La matrice d'Eisenhower.** Elle n'a pas de sens sur des projets engagés, pour les raisons
|
||||
ci-dessus. Sur les seuls envisagés elle redevient cohérente, et se branche même bien : l'horizon
|
||||
fournit l'axe d'urgence, il ne resterait que l'importance à saisir. À reprendre quand une liste
|
||||
existera, et seulement si l'horizon seul ne suffit pas à départager.
|
||||
|
||||
**Une vue liste des envisagés.** La frise sait situer, elle ne sait pas ranger : on ne peut pas
|
||||
ordonner six projets par priorité dans un empilement de couloirs. Cette première étape ne livre donc
|
||||
**aucun mécanisme d'ordre explicite entre projets** — ce qu'elle livre, c'est l'horizon, et c'est
|
||||
déjà l'arbitrage le plus décisif. Reste le départage fin entre projets visant le même trimestre.
|
||||
|
||||
**Un dézoom de l'axe temporel**, pour embrasser plusieurs années d'un coup. Le jour où il arrivera,
|
||||
il faudra rouvrir la décision 14, « une seule échelle, pas de zoom ».
|
||||
|
||||
**Une vue de rétrospective.** La frise défile en arrière sans limite (décision 15) : le passé y est
|
||||
déjà lisible, et un écran de plus l'aurait redit. Corollaire à tenir : **un projet terminé reste sur
|
||||
la frise**, éteint mais présent, sinon on perd le bilan.
|
||||
|
||||
**Des dates réelles à côté des dates prévues.** Ce serait doubler chaque champ pour un gain nul :
|
||||
dans cet outil on recale les barres au fil de l'eau, donc la date de fin *devient* le réel. La
|
||||
contrepartie est assumée — la qualité du bilan dépend de l'entretien de la frise, et aucun champ ne
|
||||
répare un planning qu'on ne tient pas.
|
||||
|
||||
**Un repère de fin de mandat**, comme le repère « aujourd'hui ». Pertinent sur le principe, sans
|
||||
urgence en début de mandat.
|
||||
|
||||
**Un retour arrière déclaré**, d'engagé vers envisagé. On déplace les dates, cela suffit. Le seul
|
||||
cas où il survient — retirer la dernière phase — se résout tout seul par la règle des bornes.
|
||||
|
||||
Reference in New Issue
Block a user