What is the Software Development Life Cycle (SDLC)?


L’ús de marcs de cicle de vida de desenvolupament de programari (SDLC) s’ha convertit principalment en estàndard en el desenvolupament de programari. La majoria de les empreses utilitzaran un SDLC per guiar el desenvolupament, encara que no totes les empreses utilitzaran la mateixa metodologia. Tant si desenvolupeu programari vosaltres mateixos com si teniu previst treballar amb un equip de desenvolupament en un futur proper, haureu d’esperar trobar algun tipus de marc SDLC.

Pot ser necessari familiaritzar-se amb marcs populars com Agile i Scrum, així com el vocabulari i els conceptes únics que utilitzen aquests marcs, per comunicar-se eficaçment amb alguns desenvolupadors i equips de desenvolupament.

Què és el SDLC?

El cicle de vida del desenvolupament de programari és un conjunt de passos que permeten el procés de desenvolupament de nou programari. A la pràctica, la majoria dels SDLC ofereixen una combinació entre una metodologia de desenvolupament de programari i una descripció del procés de desenvolupament.

Aquests SDLC intenten descriure com es produeix el desenvolupament de programari i prescriure fases i estratègies específiques que els desenvolupadors poden utilitzar per crear grans projectes de programari. El marc cobreix tot el cicle de desenvolupament, incloses totes les tasques necessàries per planificar, construir, provar i desplegar el programari.

L’ús d’un SDLC pot ajudar els desenvolupadors a entendre millor el procés de desenvolupament de programari i guiar l’equip a través del desenvolupament de nou programari.

Quines són les fases del SDLC?

Les fases específiques de l’SDLC poden variar segons el marc concret que utilitzi un equip de desenvolupament o empresa. La majoria dels models SDLC, però, inclouen aquestes fases:

  • Anàlisi de requisits: Determinació dels requisits dels usuaris per al programari.
  • Disseny: Planificant com crearan programari que compleixi aquests requisits.
  • Desenvolupament: Construcció del producte funcional a partir dels requisits de l’usuari i planificació des de la fase de disseny.
  • Prova: Prova de la funcionalitat del producte.
  • Desplegament: Posar el producte a disposició dels usuaris finals.
  • Manteniment: Actualitzar el producte, discutir el producte amb els usuaris i garantir que el producte funcioni correctament.

Alguns models de l’SDLC també poden descriure una fase d’ideació que arriba abans de la fase d’anàlisi de requisits. Aquesta idea inicial proporciona a l’equip de desenvolupament idees i conceptes que poden discutir amb clients, usuaris potencials i altres parts interessades les necessitats dels quals determinaran els requisits del programari.

A la pràctica, les divisions entre aquestes fases poden no estar sempre perfectament netes. Segons l’estructura i l’estratègia de l’equip de desenvolupament, algunes fases de desenvolupament es poden solapar. Altres fases poden repetir-se al llarg del cicle de desenvolupament.

L’anàlisi de requisits, per exemple, es pot produir al llarg del desenvolupament d’un projecte. Les necessitats del client poden evolucionar amb el pas del temps i les comunicacions errònies primerenques poden requerir ajustaments més tard en el procés de desenvolupament.

Les proves, el disseny i el desenvolupament es poden tornar a produir després del desplegament com a part del procés de manteniment i desenvolupament d’actualització del programari que un equip continua donant suport després del llançament.

Diferents models SDLC

No tothom modela el cicle de vida del desenvolupament de programari de la mateixa manera. Els diferents tipus de models SDLC són els més adequats per a diferents equips i projectes de desenvolupament de programari. Els models SDLC més comuns inclouen Waterfall, Scrum, Agile,

Model de cascada

La majoria de les descripcions del model de cascada descriuen cinc fases diferents:

  • Determinació de requisits
  • Disseny
  • Implementació
  • Verificació
  • Manteniment

Algunes variacions del model divideixen encara més la fase de disseny en fases de disseny lògic i de disseny físic. Altres poden incloure una fase de desplegament entre els passos de verificació i manteniment.

Amb l’enfocament Waterfall, cada fase principal del desenvolupament del programari es produeix una darrere l’altra fins que el producte està complet i està disponible per als usuaris finals. Normalment es requereix completar una fase abans de començar la següent. Cada nova fase també requereix lliuraments de la fase anterior, de manera que el progrés flueix principalment en una direcció. Com a resultat, aquestes fases “cascada” a la següent.

Limitacions

L’enfocament de la cascada no és iteratiu i generalment és inflexible en comparació amb les alternatives. Si els desenvolupadors segueixen estrictament aquest enfocament, no tindran gaire espai per crear prototips, experimentar amb solucions potencials o revisar el treball sense interrompre significativament el procés de desenvolupament.

Si un client necessita canvis durant el procés de desenvolupament (i com a resultat els requisits del projecte canvien), l’enfocament Waterfall pot impedir que un equip de desenvolupament s’adapti de manera eficaç. El redisseny, la reurbanització i les proves poden ser necessaris, la qual cosa condueix a un desenvolupament més lent i més car.

Malgrat les limitacions de l’enfocament de la cascada, segueix sent popular, encara que no tan popular com abans dels anys 2000.

Més informació a Project-Management.com: Àgil vs. Cascada: Diferències en les metodologies de desenvolupament de programari

Model de prototipatge

Com el seu nom indica, el model de prototipatge implica una fase de prototipatge, on l’equip de desenvolupament experimenta amb potencials funcions de programari i estratègies de disseny.

A continuació, els clients, clients o usuaris potencials posen a prova els prototips i proporcionen comentaris. L’equip de desenvolupament integra aquesta retroalimentació en les seves fases de disseny i planificació de requisits, i després desenvolupa nous prototips. Quan el client està satisfet amb el prototip, el desenvolupament continua amb normalitat.

Aquest model millora moltes de les debilitats del model Waterfall. És un dels SDLC més populars, que equilibra la simplicitat del model Waterfall amb algunes millores que afegeixen complexitat al procés de desenvolupament de programari, però també ajuden a mitigar el risc.

Enfocament iteratiu

Amb l’enfocament iteratiu, l’equip de desenvolupament no assumeix que la primera versió del seu programari sigui la que desplegarà. En canvi, l’equip es prepara per a diversos cicles de desenvolupament (o iteracions de programari) abans que arribin a un projecte acabat que estigui llest per al desplegament.

Molts enfocaments iteratius també són incrementals, el que significa que l’abast global del projecte es divideix en fragments més petits que l’equip pot abordar d’un en un. Aquests fragments més petits del projecte, un cop finalitzats, es poden provar individualment o lliurar-los als clients per obtenir comentaris, cosa que permet a l’equip de desenvolupament saber més sobre què vol el client del projecte final.

L’enfocament iteratiu és similar al model de prototipatge, però les revisions dels requisits del projecte continuen durant tot el procés de desenvolupament. En lloc de tenir una fase de prototipat dedicada on els requisits poden canviar, l’equip espera que els requisits i l’abast del projecte es mantinguin una mica inestables fins que el projecte estigui complet i desplegat.

Igual que el model de prototipatge, l’enfocament iteratiu es basa en el model Waterfall i proporciona una resposta a moltes de les seves mancances. A diferència de l’enfocament de prototipat, però, els clients estan molt involucrats en gran part del procés de desenvolupament, en lloc de només la fase inicial de prototipatge.

Àgil

Àgil és un terme paraigua per a metodologies basades en el Manifest àgil per al desenvolupament de programari. El manifest descriu 12 principis per al desenvolupament de programari, que inclouen donar la benvinguda als requisits canviants, oferir programari que funcioni amb freqüència i comunicar-se mitjançant una conversa cara a cara.

Aquest enfocament és adequat per a projectes on els requisits canvien amb freqüència i l’equip de desenvolupament s’ha d’adaptar ràpidament a mesura que el desenvolupament avança, d’aquí el nom “Àgil”.

La majoria dels enfocaments àgils per al desenvolupament de programari aprofiten algunes de les mateixes pràctiques de gestió i desenvolupament, com ara la programació de parelles, els stand-ups i els sprints. Aquestes pràctiques ajuden els desenvolupadors a alinear el seu treball amb els principis àgils.

En el lloc de treball àgil ideal, els equips s’autoorganitzen i estan orientats a la col·laboració. Sovint ofereixen programari de treball i mesuren el progrés per la quantitat de programari de treball que produeixen.

Agile és especialment popular en entorns d’inici, on el desenvolupament ràpid de programari de treball pot ajudar una empresa a obtenir finançament i a construir la reputació o la base de clients de l’empresa. Tanmateix, com altres SDLC, el desenvolupament àgil té inconvenients.

Els crítics d’Agile diuen que el ritme ràpid del desenvolupament àgil pot limitar el potencial dels nous projectes i animar els desenvolupadors a jugar amb seguretat, centrant-se a desenvolupar programari de treball amb les competències existents en lloc d’experimentar, aprendre i adquirir noves habilitats.

Relacionats: Què és un coach àgil?

Scrum

Scrum és un derivat del marc Agile que proporciona un enfocament orientat al lliurament per al desenvolupament de productes i l’SDLC.

A la gestió de projectes Scrum, l’equip del projecte està format per un gestor de projecte, propietari del producte, Scrum Master i diversos membres de l’equip multifuncional. El propietari del producte és responsable de maximitzar el valor del producte, mentre que l’Scrum Master manté l’equip alineat amb el marc de Scrum.

Aquest marc depèn en gran mesura dels “sprints”: períodes curts de temps, generalment d’unes dues a quatre setmanes de durada, durant els quals els membres de l’equip treballen en una petita part de l’abast complet del projecte. Al final de l’sprint, aquest treball s’entrega al client.

Com amb tots els altres marcs àgils, Scrum se centra molt en els lliuraments de programari de treball com a mètrica del progrés. La majoria de les crítiques a Agile en general també s’apliquen a Scrum.

Relacionats: Consells per implementar les millors pràctiques de Scrum

Kanban

Kanban és un altre marc popular utilitzat per implementar el desenvolupament de programari àgil. A diferència d’altres metodologies àgils, Kanban fa petits canvis a l’estructura típica de l’equip de desenvolupament de programari, per la qual cosa s’adapta bé a les organitzacions més tradicionals. Mentre que Scrum se centra a lliurar programari de treball en un període de temps determinat, Kanban se centra a dividir el treball en tasques més petites, visualitzar-les i organitzar-les.

La metodologia gira al voltant d’una eina de gestió de projectes anomenada tauler Kanban, que ajuda l’equip a visualitzar el treball. Aquest tauler indica les tasques que s’estan realitzant actualment, les tasques completades i les tasques futures.

Molts equips utilitzaran eines digitals de pissarra Kanban per organitzar els seus projectes, però els taulers físics també poden ser útils, tot i que fer un seguiment d’un gran nombre de tasques amb aquests taulers pot ser una feina intensiva.

La metodologia no ofereix cap eina per ajudar l’equip de desenvolupament a gestionar el calendari del projecte, però pot ser difícil estimar quant de temps trigarà a completar-se. Els projectes complexos també poden donar lloc a taulers Kanban molt complexos que són difícils d’entendre per a l’equip.

Llegeix més sobre TechRepublic: Scrum o kanban: quina eina de desenvolupament de programari àgil és millor per al vostre projecte?

Pros i contres d’utilitzar un model SDLC

Un marc formal per al desenvolupament de programari ajuda a guiar els desenvolupadors a través del procés de creació de nou programari. Per a la majoria de projectes, l’ús d’un model SDLC pot ajudar a aclarir els objectius del projecte, agilitzar la gestió i reduir el risc d’excés de pressupost o de terminis perduts.

Tanmateix, l’adopció d’un model SDLC pot tenir desavantatges. Un marc equivocat, per exemple, pot limitar la flexibilitat de l’equip o crear expectatives poc realistes sobre com procedirà el desenvolupament. Un marc massa flexible o fluix també pot crear problemes, especialment per a equips més grans on l’escala de l’equip pot dificultar la gestió, l’organització i la comunicació.

Agilització del desenvolupament de programari amb un SDLC

Amb un cicle de vida de desenvolupament de programari, un equip de desenvolupament pot descriure el seu procés per crear nou programari. Aquesta descripció pot ajudar els desenvolupadors a entendre millor el projecte i crear marcs per guiar el desenvolupament de programari.

El SDLC original era el model Waterfall, un enfocament senzill amb limitacions importants. Per a projectes de programari més grans, la majoria de les empreses probablement utilitzaran un enfocament diferent, com ara el model de prototipat, l’enfocament iteratiu o una de les moltes variacions de la metodologia Agile.

Cadascun d’aquests diferents models SDLC té els seus propis avantatges i desavantatges. En la situació adequada, la majoria d’aquestes metodologies poden ajudar a guiar un equip de desenvolupament de programari durant el procés de desenvolupament. Tanmateix, no tots els enfocaments SDLC seran adequats per a tots els projectes.

Llegeix a continuació: Quins són els riscos clau de l’externalització del desenvolupament de programari?



Source link

Related post

EDUCAUSE 2022: How Data Collection Can Improve Student and Faculty IT Support

EDUCAUSE 2022: How Data Collection Can Improve Student and…

At Indiana University, Gladdin said, to make life easier for students and faculty, they implemented a course template for the Canvas…
UGC, AICTE warn students against online PhD programmes offered by EdTech platforms | Latest News India

UGC, AICTE warn students against online PhD programmes offered…

The University Grants Commission (UGC) and the All India Council for Technical Education (AICTE) on Friday issued a joint advisory against…
UGC, AICTE warn students against online PhD programmes offered by EdTech platforms | Latest News India

UGC, AICTE warn students against online PhD programmes offered…

The University Grants Commission (UGC) and the All India Council for Technical Education (AICTE) on Friday issued a joint advisory against…

Leave a Reply

Your email address will not be published.