metodologies Àgils

39
Metodologies Àgils Nicolás Joel Giacconi Fernández Óscar Simón Castillo

Upload: zoltin

Post on 23-Feb-2016

51 views

Category:

Documents


0 download

DESCRIPTION

Metodologies Àgils. Nicolás Joel Giacconi Fernández Óscar Simón Castillo. Introducció. Per tenir èxit desenvolupant software no es suficient amb notació de modelatge i eines, fa falta una metodologia de desenvolupament. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Metodologies Àgils

Metodologies Àgils

Nicolás Joel Giacconi FernándezÓscar Simón Castillo

Page 2: Metodologies Àgils

2

IntroduccióO Per tenir èxit desenvolupant software no es suficient

amb notació de modelatge i eines, fa falta una metodologia de desenvolupament.

O Per fer-ho s’ha fet molt èmfasi a la rigorosa definició de rols, activitats, modelatge, documentació detallada… Per a un projecte de grans dimensions ha demostrat ser molt efectiu, però per a molts dels actuals projectes que estan en continu canvi no es massa efectiu ja que s’exigeix reduir dràsticament els temps de desenvolupament mantenint la qualitat.

O Per a aquests tipus de projectes les Metodologies Àgils han demostrat ser una bona solució ja que simplifiquen l’entorn de desenvolupament sense sacrificar la qualitat del producte.

Page 3: Metodologies Àgils

3

HistoriaO Un dels passos més grans per l’industria

del software va ser el model de cascada.O Tenir un procés de desenvolupament

que ordenés el procés de desenvolupament i que sembles senzill va donar-li gran promoció

O Però això va portar a un “congelament” del requeriment en les primeres etapes, i els canvis significaven un gran esforç de retreball.

Page 4: Metodologies Àgils

4

HistoriaO A mes, la fase

d’implementació del model requeria fer-se per mòduls de forma independent amb proves unitàries.

O Això provocava que a l’hora de la integració vinguessin sorpreses.

O Això provocava un retràs del projecte sacrificant la qualitat d’aquest.

Page 5: Metodologies Àgils

5

HistoriaO Per això van anar sortint nous

processos denominats iteratius que proposaven vigilar la impredictibilitat del software per prevenir riscos prematurs.

O Aquests models van esser l’iteratiu, incremental, en espiral, basat en prototip, SLCD, MBASE, RUP, etc.

Page 6: Metodologies Àgils

6

HistoriaO Amb el model en espiral es

feia un anàlisis aviat per prevenir riscos.

O Amb això es feien prototips vàlids que després de ser validats per el client, s’implementaven amb un model en cascada.

O I aquí és un es torna a errar ja que no donava l’opció de canvis un cop començada la implementació final.

Page 7: Metodologies Àgils

7

HistoriaEn adonar-se’n d’això es va determinar tres fets molt importants per a poder planificar i controlar un projecte tenint en compte les parts implicades:

O Objectius del cicle de vidaO Arquitectura del cicle de vidaO Capacitat de l’operació inicial

Page 8: Metodologies Àgils

8

HistoriaO Una de les metodologies que té en

comte aquests tres fets és el RUP.O El RUP és una de les metodologies més

emprades i una de les primeres que es venuda com a producte.

O Però així com és efectiva per a projecte de gran envergadura, no es tan efectiu en projectes més petits ja que hi ha una cosa que no té en comte: Les Persones.

Page 9: Metodologies Àgils

9

El Manifest Àgil Al març de 2001, 17 crítics de la

millora del software son cridats per Kent Beck (pare de l’XP) per definir el que es coneix ara com “Mètodes Àgils”, l’alternativa a les metodologies formals considerades “pesades”.

Page 10: Metodologies Àgils

10

El Manifest Àgil Al fer-ho, es va crear el Manifest Àgil

(fimat per 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 y Dave Thomas )en el que s’exposen les 4 següents valors:

Page 11: Metodologies Àgils

11

El Manifest ÀgilO Valorar més als individus i la seva

interacció que els processos i les eines

O Valorar més el software que funcioni que la documentació exhaustiva

O Valorar més la col·laboració amb el client que la negociació contractual

O Valorar més la resposta al canvi que el seguiment d’un pla

Page 12: Metodologies Àgils

12

El Manifest ÀgilDesprés dels quatre valors descrits, els signants van redactar els següents, com els principis en que aquests es deriven:O La nostra principal prioritat és satisfer al client a través

del lliurament primerenc i continu de software de valor.O Són benvinguts els requisits canviants, fins i tot si arriben

tard al desenvolupament. Els processos àgils es dobleguen al canvi com a avantatge competitiu per al client.

O Lliurar amb freqüència software que funcioni, en períodes d'un parell de setmanes fins a un parell de mesos, amb preferència en els períodes breus.

O Les persones del negoci i els desenvolupadors han de treballar junts de forma quotidiana a través del projecte.

Page 13: Metodologies Àgils

13

El Manifest ÀgilO Construcció de projectes entorn d'individus motivats,

donant-los l'oportunitat i el recolzament que necessiten i procurant-los confiança perquè realitzin la tasca.

O La forma més eficient i efectiva de comunicar informació d'anada i tornada dins d'un equip de desenvolupament és mitjançant la conversa cara a cara.

O El software que funciona és la principal mesura del progrés.

O Els processos àgils promouen el desenvolupament sostingut. Els patrocinadors, desenvolupadors i usuaris han de mantenir un ritme constant de forma indefinida.

Page 14: Metodologies Àgils

14

El Manifest ÀgilO L'atenció contínua a l'excel·lència tècnica

enalteix l'agilitat.O La simplicitat com a art de maximitzar la

quantitat de treball que no es fa, és essencial.

O Les millors arquitectures, requisits i dissenys emergeixen d'equips que s‘autoorganitzen.

O En intervals regulars, l'equip reflexiona sobre la forma de ser més efectiu i ajusta la seva conducta en conseqüència.

Page 15: Metodologies Àgils

15

Característiques de les metodologies àgils

O Basades en heurístiques provinents de la pràcticaO Preparades pels canvis durant el projecteO Metodologia imposada internament per l’equip de

desenvolupamentO Procés poc controlatO Contracte flexibleO Client part de l’equipO Grup de desenvolupament petitO Pocs artefactesO Pocs rolsO Poca èmfasi en l’arquitectura de software

Page 16: Metodologies Àgils

16

¿Per què utilitzar Metodologies Àgils?

O NO la escollirem si:O Fases prèvies costosesO Disseny ajustat a una documentacióO Complexitat per entendre el sistema

O SI la escollirem si:O Projectes amb canvis de requisitsO Entrega contínua d’avançosO Importància de la simplicitatO Projectes amb atenció contínuaO Implementació de millores sobre la marxa

Page 17: Metodologies Àgils

17

Agile Unified ProcessO Basat en la metodologia RUPO Dos tipus d'iteracions: desenvolupament

i produccióO 7 Disciplines àgils:

O ModelO ImplementacióO TestO DesplegamentO Administració de ConfiguracióO Administració de ProjecteO Entorn

Page 18: Metodologies Àgils

18

Agile Unified Process

Page 19: Metodologies Àgils

19

Agile Unified ProcessO Les teves coses saben que

estàn fentO SimplicitatO AgilitatO Enfocament a alt nivellO Independència d'einesO S'haurà d'adaptar l'AUP a les nostres

necessitats

Page 20: Metodologies Àgils

20

Lean Software Development

O Eliminar desperdicisO Ampliar l'aprenentatgeO Decidir el més tard possibleO Reaccionar el més ràpid possibleO Potenciar l'equipO Crear la integritatO Visió de conjunt

Page 21: Metodologies Àgils

21

OpenUPO Basada en la metodologia RUPO Principis:

O Col·laboració per sincronitzar interessos i compartir coneixement

O Equilibrar les prioritats per maximitzar el benefici

O Centrar-se en l'arquitectura el més aviat possible

O Desenvolupament evolutiu per obtenir una retroalimentació constant i una millora contínua

Page 22: Metodologies Àgils

22

XP – eXtreme Programming

OPrimera metodologia àgil i la que dona consciencia del moviment de metodologies àgils.OTé un gran grup de seguidors i una gran quantitat de llibres. OÉs pot seguir en un sèrie de llibres nomenats “The XP Series”.

Page 23: Metodologies Àgils

23

XP – eXtreme Programming

XP és un metodologia centrada en potenciar les relacions entre persones com a clau per l'èxit del desenvolupament. Es centra en:O Promoure el treball en equipO Preocupar-se de l'aprenentatge dels

desenvolupadorsO Crear un bon clima de treballO Realimentació continua entre client i

desenvolupadorsO Comunicació fluida entre participantsO Simplicitat de solucionsO Coratge per enfrontar-se als canvis.

Page 24: Metodologies Àgils

24

XP – eXtreme Programming

Està pensada per projectes amb canvis imprecisos i molt canviants amb gran risc tècnic. Aquí podem veure el seu esquema de funcionament (comparativa)

Page 25: Metodologies Àgils

25

XP – eXtreme Programming

XP està dividit en els quatre següents apartats:O Histories de l’UsuariO RolsO ProcessosO Pràctiques

Page 26: Metodologies Àgils

26

XP – Histories de l’Usuari

OÉs la tècnica per especificar els requisits del software.

OAquí el client descriu breument les característiques del sistema que vol, siguin requisits funcionals o no funcionals.

O És dinàmic i flexible.

Page 27: Metodologies Àgils

27

XP – Històries de l’Usuari

A la fitxa s’ha de poder reconèixer els següents continguts:O DataO Tipus d’activitat (nova, correcció,

millora)O Prova funcionalO Nº d'històriaO Prioritat tècnica del clientO Referències a altres histories prèvies

Page 28: Metodologies Àgils

28

XP – Històries de l’Usuari

O RiscO Estimació tècnicaO DescripcióO Notes i llista de seguimentO EstatO TODOO Comentaris

Page 29: Metodologies Àgils

29

XP – Històries de l’Usuari

OLes histories d’Usuari poden ser d’una a tres setmanes (per no superar una iteració).

OSon descompostes en tasques de programació i assignades als programadors per ser implementades durant l’iteració.

Page 30: Metodologies Àgils

30

XP – RolsO Client: Escriu les històries de l’usuari i les proves

funcionals per validar. També indica les prioritats.O Programador: Escriu les proves unitaris i produeix el

codi del sistemaO Encarregat de proves (Tester): Ajuda al client amb les

proves funcionals.O Encarregat de seguiment (Tracker): Proporciona la

realimentació a l’equip.O Entrenador (Coach): Responsable de l’equip.O Consultor: Extern a l’equip amb coneixements

específics en els temes necessaris del projecte.O Gestor (Big Boss): Vincle entre clients i programadors.

És el coordinador.

Page 31: Metodologies Àgils

31

XP – ProcessosEl cicle de desenvolupament consisteix a grans trets, en els següents passos:O Client defineix el valor de negoci a

implementar.O El programador estima l’esforç necessari per a

la seva implementació.O El client selecciona que construir, d’acord amb

les seves prioritats i les restriccions de temps.O El programador construeix el valor del negoci.O Tornem a començar.

Page 32: Metodologies Àgils

32

XP – ProcessosEn totes les iteracions tant client com programador aprenen. Els dos punts més importants de cada iteració son:O No pressionar al programador per fer més

feina que l’estimada perquè es perdrà qualitat i no es compliran els plaços.

O El client està obligat a revisar cada entrega del producte perquè aquest obtingui en major valor de negoci en cada iteració.

Page 33: Metodologies Àgils

33

XP – PràctiquesOLa principal suposició que es realitza en XP es la possibilitat de disminuir la corba exponencial del cost de canvis durant el projecte i suficient disseny evolutiu per a que funcioni.OAixò es pot aconseguir amb les tecnologies disponible per ajudar en el desenvolupament de software i a la aplicació disciplinaria de les següents pràctiques:

Page 34: Metodologies Àgils

34

XP – PràctiquesO El joc de la planificació: Comunicació

frequent entre client i programadors.O Entregues petites: Produir ràpidament

petites versions semi funcionals. Una entrega no hauria de tardar més de 3 mesos.

O Metàfora: Nom compartits entre client i equip de desenvolupament per a nomenclatura de classes i mètodes del sistema.

Page 35: Metodologies Àgils

35

XP – PràctiquesO Disseny simple: El disseny ha ser el més

simple possible per a poder ser implementat en un moment de terminat del projecte.

O Proves: La producció de codi està dirigida per les proves unitàries. Les proves son establertes pel client i son executades amb cada modificació del sistema.

O Refactoring: Reordenar el codi per tal de facilitar posterior modificacions i el seu enteniment.

Page 36: Metodologies Àgils

36

XP – PràctiquesO Programació en parelles: Els

programador han de treballar en parelles.

O Propietat col·lectiva del codi: Qualsevol programador pot canviar qualsevol part del codi en qualsevol moment.

O Integració continua: Cada part del sistema s’integra quan està llesta.

Page 37: Metodologies Àgils

37

XP – Pràctiques

Page 38: Metodologies Àgils

38

ConclusionsO Les metodologies àgils son perfectes per

aplicacions amb requeriments no molt definits o ambiguitats

O Cal un equip de desenvolupament perfectament sincronitzat i si pot ser petit

O Es sacrifica força la part de documentació

O S'aposta per tècniques i eines d'alt nivell per fer tota la fase de disseny

Page 39: Metodologies Àgils

39

¿Preguntes?