TREBALL ENGINYERIA DEL SOFTWARE - Universitat...

42
TREBALL ENGINYERIA DEL SOFTWARE: METODOLOGIES ÀGILS Carles Soler Deu i Lluís Vilà Serarols

Transcript of TREBALL ENGINYERIA DEL SOFTWARE - Universitat...

TREBALL ENGINYERIA DEL SOFTWARE:

METODOLOGIES ÀGILS

Carles Soler Deu i Lluís Vilà Serarols

Índex

� Introducció

� Extreme Programming (XP)

� Scrum

� Altres metodologies� Altres metodologies

� Conclusions

� Bibliografia

Procés de desenvolupament

� Defineix Qui ha de fer Què, Quan i Com ha de fer-ho.

� No existeix un procés de desenvolupament universal. Les característiques de cada projecte exigeixen que el procés sigui configurable.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Procés de desenvolupament software

� Un procés de desenvolupament software especifica:� Flux d’activitats� Productes que s’han de crear què i quanProductes que s’han de crear què i quan� Assignació de tasques� Criteris per controlar el procés

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Metodologia

� Estableix com abordar de forma sistemàtica construcció de software.

� Es descriu el problema i solució mitjançant un � Es descriu el problema i solució mitjançant un conjunt de models.

� Cal conèixer les limitacions de les metodologies.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Metodologia (II)

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Metodologies pesades

� Forta dependència de les planificacions.

� S’estableixen activitats.

� S’estableixen eines i notacions.

� Estem molt controlats .

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Metodologies àgils

� Es centren en l’adaptabilitat de qualsevol canvi.

� Minimització del risc del projecte: iteracions curtes.

� Desenvolupament incremental.

� Comunicació� Entre l’equip

� Amb el client

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Fases d’un projecte

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Història metodologies àgils

� Metodologies pesades: massa burocràtiques i lentes.

� Neixen als 90’s.� Neixen als 90’s.

� Manifest àgil any 2001 a Utah.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Manifest pel desenvolupament àgil

� Principals idees del manifest:

Els individus i la comunicació dels processos i les einesper sobreEls individus i la comunicació dels processos i les einesper sobre

El software que funciona de la documentació exhaustivaper sobre

La col·laboració amb el client la negociació contractualper sobre

La resposta al canvi el seguiment d’un pla estricteper sobre

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Manifest pel desenvolupament àgil (II)

� Els individus i la comunicació per sobre dels processos i les eines

�Més important l’equip que l’entorn.�Més important l’equip que l’entorn.

� Cal adaptar-se a les necessitats.

� Augmentar la productivitat.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Manifest pel desenvolupament àgil (III)

� El software que funciona per sobre de la documentació exhaustiva.

� Si el software no funciona, els documents no � Si el software no funciona, els documents no serveixen per res.

� Internament podem tenir documentació, només la necessària, externament la que vulgui el client.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Manifest pel desenvolupament àgil (IV)

� La col·laboració amb el client per sobre la negociació contractual.

� L’èxit dels projectes es basa en una realimentació � L’èxit dels projectes es basa en una realimentació permanent.

� Els requisits no són un document, sinó una conversa amb el client.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Manifest pel desenvolupament àgil (V)

� La resposta al canvi per sobre el seguiment d’un pla estricte.

� Si el projecte no s’adapta als canvis, fracassa.� Si el projecte no s’adapta als canvis, fracassa.

� Estratègia de planificació:� Plans detallats per les pròximes setmanes.

� Plans aproximats pels propers mesos.

� Plans molt generals a llarg termini.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Metodologies àgils a l’empresa

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Extreme Programming (XP)

� Kent Beck "Extreme Programming Explained: Embrace Change“.

� Propietats fonamentals:

� És una metodologia lleugera.� Pensada exclusivament per

software.� Adaptable a qualsevol equip.� Principi fonamental: adaptació al

canvi.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Valors de XP

� Comunicació� Entre programadors� Amb el client

� Simplicitat� Simplicitat

� Feedback

� Coratge

� Respecte

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Variables d’un projecte XP

� Una l’ha d’escollir l’equip de desenvolupadors� Cost� Temps� Qualitat� Qualitat� Abast

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Procés

� Cicles de desenvolupament curts: iteracions.

� Cicle dinàmic

� Un projecte pot ocupar de 10 a 15 iteracions.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Procés (II)

� El client defineix el producte que vol implementar.

� L’equip fa una estimació de l’esforç necessari per la seva implementació.

� El client selecciona què construir, d’acord amb les seves prioritats i restriccions de temps.

� El programador construeix part del producte.

� Tornem al pas 1.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Fases

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Fases (II)

� Exploració� Quin producte s’ha de fer ?� Primera estimació de temps

� Planificació� Ordre d’implementació� Pla d’entregues

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Fases (III)

� Iteració� Refinament de requisits amb el client.� Anàlisi.� Implementació.� Implementació.

� Posada en marxa� Ajustament i proves.� Presentació producte.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Regles i pràctiques

� Guia pel desenvolupament.

� Es poden agrupar en:� Planificació� Planificació� Disseny� Desenvolupament� Proves

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Regles i pràctiques de la planificació

� Històries d’usuari (user stories).

� Pla d’entregues (release plan).

� Pla d’iteracions (iteration plan).

� Reunions diàries de seguiment (stand-upmeeting).

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Regles i pràctiques del disseny

� Simplicitat.

� Solucions spike.

� Recodificació (refactoring).

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Regles i pràctiques del desenvolupament

� Disponibilitat del client.

� Ús d’estàndards.

� Programació dirigida per proves (test-drivenprogramming).

� Programació dirigida per proves (test-drivenprogramming).

� Programació per parelles.

� Integracions permanents.

� Ritme de treball.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Regles i pràctiques de les proves

� Proves unitàries.

� Detecció i correcció d’errors.

� Proves d’adequació.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

L’equip

� Programador

� Client

� Responsable de proves� Responsable de proves

� Responsable de seguiment

� Entrenador

� Gestor

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Scrum

� Ideada per Ken Scwaber i JeffSutherland l’any 1995.

� Propietats fonamentals:� Propietats fonamentals:� Desenvolupament incremental

de requisits� Elements clau: el client i el cost� Avaluació� Comunicació

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Procés

� Estructura d’iteració: increment del producte.

� Avaluació del client desprès de cada iteració.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Planificació de la iteració (sprintplanning)

� Primera part:� Presentació dels requisits d’usuari.� Estudi de requisits prioritaris i riscos.

� Segona part:� Segona part:� Planificació de la iteració.� Llista de tasques (sprint backlog).� Estimació de recursos i temps.� Assignació de tasques.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Execució de la iteració (sprint)

� Iteracions curtes i fixes.

� Increment del producte.

� Reunions diàries (Scrum daily meetings).

� Preguntes clau:� Què vas fer des de la ultima reunió de sincronització? Quins problemes has

trobat?.

� Què tens plantejat fer avui?

� Has trobat o trobaràs algun problema per complir el teu objectiu?

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Demostració requisits (sprint review)

� Presentació de les noves funcionalitats al client.

� Adaptacions� Client� Client� Desenvolupadors

� Tornar a planificar el projecte?

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Retrospectiva (Sprint Retrospective)

� Anàlisi dels passos fets.

� Avaluació del que s’ha fet bé i malament.

� Preguntes clau:� Quines coses funcionen be?

� Quines coses podem millorar?

� Quines coses es podrien fer en la següent iteració?

� Que hem après?

� Quins problemes ens podrien portar problemes en el futur?

Introducció Extreme Programming Scrum Altres metodologies Conclusions

L’equip

� Porcs� Propietari del producte� ScrumMaster o facilitador� Equip de treball� Equip de treball

� Gallines� Usuaris del producte� Clients o venedors� Gestors i directius

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Altres metodologies àgils

� Crystal Methodologies

� Dynamic Systems Development Method(DSDM)(DSDM)

� Adaptive Software Development (ASD)

� Feature – Driven Development (FDD)

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Conclusions

� No existeix una metodologia universal.

� Solució a mida per la majoria de projectes.

� Simplicitat en aprenentatge i aplicació.

� Útil per petits grups de desenvolupament.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Conclusions (II)

� XP metodologia molt popular.

� Scrum: caos controlat i realimentació entre fases.fases.

� Utilitzades per grans empreses.

Introducció Extreme Programming Scrum Altres metodologies Conclusions

Bibliografia

� K. Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, Pearson Education, 2000. ISBN 201-61641-6.

� E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns - Elements of Reusable ObjectOriented Software. Addison-Wesley, 1995.

� SCRUM: metodología “ágil” para tus proyectos, http://pymecrunch.com/scrum-metodologia-agil-para-tus-proyectos

� Manifesto for Agile Software Development http://agilemanifesto.org/

� Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave ThomasSteve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas

� La Nueva Metodología http://www.programacionextrema.org/articulos/newMethodology.es.html

� Introduction to Scrum - An Agile Process http://www.mountaingoatsoftware.com/topics/scrum

� The Rules and Practices of Extreme Programming Don Wells http://www.extremeprogramming.org/rules.html

� Apunts Projectes Informàtics. http://www.udg.edu/Guiadematricula/Dissenyassignatura/tabid/15700/Default.aspx?curs=2010&codia=3105IG0021

� Extreme Programming (XP): un nuevo método de desarrollo de software

� César F. Acebal, Juan M. Cueva Lovelle

� Metodologías ágiles y la programación extrema (XP). http://www.willydev.net/descargas/prev/TodoAgil.pdf

� Metodologia Scrum. http://scrum.es/

TREBALL ENGINYERIA DEL SOFTWARE:

METODOLOGIES ÀGILS

Carles Soler Deu i Lluís Vilà Serarols