Okamžik
Úkol je uzavřen. Dvě ze čtyř jeho akceptačních kritérií nebyla nikdy implementována a pole důkazů říká „otestováno lokálně“. Nikdo nelhal; úkol uzavřel někdo, kdo věřil, že práce je hotová, a nic nebylo v pozici s tím nesouhlasit.
Proč k tomu dochází
Uzavření je změna stavu v trackeru a tracker o repozitáři nic neví. Kritéria přijetí jsou próza v poli, takže jejich kontrola je čtení a čte je ten, kdo je nejvíc přesvědčen, že práce je hotová.
Proč to lepší model nevyřeší
Pracovník nebyl požádán, aby zkontroloval kritéria; byl požádán, aby udělal práci, a udělal ji. Požádat pracovníka, aby také posoudil vlastní dokončení, vrátí sebejisté posouzení, což je vstup, který už jsme měli.
Co to stojí
Propast mezi zaznamenaným a skutečným dokončením je neviditelná, dokud něco dále po proudu neselže. Plán se mezitím používá k rozhodování, co zahájit dál, takže práce začíná na základech, které byly jen hlášeny jako položené.
Co Majordomus dělá
Nikde se neukládá žádný stav. READY, BLOCKED, ACTIVE, VERIFY a DONE se odvozují z událostí, které úkol o sobě zaznamenal, a ze stavu jeho závislostí při každém čtení plánu; ručně psané pole stavu je neznámý klíč. plan evidence odmítá vyprávění — potřebuje příkaz nebo artefakt a výsledek zaznamenává s commitem. plan done odmítne, dokud je jakýkoli deklarovaný důkaz nepokrytý nebo závislost není hotová. finish uplatňuje stejnou disciplínu na úlohu: nic se nezapíše, dokud řádek smlouvy selhává.
Před a po
before tracker: closed repository: two criteria unimplemented
after $ majordomus plan done I0042
refused: evidence 'behaviour_tested' is uncovered
evidence must name a command or an artifactCo nedělá
Nerozhoduje, zda jsou důkazy dobré. Odmítne důkazy, které nejsou příkazem ani artefaktem, zaznamená, co příkaz skutečně vrátil, a neodvodí DONE, dokud je deklarovaný požadavek nepokrytý.