( mag | 2019. 09. 07., szo – 22:51 )

A dokumentációval kapcsolatban van egy látszólagos ellentmondás. Egyrészt szükséges a szoftver megértéséhez -> a hozzányúláshoz, másrészt a LEAN azt mondja, hogy ne írj olyan dokumentációt, ami azonnal elavul, ahogyan leírtad.
Az agilis architektúra ezt a látszólagos ellentmondást úgy oldja fel, hogy a dokumentáció jól formalizált, csak annyi van belőle, amiből közvetlenül következik a következő tervezési szint, a tervezési szintek közötti inkonzisztenciát pedig automatikusan ellenőrizzük, a konzisztenciasértés pedig ugyanakkora probléma, mint egy syntax error a kódban.
Mi ezt úgy oldjuk meg, hogy a felső tervezési szintek architektúra modellben vannak, amit egy metamodell definiál.
A modell és a kód között a konzisztenciát a tesztesetek annotációján keresztül biztosítjuk.
A modell metamodellnek való megfelelőségét, valamint a tesztesetek és a modell közötti megfelelőséget automatikusan ellenőrizzük, a modellben természetes nyelven leírt viselkedések és a tesztesetek közötti konzisztencia biztosítása az emberi review fő feladata, a tesztesetek és a produkciós kód között pedig teljes mutációs lefedettséget követelünk meg.
A végfelhasználói dokumentáció szerkezetét a modellből, tartalmát pedig a tesztesetek definíciójábol generáljuk (utóbbit csak review-n keresztül lehet változtatni).