48
Marco de trabajo para el desarrollo y el mantenimiento de productos complejos. Ing. Víctor Garzón Marín Ing. Jorge Armando Villegas

Metodología de desarrollo SCRUM

Embed Size (px)

Citation preview

Page 1: Metodología de desarrollo SCRUM

Marcodetrabajoparaeldesarrolloyelmantenimientodeproductoscomplejos.

Ing.VíctorGarzónMarínIng.JorgeArmandoVillegas

Page 2: Metodología de desarrollo SCRUM

V í c t o r G a r z ó n M a r í n Ing.ElectrónicayTelecomunicaciones MSc (C)Telemática UniversidaddelCauca C To . Sm a r t s o f t P L AY S c r um M a s t e r C e r t i f i e d ScrumAgileInstitute [email protected]

Page 3: Metodología de desarrollo SCRUM

Objetivos

uConocerlasprácticaságiles

uConocerlafilosofíaquesoportaScrum.

uConocerlasprácticasdeScrum.

Page 4: Metodología de desarrollo SCRUM

Conceptosiniciales

Page 5: Metodología de desarrollo SCRUM

Certeza yAcuerdo

Simple

Complicado

Complejo

Anarquía

Alta certeza Baja certeza

Alto

acu

erdo

Bajo

acu

erdo

StaceyRD.Strategicmanagementandorganizationaldynamics:thechallengeofcomplexity.3rded.Harlow:PrenticeHall,2002

Page 6: Metodología de desarrollo SCRUM

Efectividad delacomunicaciónPapel

(Documentos)Grabación de

AudioGrabación de

Video2 personaspor e-mail

2 personaspor telefono

2 personasen un tablero

Page 7: Metodología de desarrollo SCRUM

Incertidumbre

Initialproductdefinition

Approvedproductdefinition

Acceptedsoftware

Requirementsspecifications

Productdesign

specification

Detaileddesign

specification

ProjectSchedule

1.6x

1.25x

x

1.15x

1.1x

0.9x

0.85x

0.8x

0.6x

Page 8: Metodología de desarrollo SCRUM

ManifiestoÁgil

Personaseinteracciones

sobre procesosyherramientas

Softwarefuncionando

sobre documentacióncomprensible

Colaboraciónconclientes

sobre negociacióndecontratos

Responderaloscambios sobre seguirunplan

Aunquehayvalorenloselementosdeladerechavaloramosmás

losdelaizquierda

Page 9: Metodología de desarrollo SCRUM

PrincipiosdelManifiestoÁgil

1.Nuestraprincipalprioridadessatisfaceralclienteatravésdelaentregatempranaycontinuade

softwaredevalor.

2.Sonbienvenidoslosrequisitoscambiantes,inclusosillegantardeeneldesarrollo.Losprocesoságilessedobleganalcambio

comoventajacompetitivaparaelcliente.

3.Entregarconfrecuenciasoftwarequefuncione,en

periodosdeunpardesemanashastaunpardemeses,conpreferenciaenlosperiodos

breves.

4.Losresponsablesdelnegocioylosdesarrolladoresdeben

trabajar juntosdeformacotidianaatravésdelproyecto.

5.Construccióndeproyectosentornoaindividuosmotivados,dándoleslaoportunidadyelrespaldoquenecesitany

procurándolesconfianzaparaquerealicenlatarea.

6.Laformamásefectivayeficientedecomunicar

informacióndeunequipodedesarrolloyentresusmiembrosesmediantelaconversacióncara

acara.

7.Elsoftwarequefuncionaeslaprincipalmétricadelproceso.

8.Losprocesoságilespromueveneldesarrollosostenible.Los

patrocinadores,desarrolladoresyusuariosdebenmantenerunritmoconstantedeforma

indefinida.

9.Laatencióncontinuaalaexcelenciatécnica,mejorala

agilidad.

10.Lasimplicidadcomoartedemaximizar lacantidaddetrabajo

quenosehaceesesencial.

11.Lasmejoresarquitecturas,requisitosydiseñosemergen de

equiposautoorganizados.

12.Enintervalosregulares, elequiporeflexionasobrelaformadesermásefectivoyajustasuconductaenconsecuencia.

Page 10: Metodología de desarrollo SCRUM

Entregadevalor

PROYECTOS TRAD ICIONALES PROYECTOS ÁGI LES

Análisis Diseño Desarrollo Pruebas

Valorp

araelcliente:ProductoEntregado

Iteración1 Iteración2 Iteración3 …Iteraciónn

Valorp

araelcliente:ProductoEntregado

Page 11: Metodología de desarrollo SCRUM

Relación conelcliente

TRAD ICIONALES ÁGI LES

Page 12: Metodología de desarrollo SCRUM

Éxitosdeproyectoságiles

14%

57%

29%

Cascada

Exitosos

Nocumplieroncosto,calendarioy/ofuncionalidad

Fracasaron

42%

49%

9%

Ágil

Exitosos

Nocumplieroncosto,calendarioy/ofuncionalidad

Fracasaron

2012,ReporteChaos,Standish Group

Page 13: Metodología de desarrollo SCRUM

Razonesdefracasodeproyectoságiles

2014,VersionOne, Inc.All Rights Reserved.Annual State ofAgileDevelopment Survey

Page 14: Metodología de desarrollo SCRUM

PorquéSCRUM?

Page 15: Metodología de desarrollo SCRUM

Métodos Ágiles

• Scrum (KenSchwaber)

• XP(KentBeck)

• LeanSoftwareDevelopment (MaryPoppendieck)

• Crystal (Alistair Cockburn)

• Dynamic SystemDevelopment Method (Dane Faulkner)

• Adaptive SoftwareDevelopment (Jim Highsmith)

• Feature Driven Development (JeffDeLuca)

Máspreceptivo(Másreglaspara

seguir)RUP(120+) XP(13) SCRUM(9) Kanban (3) DoWathever!!

(0)

Más adaptativo(menosreglasparaseguir)

Page 16: Metodología de desarrollo SCRUM

Métodos Ágiles

2014,VersionOne, Inc.All Rights Reserved.Annual State ofAgileDevelopment Survey

Scrum ysusvariantesrepresentanmásdel73%delasmetodologías

queestánsiendousadas.

Page 17: Metodología de desarrollo SCRUM

Beneficios

• Sepuedegestionarlasexpectativasdelclientedemaneraregular(requisitosdesarrollados,velocidaddedesarrollo,calidad),ysepuedetomardecisionesencadaiteración.Consideraque:– Elclientenosabeexactamentequéesloquenecesita,lovasabiendoconformevaviendocualessonlosresultadosdelproyecto.

– Elclientenecesitahacercambiosacortoplazo(nuevosrequisitosocambiosenlosyarealizados).

– Elequiponecesitasabersiloquehaentendidoesloqueelclienteespera.

Page 18: Metodología de desarrollo SCRUM

Beneficios

• Elclientepuedeobtenerresultadosimportantesyutilizablesdesdelasprimerasiteraciones.

• Elclientepuedecomenzarelproyectoconrequerimientosdealtonivel.Sóloesnecesarioeldetallederequerimientosdelasprimerasiteracionesquesonlasqueaportanmásvalor.

• Sepuedeadministrardemaneranaturalloscambiosquevanapareciendoduranteelproyecto.

• Alfinalizarcadaiteraciónelequipopuededecidircomomejorarsuprocesodetrabajo,enfuncióndelaexperienciaobtenida.

Page 19: Metodología de desarrollo SCRUM
Page 20: Metodología de desarrollo SCRUM

Beneficios

• Permitemitigardesdeeliniciolosriesgosdelproyecto.

• Permitegestionarlacomplejidaddelproyecto.

• Permiteoptimizarelusoderecursos disponibles, generandocontinuamentelascaracterísticasdelproductodemayorvalor.

• Dadoquecadaiteracióndebedarcomoresultadorequerimientosterminados,seminimizael

numerodeerrores queseproduceneneldesarrolloyseaumentalacalidad.

Page 21: Metodología de desarrollo SCRUM

Restricciones

• Ladisponibilidad delclientedebeseraltadurantetodoelproyectodadoqueparticipademaneracontinua.

• Larelaciónconelclientehadeestarbasadaenlosprincipiosdecolaboraciónmásquetratarsedeunarelacióncontractual.

• Cadaiteracióndebedarcomoresultadorequisitosimplementados,demaneraqueelresultadosearealmenteútilparaelclienteynodejetareaspendientesparafuturasiteracionesoparalafinalizacióndelproyecto.

Page 22: Metodología de desarrollo SCRUM

QuéesScrum?“Scrum esunmarcodetrabajobasadoenunconjuntodevalores,principiosypracticasquesuministranlosfundamentosparaquecadaorganizaciónleagreguesuimplementaciónúnica”

Page 23: Metodología de desarrollo SCRUM

“Unmarcodetrabajoenelquelaspersonaspuedenhacerfrenteaproblemascomplejosadaptables,mientrasquedemaneraproductivaycreativaentreganproductosdelmayorvalorposible”.

Ligero

Fácil deentender

Extremadamentedifícil dedominar

Scrum NOesunprocesoouna técnicaparaconstruirproductos;enlugardeeso,esunmarcodetrabajodentrodelcualsepuedenemplearvarias

técnicasyprocesos

Page 24: Metodología de desarrollo SCRUM

QuéesScrum?

§ EselmétodoÁgilmáspopular.

§ Puedeseraplicado adiferentestiposdeactividades,nosoloadesarrollodesoftware.

§ Equiposenfocadosalresultado,quetrabajendeformaauto-dirigida.§Adaptacióncontinuaalascircunstanciasdelaevolucióndelproyecto.§ Centradoenlaspersonasybasadoenlosvaloresdehonestidad,apertura,esfuerzo,respeto,enfoque,confianza,empoderamiento ycolaboración.

Page 25: Metodología de desarrollo SCRUM

Enfatizavaloresypracticasdeadministración,ydemaneracomplementariacuestionestécnicasdedesarrollo.

Puedecomplementarseyconvivirconotrasmetodologíasagilesynoagiles

Page 26: Metodología de desarrollo SCRUM

CompromisoeInvolucración

“Habíaunavezunagallinaemprendedoraquequeríamontarunnegocio.

Comohabíacadavezmásanimalesenlagranjatuvolagranideademontarunrestaurante.Parallevaracabosuideanecesitabaunsocio.Asíquesedirigióhaciaelanimalquemásconfiabilidadledaba:Cerdo.

- HolaCerdo– ledijoGallina.Quieroabrirunrestauranteenlagranjayhepensadoquetalvezquerríassermisocio.

- Nosé– respondióCerdo.¿Ycuálseríaelplatoestrelladelrestaurante?

- ¡Quéteparece“huevosconjamón”!– respondióGallina.

- Nogracias.Creoquetúestaríasinvolucradaperoyotendríaqueestarcomprometido."

The difference between INVOLVEMENTand COMMITMENT is like HAM and

EGGS. The chicken is involved; the

pig is committed.-Martina Navratilova

Page 27: Metodología de desarrollo SCRUM

Pilares

Transparencia

Adaptación

Inspección

Valor

Compromiso

ConcentraciónFranqueza

Respeto

Page 28: Metodología de desarrollo SCRUM

Eventos•Sprint• Planning•Daily• Review•Retrospective•Refinement

Roles•Product Owner• Scrum Master• Equipodedesarrollo

Artefactos•Product Backlog• SprintBacklog• Incrementodelproducto

“LasreglasdeScrumrelacionanloseventos,rolesyartefactos,gobernandolasrelacionese

interaccionesentreellos”

Reglas

Page 29: Metodología de desarrollo SCRUM

CiclodeSCRUM

Page 30: Metodología de desarrollo SCRUM

RolesdeScrum

Scrum MasterGestionaelproceso

Product OwnerGestionaelproducto

yelROI

EquipodeDesarrolloSegestionaasímismoparadesarrollarelproducto

Page 31: Metodología de desarrollo SCRUM

• Responsable dequéserádesarrolladoyenquéorden

• Empoderadoparaserelpuntocentraldelproducto• Comunicaalosotrosparticipanteslavisióndeloqueseesperaobtener

• Responsabledeléxitodelasolucióndesarrollada• Responsabledequeserealiceeltrabajoquedémayorvalordenegocio(ROI)

• Responsablederevisarelproductodesarrollado• TrabajadeformacolaborativaconelScrum Masteryelequipodedesarrollo

• Debeestardisponiblepararesponderlaspreguntassobreelproductotanprontocomosepresenten

Product Owner

Page 32: Metodología de desarrollo SCRUM

Scrum Master

• GuiaralequipoencrearyseguirsupropioprocesoSCRUM

• FACILITADOR queayudaalequipoaresolverproblemasquesevayanpresentandoyamejorarlaaplicacióndelasprácticasdeSCRUM

• LíderdeprocesosayudandoalequipoalograrunaltodesempeñosiguiendoSCRUM

• Responsableporprotegeralequipodecualquierinterferenciaexterna

• Enseñaralequipoaautoadministrarse

• Guía lasreunionesdeScrum

• Esunmentor,nounaautoridad jerárquicaenelequipo

• Actúacomointerfaceentreelequipoylagerencia

• Tomaelliderazgopararesolverlosimpedimentosdelequipo

Page 33: Metodología de desarrollo SCRUM

• ResponsablespordeterminarcómoentregarelproductosolicitadoporelPO• Seauto-organizaparadeterminarlamejorformadecumplirconlasmetasdefinidasporelPO• Tamaño7+/-2(comúnmenteentre3y9)

• Equipomultifuncional• TrabajoenEquipo• Comunicaciónconstanteytransparente• Enfocadosycomprometidos

“Eltalentoganajuegos,peroeltrabajoenequipoganacampeonatos.”

MichaelJordan

EquipodeDesarrollo

Page 34: Metodología de desarrollo SCRUM

Artefactos

SprintBacklog

Product Backlog

ProductoIncremental

Page 35: Metodología de desarrollo SCRUM

Product Backlog

• Sebuscahacereltrabajomasvaliosoprimero

• Elproduct owner esresponsablepordeterminaryadministrarlasecuenciadetrabajo

• Inicialmentesonlascaracterísticas requeridasparacumplirlavisióndelproducto

• ElPOcolaboraconlosinvolucradospararecolectarydefinirloselementosdelPB

• Estáenconstanteevolución,sepuedenadicionar,eliminarocambiarprioridades aloselementos(Refinement)

AltaPrio

ridad

BajaPrio

ridad

Page 36: Metodología de desarrollo SCRUM

ElementosdelBacklog• Características:Comojugadorquieropodersaltarencualquiermomentodetalmaneraquepuedaevitarobstáculos

• Cambio:Comojugadordeseoqueelfondodelmenúinicialseaambientadoenunaestaciónespacialenvezdeenunaplataformadedespegueentierra.

• Defecto:Eliminardefecto5delsistemaderegistrodedefectos,paraevitarquelospersonajesquedenporencimadelospop-ups.

• Mejoratécnica:Migrarlosservicioswebamobile webservices deazure.

• Adquisicióndeconocimiento: Crearpruebasdeconceptodelosdosestilosgráficosyaplicarpruebasparadeterminarcualdelosdossonmasatractivosparaelusuariofinal.

Page 37: Metodología de desarrollo SCRUM

SprintBacklog

• SerevisaelPBysedeterminanloselementosdealtaprioridadquepuedanserrealmenteincluidosenelsprint

• Sedeterminala“Velocidad”delesquipoparadeterminareltiempo(esfuerzo)

• SedividenloselementosdelPBentareas

Codificar UI

8h

Revision de pares

4h

Diseñar menu

6h

Animar menú

8h

Elementos del Product Backlog

Tareas

Page 38: Metodología de desarrollo SCRUM

Incrementodelproductopotencialmenteentregable• Unaparteterminadadelproductoounincrementodelproductoexistente

• Elequipotieneconfianzaenqueelproductoestálistoparaserliberado

• Laliberaciónesunadecisióndenegocio

Page 39: Metodología de desarrollo SCRUM

Sprint

Page 40: Metodología de desarrollo SCRUM

Sprint

• CadaSprintdebecrearlagodevalortangibleparaelusuariooelcliente.

• Iteracionesregulares(TimeBox),entre1–4semanas.

• DuranteelSprintnosepermitencambiosenelSprintBacklog oenlaconformacióndelequipo.

• Serealizaunaplaneación aliniciodecadaSprintyunaretrospectivaalfinal.

Page 41: Metodología de desarrollo SCRUM

PlaneacióndelSprint(8hparaunsprintde1mes)

QuéHacer?• ElProduct Owner defineelObjetivodelSprint.

• Tomandoloselementosdemás altaprioridaddelProduct Backlog,elequipodedesarrollodeterminaloselementosquesecomprometeaimplementarenelSprint.

Cómohacerlo?• LoselementosdelPBseleccionadossedividenen

tareasparacrearelSprintBacklog.

Codificar UI

8h

Revision de pares

4h

Diseñar menu

6h

Animar menú

8h

Elementos del Product Backlog

Tareas

Page 42: Metodología de desarrollo SCRUM

Daily SCRUM(Daily)15minutos• Puntodeinspección yadaptación.

• Elequiposereune paracomunicaryentenderelestado.

• Esencialparaconocerelprogresocontinuoyevitarbloqueos.

• NotienecomoobjetivoreportarprogresoalScrumMaster,POocualquierotrostakeholder.

• ElPOpuedeparticiparperodeformapasiva.

• ElSMseaseguradequelareuniónselleveacaboysecumplaconeltiempo,peroesresponsabilidaddelED.

Page 43: Metodología de desarrollo SCRUM

Revisión delSprint(Review)4hparaunsprintde1mes• Demostración delasnuevasfuncionalidadesdesarrolladasduranteelsprint.

• Seinspecciona loentregadoyseobtieneretroalimentación delosasistentesparapoderadaptarelplanparapróximossprints.

• Debenasistirtodoslosinvolucradosrelevantes,paradarretroalimentaciónvaliosa.

• ElresultadoeselPBrevisado,quedefineloselementosposiblesparaelsiguientesprint.

Page 44: Metodología de desarrollo SCRUM

Reuniónderetrospectiva(Retrospective)3hparaunsprintde1mes• Seenfocaenlamejoracontinuadelproceso.

• SoloparticipaelequipoScrum.

• Seinspeccionacuáncolaborativoyproductivoeselequipoycomohacerparamejorar.

• Alfinalelequipodebehaberidentificadoysedebehabercomprometidoconaccionesdemejoraalproceso.

Page 45: Metodología de desarrollo SCRUM

RefinamientodelPB(Refinement)

10%duracióndelSprint• LolideraelProduct Owner

• ActividadColaborativaentreelequipoSCRUMeinvolucradosexternos.

• SóloelProduct Owner tomalasdecisiones.

Page 46: Metodología de desarrollo SCRUM

ResumeneventosSCRUM

EventoScrum Duración

Sprint 4Semanas 2Semanas 1Semana

Planning 8horas 4horas 2horas

Daily 15minutos

Review 4horas 2 horas 1hora

Retrospectiva 3horas 1,5horas 45minutos

Refinement 10%deladuración delsprint

Page 47: Metodología de desarrollo SCRUM

Herramientas paraSCRUM

• Redmine

• Trello

• Jira

Page 48: Metodología de desarrollo SCRUM

Gracias

Ing.VíctorGarzónMarí[email protected]