Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cmmi
Cmmi
BUENAS PRCTICAS
ASESOR
Sandra Victoria Hurtado Gil
Dedicatoria
A mis hijas a quienes recib en mi vida
durante este proceso y a mi esposa
quin me motiv y ayud
a obtener este logro.
TABLA DE CONTENIDO
1.1.
1.2.
Antecedentes .................................................................................................... 11
1.3.
Justificacin...................................................................................................... 13
1.4.
Objetivos .......................................................................................................... 16
1.4.1.
1.4.2.
1.5.
2.
Alcance............................................................................................................. 17
REFERENTE TERICO ............................................................................................. 18
2.1.
Definiciones ..................................................................................................... 18
2.1.1.
2.1.2.
2.2.
Scrum ........................................................................................................... 19
2.2.2.
ICONIX ........................................................................................................ 21
2.2.3.
2.3.
2.3.2.
2.4.
2.5.
2.6.
3.
4.
4.1.
Enfoque ............................................................................................................ 42
4.2.
4.3.
5.
6.
7.
DESARROLLO ........................................................................................................... 48
7.1.
7.1.2.
7.1.3.
7.2.
7.3.
7.2.2.
7.2.3.
7.3.1.
7.3.2.
7.3.3.
7.4.
7.4.2.
7.4.3.
7.4.4.
7.5.
7.6.
8.
8.1.
8.2.
8.3.
8.4.
9.
LISTA DE FIGURAS
LISTA DE TABLAS
RESUMEN
INTRODUCCIN
En (Pino, Vidal, Garcia, & Piattini, 2007) se plantea que posiblemente las propuestas
extranjeras estn enfocadas para grandes compaas con otras caractersticas, la misma
duda que impeda implementar en el ADSCR una metodologa de desarrollo de software
tradicional.
1 En el Informe Seguimiento Proyecto Nomina y Gestin Humana del ao 2008 radicado 8819 se encontraron diferencias en costo del proyecto frente a lo presupuestado
y lo efectivamente ejecutado equivalente sobrecosto del 38%. Dicho documento tambin evidencia un retraso de 45 das en el cronograma propuesto.
2 Se realiz un control de documentacin de sistemas de informacin en el ao 2010 donde se evidencia que de 28 proyectos a los que se le realizo el seguimiento un
32% no tenan ningn tipo de documentacin oficial y solo la mitad cumplan con al menos el 60% de todos los tems definidos en el instructivo.
3 Es una metodologa abierta y gratis basada en UML con el fin de desarrollar el anlisis y el diseo que incluye un anlisis de robustez en la mitad que conecta ambos,
el llamado proceso ICONIX es descrito en el libro UML Theory and Practice.
4 El Lenguaje unificado de modelamiento UML es una especificacin desarrollada por la OMG que permite describir estructuras de aplicaciones, de comportamiento, de
arquitectura, de negocios de proceso y de estructura de datos.
mediante una investigacin de integrantes del equipo conocen a Disciplined Agile Delivery
(DAD)5 un proceso hibrido publicado por IBM.
Este trabajo nace de estas inquietudes y tuvo como objetivo establecer un proceso
estructurado de software (PES) para el ADSCR, basado en el anlisis de CMMI6 y los
mtodos giles de ingeniera de software seleccionados Scrum, XP e ICONIX.
Este proyecto inicia con una evaluacin del estado actual de la empresa aprovechando el
instrumento basado en CMMI desarrollado dentro del grupo de investigacin de la UAM.
Luego se comparael proceso actual del ADSCR con Scrum, XP e ICONIX a la luz de
CMMI para encontrar las posibilidades de mejora y lograr relacionar y seleccionar las
prcticas de estas metodologas que mejor se ajusten a la compaa. Con el resultado de
esta comparacin se define un proceso estructurado con estas metodologas y se documenta
formalmente mediante SPEM 7 . Finalmente se valida este nuevo proceso mediante una
prueba de concepto utilizando un proyecto piloto del ADSCR.
5 Metodologa hibrida de gran influencia gil descrita por Ambler y Lines en el libro Disciplined Agile Delivery: A Practioners Guide to Agile Software Delivery in
the Enterprise publicado por IBM.
6 CMMI es una coleccin de mejores prcticas que ayudan a mejorar los procesos de la organizacin creado por el Software Engineering Institute. Este se usar como
punto de referencia y como base de medida para la evaluacin de las diferentes prcticas encontradas en la organizacin y en las metodologas giles seleccionadas.
7 Un lenguaje de modelado especfico para procesos y mtodos de software creado por la OMG. Mediante una herramienta que se ajuste a la especificacin SPEM, es
posible definir un modelo de proceso mediante un lenguaje de modelamiento no ambiguo usando generalmente tres elementos bsicos: rol, producto de trabajo y tarea.
10
Con el fin de lograr los objetivos propuestos se propone una metodologa emprica
desarrollada en 5 fases que inicia con la evaluacin del proceso actual, luego realizando una
comparacin de las metodologas, elaborando el nuevo proceso, evaluando este nuevo
proceso en Comfamiliar y finalizando con una fase de conclusin y cierre final.
11
1. REFERENTE CONTEXTUAL
1.1.
1.2.
ANTECEDENTES
Varios estudios han realizado matrices de comparacin entre metodologas giles y CMMI,
por ejemplo, (Fritzsche & Keil, 2007) (Paulk, 2001) plantearon la inquietud sobre si los
mtodos giles en especial XP serian compatibles con CMMI o al contrario estaran en
conflicto; En este estudio se analizaron todas las reas de proceso para CMMI 1.2 y las
prcticas genricas, el mtodo usado fue subjetivo a nivel de reas de proceso y en algunos
casos de prcticas especficas pero no a un nivel muy detallado. Este estudio permiti
definir algunos lineamientos generales para realizar la comparacin entre CMMI y las
metodologas giles, adems de presentar la viabilidad de este tipo de propuestas. Sin
embargo, para la comparacin en este proyecto se us la propuesta de otros autores (que se
presentan a continuacin), complementada con elementos cuantitativos para facilitar el
anlisis de los resultados.
12
La relacin de SCRUM y CMMI en las reas de PP, PMC, SAM, IPM, RSKM, QPM
fueron analizadas en el trabajo de (Marcal, de Freitas, Furtado Soares, & Belchior, 2007).
All se analiz el propsito de cada prctica especfica de dichas reas y se contrast con las
prcticas definidas en SCRUM, estableciendo en qu medida la prctica de CMMI se
encontraba satisfecha. Luego este estudio fue profundizado analizando la correspondencia
de SCRUM y XP pero solo en las reas de proceso PP, PMC y REQM por (Daz
Fernandez, 2009), en este caso el mtodo usado para analizar la correspondencia con
CMMI fue mediante una evaluacin a nivel de subprcticas. Esta comparacin a nivel de
subprctica fue usada en el proyecto para determinar el nivel de cumplimiento de cada
prctica de CMMI por parte de una metodologa gil, pero amplindolo a ms reas de
proceso. Para este trabajo se us en una primera fase la calificacin propuesta en este
trabajo, de tres valores: cumple totalmente, cumple parcialmente o no cumple; aunque
luego se hizo una equivalencia con una escala cuantitativa.
En la version 1.3 de CMMI para desarrollo (CMMI Product Team, 2010) se incluyen notas
en 10 de las reas de proceso con el fin de facilitar la interpretacin de las prcticas cuando
se desean aplicar stas en ambientes giles, dichas notas tambin refuerzan la nocin de que
CMMI es independiente de la implementacin y de que hay cabida para su uso en entornos
donde son valorados los principios del manifiesto gil.
En el libro Disciplined agile Delivery (Ambler & Lines, 2012) se describe un marco de
trabajo basado en Scrum, Programacin Extrema (XP), Agile Modeling (AM), el Proceso
Unificado (UP), Agil Data(AD) y Kanban. Este enfoque fue diseado por los autores con el
fin expandir el alcance de las metodologas giles en entornos empresariales, con proyectos
riesgosos y equipos ms grandes donde se requiere la institucionalizacin de los procesos.
Esta propuesta presenta elementos prcticos que permiten demostrar la fiabilidad de
integrar metodologas disciplinadas y metodologas giles. En el caso del presente
proyecto, se incluyeron Scrum, XP e ICONIX, pero basadas en el proceso actual de
ADSCR y no en UP.
Por otro lado las investigaciones como son los trabajos de (Pino, Vidal, Garcia, & Piattini,
2007) y (Leticia, Astorga Vargas, Olgun Espinoza, & Andrade Peralta, 2008) y sus
conclusiones, sirven como antecedentes a la implementacin de procesos de mejora en las
reas de desarrollo de software para empresas pequeas y latinoamericanas, que muestran
elementos claves relacionados con la cultura que son necesarios para el ajuste de
metodologas y que no se contemplan en publicaciones estadounidenses como la
mencionada anteriormente (Ambler & Lines, 2012).
13
Sin embargo (Fayad, Laitinen, & Ward, 2000) ya haban resaltado los retos de las
pequeas empresas desarrolladoras de software donde se indica sobre posibles problemas al
tratar de escalar estas metodologas hacia abajo. De acuerdo con la propuesta de estos
autores, el presente proyecto tendr en cuenta estos aspectos relacionados con equipos
pequeos as como la experiencia previa del ADSCR y usar una prueba de concepto para
comenzar la implantacin del proceso propuesto en la empresa, dejando as sentadas las
bases para su implementacin posterior por parte de la empresa.
1.3.
JUSTIFICACIN
8 En un informe seguimiento se encontraron diferencias en costo del proyecto frente a lo presupuestado y lo efectivamente ejecutado equivalente sobrecosto del 38%.
Dicho documento tambin evidencia un retraso de 45 das en el cronograma propuesto.
9 En el ao 2010 se realiz un control de documentacin de sistemas de informacin en donde se evidencia que de 28 proyectos a los que se le realiz el seguimiento
un 32% no tenan ningn tipo de documentacin oficial y solo la mitad cumplan con al menos el 60% de todos los tems definidos en el instructivo.
10 Es una metodologa abierta basada en UML con el fin de desarrollar el anlisis y el diseo que incluye un anlisis de robustez en la mitad que conecta ambos, el
llamado proceso ICONIX es descrito en el libro UML Theory and Practice.
14
Iniciar un proceso de mejoramiento no es algo que deba ser tomado a la ligera. Este toma
tiempo y recursos importantes, requiere de la participacin de todos los involucrados; desde
el usuario final hasta la alta gerencia se ven de una u otra manera afectados por una
iniciativa como esta (Pino, Vidal, Garcia, & Piattini, 2007) (Leticia, Astorga Vargas,
Olgun Espinoza, & Andrade Peralta, 2008).
Estos argumentos son los que permiten finalmente tomar una decisin soportada por las
evidencias ms que por la intuicin y permite de forma clara establecer el valor real del
estado actual del proceso. Un proceso de mejora sustentado en la plataforma de un
conocimiento verdico de nuestra condicin actual tendr un fundamento claro y una mejor
acogida entre los involucrados.
Al poder validar qu est funcionando bien y qu no, se podr evitar problemas como los
que descubrieron Pino y Vidal en su estudio (Pino, Vidal, Garcia, & Piattini, 2007) al
encontrar que en algunos casos los desarrolladores tienen la conviccin de que tal y como
estn haciendo las cosas est bien.
15
Con respecto a los grupos de investigacin de la UAM este proyecto aplica la herramienta
de evaluacin de CMMI en el cual ha trabajado el Grupo de Ingeniera de Software, en la
lnea de calidad y mtricas de software. Los resultados obtenidos de estas evaluaciones
servirn para la actualizacin y mejora del instrumento.
Sin embargo como Scrum por si solo puede no proveer todas las cosas que se necesitan
hacer en un proyecto (Kulpa & Johnson, 2008, pg. 352) se ha decidido incluir prcticas
especficas de otras metodologas como XP para el personal de desarrollo que ayudan a
mejorar la calidad del software desde la construccin del mismo (refactorizacin), as como
prcticas que facilitan el mantenimiento del cdigo (Estndares de codificacin, propiedad
colectiva de cdigo). (Ambler & Lines, 2012)
16
Iconix por su parte aporta un nivel de formalismo y al mismo tiempo permite unir las fases
de anlisis y desarrollo guiando a los programadores en el descubrimiento de las
necesidades del negocio y puede ser fcilmente adaptado a cualquier ciclo de vida.
(Stephens & Rosenberg, 2007)
1.4.
OBJETIVOS
17
1.5.
ALCANCE
18
2. REFERENTE TERICO
Los modelos de proceso para el desarrollo de software vienen evolucionando desde varias
dcadas atrs. Cada par de aos estos modelos son revisados y los investigadores
desarrollan y prueban nuevas prcticas que prometen resolver los problemas de la industria.
(Pressman, 2010)
2.1.
DEFINICIONES
19
2.2.
A partir de este punto se resumirn los principales elementos de los marcos de trabajo y las
metodologias de desarrollo de software relevantes para el presente proyecto, iniciando con
Scrum, luego ICONIXy finalmente Programacin Extrema (XP).
2.2.1. Scrum
Es un marco de trabajo para desarrollo de software y de proyectos. En 1993 fue creado el
primer equipo de Scrum por Jeff Sutherlan y el marco de trabajo fue definido formalmente
en 1995 por Ken Schwaber. Hoy en da es usado por empresas como Google, Microsoft,
Yahoo!, Cisco entre otras. (Deemer, Benefield, Larman, & Vodde, 2009)
20
Fuente: The Scrum Primer (Deemer, Benefield, Larman, & Vodde, 2009, pg. 5)
El dueo del producto identifica y prioriza las funcionalidades que se desea del software. El
equipo (interdisciplinario) se compone de todas las personas con las habilidades que se
requieren para completar el desarrollo. El equipo es acompaado por una persona que los
acompaa y asesora en el uso de Scrum (ScrumMaster).
21
Roles
Dueo del producto
Equipo
ScrumMaster
Reuniones
Planificacin del Sprint
Reunin Diaria
Revisin del Sprint
Retrospectiva del Sprint
Artefactos
Pila del Producto
Pila del Sprint
Grfica de trabajo restante
2.2.2. ICONIX
Matt y Doug en su libro Use Case Driven Object Modeling with UML (Stephens &
Rosenberg, 2007), definen el que ellos llama El Proceso ICONIX como un proceso
22
cookbook en la que describen en una serie especifica de pasos que ellos han encontrado
que funciona muy bien en diferentes proyectos. ICONIX no prescribe ningun ciclo de vida
como lo hacen otras metodologias, lo que permite segn l ser usado de manera gil o de la
manera tradicional. Por esta razn ICONIX puede ajustarse a cualquier ciclo de vida
(Stephens & Rosenberg, 2007).
ICONIX utiliza un enfoque dirigido por casos de uso, se enfoca en las etapas de anlisis y
diseo y define un grupo concreto de diagramas UML para formalizarlas. Esta dividido en
dos flujos de trabajo uno dinmico y otro esttico.
23
En (Stephens & Rosenberg, 2007, pg. 330) se incluye un captulo sobre la realizacin de
pruebas mediante Design-Driven Testing (DDT) sin embargo este elemento de pruebas no
se considera parte del proceso ICONIX.
Segn Wake (2002) XP es un enfoque liviano de desarrollo de software que cubre desde el
levantamiento de requerimientos hasta la entrega final. XP usa un contacto ms cercano con
el cliente mejorando la comunicacin y la retroalimentacin, tiene un enfoque de
planeacin particular y pruebas continuas.
XP es descrito en trminos de 12 prcticas (Beck & Andres, 2004), estas prcticas puede
agruparse en tres capas:
Programacin: Diseo simple, pruebas, refactorizacin, estndares de codificacin.
Prcticas de equipo: Propiedad colectiva, integracin continua, metfora, estndares de
codificacin, 40 horas por semana, programacin en parejas, entregas pequeas.
Proceso: Cliente en casa, pruebas, entregas pequeas, juego de planeacin.
24
Figura 3. XP en capas
25
XP como un proceso:
XP es iterativo y promueve la realizacin de entregas pequeas que entreguen valor al
cliente, para asegurar esto es un requisito que el cliente sea parte del equipo, este se
dedicar de tiempo completo a crear las historias sobre las cuales deben trabajar los
programadores, resolver dudas y disear las pruebas. Si el cliente no est completamente
dedicado y cerca al equipo de programadores, la velocidad del desarrollo ser ms lenta.
Las pruebas diseadas por el cliente se convierten en pruebas unitarias que los
programadores automatizan y con las que pueden garantizar que cada funcionalidad puede
ser probada y responde a las necesidades del cliente.
El juego de planeacin permite al cliente y a los programadores negociar y comprometerse
a realizar entregas peridicas segn las necesidades del cliente. En general el cliente escribe
historias y los programadores estiman el costo de realizarlas, finalmente el cliente puede
decidir qu historias quiere que se desarrollen primero.
2.3.
MODELOS DE REFERENCIA
26
CMMI es una coleccin de mejores prcticas que ayudan a optimizar los procesos de la
organizacin, describiendo cuales actividades deberian realizarse a su interior.
Tambin existen un conjunto de mtodos para evaluar los procesos y procedimientos de la
organizacin llamada SCAMPI (Estndar CMMI Appraisal Method for Process
Improvement), la idea es evaluar cmo fueron implementados estos procesos y
procedimientos, qu tanto se usan en la organizacin y qu tanto se acercan a las prcticas
de CMMI.
CMMI es usado como gua para crear processos y procedimientos y como modelo de
referencia para los metodos de evaluacion SCAMPI. (Kulpa & Johnson, 2008, pg. 7) Ver
Figura 4.
27
CMMI est compuesto por un marco de referencia, unos modelos, mtodos de evaluacin y
cursos de entrenamiento.
28
29
De acuerdo con Phillips y Shrum (2011) parte de cada uno de estos modelos son idnticos
con los otros modelos debido a que son prcticas que aplican a cualquier negocio, sin
embargo cada modelo tambin tiene prcticas nicas debido a sus diferentes enfoques:
CMMI para Desarrollo est diseado para negocios que se enfocan en desarrollar productos
y servicios, este modelo explora de forma detallada la conversin de requerimientos del
cliente en requerimientos que son usados por desarrolladores, integrando efectivamente
componentes de productos en un producto o servicio final, realizando trabajo de anlisis y
desarrollo para disear un producto o servicio y asegurando que el trabajo de desarrollo
cumpla con las necesidades del usuario final y de la especificacin formulada durante el
diseo. El presente proyecto se centrar en el modelo definido en esta constelacin CMMIDEV (CMMI Product Team, 2010).
CMMI para Adquisicin est diseado para negocios que se enfocan en trabajar con
proveedores para ensamblar productos o entregar servicios.
CMMI para Servicios est diseado para negocios enfocados en establecer administrar y
entregar servicios.
Existen 2 representaciones de CMMI la continua y la escalonada; en la primera la
organizacin mejora en uno o varias reas de proceso que tienen relacin entre si y van
alcanzando un nivel de capacidad a la vez. En la representacin escalonada toda la
organizacin realiza la mejora en todas las reas de proceso hasta alcanzar cierto nivel de
madurez. En ambos casos CMMI cuenta con reas de proceso as como metas y prcticas
especficas.
Seguidamente se describe SPEM el cual se usar con el fin de modelar de forma precisa el
proceso resultante de este proyecto
30
La idea central de SPEM para representar procesos est basada en tres elementos bsicos:
rol, producto de trabajo y tarea. Las tareas representan el esfuerzo a hacer, los roles
representan quien lo hace y los productos de trabajo representan las entradas que se utilizan
en las tareas y las salidas que se producen. La idea central subyacente es que un modelo de
proceso consiste, bsicamente, en decir quin (rol) realiza qu (tarea) para, a
partir de unas entradas (productos de trabajo) obtener unas salidas (productos de
trabajo).
El Contenido del Mtodo: Est compuesto de material altamente reutilizable, incluye los
que, quien, como y porque. Define los roles, tareas, productos de trabajo y sus
relaciones, incluye adems guas y categoras.
El proceso: Usa el contenido reutilizable para crear procesos completos o componentes de
procesos que a su vez pueden ser reutilizados. Incluye secuencia de fases, iteraciones,
actividades e hitos que definen el ciclo de vida de desarrollo. Define cuanto se desarrollan
31
2.4.
32
11
En el 2006 se desarroll CMMI con el fin de integrar y estandarizar los modelos que se encontraban
separados en el Modelo de Capacidad y Madurez (CMM).
12
Este porcentaje es inferido del nmero de reas de proceso evaluadas en contraste con el nmero de reas
de proceso que muestran un nivel de satisfaccin.
33
34
En 2007 otro estudio (Fritzsche & Keil, 2007) realiz un anlisis similar, esta vez teniendo
en cuenta adems Scrum y utilizando un sistema de calificacin similar, agregando un nivel
intermedio llamado soportado y agregando el tem en conflicto.
(Paulk, 2001)
(-) No abordado
(++) Soportado
(+++) Muy soportado
35
estudio anterior, el cubrimiento obtenido ahora es de un 64%. Los autores coinciden en que
en niveles 2 y 3 puede lograrse un alcance de CMMI satisfactorio pero en niveles
superiores el cubrimiento es muy pobre.
Cabe resaltar que los autores consideran que la evaluacin SCAMPI no puede ser la mejor
opcin cuando se trata de evaluar una implementacin de tipo gil, debido a la ausencia de
algunas evidencias o actividades obligatorias (Kulpa & Johnson, 2008, pg. 351).
Estos estudios demuestran que en niveles 2 y 3 CMMI y los enfoques giles pueden ser
compatibles y complementarios, aprovechando las prcticas giles para mejorar la
comunicacin y la cercana con el cliente entre otros aspectos y en niveles mayores CMMI
ayuda a institucionalizar dichas prcticas y a mantener estadsticas que soportan los
procesos de mejora.
36
2.5.
MATRICES DE COMPARACIN
En Brasil se realiz un mapeo de CMMI y Scrum (Marcal, de Freitas, Furtado Soares, &
Belchior, 2007), fue realizada sobre la versin 1.2 y se encontraba enfocado en reas
relacionadas con la gestin del proceso que incluyen 3 reas de nivel 2, dos de nivel 3 y
QPM en el nivel 4.
La evaluacin en este proyecto se realiza a nivel de cada prctica especfica, revisando en
forma general el propsito de la prctica y asignndole una de tres posibles calificaciones:
insatisfecha (U), Parcialmente satisfecha (PS) y Satisfecha (S).
En este estudio encontraron prcticas giles que cumplan en algn porcentaje con todas las
reas analizadas menos una QPM en nivel 4 y en un bajo porcentaje (~14%) RSKM, las
dems reas estudiadas tienen un nivel de satisfaccin superior al ~57%.
En una revisin detallada algunas de estas prcticas no satisfechas podran ser motivo de
controversia debido a las diferentes interpretaciones que pueden existir acerca de las
prcticas en Scrum.
En el 2009 Diaz y Garbajosa (Daz Fernandez, 2009) (Diaz, Garbajosa, & CalvoManzano, 2009) mapearon las prcticas de XP y Scrum con las tres primeras reas del nivel
2 de CMMI: Administracin de Requerimientos (REQM), Planificacin de Proyectos (PP)
y Monitoreo y Control de Proyectos (PMC), el estudio no es de gran cobertura en las reas
de CMMI pero realiza un anlisis detallado de cada subprctica con el fin de evaluar cada
prctica especfica con tres calificaciones posibles: alternativa, soportada y plenamente
soportada.
Alternativa
Soportada
37
En 2012 (Lukasiewicz & Miler) se realiz el estudio sobre un cubrimiento mayor, solo
excluyendo los niveles 4, 5 y las reas de nivel 3 Enfoque a Procesos Organizacionales
(OPF), Definicin de Procesos Organizacionales (OPD) y Entrenamiento Organizacional
(OT).
Al momento de este estudio no se pudo obtener informacin ms detallada sobre el trabajo
de comparacin de las prcticas o su mtodo de evaluacin. Segn los autores en su artculo
se us un modelo llamado modelo C-S donde solo resume la relacin entre las prcticas
de CMMI, Scrum y las prcticas adicionales necesarias, pero no contempla un mtodo para
poder extender este modelo a las dems reas o relacionarlo con otras prcticas giles
diferentes de Scrum.
(Jan & Javed, 2013) realizan un mapeo entre las prcticas especficas de CMMI (8 reas de
proceso, seis de ellas de nivel 2 y otras dos de nivel 3) agregando a los estudios anteriores
de Diaz y Garbajosas 3 reas de nivel 2 Medicin y Anlisis (MA), Aseguramiento de la
Calidad del Proceso y el Producto (PPQA) y Administracin de Configuraciones (CM) al
igual que Verificacin (VER) y Administracin de Riesgos (RSKM) de nivel 3, pero
excluyen reas ya evaluadas en el estudio previo de (Lukasiewicz & Miler, 2012) como
REQD, TS, PI, IPM y DAR de nivel 3 sin embargo no encuentran prcticas giles ya
existentes para estas nuevas reas incluidas por lo que deben definir nuevas prcticas que
38
cubran los vacios encontrados. Lo que contrasta con Lukasiewicz & Miler que si
encontraron prcticas en Scrum al menos en las areas CM, VER y RSKM, resaltando la
diferencia encontrada entre los autores en el rea de Verificacin (VER) en el que mientras
Lukasiewicz & Miler encuentra un cubrimiento completo de las prcticas de Scrum, un ao
mas tarde Jan & Javed en su estudio, no encuentran ninguna prctica gil por lo que
incluyen nuevos artefactos, sin embargo esta diferencia puede deberse a diferentes
interpretaciones de Scrum, en (Deemer, Benefield, Larman, & Vodde, 2009, pg. 14) se
observa como en la Revisin del Sprint se busca inspeccionar y adaptar el producto, esta
revisin se hace con el dueo del producto de manera que es una prctica importante para
verificar que el producto cumple con los requerimientos del cliente. De igual manera
ninguno de estos dos ltimos estudios encuentran prcticas giles para medicin y anlisis
(MA) es posible suponer al menos un cubrimiento parcial gracias a la pila de Entrega y la
grfica de trabajo restante explicada en (Deemer, Benefield, Larman, & Vodde, 2009,
pgs. 15-16)
Metodologa
XP/SCRUM
SCRUM
XP/SCRUM
SCRUM
2013
2012
2009
2007
SCXTERME
LUKA
Daz
Marcal
%
Cubrimiento
%
Cubrimiento
%
Cubrimiento
%
Cubrimiento
2 1. REQM
80%
100%
100%
2 2. PP
57%
86%
100%
79%
2 3. PMC
80%
90%
100%
90%
Ao
Investigacin
Nivel rea
Proc.
de
2 4. SAM
0%
2 5. MA
0%
0%
2 6. PPQA
0%
0%
57%
39
2 7. CM
0%
86%
3 8. REQD
100%
3 9. TS
63%
3 10. PI
100%
3 11. VER
0%
100%
3 12. VAL
100%
3 13. OPF
3 14. OPD
3 15. OT
3 16. IPM
3 17. RSKM
0%
3 18. DAR
57%
57%
29%
14%
0%
4 19. OPP
4 20. QPM
0%
5 21. OPM
5 22. CAR
2.6.
FRAMEWORKS MIXTOS
(Lukasiewicz & Miler, 2012) presentaron un mtodo para combinar SCRUM y CMMI para
los niveles 2 y 3, Para esto usaron un modelo de referencia CMMI-Scrum donde se
40
relacionan las prcticas de ambos, usaron un cuestionario para identificar las necesidades
de mejoramiento del proceso y disearon un algoritmo para sugerir las prcticas que
podran aplicarse en el proceso de mejora. Finalmente basado en este algoritmo
desarrollaron el software MatureScrum que implementa el cuestionario y algoritmo de
seleccin.
Dado que Scrum no cubre completamente todas las prcticas de CMMI propuestas, algunas
prcticas nuevas deben introducirse con el fin de cubrir estos vacios, no se aclara como se
obtuvieron o desarrollaron estas prcticas. El estudio de casos aqu se vio limitado a
realizar el cuestionario y las sugerencias pero las prcticas no pudieron ser implementadas
en las empresas evaluadas.
(Jan & Javed, 2013) Proponen un marco de trabajo llamado SCXTREME, este busca
mejorar las deficiencias encontradas en el uso de prcticas giles en Pakistn. Los autores
construyen SCXTREME partiendo como base de CMMI, mapeando las prcticas
especficas con las posibles prcticas ya sea de Scrum o XP, incluso algunas prcticas y
artefactos propuestos no son naturales de estas metodologas giles y parecen provenir
simplemente de las mejores prcticas conocidas en la industria, esto puede observarse por
ejemplo en las reas de proceso
Administracin de Configuraciones (CM) y
Administracin de Riesgos (RSKM).
41
3. APORTE INVESTIGATIVO
Supone una base sobre la cual se puedan desarrollar futuros proyectos para el mejoramiento
de los procesos de software, que lleven a la definicin formal y extensible a otras empresas
de un anlisis que contribuya a la seleccin de buenas prcticas para la construccin de
procesos estructurados de software.
42
4. METODOLOGA PROPUESTA
4.1.
ENFOQUE
Con el fin de desarrollar los objetivos el proyecto se aplicar una metodologa emprica13
basada en el mtodo cientfico donde se propone una mejora y se evalan los resultados,
esta se desarrollar en 5 fases bsicas as:
1. Descripcin y evaluacin del proceso de desarrollo de software actualmente
utilizado en el rea de sistemas de Comfamiliar Risaralda.
2. Anlisis comparativo de las prcticas de SCRUM, XP e ICONIX frente a las
prcticas especficas de CMMI-DEV y el proceso actual de desarrollo del rea
de sistemas de Comfamiliar Risaralda.
3. Elaboracin del proceso ajustado para el rea de desarrollo de software de
Comfamiliar Risaralda.
4. Evaluacin del proceso estructurado de software propuesto.
5. Conclusin
13
Se usa esta metodologa debido a que el estudio ser aplicado y se tomar como base una empresa concreta,
acercndose ms a un estudio de caso que a una investigacin aplicada a la comunidad en general.
43
44
5. Conclusin
5.1. Elaboracin del resumen gerencial dirigido a la coordinacin del rea de
sistemas de Comfamiliar Risaralda
5.2. Elaborar las conclusiones y un informe sobre futuros trabajos que resuelvan
los puntos no incluidos en el alcance y los elementos que aun puedan ser
mejorados en el nuevo PES.
5.3. Elaboracin de un artculo cientfico resumiendo el proceso y los resultados
obtenidos de este trabajo, as como la experiencia al aplicar los instrumentos
seleccionados.
5.4.
4.2.
UNIDAD DE TRABAJO
Con el fin de realizar la evaluacin al proceso se analizar el uso del proceso actual de
desarrollo de software de Comfamiliar Risaralda segn su nivel de aplicacin en los
proyectos: Sistema de informacin integral de Salud, Sistema de Gestin Humana y
Nmina, Modulo nico de Facturacin. Proyectos que por su envergadura y complejidad,
presentaron retos en su gestin, desarrollo, implementacin y soporte, y que por lo tanto
demuestran las caractersticas de un proyecto de importancia y riesgo significativo para la
institucin.
45
4.3.
46
5. RESULTADOS ESPERADOS
Un proceso estructurado de desarrollo (con CMMI como referente y basado en las buenas
prcticas de SCRUM, XP e ICONIX) sugerido de acuerdo a los resultados de la
investigacin debidamente documentado en la herramienta Eclipse Process Framework
(EPF).
47
48
7. DESARROLLO
49
Documento de anlisis
Este documento describe el procedimiento para recopilar informacin sobre las necesidades
que originan el desarrollo del sistema de informacin, documentando el proceso que
requiere la solucin y un cronograma tentativo para el desarrollo del anlisis. Se
documentan tambin los procedimientos que actualmente se desarrollan en el proceso
generalmente de forma manual y que deben incluirse en la solucin propuesta. Tambin se
registran las limitaciones que impone el negocio as como los beneficios que se podran
50
Documento de Diseo
Este documento define el alcance del proyecto a desarrollar, el cronograma para cumplir
con los objetivos. Tambin se enuncian las restricciones que enmarcarn el desarrollo. Es
tambin en parte un documento tcnico donde se realiza un diagrama de casos de uso, un
diagrama de transicin de estados, un modelo entidad relacin, un diccionario de datos y un
diagrama de funciones y navegacin.
51
Ambas evaluaciones fueron realizadas con el coordinador de desarrollo del proceso quin
calific cada punto usando la tabla de valores sugerido por cada instrumento, basado en su
experiencia y conocimiento de los procesos.
El resumen del resultado obtenido con el instrumento basado en las reas de proceso se
puede observar en la Tabla 4. El resultado de la evaluacin detallada puede encontrarse en
el Anexo B.
52
rea de Proceso
Calificacin
1.
Frecuentemente
2.
3.
4.
Frecuentemente
Algunas veces
Siempre
5.
6.
7.
8.
9.
10.
11.
Algunas veces
Siempre
Algunas veces
Siempre
Siempre
Frecuentemente
Siempre
12.
13.
14.
15.
16.
17.
18.
19.
Validacin (VAL)
Enfoque a Procesos Organizacionales (OPF)
Definicin de Procesos Organizacionales (OPD)
Entrenamiento Organizacional (OT)
Administracin Integrada de Proyectos (IPM)
Administracin de Riesgos (RSKM)
Anlisis de Decisiones y Resolucin (DAR)
Desempeo de Procesos Organizacionales (OPP)
Siempre
Siempre
Frecuentemente
Siempre
Frecuentemente
Casi nunca
Frecuentemente
Frecuentemente
Casi nunca
Algunas veces
Algunas veces
Una vez realizada la evaluacin detallada calificando cada prctica mediante la tabla de
valores sugeridos, se us un mtodo de ponderacin porcentual para medir el grado de
cumplimiento de cada meta especfica y luego de cada rea de proceso14.
14
El mtodo para realizar esta ponderacin esta descrito la tesis de grado de Isabel Peralta.
53
Tabla 5. Resumen resultado del proceso actual evaluacin por prcticas especficas
rea de Proceso
1.
2.
3.
4.
Grado de
cumplimiento
75%
89%
60%
100%
5.
6.
7.
8.
9.
10.
11.
44%
100%
46%
98%
75%
53%
88%
12.
13.
14.
15.
16.
17.
18.
19.
Validacin (VAL)
Enfoque a Procesos Organizacionales (OPF)
Definicin de Procesos Organizacionales (OPD)
Entrenamiento Organizacional (OT)
Administracin Integrada de Proyectos (IPM)
Administracin de Riesgos (RSKM)
Anlisis de Decisiones y Resolucin (DAR)
Desempeo de Procesos Organizacionales (OPP)
90%
83%
57%
100%
58%
0%
79%
80%
25%
38%
60%
54
Calificacin cualitativa
Homologacin
Instrumento1
Instrumento 2
No.
NA/NS
NS/NR
Siempre
Siempre
100%
Frecuentemente
Muchas veces
75%
Algunas veces
50%
Algunas veces
Algunas veces
50%
Casi nunca
Casi nunca
25%
Nunca
0%
Instrumento
1
2
rea de Proceso
Variacin15
1.
Administracin de Requerimientos
(REQM)
75%
75%
0%
2.
Planificacin de Proyectos (PP)
3.
Monitoreo y Control de Proyectos
(PMC)Administracin de Contratos con
4.
Proveedores (SAM)
75%
50%
100%
89%
60%
100%
-19%
-20%
0%
5.
Medicin y Anlisis (MA)
6.
Aseguramiento de la Calidad del
Proceso
y el Producto (PPQA)
7.
Administracin
de Configuraciones
(CM)
8.
Desarrollo de Requerimientos
(REQD)
9.
Solucin Tcnica (TS)
10. Integracin de Productos (PI)
11. Verificacin (VER)
50%
100%
50%
100%
100%
75%
100%
34%
100%
46%
98%
75%
53%
88%
32%
0%
8%
2%
25%
29%
12%
100%
100%
90%
83%
10%
17%
15
Procesos
55
14.
Definicin
de
Procesos
Organizacionales
(OPD)
15. Entrenamiento Organizacional (OT)
16.
Administracin Integrada de
Proyectos
(IPM)
17.
Administracin
de Riesgos (RSKM)
18. Anlisis de Decisiones y Resolucin
(DAR)
19.
Desempeo
de
Procesos
Organizacionales (OPP)
75%
100%
75%
25%
75%
75%
57%
100%
58%
0%
79%
80%
24%
0%
23%
100%
-5%
-7%
20.
Administracin Cuantitativa de
Proyectos
(QPM)
21. Gestin
del rendimiento de la
organizacin
22.
Anlisis(OPM)
de Causas y Resolucin
(CAR)
25%
50%
50%
25%
38%
60%
0%
24%
-20%
Los resultados que tuvieron una variacin alta entre los 2 instrumentos fueron revisados y
reevaluados hasta que el porcentaje de variacin fue inferior al 30% entre las cuales se
encontr Medicin y Anlisis (MA), Solucin Tcnica (TS) e Integracin de Productos (PI)
, en el caso del rea de proceso de Administracin de Riesgos (RSKM) no fue posible
disminuir el porcentaje de variacin ya que en el instrumento 1 la calificacin menor era
casi nunca y en el proceso no se encontraron elementos que contribuyeran a la relacin de
las prcticas relacionadas con esta rea de proceso.
Tabla 8. Fortalezas y debilidades del proceso actual identificadas mediante la evaluacin realizada.
rea de Proceso
Grado de
cumplimiento
1.
75%
2.
3.
89%
60%
56
4.
100%
5.
6.
7.
8.
9.
10.
34%
100%
%
46%
98%
75%
53%
88%
Validacin (VAL)
Enfoque a Procesos Organizacionales (OPF)
Definicin de Procesos Organizacionales (OPD)
Entrenamiento Organizacional (OT)
Administracin Integrada de Proyectos (IPM)
Administracin de Riesgos (RSKM)
Anlisis de Decisiones y Resolucin (DAR)
90%
83%
57%
100%
58%
0%
79%
80%
25%
38%
60%
57
Figura 10. Resultado porcentual cumplimiento por rea de proceso evaluacin inicial del rea de desarrollo de SW
100%
2. PP
90%
21. OPM
3. PMC
80%
70%
20. QPM
4. SAM
60%
50%
19. OPP
5. MA
40%
30%
20%
18. DAR
6. PPQA
10%
0%
17. RSKM
7. CM
16. IPM
8. REQD
15. OT
9. TS
14. OPD
10. PI
13. OPF
11. VER
12. VAL
Diez reas de proceso fueron identificadas con bajo grado de cumplimiento (menor a 60%):
58
Las mayora de fortalezas encontradas son derivadas de la aplicacin del sistema de calidad
implementado en la empresa y de la gestin del rea administrativa tanto del proceso como
de la organizacin, reas de proceso como la administracin de proveedores y
entrenamiento organizacional tienen procesos bien establecidos y controlados desde la
direccin; por otro lado las reas de aseguramiento de la calidad del proceso y del producto
y de validacin, son fuertemente apoyadas por el rea de auditora y control interno de la
institucin. Solo el rea de desarrollo de requerimientos resalta como una fortaleza del rea
tcnica encargada del mantenimiento y desarrollo de proyectos de software.
16
Estas reas se encuentran identificadas en la Tabla 8 cuyo porcentaje se encuentra en color rojo.
59
Calificacin
Criterio
No soportada (NS)
Soportada (S)
Aunque XP busca tambin cumplir algunos de los objetivos de CMMI, no lo hace usando
el mismo enfoque lo que hace difcil compararlos, XP puede resolver un problema con
60
Prctica especfica
Calificacin
subprcticas
1)
SP1.1
Comprenden los requerimientos
(requisitos) de los proveedores sobre el significado de
dichos requerimientos.
Establecer criterios para distinguir a los
de OK 1.
proveedores apropiados de requisitos.
X 2. Establecer criterios objetivos para la evaluacin y
aceptacin de los requisitos.
X 3.
Analizar los requisitos para asegurar que se
cumplen los criterios establecidos.
OK 4. Alcanzar una comprensin de los requisitos con
los proveedores de requisitos para que los participantes
del proyecto puedan comprometerse con ellos.
Calificacin
especifica
Observacin
17
El uso de prcticas alternas para cumplir con los mismos objetivos propuestos para las prcticas en CMMI
ya ha sido sugerido en el pasado por (Paulk, 2001) (Fritzsche & Keil, 2007) por ejemplo en su interpretacin
sobre la gestin del riesgo en XP.
18
El pre-game es la primera fase de Scrum donde se realiza la planeacin y se decide la arquitectura que
tendr el sistema (Schwaber, 1997).
61
En general se analizaron de esta forma el 60% de todas las prcticas especficas de todas las
reas de proceso, algunas que claramente no eran soportadas o no eran del alcance de la
metodologa no fueron analizadas a nivel de subprctica dada su irrelevancia.
Calificacin
No soportada (NS)
Criterio
La prctica no es soportada por las prcticas de
la metodologa
62
Parcialmente Soportada
medida (PS+)
en
Soportada (S)
Calificacin
Matriz de cumplimiento
Instrumento de caracterizacin
0
Nunca
No Soportada
Casi nunca
No Soportada
Algunas veces
Parcialmente Soportada
Muchas veces
Parcialmente Soportada
Siempre
Soportada
Calificacin
Instrumento de caracterizacin
Matriz de cumplimiento
Nunca
No Soportada
Casi nunca
Parcialmente Soportada -
63
Algunas veces
Parcialmente Soportada
Muchas veces
Parcialmente Soportada +
Siempre
Soportada
Tabla 14. Homologacin de calificaciones y clculo del porcentaje de cubrimiento de la metodologa frente a CMMI para
el rea PMC con respecto a la metodologa XP.
19
PS
El puntaje mximo corresponde al valor 4, que es la puntuacin mxima posible permitida por el
instrumento.
64
SP 1,2
SP 1,3
NS
SP 1,4
NS
SP 1,5
NS
SP 1,6
PS
SP 1,7
12
CORRECTIVA 83%
SP 2,1
SP 2,2
SP 2,3
PS
10
10
22
En este punto una nueva evaluacin fue realizada al proceso de desarrollo de Comfamiliar
Risaralda, tomando como base la homologacin anterior, esta evaluacin consisti en la
revisin del cubrimiento de las prcticas identificadas comparndolas con cada subprctica
con el fin de tener una visin ms objetiva, dando como resultado un ajuste a la puntuacin
total obtenida en el numeral 1.3. Este resultado se encuentra en el Anexo E y el resumen de
la calificacin se puede observar en la Tabla 15, en tonos verdes valores superiores a 70%,
tonos rojos para valores inferiores a 50% y tonos amarillos en medio.
Esta evaluacin se basa en la descripcin de los procesos actuales incluyendo alguna
evidencia de soporte para la evaluacin a diferencia del instrumento de la UAM que se basa
solo en la percepcin del entrevistado, este resultado tiende a ser ms objetivo y ms
detallado gracias al anlisis a nivel de subprctica mencionado anteriormente y debido a
esto, esta ltima calificacin se utiliz como base para este estudio.
rea de Proceso
Evaluacin
Instrumento
UAM
A nivel de
subprctica
s
65
1.
75%
70%
2.
89%
66%
3.
60%
55%
4.
100%
100%
5.
34%
38%
6.
100%
100%
7.
46%
43%
8.
98%
63%
9.
50%
47%
33%
19%
88%
22%
90%
60%
83%
67%
57%
57%
100%
100%
58%
45%
0%
0%
79%
75%
80%
60%
25%
7%
38%
35%
60%
40%
Luego de esto el anlisis del cubrimiento de las prcticas giles frente a CMMI puede ser
directamente comparable con el desempeo de las prcticas aplicadas en la empresa en
cuestin en la Tabla 16 se muestra el resumen de esta comparacin.
Tabla 16. Resumen cubrimiento porcentual por rea de proceso de cada metodologa
Nivel
rea de
Proceso
SCRUM
XP
ICONIX
Comfamiliar
66
1. REQM
80%
80%
90%
70%
2. PP
68%
43%
14%
66%
3. PMC
88%
55%
0%
55%
4. SAM
0%
0%
0%
100%
5. MA
38%
38%
0%
38%
6. PPQA
13%
50%
13%
100%
7. CM
0%
100%
0%
43%
8. REQD
93%
93%
83%
63%
9. TS
0%
31%
44%
47%
10. PI
0%
61%
53%
19%
11. VER
0%
72%
69%
22%
12. VAL
80%
90%
55%
60%
13. OPF
0%
0%
0%
67%
14. OPD
0%
0%
0%
57%
15. OT
0%
14%
0%
100%
16. IPM
58%
33%
0%
45%
17. RSKM
7%
36%
0%
0%
18. DAR
0%
0%
0%
75%
19. OPP
0%
0%
0%
60%
20. QPM
0%
0%
0%
7%
21. OPM
0%
0%
0%
35%
22. CAR
0%
0%
0%
40%
Se puede observar un cubrimiento nulo en los niveles 4 y 5 por las prcticas giles frente a
CMMI, lo que confirma lo que estudios previos muestran (Paulk, 2001) (Fritzsche & Keil,
2007) (Gandomani & Zulzalil, 2013).
67
Scrum demuestra su fortaleza principalmente en las reas REQD, PMC, REQM, VAL.
Tambin se observa que XP tiene un cubrimiento mayor de CMMI en los niveles 220 y 3.
Los nicos procesos de nivel 3 que XP no cubre son OPF, OPD y DAR proceso que tienen
un enfoque organizacional y quedan fuera del alcance de XP.
Finalmente si solo analizamos este indicador de cubrimiento parece demostrar que ICONIX
no agrega nuevos elementos a la mezcla de Scrum y XP, mostrando solo un mayor
cubrimiento en las reas de proceso REQM y TS.
Esto era de esperarse, Scrum e ICONIX parecen ser ms complementarios que una mezcla
de este ltimo frente a XP, y a que Scrum est ms enfocado a gestin mientras que tanto
XP como ICONIX se concentran en la construccin y desarrollo del producto.
20
Ninguno de los mtodos analizados en este estudio tienen un cubrimiento del rea de proceso SAM debido
al enfoque de estos mtodos giles al desarrollo en casa en contraste a la prctica de contratacin de
proveedores.
68
Figura 11. Comparacin radial del cubrimiento de CMMI por las metodologas y el proceso actual del ADSCR
1. REQM
100%
22. CAR
2. PP
90%
21. OPM
3. PMC
80%
70%
20. QPM
4. SAM
60%
50%
19. OPP
5. MA
40%
30%
20%
18. DAR
6. PPQA
10%
0%
17. RSKM
7. CM
16. IPM
8. REQD
15. OT
9. TS
14. OPD
10. PI
13. OPF
11. VER
12. VAL
SCRUM
XP
ICONIX
Comfamiliar
El prximo paso fue resumir la capacidad de cubrimiento de las prcticas giles, tomando
como posible mejora el mximo porcentaje encontrado en todos los mtodos giles frente a
cada rea de proceso ver Tabla 17.
Tabla 17. Mximo potencial de cubrimiento de las prcticas giles seleccionadas frente a CMMI
rea de Proceso
1.
giles
Metodologa
Lder
90%
ICONIX
69
2.
68%
SCRUM
3.
88%
SCRUM
4.
0%
5.
38%
XP/SCRUM
6.
50%
XP
7.
100%
XP
8.
93%
XP/SCRUM
9.
44%
ICONIX
61%
XP
72%
XP
90%
XP
0%
0%
14%
XP
58%
SCRUM
36%
XP
0%
0%
0%
0%
0%
En esta visin general del cubrimiento de prcticas giles se deduce nuevamente que aparte
de los niveles 4 y 5 mencionados anteriormente, las nicas reas en las que estas prcticas
giles no tienen elementos que aporten al cumplimiento de CMMI son en SAM, OPF, OPD
y DAR a las cuales podramos agregar OT por su baja calificacin, reas con un enfoque
claramente organizacionales que se alejan en general del objetivo orientado a proyectos de
las metodologas giles.
En este punto es posible realizar un anlisis para encontrar los mejores nichos de mejora,
comparando la capacidad actual del proceso con el potencial de cubrimiento de las
prcticas giles seleccionadas ver Tabla 18.
70
rea de Proceso
Comfamiliar
giles
Posible mejora
1.
70%
90%
20%
2.
66%
68%
2%
3.
55%
88%
33%
4.
Administracin de Contratos con Proveedores
(SAM)
100%
0%
-100%
5.
38%
38%
0%
100%
50%
-50%
7.
43%
100%
57%
8.
63%
93%
30%
9.
47%
44%
-3%
19%
61%
42%
22%
72%
50%
60%
90%
30%
67%
0%
-67%
57%
0%
-57%
100%
14%
-86%
45%
58%
13%
0%
36%
36%
75%
0%
-75%
60%
0%
-60%
7%
0%
-7%
35%
0%
-35%
40%
0%
-40%
71
Figura 12. Comparacin del cubrimiento frente a CMMI del conjunto de prcticas giles y el proceso actual del ADSCR
22. CAR
1. REQM
100%
2. PP
90%
21. OPM
3. PMC
80%
70%
20. QPM
4. SAM
60%
50%
19. OPP
5. MA
40%
30%
20%
18. DAR
6. PPQA
10%
0%
17. RSKM
7. CM
16. IPM
8. REQD
15. OT
9. TS
14. OPD
10. PI
13. OPF
11. VER
12. VAL
Comfamiliar
Agiles
72
Nivel
rea de Proceso
Posible mejora
7.
50%
42%
36%
3.
33%
8.
30%
30%
1.
20%
13%
2.
2%
5.
0%
9.
-3%
-7%
-35%
-40%
6.
-50%
57%
73
-57%
-60%
-67%
-75%
-86%
4.
-100%
Por esta razn el siguiente proceso de ponderacin se realizara solamente sobre las reas
con mayor posibilidad de mejora:
rea de Proceso
7.
Posible mejora
57%
50%
42%
36%
3.
33%
8.
30%
30%
1.
20%
13%
Para realizar la ponderacin, todas las prcticas de las 3 metodologas seleccionadas fueron
analizadas en paralelo junto al rea de proceso de CMMI y se le agreg una calificacin de
peso a cada prctica especfica 21 . Esta ponderacin es subjetiva y tiene en cuenta los
objetivos de mejora de la empresa, la cultura actual y los recursos disponibles para el
proceso de mejora.
21
74
Tabla 21. Ejemplo de ponderacin para las prcticas especificas de REQM en cada uno de los mtodos a evaluar
PONDERACION
1)
.1
SP1
PS
PS
2)
.2
SP1
3)
1.3
SP
PS+
PS
4)
1.4
SP
PS
PS+
5)
1.5
SP
Se prefiere el enfoque de
SCRUM para esta rea ya
que permite identificar
fcilmente los proveedores
(dueo del producto) y las
reuniones
donde
se
descubren los cambios y se
asignan los compromisos
estn
claramente
definidas.
Algunos
elementos
de
ICONIX
puede
mejorar
el
cubrimiento en la subpractica 1.3 ya que facilita
la creacin de una matriz
de trazabilidad
16
15
16
18
11
COBERTURA
PONDERACION
CONCLUSION
COBERTURA
COBERTURA
ICONIX
PONDERACION
XP
SCRUM
NIVEL II:
SG1 (REQM)
240
80
198
Prcticas seleccionadas
de SCRUM
Las prcticas del mtodo con mejor puntuacin total sern usadas como base para el
desarrollo del nuevo proceso hbrido, otras prcticas de otros mtodos que tuvieron
puntuacin total menor pero superan en puntuacin individual por alguna prctica
75
Tabla 22. Resumen de los resultados de la ponderacin para las reas de proceso seleccionadas.
rea
proceso
Ponderacin
SCRUM
XP
ICONIX
Metodologa seleccionada
base
7. CM
588
XP
11. VER
368
484
ICONIX
10. PI
396
266
XP
17. RSKM
20
XP
3. PMC
1050
374
SCRUM
8. REQD
555
370
990
ICONIX
12. VAL
240
90
55
SCRUM
1. REQM
240
80
198
SCRUM
16. IPM
690
260
SCRUM
22
76
7.3.
Una vez se realizan las actividades de integracin continua constantemente las herramientas
automticas utilizadas ayudan a gestionar el control de cambios en los tems de
configuracin.
23
Este es el caso de la definicin de manejar los elementos de configuracin como modelos y diseos que
aunque no estn especificados en XP si son definidos en ICONIX lo que decanta finalmente en la necesidad
de su control como tem de configuracin.
77
Verificacin (VER)
ICONIX propone verificar los requerimientos, el diseo preliminar, el diseo y cada unidad
de cdigo, para esto se planteara una etapa de revisin de los artefactos de anlisis y diseo.
ICONIX tambin define procedimientos y criterios para realizar cada una de las fases de
verificacin, se usarn las listas de verificacin definidas en ICONIX para cada etapa de
anlisis y diseo.
En ICONIX una vez se alcanza un hito de revisin, los productos se encuentran listos para
esta revisin tambin define los roles y los participantes de cada revisin, estos ltimos se
ajustarn segn los roles definidos basados en Scrum. En cada hito de revisin se
identifican y documentan los problemas encontrados.
ICONIX no contempla mediciones con respecto a la verificacin sin embargo es posible
medir la cobertura de la verificacin comparando el nmero de casos de uso planteados en
la iteracin y el nmero de casos de uso incluidos en el hito de revisin.
Todos los aspectos identificados son tratados inmediatamente y se realizan las correcciones
necesarias. Esta tarea puede ser combinada con el ciclo de gestin de Scrum para definir la
discusin de estos temas en las reuniones peridicas definidas por el marco de trabajo.
24
Esta prctica se ha presentado espontneamente dentro del ADSCR sin embargo puede llegar a ser
agotador si se realiza constantemente durante largo tiempo, inicialmente se motivar su uso pero se
implementar a discrecin de los desarrolladores.
78
25
Esta prctica se deriva del desarrollo conducido por pruebas (TDD), este no se incluye en su totalidad en
este punto debido a su complejidad y en la necesidad de la madurez del equipo.
26
Aunque esta prctica es controversial, en el ADSCR se ha encontrado que esta se realiza de manera natural
aunque no en la totalidad de las ocasiones. Los desarrolladores tienden a compartir jornadas de trabajo con el
fin de realizar transmisin de conocimiento, resolver dudas o corregir bugs.
79
27
Inicialmente se usar un formato en Excel para registrar la informacin del esfuerzo y as generar esta
medida de velocidad.
80
Validacin (VAL)
Desde el principio se incluye al cliente en forma de dueo de producto con el fin de validar
los requerimientos, al terminar el Sprint se presentan todos los elementos incluidos en este
y se recibe retroalimentacin del dueo del producto quien indica si considera hecho cada
elemento o no.
Gracias a que se incluye al cliente desde el inicio se identifica fcilmente los requisitos del
entorno pero no se cuenta con una planeacin especfica sobre la disponibilidad de los
recursos, Scrum asume que esta infraestructura necesaria ya existe.
Las iteraciones continuas permiten mantener los cambios en el entorno y los
procedimientos pero Scrum no define como documentar estos entornos.
28
81
Scrum involucra a los interesados desde el inicio del proyecto y es monitoreado por el
Scrum Master
Durante las reuniones de planificacin de Sprint se profundiza con el cliente el
entendimiento de las funcionalidades, cualquier dependencia es analizada en este punto y
negociada con l antes de iniciar el sprint. Durante la revisin del sprint se verifica el
cumplimiento de las funcionalidades.
Las situaciones se identifican en las reuniones diarias y de revisin del sprint. Y es el
Scrum Master el encargado de ayudar a resolverlas. Solo salen del tablero las situaciones
resueltas.
29
82
Una vez se defina e institucionalice es posible que se logre mayor cobertura en esta rea de
proceso debido al nuevo cumplimiento de las prcticas especificas 1.1, 1.2 y 1.3.
Resumen
En la Tabla 23 Se puede observar los principales elementos que cada metodologa aporta al
rea de proceso correspondiente, ICONIX ayuda a fomentar el formalismo mediante
artefactos, guas y listas de chequeo tanto en REQD y VER. Scrum aporta los espacios para
realizar las revisiones mediante sus reuniones peridicas en PMC y a incluir al cliente como
dueo del producto y quien acepta los resultados para aportar a VAL. Por su lado XP define
las prcticas tcnicas base del equipo de desarrollo y del manejo del producto apoyando a
PI, ayuda tambin a definir simple y concretamente los tems de configuracin y su manejo
en CM, en general el uso de estas prcticas ayuda a disminuir algunos de los riesgos ms
importantes del desarrollo de software.
Tabla 23. Visin general del aporte de las prcticas giles a cada rea de proceso
ICONIX
REQD
SCRUM
PMC
XP
CM
Prcticas de codificacin y
pruebas del producto.
Relacin con el equipo de
desarrollo.
VER
PI
VAL
RSKM
83
SCRUM
Scrum ha sido seleccionado como base para definir las prcticas de PMC, VAL, REQM, e
IPM las cuales no solo aportan a estas reas sino que tambin sirven de apoyo para otras
reas indirectamente como RSKM, CM, PI.
Scrum aporta la definicin bsica de roles (Dueo del producto, Scrum Master y el Equipo)
con el fin de generalizarlos a las otras prcticas, los nuevos roles sern: Dueo del
Producto que tendr la misma definicin que en Scrum, Desarrollador que representar a
cada integrante del equipo destinado a la construccin del producto, el facilitador que es
anlogo al Scrum Master.
A estos roles suministrados por Scrum se agregarn otros tres derivados de la cultura
organizacional de la empresa, coordinador de desarrollo que tradicionalmente es el
encargado de supervisar todos los equipos y proyectos, personal de pruebas y personal de
apoyo. Estos ltimos representan al personal interdisciplinario del rol original de equipo de
trabajo debido a que los desarrolladores se encuentran limitados en la empresa al personal
84
Desarrollador:
Uno o ms desarrolladores son los encargados de construir el producto que necesita el
cliente. Los desarrolladores son autnomos y auto-organizados y componen el ncleo del
equipo de desarrollo. Especifican el trabajo que debe realizarse para cumplir con el objetivo
de cada iteracin y realizan las estimaciones de tiempo para completar cada una de estas
tareas.
Uno o varios desarrolladores estarn encargados de realizar la demostracin al cliente del
producto y capacitar al cliente o al personal de soporte.
Cada desarrollador debe estar en capacidad todo el ciclo de vida del software incluyendo
anlisis, diseo, desarrollo y pruebas.
85
Facilitador:
Es el responsable de asegurarse que el equipo aplique los valores y prcticas del proceso.
Encargado de proteger al equipo de no comprometerse ms all de su capacidad con el fin
de cumplir el objetivo de la iteracin.
Ayuda a que se realice la reunin de actualizacin y a remover los obstculos que se
detecten durante estas reuniones.
Responsabilidades:
Representa la administracin ante el proyecto.
Es responsable de promover los valores y prcticas del proceso.
Dirige las reuniones de actualizacin y seguimiento.
Quita los impedimentos
Protege al equipo de interferencias externas.
Se asegura que el equipo est completamente funcional y productos.
Permite que haya cooperacin entre todos los roles y funciones
Realiza la revisin peridica de los artefactos producidos por el equipo.
Gua de Seleccin:
El facilitador es generalmente un gerente de proyecto o un lder tcnico del equipo, pero
puede ser cualquier individuo con conocimiento y conviccin en el proceso de desarrollo.
Consideraciones:
No es un gerente de proyecto, es ms un lder del equipo o un administrador del
proceso.
Revisa las tareas de la iteracin con el fin de asegurar su xito, puede ayudar a
crear y asignar las tareas.
Debe permanecer fsicamente junto al equipo y reunirse con ellos
peridicamente.
Coordinador de Desarrollo:
El coordinador de desarrollo es el representante administrativo de la empresa o rea de
desarrollo, es quien tiene poder de decisin administrativo con el fin de asignar o remover
recursos, definir restricciones presupuestales o de cronograma y es quien representa al
equipo frente a entes administrativos y de control.
86
Responsabilidades:
Definir el equipo de trabajo.
Ayudar a resolver los impedimentos detectados por el facilitador cuando esto
sobrepasen su alcance.
Obtener recursos para capacitaciones, equipos, asesoras cuando el equipo y el
proyecto lo requieren.
Dar por terminado el proyecto cuando as lo considere necesario.
Gua de Seleccin:
El coordinador de desarrollo es generalmente un gerente de proyecto o un lder tcnico con
experiencia y recorrido administrativo, generalmente es un asistente del lder del rea de
desarrollo. Debe tener habilidades de negociacin con el fin de obtener y gestionar los
recursos necesarios para el proyecto.
Consideraciones:
Debe tener empoderamiento con el fin de poder tomar decisiones
administrativas y presupuestales o al menos estar en capacidad de gestionarlos
con la direccin correspondiente.
Este rol es generalmente desempeado por un individuo o pequeo grupo de
personas que dan apoyo a varios equipos.
Personal de pruebas:
Este rol ayuda al dueo del producto a escribir y ejecutar pruebas de aceptacin.
Este se encarga de recibir la capacitacin correspondiente con el fin de realizar pruebas en
conjunto con los usuarios finales del producto, se encarga de registrar las pruebas y el
resultado obtenido.
Responsabilidades:
Llevar a cabo las pruebas en acompaamiento de los usuarios finales del
sistema.
Documentar las pruebas realizadas y sus resultados.
Retroalimentar al equipo para realizar las correcciones o ajustes necesarios al
producto.
87
Personal de apoyo:
Brinda ayuda en cualquier habilidad que es necesaria para completar el producto y con la
que el personal de desarrollo no cuenta.
El personal de apoyo incluye a todo el personal necesario para el desarrollo del producto
que no incurre en labores de codificacin como diseadores grficos, administradores de
sistemas de informacin, expertos en temas especficos entre otros.
Responsabilidades:
Apoyar al equipo en las labores especializadas de su dominio que escapa al
alcance de los Desarrollos.
88
Consideraciones:
No es necesario discutir cada detalle de cada elemento de la lista de caractersticas deseadas
puede ser suficiente con mencionar las de mayor prioridad. El equipo recibir informacin
detallada durante la iteracin en acompaamiento con el dueo del producto.
Esta reunin se divide en 2 fases la primera con el dueo del producto y otra solo del
equipo, cada una de estas fases puede tener una duracin mxima de 4 horas.
Esta reunin ayuda a comunicar a cada miembro del equipo el estado de sus compromisos.
El facilitador puede llevar a esta reunin una lista de los compromisos actuales y futuros
del equipo y su supuesto estado actual con el fin de ayudar a los integrantes del equipo a
presentar su estado.
89
Reunin de Revisin:
Al final de cada iteracin se realiza la reunin de revisin en la que el equipo de desarrollo
muestra el avance del producto al cliente y/o interesados.
Durante esta reunin se evala el producto frente al plan inicial de la iteracin, se espera
que todos los elementos del plan se cumplan pero es posible que algunos tems queden por
fuera del alcance y tenga que reevaluarse en una siguiente iteracin.
Reunin retrospectiva:
Luego de la reunin de revisin, el equipo se rene solo con el fin de analizar el proceso y
la forma de trabajo durante la iteracin, con el fin de proponer mejoras o cambios.
Esta reunin es una oportunidad para que el equipo se enfoque en discutir qu est
funcionando y qu no lo hace. Una forma de iniciar esta reunin es que cada miembro del
equipo comparta con el resto qu cosas nuevas deberan probar, cuales no estn
funcionando y quieren dejar de hacerlas y cules estn bien como estn y desean continuar
realizando.
Consideraciones:
Es recomendable informar de los resultados ms importantes de esta reunin a un
observador externo al equipo, una persona muy interesada en esta reunin es el coordinador
de desarrollo con el fin actualizarse y comprender como estn funcionando los equipos y
qu podra mejorarse al proceso en general.
Tambin se necesitan algunos artefactos de Scrum con el fin de lograr el objetivo de estas
reuniones, el ms importante y alrededor del cual gira Scrum es la Pila del producto y del
cual se deriva la lista de tareas.
90
Una vez analizados los requerimientos, estos se convierten en casos de uso que agrupan las
funcionalidades requeridas por el cliente y estn ordenados de una forma lgica de manera
que agreguen valor al cliente de forma incremental a medida que avanzan las iteraciones.
Esta lista puede crecer y ser modificada a medida que avanza el proyecto durante las
reuniones de planificacin de iteracin.
La lista es priorizada colocando primero los tems de mayor valor para el cliente o que
simplemente son necesarios antes que otros que dependen de ellos, cada tem es estimado
en horas y es asignado a un miembro del equipo a medida que se avanza en el proyecto.
Una vez terminado un tem es necesario registrar el tiempo real invertido 30 en la
finalizacin del tem.
En la reunin de planificacin de iteracin se actualizarn las estimaciones con la
explicacin detallada que suministra el cliente y se define el nmero de tems que el equipo
estima puede completar durante la duracin de la iteracin.
Lista de Tareas:
La lista de tareas contiene actividades adicionales que son necesarias para el cumplimiento
del objetivo de la iteracin como instalar un servicio, investigar una nueva tecnologa o
realizar una migracin de datos. Estas tareas se detallan durante la iteracin y son
asignadas y estimadas al igual que los elementos de la pila del producto.
ICONIX
En el caso de ICONIX debido a que se usar el proceso base definido por Scrum, se
tomarn solo algunos elementos, estos cubrirn las reas de VER y REQD pero dan apoyo
indirecto para reas como PMC e IPM. Se tomar como fuente inicial para ICONIX la lista
de requerimientos funcionales del sistema a partir de los cuales se construir la vista
30
Para el caso del ADSCR se desarrollar una herramienta para el control del proyecto, el cual incluye el
registro del tiempo real invertido.
91
dinmica del sistema incluyendo casos de uso con sus respectivos prototipos y
especificacin, el diagrama de clases de diseo y el diagrama de secuencia. Con respecto
al modelo esttico solo se tomar el modelo de clases de diseo. Estas prcticas y artefactos
apoyan directamente al rea de proceso de Desarrollo de requerimientos REQD31.
La especificacin de requerimientos est un poco fuera del alcance propuesto por ICONIX,
as que es necesario agregar unas actividades adicionales para obtener esta informacin que
es fundamental para el resto del proceso.
Visita en sitio:
La visita en sitio en el lugar donde se usar el producto por los usuarios finales, da una
visin general del personal y forma de trabajo y uso del producto esperado.
Una vez este en el lugar observe la forma de trabajo actual con el fin de descubrir:
Forma y orden como se hacen los procedimientos actuales y su tiempo de
duracin.
Hardware e infraestructura disponible.
Personal disponible.
Perfil o capacitacin de los usuarios finales en sus diferentes roles.
31
Para el caso del ADSCR estos artefactos sern creados en la herramienta Enterprise Architect con el fin de
facilitar su tratamiento y gestin de la configuracin.
92
Lista de requerimientos:
El resultado de la especificacin de requerimientos es una lista ordenada de todas las
necesidades mencionadas por el cliente en la entrevista o reuniones adicionales. Se
recomienda el uso de una herramienta CASE con el fin de registrar estos requerimiento de
manera que se puedan vincular grficamente Arrastrar y soltar a los casos de uso.
93
Diagrama de secuencia:
El diagrama de secuencia permite explorar el diseo en detalle analizando principalmente el
escenario de flujo normal para los casos de uso principales o considerados ncleo del
negocio solo se considerarn otros escenarios cuando el caso de uso contenga flujos
alternos o excepciones realmente relevantes. Este diagrama permite ubicar los mtodos en
el mejor lugar para el sistema y ayuda a tomar decisiones sobre el diseo de los algoritmos.
94
Revisin de requerimientos:
Una vez terminada la especificacin de los requerimientos, se revisan los documentos de
requerimientos, y casos de uso con sus respectivas especificaciones y prototipos de pantalla
con el fin de garantizar su coherencia y completitud. Finalmente se realiza una reunin con
el dueo del producto, el equipo de desarrollo y cualquier otro interesado en el proyecto.
Usando los casos de uso y los prototipos de pantalla se presentan las funcionalidades que
se esperan implementar y como el usuario interactuar con el sistema.
Se debe tener en cuenta los siguientes tems:
Asegrese que los modelos estn escritos en su mayora en lenguaje no tcnico
que el cliente pueda entender.
Asegrese que todos los requerimientos estn relacionados con al menos un
caso de uso.
Asegrese de que cada caso de uso realiza al menos un requerimiento.
Organice los casos de uso en paquetes o mdulos de acuerdo con su
funcionalidad.
Verifique que los casos de uso se encuentran representados en algn prototipo
de pantalla.
Recoja todas las sugerencias y observaciones del cliente y repita este paso de ser
necesario.
Asegrese que en los casos de uso se describe la interaccin en ambos sentidos
entre el sistema y el usuario.
Revisin de diseo:
Una vez terminado el diseo y justo antes de iniciar la codificacin de cada caso de uso de
la iteracin se revisan los artefactos relacionados con el anlisis detallado y el diseo del
producto.
Esta revisin puede ser realizada por el facilitador o por otro integrante del equipo con el
fin de obtener una segunda visin del diseo y de su nivel de calidad.
95
XP
En el caso de XP, las prcticas de seleccionadas apoyan directamente las reas de CM, PI y
RSKM.
Para XP el cdigo es el elemento ms importante y es por esto que se convierte para el
nuevo proceso en el tem de configuracin principal. A este se le agregan los tems de
configuracin provenientes de ICONIX en relacin con el anlisis y diseo para ser
gestionados de la misma forma y mediante una herramienta automtica de versionado32.
Finalmente Scrum tambin aporta ciertos tems de configuracin como son los resmenes
de las reuniones 33 , que ayudan a mejorar la trazabilidad. Para este fin se define una
32
En el caso del ADSCR se usa actualmente CVS, pero igualmente podra usarse una herramienta ms actual
como GIT.
33
En el caso de las reuniones aunque no son susceptibles a cambios y solo es requerida generalmente la
primera versin, se incluyen por facilidad para ser gestionadas junto con los artefactos de anlisis y diseo
96
actividad relacionada a la gestin de la configuracin por parte del equipo y se agrega una
tarea de revisin con el fin de garantizar el seguimiento de estas prcticas.
Revisin diaria:
Diariamente el facilitador o un integrante encargado del equipo, mediante la herramienta de
gestin de la configuracin, verifica que cada miembro del equipo este siguiendo las
prcticas correspondientes. El encargado se asegura que diariamente se integre ya sea
elementos de anlisis diseo o cdigo fuente a los repositorios correspondientes y que estos
cumplan con los estndares esperados. Esta revisin facilita la revisin final tanto de
anlisis como de diseo. El equipo ser retroalimentado inmediatamente de las
desviaciones con el fin de ajustarse a los compromisos lo ms pronto posible.
Con el fin de que el proyecto avance a la velocidad deseada sera recomendable que el
dueo del producto se encontrara disponible en todo momento en el mismo espacio fsico
que el equipo como lo proponen las prcticas giles, sin embargo esto muchas veces no es
posible en el ADSCR, por este motivo es necesario incluir una actividad llamada reunin
adicional.
mediante la herramienta Enterprise Architect. Adems esto ayuda a tenerlas accesibles y centralizadas para su
posterior consulta.
97
Reunin Adicional:
Esta puede realizarse en cualquier momento durante la iteracin con el fin de resolver
dudas o tomar decisiones respecto a impedimentos que involucran decisin del cliente.
Debe incluir al menos un representante del cliente y uno o ms integrantes del equipo.
Con respecto a la codificacin del producto se seguir las prcticas propuestas por XP de
propiedad colectiva del cdigo, la programacin en parejas, la refactorizacin y la
integracin continua34.
Propiedad Colectiva:
La prctica de propiedad colectiva declara que cualquier integrante del equipo puede
cambiar cualquier parte del cdigo en el sistema en cualquier momento.
Esta prctica en conjunto con la integracin frecuente y las pruebas aseguran que los
problemas se identifiquen a tiempo y se arreglen rpidamente. En conjunto con la
programacin en parejas, la propiedad colectiva es una forma efectiva de diseminar el
conocimiento del sistema a todo el equipo.
Beneficios:
Conocimiento compartido del cdigo: Permite a los programadores
familiarizarse con ms cdigo y beneficiarse de la experiencia de otros.
Cdigo sencillo: Ayuda a que se encuentre el cdigo complejo y sea
refactorizado ms rpido debido a que ms personas leen el mismo cdigo.
Resolver las cosas ms rpido: Elimina los obstculos permitiendo que los
cambios se hagan por aquellos que lo necesitan y cuando lo necesitan.
34
No se incluyen ms prcticas con el fin de facilitar la implementacin del proceso y generar menos presin
sobre los desarrolladores facilitando al mismo tiempo la adopcin de las nuevas actividades. Con el tiempo
podran aadirse nuevas prcticas a medida que el equipo madure y haya interiorizado las primeras.
98
Programacin en parejas:
El producto es generalmente codificado o revisado por 2 personas, sentados lado a lado
trabajando sobre la misma mquina. Esta prctica permite que el cdigo de produccin sea
revisado por al menos otra persona aparte del programador, lo que resulta en un mejor
diseo, mejores pruebas y mejor cdigo.
La investigacin sobre programacin en parejas muestra que las parejas producen mejor
cdigo en el mismo tiempo que los programadores trabajando solos.
Trabajar en parejas tambin ayuda a la comunicacin del conocimiento a travs del equipo.
A medida que las parejas cambian, todos se ven beneficiados del conocimiento
especializado de los dems. Los programadores aprenden, mejoran y se vuelven ms
valiosos para el equipo y la empresa.
Beneficios:
Mejora el diseo, el cdigo y las pruebas.
Se comparte el conocimiento y habilidades en el equipo
Refactorizacin:
Refactorizacin es la prctica de mejorar el diseo del programa sin cambiar su
comportamiento. Esta prctica es crtica en el desarrollo iterativo. El programador
generalmente est agregando una nueva funcionalidad o refactorizando. Algunas
refactorizaciones pueden ser triviales como renombrar o mover cosas, pero otras pueden ser
ms complejas.
A medida que se resuelven errores y se agregan funcionalidades adicionales el cdigo
tiende a perder calidad, en estos casos la refactorizacin permite a los programadores
mantener un buen diseo. La refactorizacin tambin puede mejorar el diseo de un sistema
ya existente.
Si un producto no es refactorizado a medida que es modificado, el diseo generalmente se
deteriora o los mtodos se vuelven grandes, las clases toman ms responsabilidades y ms
cdigo es copiado y pegado a travs del sistema dificultando el mantenimiento del cdigo.
Las pruebas automticas proveen una red de seguridad cuando se realizan cambios, estas
pueden reportar cuando la funcionalidad del sistema cambia y garantizar que luego de
realizar un cambio estructural las pruebas continan resolvindose con satisfaccin.
Beneficios:
Evita que se deteriore el diseo.
99
Integracin Continua:
A medida que se construye incrementalmente el producto, las nuevas funcionalidades se
integran continuamente y son demostradas al cliente.
La integracin puede realizarse varias veces al da, pero en general debera realizarse al
menos una cada da, generalmente al terminar la jornada. A medida que los desarrolladores
terminan algn trabajo, integran lo que han realizado.
Como se menciona en el apartado de Scrum, se usar un ciclo iterativo, sin embargo el
ADSCR requiere un estimado inicial del total del proyecto con el fin de realizar
compromisos y asignar presupuestos. Para cumplir este objetivo se usara una iteracin 0
llamada Anlisis Preliminar35.
Anlisis Preliminar:
Todo proyecto inicia con una iteracin llamada anlisis preliminar, el objetivo de esta
iteracin no es producir un incremento del producto sino realizar el plan de iteraciones.
Esta iteracin se compone al igual que las dems de la reunin de planificacin de
iteracin, la reunin diaria, la revisin diaria y la reunin retrospectiva. Adicionalmente se
agregan solo para esta iteracin la reunin inicial, la entrevista inicial, la reunin en sitio y
el hito de revisin de requerimientos, mencionados en el apartado de ICONIX.
Los elementos que servirn como suministro para realizar la planeacin de iteraciones sern
la lista de requerimientos y el diagrama de casos uso (incluyendo sus prototipos y
especificacin)
Planeacin de iteraciones:
Durante la planeacin de iteraciones se toma la pila del producto y realiza una estimacin
general del esfuerzo necesario por el equipo actual para terminarlo en su totalidad,
incluyendo la asignacin de cada caso de uso a una iteracin.
35
Esta estrategia es mencionada por varios autores entre ellos (Deemer, Benefield, Larman, & Vodde, 2009)
100
Al inicio del proyecto el equipo crear un plan de alto nivel, como el equipo no lo puede
saber todo en esta etapa inicial, no se requiere un plan muy detallado.
Este plan puede cambiar en el tiempo segn cambien las prioridades de cada caracterstica,
incluso el proyecto puede terminar antes o luego de lo esperado.
Cada iteracin siguiente tomar como base este plan pero lo ajusta segn las nuevas
necesidades del cliente durante la reunin de planificacin de iteracin.
Consideraciones:
Para la construccin de este plan se debe tener en cuenta:
El nmero y duracin de las iteraciones
El nmero de entregas.
Los casos de uso que se entregarn luego de cada iteracin.
Las fechas aproximadas de entrega de cada iteracin.
Plan de iteraciones
Este plan consiste en una lista de los casos de uso con su correspondiente estimacin,
agrupados por cada una de las iteraciones necesarias para completar el proyecto.
Este plan permite informar a todos los interesados del tamao esperado del producto segn
las caractersticas deseadas que se implementen y el nmero de iteraciones que tomar para
terminarlas en su totalidad.
36
El equipo puede ajustar la duracin de las iteraciones en una o dos semanas con el fin de ajustarlas mejor al
tamao de los casos de uso de manera que cada entrega sea lgica y funcional. Sin embargo una vez inicia la
iteracin esta duracin se convierte en un compromiso y no debera modificarse.
101
entrega que est fuera del alcance del plan este es el momento ideal para realizar la
negociacin con el fin de remover o agregar ciertas funcionalidades y as tener un producto
que se apegue a los requerimientos ms crticos pero que al mismo tiempo pueda ser
entregado en la ventana de tiempo que se requiere.
Inicialmente se definieron todos los elementos que componen el proceso, iniciando por los
roles y cada una de las actividades que desarrollan o en que participan cada uno de estos,
luego definiendo los resultados de las actividades en forma de productos de trabajo,
finalmente se proveen algunas guas para facilitar la realizacin de las actividades (ver
Figura 13).
102
EPF genera una vista HTML para cada uno de los elementos anteriormente mencionados
como lo muestra la Figura 14, permitiendo su navegabilidad y posterior consulta en una
presentacin agradable para los usuarios del proceso.
103
Figura 14. Ejemplo vista generada del rol Dueo del producto
Finalmente con cada uno de los elementos definidos, se construyen las fases e iteraciones
del proceso definiendo sus dependencias, obligatoriedad, repeticin entre otros. Las
actividades ubicadas dentro del proceso traen consigo los roles, productos de trabajo y
guas con los que se relacionan (ver Figura 15).
104
Este proceso una vez publicado genera un paquete de archivos tipo wiki donde iniciando a
partir de las actividades principales se puede consultar y navegar a travs de todos los
artefactos. Con el fin de obtener ms detalles remtase al Anexo G.
7.4.
105
Este proyecto fue elegido debido a que su tamao aseguraba un equipo con suficientes
integrantes para cumplir con la asignacin de roles y con un tiempo para su desarrollo que
permitiera la adopcin del proceso y varias iteraciones para lograr realizar las dos fases del
mismo.
El equipo inici el mdulo de Legalizacin con dos desarrolladores, un asistente de
proceso, el dueo del producto y el facilitador. Luego en Septiembre de 2013 se agreg al
equipo dos nuevos desarrolladores.
Al iniciar el piloto ninguno de los desarrolladores contaba con experiencia real en ningn
tipo de mtodo o proceso.
El equipo fue reunido para dar inicio al proyecto y se definieron los objetivos y las nuevas
reglas de juego. La instruccin se dio paulatinamente a medida que se avanzaba en el
anlisis incorporando a los elementos de gestin, los artefactos y actividades ms tcnicas.
Luego en Julio de 2013 el equipo, unido a otros integrantes del ADSCR particip en una
capacitacin con el fin de reforzar su conocimiento en ingeniera de software y el nuevo
proceso de desarrollo.
37
106
COBERTURA
Tabla 24. Ejemplo evaluacin realizada del nuevo proceso para la meta especfica 3 de CM.
S G3
MANTENER
LA
INTEGRIDAD DE LINEAS BAS E
(CM)
53) S P 3.1 Establecen y mantienen
registros que describen los elementos
de las configuraciones.
PS-
SUBPRACTICAS
OBSERVACION
La fa l ta de l i nea s ba s e a fecta el cumpl i mi ento de es ta pra cti ca , ta mbi en s e evi denci a en l a
pra cti ca que l a s des cri pci ones de l os el ementos en a l gunos ca s os no s on s ufi ci entes pa ra
determi na r s u es ta do o pa ra recupera r fa ci l mente vers i ones a nteri ores .
54) S P 3.2 Realizan auditorias de
OK 1. Eva l ua r l a i ntegri da d de l a s l nea s ba s e.
configuracin
y
mantienen
la
OK 2. Confi rma r que l os regi s tros de ges ti n de
integridad de las lneas de base de las
confi gura ci n i denti fi ca n correcta mente l os el ementos
configuraciones.
de confi gura ci n.
OK 3. Revi s a r l a es tructura y l a i ntegri da d de l os
el ementos en el s i s tema de ges ti n de confi gura ci n.
OK 4. Confi rma r que l os el ementos en el s i s tema de
S
ges ti n de confi gura ci n s on compl etos , correctos y
cons i s tentes .
OK 5. Confi rma r el cumpl i mi ento con l os es t nda res y
procedi mi entos a pl i ca bl es de ges ti n de confi gura ci n.
OK 6. Segui r l os el ementos de a cci n des de l a
a udi tora ha s ta s u ci erre.
OBSERVACION
Todos l os i tem es ta n ba jo es cruti ni o cons ta nte ga ra cti za ndo s u i ntegri da d y el cumpl i mi ento de
l a s es ta nda res a pl i ca bl es .
107
Tabla 25. Resultado evaluacin porcentaje cumplimiento frente a CMMI del nuevo proceso de software.
Area de Proceso
1. Administracin de Requerimientos (REQM)
2. Planificacin de Proyectos (PP)
3. Monitoreo y Control de Proyectos (PMC)
4. Administracin de Contratos con Proveedores (SAM)
5. Medicin y Anlisis (MA)
6. Aseguramiento de la Calidad del Proceso y el Producto
(PPQA)
7. Administracin de Configuraciones (CM)
8. Desarrollo de Requerimientos (REQD)
9. Solucin Tcnica (TS)
10. Integracin de Productos (PI)
11. Verificacin (VER)
12. Validacin (VAL)
13. Enfoque a Procesos Organizacionales (OPF)
14. Definicin de Procesos Organizacionales (OPD)
15. Entrenamiento Organizacional (OT)
16. Administracin Integrada de Proyectos (IPM)
17. Administracin de Riesgos (RSKM)
18. Anlisis de Decisiones y Resolucin (DAR)
19. Desempeo de Procesos Organizacionales (OPP)
20. Administracin Cuantitativa de Proyectos (QPM)
21. Gestin del rendimiento de la organizacin (OPM)
22. Anlisis de Causas y Resolucin (CAR)
Comfamiliar
70%
66%
55%
100%
38%
Nuevo
proceso
100%
66%
88%
100%
38%
100%
43%
63%
47%
19%
22%
60%
67%
57%
100%
45%
0%
75%
60%
7%
35%
40%
100%
75%
80%
47%
44%
59%
75%
67%
57%
100%
55%
21%
75%
60%
7%
35%
40%
108
bidireccional entre los requerimientos y los planes del proyecto al igual que los productos
del trabajo que aunque Scrum no provee una forma de garantizar la trazabilidad de los
requerimientos, gracias a los artefactos de ICONIX y el uso en el proyecto de la
herramienta Enterprise Architect, se logra un mejor cubrimiento de la prctica.
En el resto de las reas se identific una mejora menor a la mxima calculada segn el
cumplimiento de las prcticas giles.
En el caso de PI se detect que no incluir el equipo dedicado para integracin fue una
falencia importante en la prctica de integracin continua, al igual que afect el poco
cubrimiento que se obtuvo con las pruebas automticas. Aunque el equipo de desarrollo
tuvo tiempo para aprender sobre esta tarea, la poca experiencia llevo a la construccin de
mtodos demasiado extensos y con muchas dependencias lo que dificult la codificacin de
las pruebas unitarias.
38
Finalmente se logro gestionar la presencia a tiempo parcial de un representante del cliente en el sitio de
desarrollo lo que demostr ser un gran apoyo en las labores de validacin.
109
Algo similar suceden en IPM donde hace falta los documentos que evidencien los aportes
del proyecto a los procesos institucionales impiden alcanzar el potencial deseado para esta
rea.
110
Tabla 26. Comparacin entre la mejora esperada y la real obtenida luego de la prueba piloto.
Area de Proceso
1. REQM
2. PP
3. PMC
4. SAM
5. MA
6. PPQA
7. CM
8. REQD
9. TS
10. PI
11. VER
12. VAL
13. OPF
14. OPD
15. OT
16. IPM
17. RSKM
18. DAR
19. OPP
20. QPM
21. OPM
22. CAR
Nuevo proceso
100%
66%
88%
100%
38%
100%
75%
80%
47%
44%
59%
75%
67%
57%
100%
55%
21%
75%
60%
7%
35%
40%
Posible mejora
20%
2%
33%
57%
30%
42%
50%
30%
13%
36%
-
Mejora obtenida
30%
33%
32%
18%
25%
38%
15%
10%
21%
-
111
7.5.
Con el fin de informar a los interesados dentro de la institucin de los resultados de este
proyecto, se present un informe resumido de las actividades y resultados obtenidos, este
informe presentado al lder de tecnologa informtica como cierre del estudio realizado se
encuentra disponible en el Anexo I.
7.6.
ANLISIS DE RESULTADOS
A continuacin se revisan los resultados del proyecto a la luz de los resultados e impactos
esperados.
112
Todo este informe sirve como gua para el desarrollo de la metodologa propuesta en el
numeral 4 donde se describe detalladamente la experiencia desde la evaluacin de un
proceso de desarrollo de una empresa del eje cafetero hasta el diseo y prueba de un nuevo
proceso estructurado, el cual puede ser aplicado a cualquier empresa de desarrollo de
software.
113
8. CONCLUSIONES
Como finalizacin de este proyecto se presentan las conclusiones derivadas del estudio del
mismo, esta seccin se encuentra dividida en cuatro reas correspondientes a la evaluacin
del proceso inicial del ADSCR, luego la comparacin de las prcticas estipuladas en CMMI
y las prcticas giles seleccionadas, seguidamente de lo referente al diseo del nuevo
proceso basado en el cubrimiento de las prcticas giles y para finalizar se comenta sobre la
validacin de este proceso de desarrollo de software mediante una prueba piloto.
8.1.
EVALUACIN
Durante la evaluacin del proceso inicial del ADSCR se colocaron a prueba dos
instrumentos, uno con profundidad a nivel de reas de proceso y otro a nivel de prcticas
especficas.
Este primer instrumento puede ser til con el fin de caracterizar un grupo de empresas de
forma rpida, pero es difcil establecer un punto de partida a partir solo de esta informacin.
El segundo instrumento permite tomar una mejor medida con respecto a cada prctica
especfica, en solo una tarde es posible obtener una caracterizar el proceso en gran detalle.
Sin embargo con el fin de conocer realmente el nivel de cumplimiento con respecto a
CMMI es necesario contemplar cada sub prctica.
114
8.2.
COMPARACIN
Este es uno de los estudios de mayor cubrimiento hasta la fecha, usa los 5 niveles de CMMI
e incluye la comparacin total con 3 prcticas giles. Generalmente los estudios de este tipo
comparan entre 1 y 2 prcticas y solo en un pequeo nmero de reas de proceso.
El mtodo elegido para realizar el mapeo de CMMI frente a prcticas giles puede
extenderse fcilmente a cualquier mtodo o proceso, y da una visin realista del
cubrimiento segn lo propuesto en CMMI, esto permite fcilmente reconocer las reas de
fortaleza del mtodo o prcticas que se toman como candidatos.
Al realizar un anlisis cruzado con mapeos realizados por diferentes autores de las mismas
prcticas puede observarse diferencias entre los puntos de vista, lo que muestra que es tal
vez imposible no tener cierto nivel de subjetividad al realizar anlisis de estas
caractersticas.
Esta subjetividad se marca con mayor intensidad si se tiene en cuenta que el propio manual
tcnico de CMMI se dan pautas para la aplicacin de prcticas giles que indican que las
prcticas especificas podran verse cubiertas sin la necesidad de seguir las al pie de la letra
las indicaciones propuestas por las prcticas o por las sub-prcticas respectivas. Este caso
se acenta ms en el caso de prcticas con enfoques menos tradicionalistas como es el caso
de la gestin de riesgos en XP.
Al usar una base de comparacin tan completa como CMMI, es posible obtener una matriz
de mapeo donde todas las prcticas estudiadas demuestran sus fortalezas y debilidades
frente al primero, lo que permite tener una visin completa de cmo se pueden
complementar unas a otras segn las reas de proceso.
115
8.3.
Aunque luego de la comparacin se tengan resultados tericos sobre las mejores elecciones
para cada prctica especfica de CMMI es evidente la necesidad de realizar la seleccin de
las prcticas que mejor se acomoden a la cultura y necesidades de la organizacin. Esta
etapa debe realizarse con el conocimiento tanto de la organizacin como de las prcticas
giles a implementar dentro del proceso.
El diseo de un proceso hibrido de esta naturaleza tiende a ser una tarea ms artesanal que
industrializada, requiriendo de varias iteraciones de prueba y error con el fin de encontrar el
lugar apropiado para cada una de las prcticas que tienen su origen de fuentes distintas y de
esta manera el proceso tenga un flujo de tareas lgicas y de actividades bien definidas y
asignadas a los roles necesarios.
8.4.
116
A esto se agrega la inclusin del equipo en los ciclos de mejora. Durante el piloto en el
ADSCR y mediante las reuniones retrospectivas se pudieron identificar artefactos para
mejorar la documentacin de la revisin de pares as como la del cliente y estrategias giles
con el fin de tomar algunas medidas que faciliten la construccin de indicadores de
desempeo sin que impliquen una excesiva carga de trabajo adicional y a que los
desarrolladores estn dispuestos a documentar.
117
9. RECOMENDACIONES
Se puede extender este trabajo con nuevas prcticas giles agregndolas a la matriz de
comparacin con el fin de encontrar nuevas compatibilidades, posiblemente buscando una
mejor cobertura sobre todo para los niveles 4 y 5.
Este estudio y otros mencionados en la bibliografa pueden ser usados para comparar los
diferentes puntos de vista de los autores con el fin de realizar un anlisis cruzado y as
identificar las prcticas ms controversiales o que generan conclusiones ms variados entre
las diferentes opiniones.
Es posible construir una herramienta automtica para registrar los datos de comparacin de
las prcticas giles y que permita realizar la evaluacin inicial del proceso. Esta
herramienta podra tambin realizar sugerencias para la construccin del nuevo proceso
basado en la posible mejora calculada. Finalmente se podra realizar la evaluacin final al
nuevo proceso con el fin de calcular los porcentajes de mejoramiento con respecto a la
evaluacin inicial.
118
REFERENCIAS
Ahern, D. M., Clouse, A., & Turner, R. (2004). CMMI distilled: a practical introduction to
integrated process improvement. Addison-Wesley Professional.
Ambler, S., & Lines, M. (2012). Disciplined Agile Delivery. Indiana: Pearson plc.
Beck, K., & Andres, C. (2004). Extreme programming explained: embrace change.
Addison-Wesley Professional.
Booch, Jacobson, & Rumbaugh. (1998). The Unified Modeling Language User Guide. .:
Addison Wesley.
CMMI Product Team. (2010). CMMI for Development, Version 1.3 (CMU/SEI-2010-TR033). Recuperado el 17 de 02 de 2014, de Software Engineering Institute, Carnegie
Mellon
University:
http://cmmiinstitute.com/resource/cmmi-for-developmentversion-1-3/
Deemer, P., Benefield, G., Larman, C., & Vodde, B. (2009). Informacin Bsica de Scrum.
California: Scrum Training Institute.
Daz Fernandez, Y. (2009). Estudio sobre la correspondencia entre prcticas CMMI y
prcticas giles y su aplicacin en PYMES.
Diaz, J., Garbajosa, J., & Calvo-Manzano, J. A. (2009). Mapping CMMI level 2 to Scrum
practices: An experience report. In Software Process Improvement pringer Berlin
Heidelberg. , 93-104.
EPF Team. (s.f.). Eclipse Process Framework. Recuperado el 26 de 02 de 2014, de
Libraries
Download:
http://www.eclipse.org/epf/downloads/praclib/praclib_downloads.php
Fayad, M. E., Laitinen, M., & Ward, R. P. (2000). Thinking objectively: software
engineering in the small. Communications of the ACM , 43 (3), 115-118.
119
Fritzsche, M., & Keil, P. (2007). Agile Methods and CMMI: Compatibility or Conict? eInformatica Software Engineering Journal .
Gandomani, T. J., & Zulzalil, H. (2013). Compatibility of Agile Software Development
Methods and CMMI. Indian Journal of Science & Technology, 6(8).
Highsmith, J. (2002). What is agil software development. CrossTalk The Journal of
Defense Software Engineering , 4-9.
Jacobson, I., & Booch Grady, R. J. (2000). El proceso unificado de desarrollo de software.
Madrid: Addison Wesley.
Jan, S., & Javed, A. (2013). SCXTREME Framework: A Customized Approach of Process
Improvements in Agile Blend with CMMI Practices in Pakistan. International
Journal of Information Technology and Computer Science (IJITCS), 5(3) , 69.
Kulpa, M. K., & Johnson, K. A. (2008). Interpreting the CMMI (R): A Process
Improvement Approach. Florida: Auerbach Publications.
Leticia, B., Astorga Vargas, M. A., Olgun Espinoza, J. M., & Andrade Peralta, M. d.
(2008). Experiences on the Implementation of MoProSoft and Assessment of
Processes under the NMX-I-059/02-NYCE-2005 Standard in a Small Software
Development Enterprise. Baja California: Mexican International Conference on
Computer Science (ENC '08).
Lukasiewicz, K., & Miler, J. (2012). Improving agility and discipline of software
development with the Scrum and CMMI. Software, IET, 6(5) , 416-422.
Marcal, A., de Freitas, B., Furtado Soares, F., & Belchior, A. (2007). Mapping CMMI
Project Management Process Areas to SCRUM Practices. Software Engineering
Workshop , 13-22.
OMG. (2008). Software and Systems Process Engineering Meta-Model Specification.
Recuperado el 17 de 02 de 2014, de http://www.omg.org/spec/SPEM/2.0/
Paulk, M. C. (2001). Extreme programming from a CMM perspective. . Software, IEEE
18.6 , 19-26.
Peralta, I. (2007). Caracterizacin del nivel de desarrollo de software de las empresas de
manizales (Tesis no publicada). Universidad de Manizales, Colombia .
120
Phillips, M., & Shrum, S. (Agosto de 2011). Library: Software Engineering Institute.
Recuperado
el
20
de
Noviembre
de
2012,
de
http://www.sei.cmu.edu/library/abstracts/whitepapers/Which-CMMI-Model.cfm
Pino, F., Vidal, J., Garcia, F., & Piattini, M. (2007). Modelo para la Implementacin de
Mejora de Procesos en Pequeas Organizaciones Software. Zaragoza, Espaa: XII
Jornadas de Ingeniera del Software y Bases de Datos (JISBD 2007).
Pressman, R. (2010). Ingenieria del Software. Espaa: McgrawHill.
Rumbaugh, J., Jacobson, I., & Booch, G. (2000). El lenguaje unificado de modelado.
Manual de Referencia. Madrid: Addison Wesley.
Schwaber, K. (1997). Scrum development process. In Business Object Design and
Implementation , 117-137.
Scott, L., Jeffery, D. R., Carvalho, L., D'Ambra, P., & Rutherford, P. (2001). Practical
Software Process Improvement-The IMPACT Project. Canberra, ACT: Australian
Software Engineering Conference 2001: 182-189.
Sibbald, C. (10 de Octubre de 2006). The Eclipse Foundation open source community.
Recuperado el 21 de 11 de 2012, de epf/general/getting_started:
http://www.eclipse.org/epf/general/An_Introduction_to_EPF.zip
Stephens, M., & Rosenberg, D. (2007). Use Case Driven Object Modeling with UML.
Theory and Practice. New York: Apress.
Team, C. P. (2010). CMMI for Development version 1.3Improving processes for
developing better products and services. SEI Report CMU/SEI-2010-TR-033.
Wake, W. C. (2002). Extreme programming explored (Vol. 1). Addison-Wesley.