TREBALL ENGINYERIA DEL SOFTWARE - Universitat...
Transcript of TREBALL ENGINYERIA DEL SOFTWARE - Universitat...
Í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
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
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 (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/