# Gestió de requisits

La gestió de requisits és el procés de documentar, analitzar, seguir, prioritzar i consensuar els requisits i el control del canvi i la comunicació a les parts interessades pertinents. Es tracta d'un procés continu al llarg d'un projecte. Un requisit és la capacitat que un resultat del projecte (producte o servei) ha de conformar.

## El repte de la gestió de requeriments

Tradicionalment s'ha tendit a tractar la captura i la gestió de requisits d'una manera que, cada vegada més, es demostra errònia. S'ha entès la captura dels requisits del projecte com una fase primerenca de la gestió de projectes que una vegada es completava donava la fotografia exacta que les necessitats del client. Després l'única tasca del gestor del projecte era tractar d'evitar que es produïssin canvis en el conjunt de requisits i tractar que, quan aquests es produïen el client assumís el cost econòmic d'aquests.
L'esforç que suposa fer una captura detallada de tots els requisits d'un projecte és enorme. A més, gairebé mai el client coneix les seves pròpies necessitats amb la profunditat suficient per a definir-les a priori. Per acabar-ho de complicar, sovint, durant la vida del projecte, les necessitats i/o prioritats dels clients canvien.
També és important destacar que el client molts cops necessiten veure el que la tecnologia és capaç de fer i com el projecte resol les seves necessitats per descobrir noves necessitats o oportunitats que desconeixia inicialment.
El projecte pot protegir-se de canvis establint mecanismes de control, però aquest enfocament sovint provoca clients poc satisfets, que veuen el desenvolupament del projecte com una cosa rígida que no s'adapta a les seves necessitats i que constantment repercuteix costos afegits al pressupost inicial del projecte.
Davant la variabilitat dels requisits dels projectes, les metodologies àgils ofereixen flexibilitat (davant les metodologies en cascada tradicionals).

## Aproximació de les metodologies àgils

Les metodologies àgils (com SCRUM) proposen la següent aproximació: En Scrum els requisits s'expressen com a elements del Product backlog. El Product backlog és una llista viva de requisits funcionals i no funcionals prioritzats pel seu valor per al client. En dir que es tracta d'una llista viva, deixem clar que els requisits que hi apareixen i l'ordre dels mateixos és canviant al llarg de la vida del projecte. En Scrum, els requisits es van abordant en Sprints en l'ordre en què apareixen en el Product backlog. Utilitzar el Product backlog com a principal artefacte per a la gestió de requisits ens permet tallar els problemes relacionats amb la gestió de requisits que abans hem descrit. Encara construir i mantenir el Product backlog és una tasca àrdua, és molt més simple de fer una captura de requisits tradicional. El motiu és simple, només cal expressar amb poques paraules en què consisteix el requisit, no cal un nivell de detall molt elevat. Només cal el nivell de detall suficient que ens permeti estimar els requisits i prioritzar. Sovint s'utilitzen "històries d'usuari" per expressar aquests requisits. Els requisits que apareixen en el Product backlog han de ser independents, negociables, avaluables, estimables i no gaire grans.
* Han de ser independents doncs l'ordre en què seran implementats pot canviar.
* Han de ser negociables en el sentit que són un punt de partida per començar en desenvolupament no un contracte tancat.
* Han de ser avaluables des del punt de vista del retorn de la inversió que proporcionen als nostres clients.
* Han de ser estimables doncs és impossible prioritzar una mica del que es desconeix la magnitud.
Els requisits poden ser funcionals (o de negoci) o no funcionals (p. ex., d'arquitectura).

### Requeriment no funcionals
#### Externs

Tipus requisits no funcionals EXTERNS, que generalment són observables per i/o importants per a l'usuari:
* Usabilitat: el fàcil que és d'usar, que sovint inclou el fàcil que és aprendre.
* Fiabilitat: la mesura en què treballa com i quan sigui necessari.
* Correcció: fa les coses correctes correctament, aplicats sovint especialment als càlculs.
* Durabilitat: el lapse de temps entre falles, pot ser l'extensió del dany quan falla.
* Aparença: aspecte agradable i fins i tot atractiu, sovint promoure la confiança en el seu ús.
* Disponibilitat: capaç de ser utilitzat quan sigui necessari, sovint relacionada amb el temps d'activitat.
* Seguretat: no fer mal, lesions o danys.
* Accesibilitat: accessible i utilitzable només en formes autoritzades pels usuaris autoritzats.
* Privacitat: la protecció de la informació personal i l'accés no desitjat a l'espai personal.
* Escalabilitat: capaç de ser utilitzat pel nombre d'usuaris diferents, o amb quantitats variables de dades.
* Estabilitat: el grau en què les capacitats i característiques romanen igual.
* Integritat: la preservació de continguts i estructures, especialment quan es produeixen fallades de dades.
* Utilitat: satisfà les necessitats pertinents.
* Delightfulness: més enllà de les expectatives d'una manera que genera plaer.
* Operativitat: es pot gestionar d'una manera fiable eficient.
* Rendiment: velocitat i rendiment.
* Capacitat: nombre d'usuaris, registres o volums de dades.
* Compatibilitat: assistència oportuna i útil amb l'ús i operació.
* Adaptabilitat: capacitat i facilitat d'adaptació a les diferents circumstàncies.
* Rendibilitat: valor dels beneficis supera els costos d'assolir-los.

#### Interns

Tipus requisits no funcionals INTERNS, que generalment no són observables per l'usuari però són importants pels enginyers / constructors / operadors:
* Eficiència: prendre un mínim de temps, esforç, recursos o cost per crear o operar una solució.
* Estil / Elegància: disseny i / o implementació del disseny agradable o intel·ligent.
* Reutilització: grau en què els productes intermedis i / o finals poden ser reutilitzats en lloc de reconstruir-se.
* Estructura: la idoneïtat, la força i l'economia del disseny.
* Base de dades: estructura, l'eficiència i la integritat de les dades emmagatzemades.
* Configuració: altres components de maquinari i programari relacionats amb el sistema.
* Medi ambient: situació física i tecnològica en què hi ha el sistema.
* Portabilitat: la capacitat i la facilitat d'ús de la solució en diferents configuracions o entorns.
* Flexibilitat: la facilitat o la capacitat d'adaptar el producte per fer front a diferents situacions.
* Traçabilitat: facilitat o capacitat de rastrejar els artefactes a les seves fonts i fonts d'artefactes.
* Capacitat de prova: la facilitat o habilitat per crear proves que demostren les obres de disseny implementades.
* Capacitat de manteniment: la velocitat i la fiabilitat de l'actualització i / o corregint els productes de producció.
* Compatibilitat: velocitat, fiabilitat i utilitat de l'assistència als usuaris dels productes.
* Fàcil de manejar: facilitat de fer el seguiment dels artefactes i els canvis en aquests.
* Manufacturabilitat: facilitat de la implementació d'un disseny.
* Operabilitat: facilitat de funcionament d'un disseny implementat (producte).
* Comprensibilitat: facilitat de comprensió d'un disseny o el disseny implementat (producte).
* Documentació: la idoneïtat i suficiència de la informació descriptiva explicativa.
* Interoperabilitat: capacitat de funcionar en diferents configuracions o entorns.
* Compatibilitat: facilitat i capacitat per treballar amb altres productes, sistemes i programari.
* Localització / Internacionalització: capacitat de funcionar en altres àrees geogràfiques / culturals.
* Instal·lació: la facilitat, rapidesa i fiabilitat de la instal·lació d'un producte, sistema o programari per al seu ús.
* Distribució: facilitat, rapidesa i fiabilitat de la distribució d'un producte, sistema o programari als usuaris.

## Vegeu també

* Gestió de projectes
* Metodologia àgil
* Scrum