L’ALM (Application Lifecycle Management) di un Sistema, per quanto Agile sia, ha comunque bisogno di una serie di costrutti (documenti) che accompagnano le varie attività.
Basandoci sul framework DAD e sulle tre fasi primarie che lo accompagnano (Inception, Construction e Transition, figura 1), cerchiamo di definire in modo strutturato i relativi documenti ed il loro versioning.
figura 1 -"Basic" DAD
Tale necessità nasce dall’aspetto, spesso trascurato, di definire la tipologia di documenti da creare e la modalità di associazione ad essi di una numerazione di versioning in modo da legarli efficacemente a tale fasi. Prima di proseguire va fortemente sottolineato che i costrutti hanno senso se creano Valore per gli stakeholder, così come la loro modifica deve essere sempre effettuata per aggiungerne di nuovo.
In seguito a varie discussioni e alla visione di varie proposte, la proposta è quella di utilizzare quattro documenti portanti:
-
- Proposal [proposal], descrive l’idea e il dominio afferente;
- Intentional Architecture [iarchitecture], descrive l’Intentional Architecture con le relative Viste;
- Planning & Costing [planning], descrive il Planning ed il Costing afferente;
- Test Plan [testplan], descrive il Test Plan di riferimento.
Tra parentesi quadre è riportato il DocumentTypeIdentify che viene utilizzato nel pattern seguente di denominazione del file fisico:
ProjectName_DocumentTypeIdentify_VersionNumber
Per il VersionNumber è possibile definire, a sua volta, tre pattern di versioning sufficientemente convincenti:
-
- InceptionPath: [0.ReleaseNumber.InceptionReviewNumber];
- ConstructionPath: [ConstructionReleaseNumber.IterationNumber];
- TransitionPath: [FinalConstructionNumber.TransitionReviewNumber]
con (tabella 1)
Elemento |
Descrizione |
0. |
Identifica esplicitamente la fase di Inception |
InceptionReviewNumber |
Identifica l’evoluzione del documento attraverso la fase di Inception |
ConstructionReleaseNumber |
Identifica il numero di Release su cui si sta lavorando |
IternationNumber |
Identifica l’Iterazione specifica e, implicitamente, la fase di Construction |
FinalConstructionNumber |
Si tratta delle release finali dei documenti, associate all’ultima iterazione sostenuta per il completamento del progetto |
TransitionNumberReview |
Identifica la fase di manutenzione in produzione e, implicitamente, la fase di Transition |
Tabella 1
Ipotizzando di lavorare sulla Release 1 del Sistema, si assume che:
Le versioni dei documenti nella fase di Inception partono da: 0.1.0
Le versioni dei documenti nella fase di Construction partono da: 1.0
Le versioni dei documenti nella fase di Transition partono da 1.ultima-iterazione.0
Vediamo di fare alcuni esempi di applicazione dei quatto pattern nel loro insieme, con riferimento ad un ipotetico progetto Stargate (tabella 2):
Phase |
Stato |
Numerazione |
Inception |
|
stargate_proposal_0.1.40 |
|
||
Construction |
|
stargate_planning_1.10 |
Transition |
|
stargate_iarchitecture_1.24.3 |
Tabella 2
I path relativi alla fase di Inception hanno una numerazione prettamente sequenziale senza “buchi”. Ciò significa che se ho la versione 0.1.40 avrò a disposizione anche tutte le versioni dalla 0.1.0 alla 0.1.39.
Lo stesso dicasi per la fase di Transition (se ho la 1.24.3 avrò anche la 1.24.1 e la 1.24.2).
Al contrario nella fase di Construction, essendo i documenti legati alle iterazioni, non è detto che ci sia una continuità nella numerazione perché non è detto che in tutte avrò la necessità di creare una nuova versione dei documenti relativi. Quindi avere la versione 1.10 non implica automaticamente la disponibilità delle versione da 1.1 a 1.9 ma solo della 1.0.
Un altro elemento da sottolineare è che i quattro documenti possono avere un numero diverso di review, ma all’inizio di ogni nuova fase vanno riallineati. Quindi, se alla fine della fase di Inception abbiamo:
stargate_proposal_0.15
stargate_planning_0.2
stargate_iarchitecture_0.3
all’inizio della fase di Construction avremo:
stargate_proposal_1.0
stargate_planning_1.0
stargate_iarchitecture_1.0
Aspetto con interesse le vostre osservazioni ed i vostri suggerimenti.