DAD Documents Pattern

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.

basic dad

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

  • Documento: Proposal
  • Review: 40
  • Release: 1

stargate_proposal_0.1.40

 

   

Construction

  • Documento: Planning & Costing
  • Iteration: 10
  • Release: 1

stargate_planning_1.10

Transition

  • Documento: Intentional Architecture
  • FinalConstructionNumber: 1.24
  • TransitionNumberReview: 3

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.

agileiot logo  ac2 logodac dac dacdac dac psmii psmii safe cal1 less certazure fundamentals
mvp reconnect

Free Joomla templates by Ltheme