UniversidadTécnicaFedericoSantaMaríaDepartamentodeInformática
Valparaíso-Chile
MemoriaparaoptaraltítulodeIngenieroCivilInformático
ProfesorGuía:LuisHevia
Abril2017
DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíade
desarrollo
DanielHéctorSantibáñezVera
________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera
DEDICATORIAAmimadre,parejaehijaquetuvieronlapacienciaparavermefinalizarestetrabajoyatodosaquellos,amigosycompañerosquemerecordarondíaadíaqueestodebíaser
terminado.
________________________________________________________________________________________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
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.
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
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)
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
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.
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
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
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.
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).
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).
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.
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).
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.
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.
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
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)
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
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.
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.
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:
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
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
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.
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.
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
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
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
28
________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera
Alhacerclicenunadelasfases,porejemplo,Inicio,sedespliegalasiguientepantalla:
Figura2(Fuente:elaboraciónpropia)
Figura3(Fuente:elaboraciónpropia)
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)
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)
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:
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)
33
________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera
Figura10(Fuente:elaboraciónpropia)
Figura11(Fuente:elaboraciónpropia)
34
________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera
Figura12:(Fuente:elaboraciónpropia)
35
________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera
Figura13:(Fuente:elaboraciónpropia)
Figura14:TareaImplementarSolución(Fuente:elaboraciónpropia)
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
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.
38
________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera
Figura18:Exportarasitiowebpaso1(Fuente:elaboraciónpropia)
Figura19:Exportarasitiowebpaso2(Fuente:elaboraciónpropia)
39
________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera
Figura20:Exportarasitiowebpaso3(Fuente:elaboraciónpropia)
Figura21:Exportarasitiowebpaso4(Fuente:elaboraciónpropia)
40
________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera
Figura22:Exportarasitiowebpaso5(Fuente:elaboraciónpropia)
Figura23:Exportarasitiowebpaso6(Fuente:elaboraciónpropia)
41
________________________________________________________________________________________DiseñoeimplementacióndeunametodologíadedesarrolloágilenunaPYMETICcarentedemetodologíadedesarrolloDanielHéctorSantibáñezVera
Figura24:Exportarasitiowebpaso7(Fuente:elaboraciónpropia)
ParamasdetallesacercadelfuncionamientodelaherramientaEPFComposerver[OpenUP]yvisitarhttps://eclipse.org/epf/general/getting_started.php