Alkampfer's Place

Il blog di Gian Maria Ricci
posts - 494, comments - 999, trackbacks - 70

My Links

News

Gian Maria Ricci
Mvp Logo
CCSVI in Multiple Sclerosis

English Blog

Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

I miei siti

Siti utili

Chi è il cliente nella gestione dell’ALM?

Nella gestione del ciclo di vita di un software la figura più importante è il cliente, anche se il termine esatto da usare sarebbe stakeholder. La definizione di wikipedia è

Project stakeholders are those entities within or outside an organization which:

a) Sponsor a project or.
b) Have an interest or a gain upon a successful completion of a project.
c) May have a positive or negative influence in the Project Completion.

In sostanza gli stakeholder sono coloro che sono interessati alla realizzazione del progetto stesso, senza i quali il software non esisterebbe. Formalizzare il concetto di stakeholder è importante, perchè troppo spesso si considera cliente solo chi mette i soldi oppure in generale chi commissiona il software, dimenticando completamente altre figure più importanti. Le categorie di persone che fanno parte degli stakeholder possono essere identificate a grandi linee in:

  1. Chi paga per il prodotto
  2. Chi lo ha richiesto
  3. Chi conosce il dominio del problema
  4. Chi lo usa
  5. Chi interagisce con l’output del prodotto stesso.

Purtroppo spesso solo i punti 1 e 2 sono considerati come clienti, provocando problemi nel raccoglimento delle specifiche dato che sono gli unici ad essere contattati dagli analisti. Dal punto di vista della raccolta requisiti infatti ogniuna di queste figure deve essere coinvolta per raccogliere tipologie differenti di requisiti.

Gli stakeholder del punto 1 e 2 forniscono la visione del progetto  e sono in grado di dare la direzione principale da seguire cosi come una sommaria descrizione delle regole di business.

Gli stakeholder del punto 3 forniscono invece le specifiche dettagliate sulle regole di business che il software deve implementare. Questa categoria di stakeholder è solitamente quella che realmente preme per realizzare il prodotto stesso, ed è rappresentata da coloro che hanno la necessità di creare il prodotto stesso. In questa categoria risiedono gli “esperti di dominio” ed una figura di questa categoria dovrebbe essere sempre presente o contattabile da tutto il team per dirimere eventuali dubbi durante lo sviluppo.

Gli stakeholder del punto 4 sono invece gli utenti, dai quali vanno ricavati gli use case a livello utente del sistema, ed eventuali mockup. In questa categoria troviamo anche le figure che dovrebbero validare l’usabilità del sistema. Il problema classico è che spesso queste persone non sono contattate per nulla, sebbene siano coloro che utilizzeranno fisicamente il sistema. Il nostro sistema infatti può implementare perfettamente le regole di business, ma essere poco usabile perchè ad esempio per compiere le operazioni più comuni richiede un numero elevato di interazioni con l’interfaccia utente.

Gli stakeholder del punto 5 infine non sono sempre presenti, ma in alcuni casi sono invece molto importanti. Se ad esempio un software deve generare un output da spedire a tutti i fornitori, sarebbe necessario raccogliere da loro alcune specifiche sommarie sui formati attesi, invece di creare una esportazione xml e scoprire che il 90% dei fornitori utilizza un formato CSV. Se un programma deve generare delle informazioni da passare ad un altro dipartimento di un azienda che usa SAP, è doveroso contattare una persona di tale dipartimento per determinare come scambiare i dati.

Queste piccole considerazioni fanno capire come la raccolta requisiti coinvolga molteplici figure, ma spesso gli stakeholder non vogliono spendere tempo con gli analisti, presupponendo che chi realizza il software sia in grado di lavorare da solo sulla base di specifiche vage del tipo: “ci serve un software di gestione magazzino da installare nel palmare dei magazzinieri”.

Tra le regole di Extreme programming vi è infatti un contatto costante con il cliente, e si richiede di avere sempre almeno uno Stakeholder che lavora a fianco con il team. Anche in Scrum e nei processi iterativi gli stakeholder sono sempre necessari, perchè vengono resi partecipi del risultato di ogni iterazione o sprint e della riprioritizzazione dei requisiti ad ogni iterazione/sprint.

Sebbene coinvolgere molti stakeholder nel progetto sia difficile, è fondamentale se si vuole avere una elicitazione dei requisiti completa e non parziale. Dato che in letteratura troviamo molti esempi che mostrano come il 40% o più dei difetti di un software può essere ricondotto ad errori fatti durante la raccolta dei requisiti, viene da se che gli investimenti nel migliorare questo settore porterebbero sicuramente benefici, anche nel breve termine.

alk.

DotNetKicks Image

Print | posted on venerdì 30 luglio 2010 9.24 | Filed Under [ Analisi ]

Feedback

Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

Nell'ambito dell'economia aziendale è stata definita la "teoria degli stakeholder" per "mettere in guardia" sull'esistenza di altre figure (identificate in primarie e secondarie) che possono comunque influire sull'impresa.
http://it.wikipedia.org/wiki/Stakeholder

Direi che ci sono molte analogie con l'ambito dell'ALM, per cui effettivamente sarebbe bene smettere di parlare di cliente e pensarla invece in termini di stakeholder (che in italiano sono tradotti come "portatori d'interessi")

30/07/2010 11.21 | Stefano
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

in Scrum é necessario che il team abbia uno e un solo Product Owner che é responsabile di cominucare con gli stake holder e gli utenti. il Product Owner é anche responsabile del product backlog dove specifica le user story. E nel planning meeting risponde alle domande del team per chiarire le storie e definire le prioritá in base al valore che ogni storia produce e alle stime fatte dal team.

durante lo sprint e in fase di accettazione dopo il rilascio altri utenti o stacke holder possono essere sentiti dal team e questo é un bene, il P.O deve essere conivolto e restare informato perché la responsabilitá finale sul product backlog é sua ed é solo sua anche la autoritá di cancellare uno Sprint quando cambi di prioritá o di requisiti lo richiedono.

in XP c'é la pratica del weekly cycle che corriponde al planning meeting dello Scrum e qui i clienti scelgono le storie da sviluppare e collaborano con il team per chiarire le storie. ma non é precisato se debba essere uno solo o molti utenti/clienti/stakeholder.


> elicitazione dei requisiti completa e non parziale.

nelle pratiche agili esiste il concetto di "sufficiente" in alternativa a completo. infatti deve essere il team a dire di avere abbastanza informazioni per stimare una stori e cominciare a implementarla.
la pratica in scrum di indicare durante il plannin meetin come verrá fatto il test di accettazione della storia aiuta a verificare che le informazioni importanti sono state chiarite.

quando durante lo sviluppo della storia emergesse qualche dubbio o sorpresa sulla complessita di implementazione e quindi dei tempi di sviluppo il team parla col Product Owner per avere informazioni e decidere con che prioritá procedere.

cio che garantisce che la feature implementata soddisferá le necessitá reali del utente e degli stakeholder non é tanto lo sforzo di avere da subito requisiti completi (ricorda il principio dell'ingegneria del sw sui requisiti che non si riesce mai a specificarli al 100%) quanto il procedere in modo incrementale, il raccogliere feedback dall'utente ad ogni rilascio (che puo essere anche la non accettazione di una feature) e la possibilitá di aggiungere cambiare le storie nel product backlog in base al feedback ricevuto.



> Anche in Scrum e nei processi iterativi

nella precisione Scrum, XP e le pratiche agili adottano un processo iterativo e incrementale (come é ad esempio RUP) e inoltre empirico (cioé basato sul continuo inspect-adapt implementato attraverso diversi cicli di feedback)

HTH, Luca
30/07/2010 12.44 | Luca Minudel
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

Alk:> Purtroppo spesso solo i punti 1 e 2 sono considerati come clienti, provocando problemi nel raccoglimento delle specifiche dato che sono gli unici ad essere contattati dagli analisti.

In realta' stai mettendo insieme stakeholders e domain experts: non sono la stessa cosa...

Luca:> in Scrum é necessario che il team abbia uno e un solo Product Owner che é responsabile di cominucare con gli stake holder e gli utenti.

Da manuale, quella comunicazione, nonche' la responsabilita' ultima sui requisiti, spetta all'analista. La soppressione della figura dell'analista, sostituita da figure manageriali/commerciali, e' uno dei mali principali del software.

> nelle pratiche agili esiste il concetto di "sufficiente" in alternativa a completo

Non e' corretto: nelle pratiche agili c'e' un basso livello di formalita', ma resta il fatto che tutti i prodotti, compresa l'analisi, vanno *chiusi*. In altre parole, il principio del "barely good enough" *non* si traduce con "incompleto".

-LV

30/07/2010 22.50 | LudovicoVan
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

@luka: Sono daccordo sul fatto che il Product Owner sia unico, ma le persone che sono realmente "interessate" dal progetto sono solitamente molte di più, ed il sunto che volevo dare è che è necessario coinvolgerle tutte.

Per quanto riguarda il concetto di "elicitazione completa e non parziale" non intendo che sia necessario avere tutti i requisiti prima di iniziare l'implementazione, ma che sia possibile individuare quelli importanti prima che il software vada in produzione :) Sono completamente daccordo con LV, ad un certo punto il prodotto va "chiuso". Se in waterfall si ha la presunzione di poter raccogliere tutti i requisiti subito, nei progetti agili la raccolta requisiti è continua, ma il concetto è che debbo ad un certo punto "chiudere" sapendo cosa è stato implementato e cosa invece no, ma per me quello è un prodotto che è completo per le feature che ho voluto implementare.

Per il resto in XP il planning meeting (en.wikipedia.org/.../Extreme_programming_practices) è probabilmente la procedura fondamentale, cosi come la prioritizzazione del backlog, ma se nel backlog i requisiti li hanno messi solo i domain expert, ci perdiamo la parte dei requisiti utente, indipendentemente da come li vuoi gestire ;) IMHO.

@LV >>In realta' stai mettendo insieme stakeholders e domain experts: non sono la stessa cosa...

100% corretto, i domain expert rappresentano un concetto a parte, ma comunque IMHO fanno sempre parte degli stakeholder, perchè rientrano nei tre punti, a soprattutto in

May have a positive or negative influence in the Project Completion

dato che sono loro che conoscono il processo da implementare, se non si riesce a comprenderlo il software rischia di diventare un fallimento, per cui tendo sempre ad includerli anche nella lista degli stakeholder.

alk.

31/07/2010 8.21 | Gian Maria
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

> ad un certo punto il prodotto va "chiuso"

questo vale per i metodi iterativi e incrementali, metre per queli agili che sono anche empitici c'é una differenza fondamentale nella quale sta l'evoluzione ad esempio di Scrum dispetto a RUP:

il prodotto insieme ai requisiti evolve durante durante i rilasci incrementali e la messa in uso di questi. e allo stesso modo evolve la comprensione dei requisiti da parte degli utenti e stakeholder. sino all'ultimo rilascio e dopo

questo é in coerenza col principio del software engineering di incompletezza dei reqisiti
- Uncertainty is inherent and inevitable in software development processes and products [Hadar Ziv, 1995]
- For a new software system, the requirements will not be completely known until after the users have used it. [Watts S. Humphrey, 1995]
- Wegner's Lemma: - It is not possible to completely specify an intaractive system [Wegner, 1995]

e questo é in coerenza anche con il concetto di wicked problems che é parte dei metodi agili:
- The problem is not understood until after the formulation of a solution.
- Wicked problems have no stopping rule.

E infine é riaffermato dalla domanda 3 dello scrum-but test (scrum.jeffsutherland.com/.../...-it-come-from.html) da Jef Shutterland (uno degli inventori di Scrum)
Question 3 - Agile Specification
- No requirements - 0
- Big requirements documents - 1 <===================
- Poor user stories - 4
- Good requirements - 5 <=========================
- Good user stories - 7
- _Just_enough_, _just_in_time_: specifications - 8 <=============
- Good user stories tied to specifications _as_needed_ - 10 <=====





31/07/2010 14.59 | Luca Minudel
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

> se nel backlog i requisiti li hanno messi solo i domain expert, ci perdiamo la parte dei requisiti utente, indipendentemente da come li vuoi gestire

Quella frase non ha senso: gli utenti costituiscono un sotto-insieme dei domain experts, dove si intende il dominio del problema: i requisiti li "mette" l'analista, previa analisi e discussione degli stessi con i domain experts appunto.

Analisi = elicitare i requisiti dai domain experts, razionalizzare i requisiti, ottimizzarli, analizzare le opportunita' di automazione, specificare le nuove procedure (manuali e automatiche) e i sistemi a supporto delle procedure automatiche. Sono gli step principali di analisi.

> ma comunque IMHO fanno sempre parte degli stakeholder

Non sono d'accordo con quella classificazione: per me gli stakeholder sono solo coloro che hanno un interesse politico/economico/manageriale nel progetto. L'analista non ha bisogno di parlare con gli stakeholder, ci parla (e li tiene "caldi") il project owner/account/commerciale della situazione, ed e' poi quest'ultimo che inoltra appunto questi requisiti di tipo politico/economico all'analista. Insomma, tutt'altra besta dai domain experts e dai requisiti funzionali.

-LV
01/08/2010 1.44 | LudovicoVan
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

Nella mia visione i domain Expert sono coloro che conoscono a fondo i "processi" che sono da implementare, gli utenti invece non sono dei domain expert, possono usare il sistema senza essere esperti del processo sottostante (potrebberlo esserlo ma non è necessario). Mi viene in mente un esempio reale:

Il domain expert sa quali sono le regole affinche i dati letti da un gate RFID sono coerenti con gli ordini nel sistema SAP, quseta persona permette all'analista di stilare una serie di requisiti per la validazione dei dati.

L'utente è il carrellista che scarica il camion, ignora le regole che validano l'ordine, ma sa solo che il sistema gli da un output del tipo OK/NO e dei dettagli in caso di incoerenza che gli possono suggerire cosa fare. Lui ignora le regole, ma ha la necessità che il SI/NO sullo schermo sia visibile da 10 metri, perchè questa è la distanza dalla quale lui vede il monitor.

Se vede SI continua a scaricare, se vede NO poi si avvicina ed interviene nel sistema.

Questo esempio (semplificato di molto da un caso reale, ma la sostanza è mantenuta) è il tipico caso in cui il carrellista, che non è assolutamente un domain expert, deve comunque essere partecipe nella raccolta di requisiti.

alk.

01/08/2010 18.42 | Gian Maria
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

> Nella mia visione i domain Expert sono coloro che conoscono a fondo i "processi" che sono da implementare, gli utenti invece non sono dei domain expert

Ma non e' cosi': al contrario, sono gli utenti ad essere fra i piu' esperti dei processi sotto analisi, essendo infatti coloro che li svolgono giorno per giorno... Vanno intervistati anche i manager e via via su per la catena fino a dove serve, ma saltare gli utenti e' un grosso errore: per esempio, nessuno ne sa piu' della segretaria in qualunque ufficio...

> Il domain expert sa quali sono le regole affinche i dati letti da un gate RFID sono coerenti con gli ordini nel sistema SAP

Absolutely not! Quelli sono requisiti tecnici, altrimenti detti non-funzionali: roba da tecnici... (Da ricordare che confondere requisiti funzionali e non-funzionali e' di gran lunga l'errore piu' comune e frequente in quanto a raccolta requisiti: ci si focalizza sui dettagli tecnici, si ignorano processi e persone.)

> il tipico caso in cui il carrellista, che non è assolutamente un domain expert, deve comunque essere partecipe nella raccolta di requisiti.

Certo che deve essere coinvolto, in quanto e' a tutti gli effetti un domain expert: le regole di business di cui parli vengono fuori dall'analisi, non dal cilindro di qualche committente miracolosamente illuminato di ingegneria informatica.

Parlando in generale: Il problema di fondo resta che ormai quasi piu' nessuno sa cos'e' analisi, su cosa deve focalizzarsi, e cosa deve produrre, e l'altissimo livello di disinformazione e speculazione che c'e' nel nostro campo si occupa di completare l'opera. E' per questo che penso e ripeto che, invece di inventare nuove "teorie" dell'acqua calda ogni giorno, sarebbe prima il caso di imparare come si deve le basi...

-LV
02/08/2010 22.26 | LudovicoVan
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

Sostanzialmente la pensiamo allo stesso modo, il problema di fondo è che purtroppo un buon analista deve conoscere bene il suo lavoro, mentre invece sempre più spesso si trovano analisti improvvisati e spesso privi di strumenti, i quali sanno solamente produrre immensi documenti word o power point di pura "fuffa". Mi piacerebbe avere qualche feedback dall'estero per capire se anche oltralpe è cosi.

Alk.
03/08/2010 10.29 | Gian Maria
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

> mentre invece sempre più spesso si trovano analisti improvvisati e spesso privi di strumenti

Non sono affatto d'accordo: il primo problema e' che nessuno mette analisi come una delle voci principali del piano di progetto.

Detto questo, e' stata una piacevole conversazione, e anzi scusa per il piccolo sclero con cui ho chiuso il post di ieri: un po' la stanchezza, un po' ce l'ho con questa "agilita'"... o piuttosto con cio' che e' diventata.

Saluti e alla prox,

-LV
03/08/2010 12.09 | LudovicoVan
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

Nessun problema per lo sclero :) ci mancherebbe.

>il primo problema e' che nessuno mette analisi come una delle voci principali del piano di progetto.

Talvolta non compare nemmeno :( , e l'analisi è nulla di più di un documento word di qualche pagina :(, è una triste verità. Speriamo si riesca a cambiare qualche cosa :).

Salutoni anche a te LV, alla prox.

alk.
03/08/2010 16.51 | Gian Maria
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

Scusa luca per un tuo commento finito nello spam e recuperato solo oggi :( chiedo perdono.

alk.
04/08/2010 16.04 | Gian Maria
Gravatar

# re: Chi è il cliente nella gestione dell’ALM?

Luca:

> questo vale per i metodi iterativi e incrementali, metre per queli agili che sono anche empitici c'é una differenza fondamentale nella quale sta l'evoluzione ad esempio di Scrum dispetto a RUP:

Scusa ma continua a esser nonsense: "barely good enough" semplicemente non si traduce con "incompleto".

> il prodotto insieme ai requisiti evolve durante durante i rilasci incrementali e la messa in uso di questi. e allo stesso modo evolve la comprensione dei requisiti da parte degli utenti e stakeholder. sino all'ultimo rilascio e dopo

Questo vale in ogni caso, sia per i metodi tradizionali che per quelli agili: come sto continuando a ripetere, l'*unica* sostanziale differenza fra i due approcci sta nel livello di formalita'.

-LV
04/08/2010 20.48 | LudovicoVan
Comments have been closed on this topic.

Powered by: