Diseño e implementación de una metodología de desarrollo ...

44
Universidad Técnica Federico Santa María Departamento de Informática Valparaíso - Chile Memoria para optar al título de Ingeniero Civil Informático Profesor Guía: Luis Hevia Abril 2017 Diseño e implementación de una metodología de desarrollo ágil en una PYME TIC carente de metodología de desarrollo Daniel Héctor Santibáñez Vera

Transcript of Diseño e implementación de una metodología de desarrollo ...

Page 1: Diseño e implementación de una metodología de desarrollo ...

UniversidadTécnicaFedericoSantaMaríaDepartamentodeInformática

Valparaíso-Chile

MemoriaparaoptaraltítulodeIngenieroCivilInformático

ProfesorGuía:LuisHevia

Abril2017

DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíade

desarrollo

DanielHéctorSantibáñezVera

Page 2: Diseño e implementación de una metodología de desarrollo ...

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

DEDICATORIAAmimadre,parejaehijaquetuvieronlapacienciaparavermefinalizarestetrabajoyatodosaquellos,amigosycompañerosquemerecordarondíaadíaqueestodebíaser

terminado.

Page 3: Diseño e implementación de una metodología de desarrollo ...

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

ResumenResumen— En este trabajo se diseñó e implementó unametodología de desarrollo desoftware incluyendo la adopción herramientas que son usadas para soportar sufuncionamiento,tantoherramientasparadefinirymantenerlametodologíacomoaquellasnecesariasparaejecutarlasactividadesdescritas.LametodologíasediseñóapartirdelaobservacióndecómoseejecutaunproyectodedesarrolloenunaPYMEparaluegohacermejoras sobre elmismo y se propone como unametodología inspirada en principios yprácticaságilesy lean,queotrasPYMESTICsensituacionessimilarespuedenusarcomounaformadedisminuirlaincertidumbreyhacereficienteusodesusrecursos.

SeconcluyequecadaPYMEesdistintayquelametodologíadiseñadaseutilicecomounaherramientaquepuedesermodificadadeacuerdoconlasituaciónparticularyqueenelcasodelaempresaencuestiónlográbuenosresultados.Tambiénseindicaquelaadopciónde una nueva “forma de hacer” debe estar acompañada de un correcto liderazgo queincentiveeinspirealosequiposqueharánusodeella.Lametodologíatratadeimplementarun“haceragil”ynoun“serágil”quese identificacomoun finmásdeseableendondesiquieraunametodologíadefinidaoestandardesnecesaria.

PalabrasClaves—ADAPTE,EPF,Ágil,Lean,SCRUM,Liderazgo,PYMEs,TIC

AbstractAbstract—Thisthesispresentthedesignandimplementationofasoftwaredevelopmentmethodologyandtheadoptionoftoolsthatsupportitsoperationandexecution.Toolsarebetweenthoseofpurposeofdefinitionandmaintenanceaswellasthosetoexecutetheactivities of themethodology. Themethodologywas designed after the observation ofseveral in project executions of software development projects in a SME after thatimprovement was made on it for a resulting methodology, inspired in agile and leansoftware development principles and practices, that other and similar SMEs could takeadvantageofanduseasawaytoreducetheuncertaintyandoptimizeresources.

It’scometotheconclusionthateverySMEisdifferentandthemethodologyshouldbeusedasatoolthatcouldbechangedinordertofitthecurrentorganizationstate.Inthecasepresentedthemethodologygivesgoodresults.Alsoisworthmentionthateveryinitiativeadoptingnew“waysofdoing”has tobeguidedwitha leadership style that inspireandmotivates to the teams that embrace the initiative. A last thought explain that thismethodologytrytoadopta“doagile”andnotnecessarilya“beagile”,whichcouldbeabettergoalbecausetransformaorganitationinaflexibleentitynotrequiringastNDrdorofficialmethodologyatallinmanycases.

Keywords—ADAPTE,EPF,Agile,SCRUM,Leadership,SMEs,ICT

Page 4: Diseño e implementación de una metodología de desarrollo ...

INTRODUCCIÓNLametodologíadescritaenestetrabajofuedesarrolladadentrodeunaunióntemporaldelaempresaconlaUniversidaddeChileenproyectodeinvestigaciónADAPTEendondeenforma conjunta se diseñó y documentó la metodología. Existiendo previamente unametodologíainicialconsusactividadesyherramientasdesoportediseñadasapartirdelapraxisenunaseriedeproyectos,seevaluaronlasrecomendacionesdelauniversidadencuantoaquéelementospodríansermejoradosenlametodología,desdeactividadeshastalas herramientas a adoptar o desechar de acuerdo a la experiencia de otras empresastambiénparticipesdelproyecto.Tambiénseincorporólaposibilidadderealizaranálisisdeconsistenciaytailoringalprocesoresultantecomounaformadeflexibilizaryadaptarmejorlametodologíaalcontextodeunproyectoparticularusandolasherramientasgeneradasenelproyectodeinvestigación.ComienzaconelCapítulo1endondesedefineelproblemaaresolvercaracterizandoalasPYMESTICylosproblemasalosqueseenfrentanalembarcarseenproyectosdedesarrollode software. En el Capítulo 2 se describe el estado del arte del uso y adopción demetodologiasenlasPYMESTIC,usodeherramientasyelpapeldelliderazgoenestamezcla.EnelCapítulo3sedesarrollalapropuestadesoluciónalproblemadescritoenelCapítulo1.EnelCapítulo4setratalavalidacióndelasolución,seentregandetallesprácticosdesuuso en algunas categoria deproyectos y se discute acercadel papel del liderazgoen laadopcióndemetodologías.ElCapítulo5incluyelasconclusionesdeltrabajorealizado.AlfinaldeesteescritoseincorporanreferenciasbibliográficasydetallesdelasactividadesdelametodologóiaquesepuedenverenladefiniciónenSPEMdelamismaenlaversióndigitadeestamemoria.Al final de este escrito se incorpora un anexo que ejemplifica la navegación de lametodologíaensuformatocomositiowebdesdelasfaseshastalosouputsdelastareas.TambiénseejemplificacómogenerarelsitiowebparapublicarlametodologíausandolaherramientaEPFComposer.

Page 5: Diseño e implementación de una metodología de desarrollo ...

2

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

CAPÍTULO1:DEFINICIÓNDELPROBLEMA

1.1 Contexto

Las pequeñas y micro empresas TIC [EstatutoPYMES] (PYME, en su extensión máxima)suelencomenzaroperacionessintenermetodologíasclarasdedesarrolloyaunqueéstasexisten,suimplantacióntomatiempoyrecursos,queentalesorganizacionesescasean.Lamotivaciónparacomenzarprontolasoperacionesllevaaoperarenelcaoseimprovisación,conlassiguientesconsecuencias:

• Apareceelconceptodelpersonajehéroe• Lasoperacionessevuelvenpocoproductivas• Lametodología,siseinstaura,cambiaconstantemente• Sepierdeelconocimiento• Bajaelnivelmotivacionalyautoestimadelosequipos• Sebasaenel“Echandolepa´adelanteprogramming”[Villena12]• Fracasoenlosemprendimientosyproyectos

Luego cuando se hace necesario implantar una metodología, como RUP, SCRUM1,TUTELKANuOpenUPsevuelvecaro,lentoeineficientedebidoaquetaleslaboressedebenrealizar en paralelo con el resto de las operaciones ya en curso. Además, adoptar unametodologíadedesarrollodesoftwarenoesunprocesofácil,puessedebebuscardeentrelasmetodologíasexistentesyadaptarlasalasnecesidadesdelaorganización.

1.2 IdentificacióndeProblemas

SabiendolasPYME’salosproblemasqueseenfrentansicomienzansusoperacionessinunametodología, pueden decidir comenzar a operar con unametodología de desarrollo desoftwareyenestecasosonmuchoslosdesafíosypreguntasalasqueseenfrentan:

• ¿Conquéconocimientoscontamos?• ¿Quémetodologíadedesarrollo,delasqueexisten,selecciono?• Siyaheseleccionadounametodología¿Cómoadopto,implantoyadapto?• ¿Quéherramientasdeboconsiderarparasoportarelusodelametodología?• ¿Existenexperiencias dePYME’s quehayanenfrentadoelmismodesafío, dónde

estányquésepuedeaprenderdeellas?

Si esas preguntas son respondidas de alguna forma, la metodología de desarrolloseleccionadadebeserusadaadecuadamenteporlosequiposdedesarrollo,respondiendoal siempre cambiante y exigente ecosistema tecnológico en la que las PYME’s TIC sedesenvuelven,esdecir:

• Demandapormenorestime-to-market

Page 6: Diseño e implementación de una metodología de desarrollo ...

3

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

• Demandapormayoresnivelesdecalidad• Emergenciadenuevastecnologías• Emergenciadenuevosparadigmastecnológicos• Demandapormayorinnovación

Segúnunestudioreciente[Bastarrica16]el80%delasPyME’squedesarrollansoftwareenelpaísdeclarantenerdefinidosuprocesodedesarrolloaunquesóloel50%diceaplicarlo.Ésteúltimodatosedebeaquelasmetodologíasseleccionadasnosonlasadecuadasparalarealidaddelaempresa,nosonsuficientementeflexiblesosonmuypesadas,enreferenciaalacantidaddeesfuerzoqueserequiereparaseguirlas.

Existe, además, un importante aspecto interno de las PYME’s TIC que adoptan algunametodologíadedesarrollo,asaber,elpapeldelliderazgoquesoporta:

• Lainiciativadeadopcióneimplantación• Lagestióndelcambiodebidoalaadopcióndelametodología• Lacontinuacióndelusodelametodología• Lamejoracontinuaeneltiempo

Loselementosanterioresrepresentanunaspectomuyimportanteparaéxitodelasoperacionesdelaorganización.Unpobreoinadecuadoliderazgopuedentenercomoconsecuencialadeclinaciónenelusodelametodologíayenelmedianoplazolapérdidadeloinvertido.UnasíntesisdelosproblemasidentificadosseelaboraeneldiagramadeIshikawaenlaFigura1.1.

1Notar que SCRUMnoes unametodología es un framework dedesarrollo de software (Ver

Capítulo2)

Page 7: Diseño e implementación de una metodología de desarrollo ...

4

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura1.1:Análisisdecausa-efectodeIshikawa(Fuente:elaboraciónpropia)

1.3 ObjetivosdeunaSolución

1.3.1 ObjetivoGeneral

Diseñareimplementarunametodologíadedesarrolloágil,juntoalasherramientasquelosoportan,quepermitaunproductivooperardeunaPYMETIC.

1.3.2 ObjetivosEspecíficos

1. AnalizarelestadoactualdeunaPYMETICsinmetodologíadedesarrollodesoftware2. Diseñarunametodologíautilizandoprincipiosyprácticasleanyágiles3. Proporcionarherramientasexistentesquesoportenlametodologíadiseñada4. Validarusoefectivodelametodología

1.4 AlcancedelaSolución

Lametodologíadedesarrollodesoftwarepropuestaestádiseñadaparaseraplicadaenlosequipos de desarrollo de software de una organización, sin perjuicio que debido a lasflexiblesprácticasqueposee,puedaseradaptadaparaseraplicadaenotrasáreasendonde

Page 8: Diseño e implementación de una metodología de desarrollo ...

5

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

se practiquen disciplinas distintas, por ejemplo: Área de Soporte y Mantenimiento deHardwareoDevOps2.

2 DevOps: conjunto de procesos y técnicas que se utilizan en el desarrollo y operaciones de

sistemas.

Page 9: Diseño e implementación de una metodología de desarrollo ...

6

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

CAPÍTULO2:MARCOCONCEPTUAL

Losprocesos,metodologíasy frameworksdedesarrollode softwareestánenconstanteevolucióntratandodesobreponersealallamadacrisisdelsoftwarequeyasumamásde40años [SoftwareCrisis]. Desde los años 90 se han introducido una nueva casta demetodologías y frameworks de desarrollo: los llamados procesos, framework ometodologías ágiles y lean [Poppendieck03]. Si bien en los detalles difieren, todascompartenunnúcleocomúnfundamentadoenquelosequiposseconcentranenentregarsoftwarefuncionandodeformacontinuayfrecuente,experimentando,siempremejorandoy a la vez que desarrollando soluciones y satisfaciendo a sus clientes. Son formas dedesarrollar software livianas y efectivas en donde además se promueve el trabajo enequipo,laautogestión,unavisióncompartidayelcuidadodelamotivaciónatravésdelarealizacióndelaimportanciadeltrabajoqueserealizayelrespetohacialaspersonasqueconformanelequipoylosclientes.Procesosymetodologíasdeépocasanterioreshansidoprincipalmenteprescriptivas,sinembargo las nuevas “formas” de desarrollar software son más bien descriptivas yadaptativas[D’Amico12]formandoframeworksquepermitengranflexibilidadalmomentodeponerenprácticaladisciplina.Funcionancomoherramientasynocomoguíaspasoapasoquesedebenseguirrigurosamente,ycomoherramientaspuedenserusadascorrectaoincorrectamenteentoncesnosirviendocomounasoluciónseguraaplicableacadacaso,esdecir,“Nohaybaladeplata”[Brooks95].

Figura2.1:Fuente:Elaboraciónpropia

Modernas prácticas específicas de desarrollo como continuous integration/delivery,visualizacióndel flujode trabajoconKanban, teneral clientecerca,TDD3 ydocumentarrequerimientosconhistoriasdeusuarioemergencomounaformadedotardeflexibilidada los procesos de desarrollo de software. Estas nuevas metodologías, frameworks y

3 TestDrivenDevelopment,Desarrolloguiadoporpruebas

Page 10: Diseño e implementación de una metodología de desarrollo ...

7

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

mindsets fueron abarcando cada vez más aspectos del desarrollo de software, desdetécnicoshastaunmindsetdemejoracontinua,flexibilidadyenfoqueaunobjetivoaplicableacualquierindustria.DesdeXPquesecentraenprácticasespecíficaseneldesarrollo,comoPairProgrammingyTDD;SCRUM[Kniberg15]queentregaunmarcodetrabajoflexibleyde alto nivel con un conjunto de roles, artefactos y reglas de relación entre ellos[Schwaber16];hastaelmovimientodeldesarrollodesoftwareagileoleanqueserefieremásbienaunmindsetyprincipiosqueseaplicanenelejerciciodeladisciplina[Fichtner].Una evidencia del alcance amplio queposeen las nuevas formas (o nuevos sistemasdetrabajoengeneral)paradesarrollarsoftwareesquepuedenservircomoframeworksparaactualizarmetodologíastradicionales.UnodelosprocesosdedesarrolloprescriptivosmásconocidosesRUP4quehaservidodebaseparalaenseñanzadeladisciplinaycomoprocesostandard en la industria y que a la luz de la emergencia de las nuevas formas ha vistodesarrolladouna“actualizaciónágil”desimismallamadaOpenUP[OpenUP],donadoporun conjunto de empresasa a la fundación Eclipse, hereda de su antepasado el carácteriterativoeincrementalmientrasincorporaprácticasdeestasnuevasformasdedesarrollarsoftwareyquesirvedepuntodepartidaparalametodologíadelineadaenestetrabajo.SibienOpenUPesagnósticodelusodecualquierherramienta,esmuyrecomendableelusodeaquellasque“facilitenlacomunicación,automatizaciónycolaboración”[García11].ParaayudaradefinirydocumentarunametodologíaexistenespecificacionescomoBPNMySPEM5[SPEM].Ésteúltimoesunmeta-modelodeespecificacióndeprocesosqueheredasu nomenclatura de UML 2.0, permite ser usado en editores como EPF Composer[Balduino07],partedelproyectoEclipseProcessFrameworkdelafundaciónEclipse,creadocomounspin-offdelIDEEclipse.PermiteademásserejecutadoenalgunasherramientasparaelanálisisdeprocesoscomoAVISPA6[Hurtado11].ProyectosdeinvestigacióncomoADAPTE7hacenusodeSPEMparadotardetailoringalprocesodocumentadoeinvestigarlaadecuaciónoadaptacióndeprocesosadiferentescontextosdeproyectos.La piedra angular de toda transformación hacia unmindset ágil en la disciplina es elliderazgoquepermiteinspiraraequiposempoderadosqueseauto-organizanparapracticarla excelencia técnica en un ambiente de decisiones e interacciones colaborativas[Highsmith2013][Cantor01][Mahanti06][Koutsoumpos14].La Figura 2.1 refleja cómo el liderazgomueve a los equipos y organizaciones hacia laadopcióndenuevasymejoresformasparadesarrollarsoftwarequedecantaneneldiseño,documentacióneimplantacióndemetodologíasyherramientas.

4RUP:RationalUnifiedProcess5SPEM:SoftwareProcessEngineeringModel6AVISPA:AnalysisandVisualizationforSoftwareProcessAssessment 7ADAPTE: AdaptableDomainandProcessTechnologyEngineering

Page 11: Diseño e implementación de una metodología de desarrollo ...

8

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

CAPÍTULO3:SOLUCIONPROPUESTALa soluciónsebasaeneldiseñoydocumentacióndeunametodologíadedesarrollodesoftware cuyas características la hacen adhoc a una PYME TIC, debido a que es unametodologíainspiradaenOpenUP,queincorporaprácticaságilesylean,defáciladopcióneimplementación8yqueincluyeunaseriedeherramientasqueenlaprácticafacilitanlaejecuciónyelseguimientodelastareas,artefactosypiezasdecódigodelosproyectos.Ladescripcióndelametodologíatomainspiracióndeliteraturasimilarcomo“SCRUMandXPfromthetrenches”[Kniberg15]yla“GuíaSCRUM”[Schwaber16].

DescripciónGeneral

Lametodologíaseconformaporunciclodedesarrollode4fases,cadaunadelascualestieneunconjuntosecuencialdeactividadesytareasquepermitenlograrelobjetivodecadafaseyaportarallogrodelosobjetivosdelproyecto.

Todaslasactividadessecomponenasuvezportareas.Lastareassedescribenapartirdelossiguienteselementos:

1. Artefactosde entrada: son los artefactosnecesarios que requiere la tarea y queserán transformados en los artefactos de salida por las acciones de los rolesparticipantes.Porejemplo,artefactosdeentradapuedensercorreoselectrónicos,piezasdesoftwareodocumentosdediseño

2. Roles:eselconjuntodeidentificadorestécnicosquerepresentanlaspersonasqueparticipan en la ejecución de la tarea, por ejemplo, en una tarea particular laspersonaspuedentenerlosrolesdeprogramadores,analistasdetestingoSCRUMmasters/jefesdeproyecto

3. Descripción:textoquedescribeel(los)objetivo(s)delatarea,lospasosnecesariospara realizarla y/o recomendaciones (mejores prácticas) al ser ejecutada por losrolesparticipantes

4. Artefactosdesalida:sonlosartefactosresultantesdelaejecucióndelatareayquesirvendeentradaatareassucesoras.Porejemplo,artefactosdesalidapuedensercorreoselectrónicos,piezasdesoftwareodocumentosdediseño

Adicionalmente,todoelprocesoestasoportadoporunaseriedeherramientasqueestánseleccionadasparafacilitarlaejecuciónyseguimientodelastareasporpartedelequipoylos stakeholders (Figura 3.2). Éste conjunto de herramientas no quiere ser, demaneraalguna, la única opción dentro del amplio abanico de herramientas para similarespropósitosqueexistenenelmercado.Tampoco lasherramientassonpropiedaddeunafaseenparticuarellasseutilizandurantetodoeldesarrollo.Recuérdeselacélebrefraseenelámbitodeldesarrollodehardware“nohaybaladeplata”[Brooks95],queenestecaso

8Laexperienciaactualdelautorpermiteaseverarque laadopcióne implementaciónes fácil,

relativaaloqueocurreconmetodologíasmáspesadas.

Page 12: Diseño e implementación de una metodología de desarrollo ...

9

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

seinterpretacomoquenoexisteunasolaherramienta(oconjunto)queresuelvadeformafinal el problema en cuestión. Queda entonces a criterio del equipo de desarrolloseleccionar las que seande su convencimiento y preferencia particular siempreque lespermitanlograrsusobjetivosdeformaproductiva.Enestamemoriaseentregaunconjuntodetalesherramientascuyautilidad,alaluzdelosresultadosempíricos,hasidoproductiva.

La estrategia de descripción de la metodología, en este capítulo, será de alto nivelentregandolosdetallesderolesyartefactosdeentrada/salidadecadatareajuntoconelmodelonavegablequesepuedeencontrarenlaversióndigitaldelamemoriaenelplug-inparaelEPFComposer8sisequiereexperimentarconeleditoreincorporarmejoras.

Fases

Lametodologíasedesenvuelvedesde4fasesenformasecuencial(verFigura3.1):

1. Inicio2. Elaboración3. Construcción4. Transición

Sibienlametodologíaaprimeravistanopresentaunprocesoiterativoeincremental(locualdebeestarenelnúcleodecualquiermetodologíaoprocesoagile/lean)debidoaquelas4fasesporsisolasnoseejecutaniterativamente,dentrodelaejecucióndecadaunaexisteretroalimentaciónyunmarcadocarácteriterativoendondelafasequedestacaenestecontextoeslafasedeConstrucciónalaqueseledarámayorénfasisdescriptivoenestecapítulo.

Figura3.1:Fasesdelametodologíapropuesta(Fuente:elaboraciónpropia).

Page 13: Diseño e implementación de una metodología de desarrollo ...

10

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura3.2:Fasesyherramientasutilizadas(Fuente:elaboraciónpropia)

1. Inicio

La fase de inicio (ver Figura 3.3) tiene como objetivo presentar el caso técnica ycomercialmente al cliente y determinar su cancelación o aceptación. Contiene,principalmente, las actividades y tareas que permitirán configurar y desarrollar losartefactosinicialesdelproyecto(creaciónderepositorios,documentosdeanálisisydiseñopreliminares,ydocumentosdeplanificación).

Page 14: Diseño e implementación de una metodología de desarrollo ...

11

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura3.3:FasedeInicio(Fuente:elaboraciónpropia).

2. Elaboración

En esta fase (ver Figura 3.4) el objetivo es principalmente realizar la validación de laarquitecturadelasoluciónencasoqueseanecesariohacerlodebidoalainexperienciadelequipodedesarrolloenalgunatecnologíaimprescindibleparadesarrollarelproyecto.Seconsidera que el prototipo de arquitectura a validar debe contener sólo los aspectosnecesariosparaeliminar la incertidumbrequeexisteconrespectoaella,por lotantosetratadeldesarrollodeunprototipodesechable.Dependiendodelresultadodeldesarrollodel prototipo se pude seguir adelante con el proyecto o incluso tomar la decisión decancelarelmismodebidoa las incertidumbresqueexistenyelriesgoqueelloocasiona.Ademássielequipodedesarrollotienebajaincertidumbreenlastecnologíasdebidoporejemploasuexperienciaprevia,esfactiblenoejecutarlafaseypasardeinmediatoalafasedeConstrucción.

Page 15: Diseño e implementación de una metodología de desarrollo ...

12

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura3.4:FasedeElaboración(Fuente:elaboraciónpropia).

3. Construcción

Enestafase(verFigura3.5)elobjetivoeslaconstruccióndirectadelaspiezasdecódigoque conformarán el sistema o producto que tiene como fin el proyecto en cuestión.Principalmenteserealizanactividadesytareasclásicasdebajonivel,esdecir,programaciónytesting,aunquetambiénexistentareasdeplanificación,diseñoydocumentación.

Figura3.5:ActividadesdeFasedeConstrucción(Fuente:elaboraciónpropia).

Page 16: Diseño e implementación de una metodología de desarrollo ...

13

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Estafaseestácompuestapor2actividadesControldeCambioseImplementación.

3.1 Implementación

Estaactividad(verFigura3.6)pretendeconstruirlaspiezasdesoftwarequeserequierenparasatisfacerlosrequerimientosdelsistemaoproductoaserdesarrolladoenelproyecto.Comienza con una Planificación de Entregas Internas, es decir, dentro del equipo dedesarrollo, de las historias de usuario a construir y la secuencia en se abordará laconstruccióndecadauna.Apartirdelaplanificacióndeentregasinternassepuedeiniciardeformacoordinadayenparalelo,lasactividadesdeDiseñodePruebasyDesarrollodeSolución.

Figura3.6:ExtractodediagramadeImplementaciónmostrandoactividadesdeDiseñodepruebas,DesarrollodeSoluciónyEjecucióndePruebas(Fuente:elaboraciónpropia)

3.1.1 DiseñodePruebas

Eldiseñodepruebas(verFigura3.7)sedocumentaenelSistemadeGestióndeProyectos(JIRA,versecciónHerramientasdeSoportealaMetodología),abordandocadahistoriadeusuario en el orden en que fue determinado en la planificación interna. El sistema degestiónpermite,enestecontexto,serutilizadocomosistemadeadministracióndecasosdepruebasquepermitedocumentareldiseñoylosresultadosdelaejecuciónencadaciclo.

Page 17: Diseño e implementación de una metodología de desarrollo ...

14

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Dependiendode laprácticaactualsepuedediseñar laspruebasdeformatradicional,esdecir, emitiendo un enunciado, pasos de ejecución y detallando los datos de prueba autilizar, o programar las pruebas si el proyecto se ejecuta en un ambiente dotado conejecuciónautomáticadepruebasoTestDrivenDevelopment9(TDD).

Figura3.7:DiagramadeactividaddeDiseñodePruebas(Fuente:elaboraciónpropia)

3.1.2 DesarrollodeSolución

Enestaactividad(verFigura3.8)seasignanlastareas(AsignarTareasEstimadas)definidasanteriormenteen laFasedeInicioysepreparaelambientededesarrollopara iniciar laconstrucciónabajoniveldelsistema.Laasignacióndetareassepuederealizardeformatradicional, es decir, asignando a una persona en particular o permitiendo “asignar alequipo”encuyocasosedejaainiciativadelequipodecidirquiénabordaráeldesarrollodeunahistoriadeusuarioencadamomento.

UnavezasignadaslastareasseprocedeaArmarAmbienteDesarrolloquepermitiráalosprogramadores construir y probar localmente las historias abordadas. Es una tarea quegeneralmenteseefectúaunasolavez,yaqueluegodelsetupinicialdelambientenoseránecesariorealizarelsetupnuevamenteaunquepodríanexistiractualizacionesmarginalesalmismo.

Luegodeajustarelambienteseactualizaeldiseñopreliminar(ElaborarDiseñoDetallado)y lashistoriasdeusuario (RefinarRequerimientos)elaboradasen laFasede InicioparaagregarmayordetallequepermitaabordardemejormaneraeldesarrollodecadahistoriadeusuarioenlatareaImplementarSolución.NotarquelatareaRefinarRequerimientosseejecutadeformaparalelaa lasanterioresdos,estoocurreparapermitiraumentarelentendimiento de los requerimientos aun cuando ya se haya comenzado con laimplementación dotando de flexibilidad y evolución a la metodología. Una vezimplementadaelconjuntodehistoriasquesedeterminódebenserabordadasenlaactual

9DesarrolloGuiadoporPruebas,esunaprácticadedesarrolloenquelaconstruccióndelsistema

comienzadesdelaelaboracióndeunapruebaunitariaquesedebeaprobar,luegoseprogramanloscomponentes(clasesenorientaciónaobjetos)necesariosparaquesuejecuciónpermitaaprobarlaprueba, luego se repite el proceso. En este ciclo se va, de forma iterativa e incremental,desarrollandoelsistemaajustadoalosrequerimientos.

Page 18: Diseño e implementación de una metodología de desarrollo ...

15

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

iteración, seelaboranpruebasunitariasenCrearPruebasUnitarias y luego seejecutanlocalmenteenelambientededesarrolloenEjecutarPruebasUnitarias.HabiendopasadoexitosamentelaspruebasunitariasseincorporanlaspiezasdesoftwarealrepositoriodelproyectoenSubirImplementaciónaRepositoriodesdedondesegatillaelbuilddelsistemaoproductoenelservidordeintegracióncontinuaenIntegrarPiezadeSoftwaredondesevuelven a ejecutar las pruebas unitarias elaboradas y se incorporan definitivamente alproceso de integración. Obtenida una integración exitosa se debe determinar si se hacompletado una entrega interna (Determinar completitud de entrega interna) en cuyocasoseinformaalequipo(InformarEntregaInterna)quejuntoalanotificacióndelfindeldiseño de casos de prueba permite iniciar la ejecución de éstos últimos en la actividadEjecucióndePruebas.

Figura3.8:DiagramadeDesarrollodeSolución(Fuente:elaboraciónpropia)

3.1.3 EjecucióndePruebas

Las actividades de ejecución de pruebas (ver Figura 3.9) se inician en el armado de unambientedeejecución(Armarambientedepruebas)siseestáenpresenciadelaprimeraentrega interna, similarmente a la actividad de Desarrollo de Solución, el ajuste delambienteserealizaráunasolavezrequiriendoactualizacionesposterioresencadaciclo.

Unavezajustadoelambienteseejecutanloscasosdeprueba,diseñadosanteriormente,enEjecutarcasosdepruebaparalashistoriasdeusuariodelaentregainterna.Laejecucióndecadacasodepruebadentrodelcicloesdocumentadaenelsistemadeadministración

Page 19: Diseño e implementación de una metodología de desarrollo ...

16

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

decasosdeprueba,hayafinalizadoenladeteccióndefallasono.Alfinalizarlaejecuciónysi existen fallasdetectadas se reportanal equipoparaque inicie su análisis enAnalizargravedadfallasysiesnecesariasucorrección,envistadesugravedad,prioridadyestadodelproyecto,sevuelvenaejecutarlastareasdelaactividadDesarrollodeSoluciónenelcontexto de una corrección de falla, es decir, en donde la asignación de tareas seráreemplazadaporlaasignacióndelacorreccióndelafallay/oqueserequerirásolodeunaactualizacióndelambientededesarrolloy/oquenoseránecesarioelaborarundiseñoorefinarrequerimientos.

Laejecucióndeciclosdepruebaparaentregas internassesucedenhastaqueunúltimociclo asociado a la última entrega interna, es decir, que finaliza con las historias de laiteraciónterminasinfallas,entoncesseinformadelresultadodeestaúltimaejecuciónalrestodelequipoen Informarresultadoúltimocicloiteración.Puedeocurrirqueelcicloanterior finalice con fallas, pero demenor importancia, en tal caso no se informará deresultadoexitosodeesteúltimocicloysetomaráladecisióndeliberarlaversiónactual.

Llegadoelmomentoenquesetieneunaversiónestablesedebeanalizarlasituacióndeésta. Si fue generada comoundesarrollo demantenimiento (sistemao producto ya enestado de mantenimiento), por ejemplo para nuevas funcionalidades pequeñas, estaversiónseencontraráenunbranchdentrodelsistemadecontroldeversionesyporlotantodeberáserincorporadaaltrunk,alhacerlosedeberánejecutarnuevamentelastareasenlaactividadEjecucióndePruebasparaverificarquelamezcladelasdosversiones,branchytrunk,noquiebrelaestabilidaddelsistema.SinoexistetalsituaciónentoncesseejecutalaactividadLiberación.

Figura3.9:DiagramadeEjecucióndePruebas(Fuente:elaboraciónpropia)

Page 20: Diseño e implementación de una metodología de desarrollo ...

17

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

3.1.4 Liberación

Alllegaralaetapadeliberarlaversiónaproducción(verFigura3.10)sedebedeterminarla información necesaria para permitir hacer un seguimiento de la versión (GenerardocumentacióndeVersióndelSistema).Principalmenteloquesedeterminaeselnúmerodeversión,pasosparainstalarlaylosrequerimientosimplementadosenella.Luegosedebegenerarelinstalabledelaversiónqueseobtienedelservidordeintegracióncontinuayquedebe ser igual albuild que se informóenel último ciclode la iteración. Enestemismoservidor se debe indicar que el build en cuestión representa la versión que se liberará(Generartagdeversión)yquedadestacadodelrestodelosbuildsgeneradosdurantelaimplementación. A continuación se ejecuta la liberación (actualización) del sistema oproductoenproducciónnotificandodel fin la tarea (Notificar liberación).Finalmenteseregistra la documentación generada en la wiki del proyecto (Registrar versión ydocumentaciónenWiki) y si la liberación contempla la instalacióndebasededatos seregistraenelsistemadecontroldeversionesunbackupdeesaversión(GeneraryregistrarbackupBDversión).

Otrasituación,similaralaqueocurrealfinaldelaactividadEjecucióndePruebas,esquesetratedeunaliberaciónintermediaentreunaiteraciónyotradebidoalacorreccióndefallasdetectadaenlaiteraciónprimera,yaenproducción,encuyocasounavezliberadalaversiónsedebemezclaréstaconeltrunkenelsistemadecontroldeversionesendondeseencuentraimplementándoselasiguienteiteración.

Figura3.10:DiagramadeLiberación(Fuente:elaboraciónpropia)

Paradotardeflexibilidadyagilidadalametodologíayabrazarelcambioqueestásiemprepresente,existelaactividadControldeCambiosquepermiteabordardeformacontroladaloscambiosderequerimientosqueexistendebidoalacaducidaddelosmismos.

3.2 ControldeCambios

Elcontroldecambios(verFigura3.11)segatilladesdelarecepcióndesolicituddelclientepor un cambio en los requerimientos (Recibir Solicitud de Cambio) estando laimplementaciónyainiciadaencualquieriteración.Lasolicitudesanalizadaenlastareasdelasactividades (anteriormentediscutidas)AnálisisdeRequerimientosyPlanificacióndeProyecto.Conlainformaciónentregadaporlasactividadesanterioressepuedeanalizarelimpactotécnicoquetieneenlaejecucióndelproyectolasolicitudactual(AnalizarImpacto

Page 21: Diseño e implementación de una metodología de desarrollo ...

18

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Solicitud de Cambio). Tras ejecutar la tarea anterior se debe analizar el estado de laconstruccióndelsistemaypuedenocurrirlossiguientesescenarios:

• Sedeterminaqueelimpactoesbajo:o Silasolicitudesurgenteentoncessepuedeabordarelcambiodentrodela

iteraciónactualsolosilapróximaliberacióndeellaeslejanaentiempo,encuyocasoseprocedeaincorporarel(los)cambio(s)alplandeiteracioneselaboradoenlaFasedeInicio(AgregarIteraciónaPlandeIteraciones)

o Si lasolicitudnoesurgenteo lapróxima liberaciónescercanaen tiempoentoncesseabordaráeniteracionesadicionalesalfinaldeloactualmenteplanificado

• Sedeterminaqueelimpactoesalto:o Serequieredeunacuerdocomercial(AcuerdoComercial)paraautorizarla

incorporacióndelcambioenelproyecto,sielacuerdoespositivoentoncesserequeriráimplementaciónyseincorporaráeniteracionesadicionalesalfinaldeloactualmenteplanificado

Decidirsilapróximaliberacióneslejanaocercaentiempotalquepuedaserabordadaunasolicitud de cambio o no, queda a discreción del equipo de desarrollo. Elementos dedecisiónpuedenserlaposibilidaddepostergaralgunahistoriadeusuarioafavordeotraquesevuelvemáscomplejaodelograralgúnacuerdoconelclienteencuantoalafechadeliberacióndeunaiteración.

Si el cambio es aceptado entonces es efectivamente abordado en la actividadImplementación.

Page 22: Diseño e implementación de una metodología de desarrollo ...

19

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura3.11:ExtractodeDiagramaControldeCambios(Fuente:elaboraciónpropia)

4 Transición

Enestafase(verFigura3.12)elobjetivoeslograrunacompletaaceptación,porpartedelcliente,delsistemadesarrollado.Altratardecumplirconloanterioresposiblequesedebapulirelsistemalocualquepuedesignificar:corregirunafallareportadaenproducción,yaseaporelclienteoporelequipodedesarrollo,oimplementarunamejorapropuestaporlosmismosstakeholders.

Page 23: Diseño e implementación de una metodología de desarrollo ...

20

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura3.12:ActividadesdeFasedeTransición(Fuente:elaboraciónpropia)

Luegode lograr el objetivo, el sistemapasaauna categoríade “EnMantenimiento”endonde se realizará el soporte del sistema a largo plazo hasta el fin de su vida útil. Elmantenimientoesaconsejableserealiceusandounametodologíaindependienteyaqueenestaetapaseenfrentanotrostiposdedesarrollosyproblemas.

5 HerramientasdeSoportealaMetodología

Lametodologíapresentadapuedesermejorejecutadaypermiteunacomodidadparaelequipodedesarrollosisecomplementaconunaseriedeherramientasparacadaaspectopresentedentrodelaejecución.Laprácticadelametodologíahallevadoaidentificarlassiguientesherramientas(VerTabla3.1),alasquesehahechoreferenciaenladescripcióndelasactividadesanteriores,conlasquesehanobtenidobuenosresultados:

Page 24: Diseño e implementación de una metodología de desarrollo ...

21

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Herramienta Aspecto de la metodología (Uso dado) Wiki Gestióndeconocimientoydocumentacióndelproyecto

[MediaWiki]Teamcity Servidordeintegracióncontinua(contieneypermitegestión

debuildsdelsistema)[Teamcity]SVN Sistemadecontroldeversiones(SCM10)[SVN]JIRA Sistemadegestióndeproyectos

SistemadeadministracióndecasosdepruebaKanbandigital[JIRA]

Kanban(tablerofísico/digital)

Visualizacióndeflujodetrabajo(historiasdeusuario)

EclipseProcessFramework

Editordeprocesosenmeta-modeloSPEMValidacióndeconsistencia

Tabla3.1:Listadeherramientasutilizadasenlapráctica

Comoseindicóanteriormente, la listapresentadahafuncionadoempíricamenteycomotoda herramienta el objetivo de su uso es facilitar la ejecución de tareas por parte delequipodedesarrollo,siotroequiposeembarcaenlaimplementacióndeestametodología,seincentivaaquebusquelasherramientasquemejorpermitenlaejecucióndelastareassegún la experiencia del mismo, tratando de abarcar los aspectos de la metodologíadescritos.

10SCM:SystemConfigurationManagement

Page 25: Diseño e implementación de una metodología de desarrollo ...

22

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

CAPÍTULO4:VALIDACIÓNDELASOLUCIÓNPROPUESTALagénesisdelametodologíapresentadaocurriócomoresultadodeunacooperaciónentrelaUniversidaddeChileylaempresacomopartedelproyectoADAPTE,cuyoobjetivoerainvestigarelusodelaadaptacióndeprocesoseneldesarrollodesoftwareenlasempresasdesoftwarechilenas.Dadoqueeranecesarioquelasempresasparticipantestuviesenyadefinidoydocumentadounprocesoometodologíadedesarrollo,launiversidadofreciósusserviciosparaayudaralasempresasacumplirelrequisito.Laempresaaceptólasugerenciaysedefinióydocumentóunaprimeraversióndelametodologíapresentadaendondeelautordeestamemoriaparticipóactivamentedelasactividadesdedocumentacióndelametodología. La metodología ya era usada anteriormente, es decir, estaba definidaconceptualmenteperocarecíadeladocumentaciónnecesariaparaformalizarsuexistencia.Dadoloanterior,elusodelametodologíaeracomúnenlosproyectosdelaempresa.Laoportunidad de definir y documentar permitió explicitar el cómo se desarrollaba elsoftware,detectarinconsistenciasyoportunidadesdemejora.ElementosDestacables

Lametodologíaseusóenunadocenadeproyectosdesdeel2012al2015(verTabla4.1,4.2y4.3connúmero,categoríaytiposdeproyectos)ysibienfueronproyectosensumayoríaexitosos (considerando aspectos comerciales y técnicos) elementos importantes quedestacaronenlasejecucionesdelametodologíason:

• El ajuste inicial del servidor de integración continua tomaba un tiempo nodespreciable y aunque se realizaba solo una vez por proyecto técnicas comoPipelineascodepuedenhacerlomáslivianoyefectivo

• Elusodelawikiesmuyútil,sinembargo,sinosetieneelcuidadodeincorporarlacategoríaacadaartículo11creado,éstossepuedenvolverrápidamentedifícilesdeencontrar

• ElusodeTDDsevolviócasiimposibledebidoalafaltadeconocimientoytiempoparaaprenderlapráctica

• En relaciónal puntoanterior, sí se logróadoptar la implementacióndepruebasautomatizadasque se ejecutan justodespuésde incorporar código fuenteenelSCM

• Se hizo necesario incorporar detalles acerca de cómo ejecutar las tareas másimportantes,porlotanto,seincorporaronguías,recomendacionesyformatosdeartefactos (disponiblesenmetodologíaenformatoSPEMen laversióndigitaldeestamemoria)

• El registro de tiempo trabajado por persona no fue útil ya que la métrica queimportabaeraeltiempomediodeentregadefuncionalidadesyvaloralcliente

11Unartículoenlawikiescualquierdocumentoenella,porejemplounahistoriadeusuarioola

VisióndelSistema

Page 26: Diseño e implementación de una metodología de desarrollo ...

23

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

• Noselogróincorporarunconjuntoimportantedemétricasydashboardsendonderealizaranálisisamododesoftwaredevelopmentanalytics,principalmenteacausadelpocotiempoconquecontabaelequipo

Tabla4.1:CategoríadeProyectossegúnDuración

Duración <2 mes 2 a 6 meses >6 meses Pequeño Mediano Grande

Tabla4.2:CantidaddeProyectosporTipoduranteaños2012-2014

Tipo Mantenimiento Nuevos Desarrollos

# de proyectos 7 5

Tabla4.3:CantidaddeProyectosporTipoduranteaños2012-2014 Categoría Pequeño Mediano Grande

# de proyectos 7 2 3 FactorHumanoyliderazgo

Lametodología al ser una herramienta en símismapara permitir al equipo desarrollarsoftwareseconvierteenunelementoquepuedemutardeacuerdoalasnecesidadesdelaspersonasquelautilizanytambiéndeacuerdoalosnivelesdemotivaciónycompromisodelasmismas.Enlaempresayduranteciertoperiodoseprodujouncambiodeliderazgoconrespectoalqueexistíacuandolametodologíafuedefinida,documentadaymejorada,ésteliderazgode marcada negatividad fue socavando el compromiso y motivación del equipo dedesarrollo a través de las constantes solicitudes “urgentes”, cambios de contextofrecuentes, reuniones ineficientes e instauración de situaciones conflictivas de formapremeditada. La consecuencia lógica terminó siendo el abandono del uso de lametodología, laadopcióndelcaos, losprocesosnorepetiblesyelquiebredelequipodedesarrolloconvariasdeserciones.

Page 27: Diseño e implementación de una metodología de desarrollo ...

24

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

CONCLUSIONESTenerunabasedesdedondecomenzarcuandosehacenesfuerzosparahacerdeldesarrollodesoftwareunaactividadconfiable,predecibleyrepetibleesunaopciónmuydeseableenla industria, en particular en las PYMES en donde los recursos son relativamente másescasosqueenotracategoriadeempresas.Casosdeéxito,recomendaciones,descripciónde metodologías y buenas prácticas es información de gran valor en estos casos, sinembargoesmuyimportanteindicarquecadaproyectoesunainstanciaparticularymuydistintacadavezyquesedebeconsiderarcualquiermodificaciónotailoringalaformadedesarrolloqueseanecesariaparalograrlosobjetivosdelproyectotantodelprocesocomode las herramientas que lo apoyan. La metodologia es una herramienta y sirve a losobjetivosdelequipodedesarrollo,noalrevés.Elliderazgoqueincentiva,gatillaysostieneloscambiosylabúsquedadelamejoracontinuaesimprescindible.Lastransformacioneságilesoadopcionesdenuevasformasde“hacer”nosonposiblessineladecuadoliderazgodelossponsorsqueempoderanalosequiposylespermitenlaautonomíanecesariaparalogrargrandesresultados.Existendosaspectosimportantesenelenfoquedelaagilidadeneldesarrollodesoftware:“hacerágil”y“serágil”.Enestetrabajosehadescritounametodologíaqueseacercaal“hacerágil”,esdecir,aplicarenalgunasfasedeldesarrollodesoftwareprácticaságilesquelaexperienciaindicaquehanentregadobuenosresultados,perosedebetenerencuentaquelarealtransformaciónocurrecuandose“eságil”loquerequiereuncambiodemindsettotal en la organización. Las organizaciones que logran llegar al “ser ágiles” suelen nonecesitar una metodología definida para toda la organizaciñon ya que sus equiposempoderadospuedendefinirloquemejorapliquealproyectoencursoycambiardeformarápidayflexiblesifuesenecesario.

Page 28: Diseño e implementación de una metodología de desarrollo ...

25

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

REFERENCIASBIBLIOGRÁFICAS

• [Balduino07]BalduinoR.(2007)IntroductiontoOpenUP(OpenUnifiedProcess)• [Bastarrica16]Bastarrica,M.C.,Marques,M.,Ochoa,S.,Perovich,D.,Quispe,A.,

Robbes, R., Simmonds, J. (2016). La industria del software en Chile: Desafíos yoportunidades para generar un impacto país, Bits de Ciencia, N° 13, 34-39.DepartamentodeCienciasdelaComputacióndelaFacultaddeCiencias

• [Brooks95]BrooksF.(1995–20ava.ediciónaniversario).TheMythicalMan-Month.Addison-Wesley

• [Cantor01]Cantor,M.(2001).SoftwareLeadership:AGuidetoSuccessfulSoftwareDevelopment

• [D’Amico12] D’Amico V.Waterfall. 5/6/2012. Development Is Prescriptive; AgileDevelopment Is Adaptive. Obtenido desdehttp://brainslink.com/2012/06/waterfall-development-is-prescriptive-agile-development-is-adaptive/.Últimoacceso16/03/2017

• [EstatutoPYMES] Estatuto de las PYMES. Obtenida desdehttp://www.bcn.cl/leyfacil/recurso/estatuto-de-las-pymes. Último acceso19/06/2016

• [Fichtner]FichtnerA.AgileVs.Lean:YeahYeah,What’stheDifference?.Obtenidadesde https://hackerchick.com/agile-vs-lean-yeah-yeah-whats-the-difference/.Últimoacceso16/03/2017

• [García11]GarcíaF.,VizcaínoA.,EbertC.(2011).ProcessManagementTools.IEEEedición Abril 2011, 15-18. Obtenida desdehttps://vector.com/portal/medien/vector_consulting/publications/Ebert_ProcessTools_IEEESoftware_2011V28N2.pdf.Últimoacceso16/03/2017

• [Highsmith2013] Highsmith J. (2013)Adaptive Leadership, Acelerating EnterpriseAgility. Addison-Wesley Professional. Obtenida desdehttps://assets.thoughtworks.com/articles/adaptive-leadership-accelerating-enterprise-agility-jim-highsmith-thoughtworks.pdf.Últimoacceso15/03/2017

• [Hurtado11]HurtadoA.,BastarricaM.,BergelA.(2011)AnalyzingSoftwareProcessModelswithAVISPA

• [JIRA]https://www.atlassian.com/software/jira• [Kniberg15]KnibergH.(2015).SCRUMandXPfromthetrenches.C4Media• [Koutsoumpos14]KoutsoumposV.,MarinelarenaI.(2014).AgileMethodologiesand

SoftwareProcessImprovementMaturityModels,CurrentStateofPracticeinSmallandMediumEnterprises.Dept.ofSoftwareEngineering(DIPT),BlekingeInstituteofTechnology

• [Mahanti06]MahantiA.(2006).ChallengesinEnterpriseAdoptionofAgileMethods–ASurvey.JournalofComputingandInformationTechnology.Edición14,197-206

• [MediaWiki]https://www.mediawiki.org/wiki/MediaWiki

Page 29: Diseño e implementación de una metodología de desarrollo ...

26

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

• [MicroFocus]Top5SoftwareDevelopmentProcessChallenges.(2016).WhitePaperde Micro Focus. Obtenido desde https://www.microfocus.com/media/white-paper/WP_Top-5-Software-Development-Process-Challenges_Final.pdf. Últimoacceso15/03/2017

• [OpenUP] OpenUP. http://epf.eclipse.org/wikis/openup/. Último acceso el27/06/2016

• [Piquer16]Piquer,J.M.(2016)¿ExisteunaindustriaTIenChile?,BitsdeCiencia,N°13,28-30

• [Poppendieck03] Poppendieck, M., Poppendieck, T. (2003). Lean SoftwareDevelopment:AnAgileToolkit,AdisonWesley

• [Riquelme16]Riquelme,M.E.(2016).RadiografíaalaindustriadelsoftwareenChileysusdesafíos,BitsdeCiencia,N°13,31-33

• [Schwaber16]SchwaberK.,SutherlandJ.(2016).TheScrumGuide.• [SoftwareCrisis] Software Crisis. 23/03/2015. Obtenida desde

https://www.ukessays.com/essays/computer-science/software-crisis.php. Últimoacceso16/03/2017

• [SPEM]Software&SystemsProcessEngineeringMeta-ModelSpecification.(2008)ObjectManagementGroup.Obtenidodesdehttp://www.omg.org.Últimoacceso16/03/2017

• [SVN]https://subversion.apache.org/• [Teamcity]https://www.jetbrains.com/teamcity/• [Villena12] Villena, A. (2012), ¿Qué metodología será más adecuada para mi

proyecto software? Obtenida desde http://es.slideshare.net/leansight/qu-metodologa-ser-ms-adecuada-para-mi-proyecto-software-13905273. Últimoacceso27/06/2016

Page 30: Diseño e implementación de una metodología de desarrollo ...

27

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

AnexoNavegacióndemetodologíaensitioweb

EnlaversióndigitaldeestamemoriaseencuentraeldirectorioSitioWeb/enelcualsepuedeencontrarunaversiónenformatodesitiowebestáticodelametodología.Éstesitioweb es exportado desde la herramientaEPF Composer y es recomendable realizar estaacción para comunicar la metodología a los stakeholders de la organización ya quepresentarlo desde la herramienta puede llegar a ser complejo debido a lo técnico delambientedeedición.Indicacionesacercadecómoexportaryeditarsedaránenlasiguientesecciónenesteanexo.Elsitiowebmuestra2zonascomoseveenlaFigura1.

Figura1(Fuente:elaboraciónpropia)

Lasección1esunárboldenavegaciónquepermitellegarrápidamentealoselementos(oramas)delametodología:elProceso,lasTareasporDisciplinaylosRoles.Alexpandiréstosúltimos se pueden ver todas las tareas en las que cada rol está involucrado, entoncessirviendocomounelementodeanálisisparalacargadetareasdecadarol.Lasección2eslazonaprincipalquedespliegatodoslosdetallesdeloselementossiendovistos actualmente: vista delworkflow y las actividades/tareas en forma debreakdownstructure(WorkBreakdown).Lasección3eselbannerprincipalquetieneuntítuloylinkscomoIndex,FeedbackyAbout.TodaslasseccionesanterioressonconfigurablesdesdelaherramientaEPFComposerenlacualsepuedeajustareldesplieguedemásomenosinformación.En loque se sigue seobviará la sección1 yelbannerprincipalpara concentrarseen lasección2yloselementosquesepresentanallí.

1

2

3

Page 31: Diseño e implementación de una metodología de desarrollo ...

28

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Alhacerclicenunadelasfases,porejemplo,Inicio,sedespliegalasiguientepantalla:

Figura2(Fuente:elaboraciónpropia)

Figura3(Fuente:elaboraciónpropia)

Page 32: Diseño e implementación de una metodología de desarrollo ...

29

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

ComomuestralaFigura2y3sedesplieganlasactividadesytareasdelafase.Eldespliegueserealizaen3zonas:

1. Zonadeworkflow(verFiguras2y3)2. Zonadedetallede tareascon rolque laejecuta, inputs requeridosyouputsque

genera(verFigura4)3. Zonaconbreakdownstructure(verFigura5)

Figura4(Fuente:elaboraciónpropia)

Figura5:Resaltalazonabreakdownstructure(Fuente:elaboraciónpropia)

Page 33: Diseño e implementación de una metodología de desarrollo ...

30

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Notarquenosedetallanlasactividadesenlazonadetareas,yaqueéstastienen,asuvez,supropia seccióndeworkflow ydesplieguecomoelquesedescribeparauna fase.Porejemplo, si se hace clic sobre la actividad Analisis de Requerimientos se despliega lasiguientepantalla(verFiguras6y7):

Figura6(Fuente:elaboraciónpropia)

Figura7:continuacióndeFigura6(Fuente:elaboraciónpropia)

Page 34: Diseño e implementación de una metodología de desarrollo ...

31

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

UnaactividadenSPEMsemodelacomounCapabilityPatternqueesunelementoquesepuedereutilizardentrodeladescripcióndelproceso,comoocurreconlaactividadAnalisisdeRequerimientosqueesutilzadatantodentrodelafaseIniciocomodentrodelaactividadControldeCambiosenlafaseConstrucción.Alhacerclicenunatareadentrodelaseccióndeworflow,porejemplo,ElaborarVisiondelSistemasepuedevereldetalledelatareaen4dimensiones(verFigura8):

• Descripción(siexiste)• Rolesinvolucradosensuejecución• Inputsrequeridos• Outputsesperados

Ademásdeotrosatributosquenofueronusadosparaeldiseñodelametodologíaquesedescribeenestamemoria.

Figura8:DestacandolinkhaciaeloutputVisióndelSistema(Fuente:elaboraciónpropia)

Sisequierevereldetalledecualquieradelas4dimensionessolosedebehacerclicsobreunodeellos,porejemploalhacerloeneloutputVisióndelSistemasedespliegalasiguentepantalla:

Page 35: Diseño e implementación de una metodología de desarrollo ...

32

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura9(Fuente:elaboraciónpropia)

ComomuestralaFigura9,sedespliegandatoseinformacionesasociadasaloutputoworkproductVisiondelSistema:

• Descripción(siexiste)• Rolesinvolucrados(Roles)• Tareasdelasqueesunasalidaoresultado(OutputFrom)• Ayudasoindicacionesparaconstruireloutput.Enestecasocomoayudaseadjunta

untemplate(Templates)queesunainformacióncomúncuandolosoutputstienelaformadedocumento

Otrotipodeayudaspuedenserguías(Guidelines)acercadecomoejecutarunatarea,porejemplo,latareaImplementarSolucióndentrodelaactividadDesarrollodeSoluciónasuvezdentrodelaactividadImplementacióndelafaseConstrucción(VerFiguras10a14paraverlasecuenciadenavegaciónparallegaralatareaImplementarSolución)

Page 36: Diseño e implementación de una metodología de desarrollo ...

33

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura10(Fuente:elaboraciónpropia)

Figura11(Fuente:elaboraciónpropia)

Page 37: Diseño e implementación de una metodología de desarrollo ...

34

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura12:(Fuente:elaboraciónpropia)

Page 38: Diseño e implementación de una metodología de desarrollo ...

35

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura13:(Fuente:elaboraciónpropia)

Figura14:TareaImplementarSolución(Fuente:elaboraciónpropia)

Page 39: Diseño e implementación de una metodología de desarrollo ...

36

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

LaFigura14presentalainformacióndelatareaImplementarSoluciónylaseccióndeinterésenestecaso,Guidelines.AlhacerclicenlaguiaBuenasprácticasdeprogramaciónsepresentaunadescripciónyunlink(verFigura15)haciaprácticasquededescriben,enestecaso,enelsitiowebdeUncleBobMartin12(VerFigura16).

Figura15(Fuente:elaboraciónpropia)

Figura16(Fuente:elaboraciónpropia)

Enresumenelejemploanteriormuestranlanavegacióntop-bottomqueserealizaalanalizarlametodología.Secomienzaporunafase,luegoporactividades(puedensertareas),luegoportareaslascualespuedentenerguíasdeayudaparaserejecutadas,hastalosworkproductsuoutputsquepuedentenerplantillasqueayudanensuconstrucción(verFigura17).

12RobertC.Martinautorde“CleanCode:AHandbookofAgileSoftwareCraftsmanship”,

PrenticeHall,sitiowebhttp://blog.cleancoder.com/,ultimoacceso3/4/2017

Page 40: Diseño e implementación de una metodología de desarrollo ...

37

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura17(Fuente:elaboraciónpropia)

Generaciónsitiowebdelametodología

Para generar la versión como sitiowebde lametodología importar al EPFComposer eldirectorioMlibrary/,luegoiralmenúConfiguration>Publishyseguirlospasosqueallísedetallan.VerFiguras18a24desplegandolasecuenciadeopcionesparaexportarensitioweblametodología.

Page 41: Diseño e implementación de una metodología de desarrollo ...

38

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura18:Exportarasitiowebpaso1(Fuente:elaboraciónpropia)

Figura19:Exportarasitiowebpaso2(Fuente:elaboraciónpropia)

Page 42: Diseño e implementación de una metodología de desarrollo ...

39

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura20:Exportarasitiowebpaso3(Fuente:elaboraciónpropia)

Figura21:Exportarasitiowebpaso4(Fuente:elaboraciónpropia)

Page 43: Diseño e implementación de una metodología de desarrollo ...

40

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura22:Exportarasitiowebpaso5(Fuente:elaboraciónpropia)

Figura23:Exportarasitiowebpaso6(Fuente:elaboraciónpropia)

Page 44: Diseño e implementación de una metodología de desarrollo ...

41

________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera

Figura24:Exportarasitiowebpaso7(Fuente:elaboraciónpropia)

ParamasdetallesacercadelfuncionamientodelaherramientaEPFComposerver[OpenUP]yvisitarhttps://eclipse.org/epf/general/getting_started.php