Okamžik
Změna je dokončená, otestovaná a leží na branchi. Leží tam dva týdny. Pracovník, který ji napsal, ohlásil úspěch a skončil; od té doby nic nemělo povinnost si všimnout, že ta práce existuje.
Proč k tomu dochází
Vytváření práce zlevnilo a integrace ne. Úzké hrdlo se přesunulo na review a merge a nic neměří frontu před tímto úzkým hrdlem, takže přirozenou reakcí je vytvářet víc. V prostředí, z něhož byl tento nástroj vydestilován, osmdesát paralelních snah vyprodukovalo devět mergů.
Proč to lepší model nevyřeší
Lepší workeři propast prohlubují. Omezení leží za nimi: lidské rozhodnutí přijmout a kapacita na posouzení, která za ním stojí. Přidáním schopností na straně produkce se nezačleněná hromada jen zvětšuje.
Co to stojí
Každá nemergnutá změna chátrá — s každým dnem víc koliduje — takže práce není jen nečinná, znehodnocuje se. A protože hromada není vidět, tým plánuje, jako by vyprodukovaná práce byla dodaná.
Co Majordomus dělá
Dokončení je událost s typovaným výsledkem, ne zpráva: completed, partial, blocked, no_match, failed, zaznamenaná s ověřovacím příkazem, který proběhl, jeho návratovým kódem a trváním. Hlavní kniha tak rozlišuje, co bylo zahájeno, co předáno a co přijato, a history čte tyto tři zvlášť. Kde repozitář nese plán, úkol není hotový, dokud nejsou pokryty jeho deklarované důkazy, takže „dokončeno workerem“ a „hotovo“ jsou různé stavy s různými kontrolami.
Před a po
before worker: "complete" -> branch, indefinitely
after $ majordomus history --since 7d --event task_finished
t-…a4f1 completed verify="make test" exit=0
t-…b207 partial "the backfill is written; the cutover is not"Co nedělá
Neslučuje, nereviduje ani neplánuje integraci. Rozdíl mezi vyrobeným a přijatým činí faktem, který repozitář uvádí, místo odhadu člověka.