Quina diferència hi ha entre el model iteratiu, el model incremental i el model àgil?


Resposta 1:

El model iteratiu de desenvolupament és el que iterim a través de la idea i continuem millorant-lo a mesura que iterem a través de diverses versions. Com jo

u passa d’una versió a una altra que decideixis (en funció del feedback) què es necessita com a millor opció a la nova versió i què s’ha de llençar.

Un model incremental és el lloc en què es crea la solució sobre totes les parts, però al final de cada fase o part que no es disposa

qualsevol cosa que es pugui revisar o proporcionar comentaris. Heu d’esperar a l’etapa final del procés incremental per lliurar el producte final.

A continuació s’explica un exemple visual (d’internet) que ho representa (incremental a la part superior i iteratiu a la part inferior):


Resposta 2:

L’enfocament incremental és un mètode de desenvolupament de programari on el model és dissenyat, implementat i provat de forma incremental (s’hi afegeix una mica més cada vegada) fins que s’acabi el producte. Implica tant el desenvolupament com el manteniment. El producte es defineix com acabat quan compleix tots els seus requisits

El disseny iteratiu és una metodologia de disseny basada en un procés cíclic de prototipat, prova, anàlisi i perfeccionament d’un producte o procés. A partir dels resultats de la prova de la iteració més recent d'un disseny, es realitzen canvis i perfeccionaments. Amb aquest procés es pretén millorar la qualitat i la funcionalitat d’un disseny. En el disseny iteratiu, la interacció amb el sistema dissenyat s’utilitza com a forma d’investigació per informar i evolucionar un projecte, a mesura que s’implementen versions successives o iteracions d’un disseny.

El programari es desenvolupa en cicles ràpids incrementals. Cada versió es prova minuciosament per garantir la qualitat del programari. Extreme Programming (XP) és actualment un dels models de cicle de vida de desenvolupament àgil més conegut. Proves àgils que s’inverteixen des de la perspectiva del client.

Per saber-ne més amb vídeos gratuïts, visiteu: Tutories de proves de programari


Resposta 3:

Normalment hi ha una diferència crítica entre l’enginyeria de programari “regular” i l’enginyeria de programari. Com que els productes d’enginyeria regular requereixen alguna cosa propera a l’acabament abans que comenci l’ús, les especificacions normalment han d’anar prèviament a l’inici de la construcció. Però és possible provar molts components acabats. Un detall més del “món real” és que és molt difícil provar diferents components quan no s’integren en un model de (molt) dispositiu completat. Realment hi ha moments que heu d'encendre el dispositiu i veure què passa. Amb sistemes significativament complexos, les proves no poden començar realment fins que la primera iteració no sigui (majoritàriament) completa.

Evidentment, aquest no és el cas de molts sistemes de programari. Aquest és especialment el cas quan es fongui bona part del sistema, i és tan difícil o impossible d’implementar el comportament sota estrès. Per tant, hem de suavitzar el procés de desenvolupament, de manera que el concepte de finalització és majoritàriament invisible. Simplificar un gran sistema com l’impost o el control de vol d’avions nacionals sol ser impossible, perquè els moments d’extrema demanda són difícilment simulables i complicats inesperadament.

L'evolució del desenvolupament de programari es pot apreciar fàcilment com una sèrie d'intents d'aproximació al desenvolupament que tant realitzen una tasca ben definida com per poder-ho fer amb càrregues inesperadament pesades. Provar una arquitectura per produir amb èxit generar la sortida adequada a partir de diverses barreges d’entrades és probablement una situació completa de NP, on la prova de correcció és possible, però, a causa d’explosions combinatorials estàndard, l’etapa de prova superaria aquest univers.

Així doncs, hem vist una sèrie de revisions al model del procés de desenvolupament intentant crear especificacions que abasten petites parts de la tasca, provant-les per si mateixes i després provant-les quan s’integrin en una part més gran dels sistemes finals. Durant els darrers 50 anys, les mides relatives dels components i el grau de proves dels sistemes continuen augmentant.

La pregunta es fa referència a tècniques que redueixen la mida i la complexitat mitjanes dels components i augmenten la simplicitat dels procediments de prova. Posar nom a successives modes del procés de desenvolupament proporciona una manera útil de fer-ne referència, però és molt fàcil transferir els noms dels processos a parts del procés diferents i més complexes. Normalment, els nous noms no arriben gaire a la resolució dels problemes que es feien evidents donat l'ús del nou nom i les seves tècniques.

Crec que el millor és mirar una de les tècniques (més noves) i veure el que ofereix la seva aplicació. Pren Agil. La freqüència diària, amb compromisos minúsculs per part de les persones, manté el projecte, si no és a les baranes, almenys a prop d’ells. Practicar de forma religiosa proves regressives (qualsevol error descobert en qualsevol moment es converteix en un altre element de la suite de proves i es torna a executar diàriament) és frustrant, car i absolutament necessari. El lliurament és incremental, amb la seqüència determinada per la utilitat per a l'usuari més que per la lògica del procés de desenvolupament.

Aquestes consideracions augmenten el cost del projecte, traslladant els inevitables costos futurs al present. Diners ben gastats.

Cadascuna de les tècniques de desenvolupament comunes contribueix a les peces que evolucionen i milloren els processos. Però cap conjunt de tècniques pot garantir l’èxit.

Al contemplar les frustracions que comporta, és útil tenir present l’arquitectura naval. Amb subs, per exemple, on la majoria dels equips no entraran per la porta principal, probablement els canvis requeriran que la navegació surti de l’aigua, es faci un forat gran i s’instal·li el nou engranatge. Llavors heu de soldar el forat tancat i deixar molt clar que la superfície acabada de quedar no es filtra


Resposta 4:

El model iteratiu és el que es crea un prototip senzill amb poques funcions primer. Després d'això, se li afegeixen funcions amb cada cicle de desenvolupament. En cas de model incremental, podreu passar per la fase de desenvolupament en un estil avanç des de la conceptualització del projecte, el disseny, el desenvolupament, etc. Per últim, s’inclouen diferents models de desenvolupament en desenvolupament àgil i segueix el propi enfocament iteratiu. Per si voleu saber més sobre la metodologia de desenvolupament podeu consultar aquest article.