Les metodologies àgils o processos àgils, en el desenvolupament de programari, inclouen el descobriment de requisits i la millora de solucions mitjançant l'esforç col·laboratiu d'equips autoorganitzats i multifuncionals amb els seus clients / usuaris finals, planificació adaptativa, desenvolupament evolutiu, lliurament ràpid, millora contínua i respostes flexibles als canvis de requisits, capacitat i comprensió dels problemes a resoldre. Al llarg de les tres fases del desenvolupament de programari àgil, concretament la iniciació del projecte, la planificació de l'sprint i les demostracions, els usuaris tenen l'oportunitat de fer modificacions segons el context empresarial i els canvis en la demanda dels clients. Això millora la comprensió mútua entre desenvolupadors i usuaris mitjançant l'avaluació dels mòduls de la solució per determinar si es compleixen les necessitats empresarials, garantint així resultats de qualitat. Popularitzats en el Manifest de 2001 per al desenvolupament de programari àgil, aquests valors i principis van derivar i sustenten una àmplia gamma de marcs de desenvolupament de programari, inclosos Scrum i Kanban.

Tot i que hi ha moltes proves anecdòtiques que l'adopció de pràctiques i valors àgils millora l'eficàcia dels professionals del programari, els equips i les organitzacions, l'evidència empírica és mixta i difícil de trobar.

Història Els mètodes de desenvolupament de programari iteratius i incrementals es remunten a l'any 1957, amb la gestió de projectes evolutius i el desenvolupament de programari adaptatiu que va sorgir a principis dels anys setanta.

Durant la dècada de 1990, una sèrie de mètodes de desenvolupament de programari lleugers van evolucionar com a reacció als mètodes pesats predominants (sovint anomenats model de desenvolupament en cascada) que els crítics van descriure com massa regulats, planificats i microgestionats. Aquests mètodes lleugers inclouen: desenvolupament ràpid d'aplicacions (RAD), des de 1991; el procés unificat (UP) i el mètode de desenvolupament de sistemes dinàmics (DSDM), tots dos de 1994; Scrum, del 1995; Crystal Clear i programació extrema (XP), ambdues del 1996; i desenvolupament basat en funcions (FDD), des de 1997. Tot i que tots es van originar abans de la publicació de lAgile Manifesto, van passar a denominar-se col·lectivament mètodes de desenvolupament de programari àgils.

Ja des de 1991 s'havien produït canvis similars en la fabricacióIacocca Institute (1991). "21st Century Manufacturing Enterprise Strategy: An Industry Led View". Iacocca Institute, Lehigh University, Bethlehem, PA.Presley, A., J. Mills and D. Liles (1995). "Agile Aerospace Manufacturing". Nepcon East 1995, Boston. i el pensament de gestió que derivava de la producció ajustada.

L'any 2001, disset desenvolupadors de programari es van reunir en un complex de Snowbird, Utah, per discutir mètodes de desenvolupament lleugers. Van ser: Kent Beck (Programació extrema), Ward Cunningham (Programació extrema), Dave Thomas (PragProg, Ruby), Jeff Sutherland (Scrum), Ken Schwaber (Scrum), Jim Highsmith (Desenvolupament de programari adaptatiu), Alistair Cockburn (Crystal), Robert C. Martin (SOLID), Mike Beedle (Scrum), Arie van Bennekum, Martin Fowler (OOAD i UML), James Grenning, Andrew Hunt (PragProg, Ruby), Ron Jeffries (Programació extrema), Jon Kern, Brian Marick (Ruby, TDD) i Steve Mellor (OOA). Junts van publicar el Manifest per al desenvolupament de programari àgil.

El 2005, un grup encapçalat per Cockburn i Highsmith va escriure sobre els principis de gestió de projectes, la Declaració d'Interdependència PM, per guiar la gestió de projectes de programari segons mètodes àgils de desenvolupament de programari.

El 2009, un grup que treballava amb Martin va escriure un afegit als principis de desenvolupament de programari, el Software Craftsmanship Manifesto, per guiar el desenvolupament àgil de programari segons la conducta i el domini professional.

El 2011, Agile Alliance va crear la Guia de pràctiques àgils (anomenada Agile Glossary el 2016), un compendi de codi obert en evolució de les definicions de treball de pràctiques, termes i elements àgils, juntament amb interpretacions i directrius d'experiència de la comunitat mundial de professionals àgils.

El Manifest per al desenvolupament de programari àgil Valors de desenvolupament de programari àgil Basant-se en la seva experiència combinada de desenvolupar programari i per tal d'ajudar altres a fer-ho, els autors del manifest van declarar que valoraven:

Els principis bàsics de la metodologia àgil són: Els individus i les seves interaccions per sobre dels processos i les eines El programari que funciona per sobre de la documentació exhaustiva La col·laboració amb el client per sobre de la negociació de contractes La resposta davant del canvi per sobre de seguir un pla tancat És a dir, si bé ambdues parts tenen valor i s'han de tenir en compte els ítems de la dreta, els autors consideraven que els ítems de l'esquerra haurien d'influir més en la manera com les persones aborden el seu treball.

Com va explicar Scott Ambler:

Les eines i els processos són importants, però és més important que hi hagi persones competents que treballin junts de manera eficaç. Una bona documentació és útil per ajudar la gent a entendre com es construeix el programari i com utilitzar-lo, però el punt principal del desenvolupament és crear programari, no crear documentació. Un contracte és important, però no substitueix la col·laboració estreta amb els clients per anar veient què necessiten. Un pla de projecte és important; això no obstant, no ha de ser massa rígid per adaptar-se als canvis tecnològics o ambientals, les prioritats de les parts interessades i la comprensió de la gent del problema i la seva solució.

Alguns dels autors van formar l'Agile Alliance, una organització sense ànim de lucre que promou el desenvolupament de programari d'acord amb els valors i principis del manifest. En presentar el manifest en nom de l'Aliança Àgil, Jim Highsmith va dir:

Principis de desenvolupament de programari àgil El Manifest per al desenvolupament de programari àgil es basa en dotze principis:

Satisfacció del client mitjançant el lliurament anticipat i continu de programari valuós. Benvinguts els requisits canviants, fins i tot en el desenvolupament tardà. Entrega programari que funcioni amb freqüència (setmanes en lloc de mesos). Col·laboració estreta i diària entre empresaris i desenvolupadors. Els projectes es construeixen al voltant d'individus motivats, en els quals cal confiar. La conversa cara a cara és la millor forma de comunicació (coubicació). El programari en funcionament és la mesura principal del progrés. Desenvolupament sostenible, capaç de mantenir un ritme constant. Atenció contínua a l'excel·lència tècnica i al bon disseny. La senzillesa, l'art de maximitzar la quantitat de treball realitzat, és essencial. Les millors arquitectures, requisits i dissenys sorgeixen d'equips autoorganitzats. Periòdicament, l'equip reflexiona sobre com ser més efectiu i s'ajusta en conseqüència.

Visió general miniatura|La programació en parelles, una tècnica de desenvolupament àgil que utilitza XP. Observeu els radiadors d'informació al darrere Existeixen molts mètodes de desenvolupament àgil. El desenvolupament més promogut, el treball en equip, col·laboració, i el procés d'adaptabilitat al llarg del cicle de vida del projecte.

Iteratiu, Incremental i Evolutiu

Molt mètodes àgils fragmenten tasques en petits increments amb una planificació mínima i no involucra directament una planificació al llarg termini. Les iteracions són marcs (quadres de temps) de curt termini que típicament tarden entre una i quatre setmanes. Cada iteració involucra un equip multidisciplinari treballant en totes les funcions: planificació, anàlisi de requeriments, disseny, programació, proves unitàries, i les proves de validació. Al final de la iteració el producte treballat es mostra a les parts interessades (o clients). Això minimitza el grans riscos i permet que el producte s'adapti als canvis ràpidament. És possible que una iteració no afegeixi una funcionalitat prou feta com per satisfer les versions llançades al mercat, però l'objectiu és tenir una versió disponible al final de cada iteració. Múltiples iteracions podrien ser necessàries per llançar un producte o noves característiques.

Comunicació eficient i cara a cara

Sense que importi el mètode de desenvolupament que se segueixi, cada equip àgil inclou un representant del client, per exemple el responsable del producte en Scrum. Aquesta persona és nomenat per les parts interessades perquè actuï en el seu nom i fa un compromís personal d'estar disponible per als desenvolupadors per respondre a les preguntes al llarg de la iteració. Al final de cada iteració, les parts interessades i l'opinió del representant dels clients reavalua les prioritats per tal d'optimitzar el retorn de la inversió i assegurar l'alineació amb les necessitats del client i objectius de l'empresa.

En el desenvolupament àgil de programari, un radiador de la informació és una pantalla física (normalment gran) ubicada en un lloc preferent prop de l'equip de desenvolupament, a la vista dels que hi passin pel davant. Presenta un resum actualitzat de la situació d'un projecte de programari o qualsevol altre producte. El nom va ser encunyat per Alistair Cockburn, i es descriu en el seu llibre de 2002 Agile Software Development. Un indicador lluminós de construcció pot ser utilitzat per informar un equip sobre l'estat actual del seu projecte.

Circuit de retroalimentació molt curt i cicle d'adaptació

Una característica comuna de desenvolupament àgil són reunions d'estat diaris o "stand-ups", per exemple l'Scrum Diari (Reunió). En una breu sessió, els membres de l'equip informen els uns als altres del que van fer el dia anterior, el que pretenen fer avui, i quins són els obstacles que tenen.

Enfocament de qualitat

S'utilitzen sovint eines i tècniques específiques, com ara, integració contínua, testeig unitari automatitzat, programació en parelles, desenvolupament basat en proves, patrons de disseny, desenvolupament basat en domini, la refacció de codi entre altres tècniques per millorar la qualitat i l'agilitat del projecte.

Filosofia Comparat amb el desenvolupament de programari tradicional, el desenvolupament de programari àgil s'adreça a sistemes i desenvolupaments complexos amb projectes dinàmics, on fer prediccions acurades del temps necessari de desenvolupament és molt complicat. A conseqüència d'això es perdria molts diners. Els diversos anys d'experiència han ajudat a donar forma a les metodologies àgils.

Adaptatiu contra Predictiu Les metodologies de desenvolupament existeixen en un continu des d'adaptatiu fins a predictiu. Appendix A, pages 165–194 Les metodologies àgils formen part de les adaptatives. Un dels elements clau del desenvolupament adaptatiu és l'anomenat Rolling Wave, el qual determina objectius, però dona flexibilitat a l'hora d'aconseguir-los. Aquests objectius també estan sotmesos a possibles canvis futurs. Com més lluny es trobi, en el temps, un objectiu, un desenvolupament adaptatiu serà més imprecís sobre el que passarà en aquella data. Un equip que utilitzi desenvolupament adaptatiu no pot informar sobre que farà la pròxima setmana, però si quines funcionalitats implementaran al llarg del mes següent. Si a l'equip se li demana una predicció del que tindran fet al cap de sis mesos (o qualsevol quantitat considerable de temps) l'equip només serà capaç d'informar de l'objectiu principal, o una predicció aproximada de cost que tindrà.