Modelo Cmmi
Modelo Cmmi
Modelo Cmmi
4.1. Introducción
1
consta de m á s de 1000 páginas, para que se pueda ajustar a las necesidades de
organizaciones de muy diversa naturaleza.
calidad de procesos
coste y plazos
tecnolog´ıa de desarrollo
La influencia de cada uno de estos cuatro factores depende del tamañ o del
proyecto. Para sistemas muy grandes que incluyen a su vez otros subsistemas m á s
pequeños, desarrollados en ocasiones por equipos externos en diferentes locali-
zaciones, el principal factor que afecta a la calidad es el proceso software. Los
principales factores en grandes proyectos software son la integración, la gestión
del proyecto y la comunicación. Normalmente existe una mezcla de habilidades y
experiencia entre los miembros del proyecto, y dado que el proceso de desarrollo se
lleva a cabo durante añ os, existe una alta rotación entre los miembros del equipo
de desarrollo. Incluso el equipo podr´ıa cambiar por completo entre el inicio y el
final.
En proyectos m á s pequeños, donde solo existe un nú mero reducido de desarro-
lladores, la calidad del equipo es fundamental. Además, en este tipo de proyectos,
el tiempo de desarrollo (programación) consume la mayor parte del tiempo de
2
proyecto, por lo que una buena tecnolog´ıa de desarrollo afecta notablemente a la
calidad resultante.
Independientemente del tamañ o si un proyecto está mal dimensionado en coste
y/o plazos la calidad resultante se ve rá afectada de alguna forma.
3
Caracterı́stica del proceso Aspectos clave
Comprensión ¿Hasta que punto el procesa esta definido y
cómo de fácil es comprender la definición del
proceso?
Estandarización ¿Hasta que punto el proceso esta basado en
un proceso genérico? ¿Esta siendo utilizado
en otros partes de la organización?
Visibilidad ¿Las actividades del proceso culminan en un
resultado clave de forma que este sea visible?
Medible ¿Existen atributos en el proceso que le hagan
susceptible de ser medido?
Robustez En caso de adversidades de algú n tipo ¿se
puede continuar con el proceso? ¿en q ué si-
tuaciones no se puede?
Mantenimiento ¿Puedo el proceso evolucionar y reflejar cam-
bios requeridos por la organización?
Rapidez ¿Cuánto tiempo es necesario para completar
el proceso desde q ué se especifica su misión?
La mejora de procesos es una tarea de largo plazo que puede llevar semanas,
meses o incluso añ os dependiendo del tamañ o del proyecto y la organización. Es
también una tarea continua, sin fin, y que evoluciona de acuerdo con los cambios
y necesidades que aparecen en las organizaciones.
4
Figura 4.1: Ciclo de mejor de procesos
Las dos primeras métricas pueden ser utilizadas para averiguar si los cambios
introducidos en un proceso han mejorado su eficiencia. En cambio, la última métri-
ca no tiene una traducción directa, si el cambio en el proceso permite descubrir
un mayor nú mero de defectos software no tiene porqué traducirse en un aumento
de la calidad, deberán ser posteriores medidas las que corroboren o descarten el
beneficio del cambio introducido.
Goal-Question-Metric
5
Metas por lograr
3. Métricas. Constituyen las medidas que se deben recopilar para dar res-
puesta a las preguntas planteadas y para confirmar si una vez aplicadas las
mejoras estas han surtido efecto. Algunas métricas útiles para responder a
las preguntas planteas anteriormente podr´ıan ser: porcentaje del tiempo que
los desarrolladores se pasan en reuniones, nú mero de casos de prueba que
nunca detectan fallos, etc.
6
4.2.3. Análisis de Procesos
7
Aspecto Preguntas
Adopción y estandarización ¿El proceso esta estandarizado y documentado a lo lar-
go de la organización? Si no lo esta, ¿significa esto que
cualquier medición realizada solo es aplicada al proce-
so bajo análisis? Si el proceso no esta estandarizado,
entonces los cambios puede no se aplicables a procesos
similares en otros puntos de la organización.
Buenas prácticas ¿Existe alguna buena práctica de ingenier´ıa de software
no incluida en el proceso? ¿Por q ué no lo esta? ¿La ca-
rencia de estas prácticas impacta en la calidad final del
proyecto?
Restricciones organizacionales ¿Cuáles son loas limitaciones organizacionales que afec-
tan al diseñ o y ejecución del proceso? Por ejemplo, si el
proceso necesita manejar información clasificada o con-
fidencial, existirán actividades que verifiquen esta infor-
mación no sea incluida en informes que puedan salir de
la organización.
Comunicación ¿Cómo se comunica la información en el proceso? Fallos
en la comunicación son normalmente fuentes de proble-
mas y cuellos de botella comunes en los procesos.
Introspección ¿Son los actores del proceso conscientes del mismo?
¿Pueden estos actores proponer cambios?
Aprendizaje ¿Cómo aprenden los nuevos integrantes los procesos en
los que son participantes activos? ¿Tiene la organización
algú n programa estandarizado de aprendizaje?
Soporte de herramientas ¿ Qué aspectos del proceso están apoyados por herra-
mientas y cuáles no? ¿existen mejores herramientas dis-
ponibles?
8
contemplados en un primer momento. Normalmente este tipo de enfoques permite
a los involucrados en el proceso expresarse mejor y de forma m á s abierta y natural
que en el caso de los cuestionarios.
En casi todos los procesos, la gente involucrada tiende a realizar pequeñ os
cambios locales para adaptar los procesos a circunstancias concretas. El análisis
etnográfico persigue detectar estos cambios, y en general es m á s efectivo que cues-
tionarios y entrevistas a la hora de hacer esta detección. Sin embargo, es una tarea
que requiere de un largo tiempo para llevarse a cabo y que puede extenderse me-
ses. Se fundamenta en un análisis externo, sin interactuar en é l , simplemente una
observación detallada de todos sus fases y propiedades. Para realizar un análisis
completo, se requiere observar todas las fases, por lo que en grandes proyectos esto
podr´ıa conllevar un análisis de añ os, lo que lo hace en impracticable en muchas
situaciones. A pesar de todo, este tipo de análisis suele ser ú til cuando se desea
profundizar no en la totalidad del proceso sino en una parte concreta del mismo.
Normalmente, el análisis comienza a partir del modelo del proceso, donde se
define las actividades que lo componen con las entradas y salidas de dichas activi-
dades. El modelo puede incluir también información acerca de los actores involu-
crados (el personal, los roles responsables de realizar las actividades, y los entre-
gables cr´ıticos que se deben respetar). Pueden utilizarse diferentes herramientas
para realizar el modelo, desde una notación informal hasta otra m á s formal co-
mo diagramas de actividad UML [25] o el modelo desde notación de procesos de
negocio BPMN (Business Process Model and Notation) [69].
El modelo del proceso es una buena forma de centrar la atención en las acti-
vidades involucradas y en la información transferida entre ambas. Es importante
tener en cuenta que el modelo no tiene porqué ser completo ni formal, su cometido
es servir de base de discusión.
Al finalizar el análisis del proceso se deben tener un conocimiento profundo del
proceso y una idea del potencial de mejora existente para el futuro junto con las
limitaciones existentes a esas mejoras.
9
mejoras mejoras al proceso
ingenieros
10
momento es normal recibir todo tipo de razonamientos acerca de porqué el
cambio no funcionará o por q ué no tiene sentido.
11
establezca como se implementan las prácticas propuestas. CMMI es un modelo
de mejora no de conformidad al que las organizaciones deban adherirse. CMMI
y sus métodos de evaluación permiten establecer una foto fija de la organización
que refleje el estado de los procesos existentes. A partir de esta foto fija el marco
de trabajo CMMI permite establecer una hoja de ruta para la mejora de estos
procesos que reduzca las diferencias en el desempeño de los procesos entre la
realidad medida y la ideal fijada por el modelo.
Es importante tener en cuenta q ué no es CMMI para evitar un uso incorrecto
del mismo:
Es importante tener en cuenta que ningún modelo general podrá ser óptimo
para todas las organizaciones. CMMI simplemente pretende ser un modelo que gu´ıe
a la organización a establecer un proceso o conjunto de procesos lo m á s óptimos
posibles.
12
Estos tres modelos se complementan entre s´ı en términos del público al que se
orientan. Existen varios componentes comunes a los tres modelos, incluyendo 16
á reas de interés denominadas “core process areas”. Cada modelo CMMI también
incluye á reas espec´ıficas a cada modelo.
4.4.1. CMMI-DEV
4.4.2. CMMI-ACQ
4.4.3. CMMI-SVC
13
Categor´ıa Media de mejora
Coste 34 %
Plazos 50 %
Productividad 61 %
Calidad 48 %
Satisfacción de cliente 15 %
Retorno de inversión 4:1
14
Figura 4.4: Esquema del área de proceso CMMI
15
Los objetivos espec´ıficos se identifican mediante el prefijo “SG” seguido por un
nú mero de forma secuencial.
16
Organizational Training (OT)
Project Monitoring and Control (PMC)
Project Planning (PP)
Process and Product Quality Assurance (PPQA)
Quantitative Project Management (QPM)
Requirements Management (REQM)
Risk Management (RSKM)
17
4.6.4. Objetivos genéricos (GG)
Subprácticas.
18
Referencias. Al comienzo de cada PA se proporciona una lista de otras PA
relacionadas. Esta lista no es exhaustiva, pero muestra las relaciones m á s
importantes.
19
Los requisitos son gestionados y las inconsistencias con
el plan de proyecto y los productos de trabajo identifi-
cadas.
20
Establecer estimadores
Se establecen una serie de estimadores de parámetros
de proyecto que se mantendrán a lo largo de la vida del
proyecto
21
datos pueden aparecer de muchas maneras y medios. Se deben identificar los datos
y fuentes de información claves para gestionar el proyecto de manera eficiente.
En SP 2.4 se definen los recursos necesarios para llevar a cabo el proyecto. Los
recursos incluyen, personal, herramientas, materiales e instalaciones. En ocasiones
es necesario un conjunto de conocimientos o habilidades especiales para llevar a
cabo el trabajo, SP 2.5 se asegura que estos son incluidos en el plan. En SP 2.6
se asegura que los involucrados son identificados correctamente de acuerdo a su
relevancia en el proyecto, su rol, su necesidad y dónde deben participar. Todos
estos elementos son empleados para crear un plan en SP 2.7, este plan es conocido
como plan de proyecto y será utilizado para llevar a cabo la monitorización y
control del proyecto.
Una vez el plan es documentado, se busca el compromiso de la organización
para llevarlo a cabo. Antes de obtener el compromiso se debe verificar en SP 3.1,
que el plan de proyecto no interfiere en otros planes, por ejemplo, si se el plan
necesita de una instalación y esta debe ser compartida con otro proyecto. En SP
3.2 se establece que los recursos y el trabajo a realizar están equilibrados de forma
realista y por tanto el proyecto es viable desde este punto de vista. Por último,
SP 3.3 obtiene un compromiso por parte de todos los involucrados para llevar a
cabo el proyecto.
22
Se monitoriza y compara el progreso y el del
proyecto real y se compara contra el plan inicial
23
Los riesgos son identificados y analizados para determi-
nar su importancia
24
comunes de forma que pueda servir de base en la evaluación de riesgos del proyecto.
En SP 1.2 se establece una serie de parámetros de riesgo para poder evaluar,
categorizar y priorizar los riesgos. Estos parámetros incluyen la probabilidad de
riesgo, las consecuencias o severidad de los riesgos y los umbrales a los que el riesgo
debe ser gestionado. La estrategia global de riesgos es finalmente definida en SP
1.3. Esta estrategia pasa por los métodos y herramientas utilizadas, las fuentes de
riesgo espec´ıficas al proyecto, y cómo son los riesgos organizados, categorizados y
priorizados.
En SG 2, las fuentes y categor´ıas de SG 1 son empleadas para identificar riesgos
en SP 2.1. Los riesgos deben ser identificados y descritos de forma comprensible
y clara antes de que puedan ser analizados y gestionados adecuadamente. En SP
2.2, los parámetros definidos en SG 1 son utilizados para evaluar, categorizar y
priorizar riesgos. El riesgo puede ser priorizado como alto, medio o bajo
La estrategia definida en SG 1 es utilizada para desarrollar planes de mitigación
de riesgos en SP 3.1. Un componente cr´ıtico en la planificación de mitigación de
riesgos es el desarrollo de caminos alternativos de acción, soluciones temporales o
métodos de respaldo y caminos recomendados de acción para cada riesgo. El plan
de mitigación de riesgos para un riesgo dado incluye técnicas y métodos utilizados
para evitar, reducir y controlar la probabilidad de que el riesgo ocurra. Es impor-
tante tener en cuenta que la mitigación de riesgos aplica a una serie de riesgos
seleccionados, no es viable el desarrollo de un plan de acción para todos los riesgos
posibles. Los planes deben realizarse para aquellos riesgos con mayor probabilidad
de ocurrir o de consecuencias m á s catastróficas. Los riesgos son monitorizados de
manera periódica en SP 3.2 y los planes de mitigación implementados a lo largo
de la vida del proyecto segú n las necesidades.
25
Se establecen y mantienen acuerdos con proveedores
proveedores
26
Las l´ıneas base de los productos de trabajo son estable-
cidas.
mentos de
figuraci
27
de elementos de configuración a controlar son: documentos de diseñ o, descripción
de servicios, materiales de formación, planes de pruebas, diseñ os técnicos y código
fuente. Una vez los elementos a controlar son identificados, SP 1.2 establece un sis-
tema para gestionar la configuración de esos elementos. Un sistema de gestión de
configuración incluye los medios de almacenaje, procedimientos, y las herramien-
tas para acceder al sistema. El sistema de gestión de configuración es utilizado
para crear las l´ıneas base de los elementos a controlar en SP 1.3. Una l´ınea ba-
se representa una foto fija en el tiempo de la versión de configuración o de un
conjunto de elementos de configuración.
La petición de cambios de configuración es analizada en SP 2.1 para determinar
el impacto del cambio en el trabajo en curso, en los trabajos relacionados, en el
presupuesto y en los plazos. Las peticiones de cambio son priorizadas, asignadas
y seguidas hasta la finalización. SP 2.2 mantiene la l´ınea base de configuración.
Se establecen mecanismos para controlar q ué se está cambiando, quien lo está
cambiando, por q ué se est á cambiando y el estado del cambio.
Los registros de los cambios se establecen y gestionan en SP 3.1. En SP 3.2 se
garantiza la fiabilidad de los registros, su consistencia y completitud.
28
La adherencia de los procesos realizados, y de los pro-
ductos de trabajo asociados a las descripciones de pro-
ceso y procedimientos aplicables es evaluada
Cuadro 4.10: Á rea de proceso: Process and Product Quality Assurance (PPQA)
29
Alinear las actividades de y
Los objetivos de y las actividades son alineadas
con las necesidades y objetivos de identifi-
cados
recopilaci
30
Las decisiones se basan en la de alternativas
utilizando un criterio previamente establecido
an
31
Las debilidades, fortalezas y oportunidades de mejora
son identificadas de manera o las nece-
sidades.
32
establece un plan y responsabilidades para la mejora de procesos. La implementa-
ción, el despliegue y la monitorización de la mejora de procesos es responsabilidad
de SG 3.
Existen 3 prácticas espec´ıficas relacionadas con SG 1. SP 1.1 requiere que la
organización identifique sus necesidades y objetivos de mejora. Estas necesidades
y objetivos deben establecerse de acuerdo a objetivos de negocio, necesidades
y restricciones. Antes de realizar ninguna tarea de mejora es preciso conocer el
estado de partida de la organización, esta tarea se realiza de forma periódica en
SP 1.2, identificando también fortalezas y á reas de mejora. Las fortalezas deben
ser potenciadas a lo largo de la organización mientras que las debilidades deben
ser corregidas. Las mejoras a los procesos de la organización y a los activos de los
procesos son identificados en SP 1.3.
Respecto al SG 2 se identifican dos prácticas espec´ıficas. En SP 2.1 se establecen
planes de acción para mejorar procesos de forma espec´ıfica, los cuales son aplicados
y monitorizados hasta su conclusión en SP 2.2
Los activos de procesos son creados como parte de los esfuerzos de mejora de
procesos de la organización. Una vez aprobados están listos para ser aplicados e im-
plementados. La organización los desplegará en SP 3.1 en una actividad concreta.
En 3.2 los proyectos y trabajos incorporan los nuevos procedimientos estandari-
zados. Con el tiempo se producirán actualizaciones y modificaciones que deberán
ser también introducidas. La organización se asegura que la institucionalización
y estandarización de los procesos es efectiva en SP 3.3. En SP 3.4 se incorporan
las experiencias relacionadas con el proceso derivadas de la planificación y de la
ejecucion de los procesos, en los activos de proceso de la organización.
33
SP 1.6 Establecer de entorno de trabajo
SP 1.7 Establecer gu´ıas y normas para los equipos de
trabajo
34
andar.
colab
co
35
ferentes equipos con diferentes organizaciones de acuerdo a las necesidades. Por
último, en SP 1.7 se recopila las experiencias y lecciones aprendidas para su do-
cumentación y almacena en el repositorio de medidas de la organización y en la
librer´ıa de activos de la organización.
Para el SG 2 se identifican 3 prácticas espec´ıficas. SP 2.1 describe una apro-
ximación m á s proactiva a la gestión de la implicación de los involucrados en el
proyecto segú n el plan integrado y el proceso definido. En SP 2.2 se identifican
las dependencias cr´ıticas con los involucrados en el proyecto. Y finalmente en SP
2.3 se resuelven cualquier tipo de problema de coordinación con los involucrados.
Entre los problemas m á s habituales estar´ıan las diferencias en la interpretación de
requisitos y el diseñ o, retrasos, problemas a nivel de producto y la falta de recursos
y personal disponible.
En la figura se han añ adido las áreas espec´ıficas de la OPD para mostrar cómo
se integran con IPM.
Un proceso definido comienza con activos de la organización que incluyen el
conjunto de procesos estándar de la organización, estándares de entornos de tra-
bajo, descripciones del modelo del ciclo de vida y reglas y gu´ıas de equipos. Estos
activos son utilizados por un proyecto junto con las gu´ıas a medida y con la infor-
mación del repositorio de medidas de la organización y la librer´ıa de activos para
desarrollar la definición del proceso. Tras utilizar estos activos del proceso y sus
procesos definidos, los proyectos suministran información de acuerdo a la expe-
riencia acumulada a la librer´ıa de activos de procesos y al repositorio de medidas
de la organización.
36
SP 1.1 Establecer necesidades de forma-
de responsabilidad de la
on
on
on
formación. SP 2.2 registra la formación impartida. Por último, SP 2.3 realiza las
medidas oportunas para evaluar y si fuera el caso tomar medidas correctivas de
los beneficios obtenidos de la aplicación de la formación.
37
Desarrollar requisitos de cliente
Se recopilan las necesidades de todos los involucrados
en el proyecto, las expectativas, las restricciones y las
interfaces.
SG1
SP 1.1 Obtener necesidades
SP 1.2 Transformar las necesidades de los involucra-
dos en requisitos de cliente
38
otros medios. Además, los conflictos e inconsistencias que puedan surgir deben ser
resueltas.
Respecto a SG 2 tenemos 3 prácticas. SP 2.1 parte los requisitos de cliente
de SP 1.2 y los utiliza para crear los requisitos de producto y de componentes de
producto. Mientas que los requisitos de cliente pueden ser de carácter no técnico
los requisitos de producto si lo son y serán utilizados en el proceso de diseñ o. En
SP 2.2 se identifican requisitos de m á s bajo nivel. En proyectos de alta complejidad
es habitual encontrar varias capas de requisitos. Aunque las interfaces no dejan de
ser componentes de cualquier producto, dado que son fuente habitual de procesos,
CMMI establece una práctica independiente, SP 2.3, para su tratamiento.
SG 3 contiene 5 prácticas. SP 3.1 trata de establecer escenarios y conceptos
operativos, son ideas de alto nivel de cómo debe comportarse el producto o servicio
final. En SP 3.2 se establecen los requisitos funcionales y los atributos de calidad
deseados. Esto puede incluir la documentación de la arquitectura funcional. SP 3.3
se asegura que los requisitos son suficientes para cubrir los objetivos del proyecto
teniendo en cuenta los escenarios operaciones y los atributos de calidad estableci-
dos. El cliente introducirá restricciones de diversa ´ındole: coste, plazo, rendimiento
funcionalidad, respuesta a imprevistos, mantenimiento y riesgos. SP 3.4 analiza
los requisitos del cliente y las restricciones para buscar un equilibrio entre ambos.
El ú ltimo punto, SP 3.5, implica trabajar con el cliente para validar los requisitos
para asegura que los trabajos a realizar y el producto final satisfacen todas las
necesidades.
39
Las soluciones elegidas son escogidas de entre un grupo
de posibles soluciones alternativas
de
on ecnica
an on,
construccion
40
implementación. El diseñ o de las interfaces se realiza también de forma separa en
SP 2.3. Por último, se establece que productos o componentes serán adquiridos,
reutilizados o desarrollados desde cero o a partir de otros en SP 2.4.
Una vez el diseñ o es completado se implementa en SP 3.1. Ejemplos de imple-
mentación son: programación software, documentación de información y servicios,
fabricación de partes y construcción de instalaciones. Esta práctica incluye peer re-
views y unit-testing de los componentes del producto. SP 3.2 incluye las tareas de
documentación, a menudo olvidadas, de instalación, operación y mantenimiento.
La documentación debe tratarse como una pieza cr´ıtica de la solución técnica.
41
Se lleva a cabo los preparativos para la del
producto.
ducto
on
on
42
erificaci
on
on
43
alidaci
44
analizados en el SP 2.2
• Las medidas del proceso. Esto es, esfuerzo, tiempo del ciclo, eficiencia,
etc.
• Las medidas del producto o servicio. Por ejemplo, fiabilidad, densidad
de defectos, tiempo de respuesta, etc.
45
Establece y mantiene las l´ıneas base y los modelos, los
cuales caracterizan la expectativa de rendimiento de los
procesos para el conjunto de procesos de la
de proceso
46
preparaci
an
47
Las causas ra´ız de los resultados seleccionados son de-
terminadas atica
SG1
sistem
on a
48
mejora global del rendimiento. La calidad y los objetivos de rendimiento de pro-
ceso se ajustan o se añ aden nuevos objetivos en función de las necesidades de
negocio. SG 1 emplea técnicas estad´ısticas y cuantitativas para identificar á reas
donde el rendimiento cae por debajo de los objetivos de negocio. SG 2 requie-
re que la organización busque de forma proactiva e incremental ideas de mejora
innovadoras. Aquellas ideas que potencialmente tengan un mayor impacto en el
rendimiento son seleccionadas para ser puestas en práctica. SG 3 pone en marcha
aquellos procesos mejorados, métodos y tecnolog´ıas en aquellos proyectos que pue-
dan beneficiarse de las mejoras introducidas. Al mismo tiempo que se implantan
los procesos mejorados se recopila información para asegurarse que los beneficios
del cambio son reales.
Asociada al SG 1 hay 3 prácticas espec´ıficas. En SP 1.1 se utilizan los datos de
rendimiento de la organización para evaluar si los objetivos de negocio son realistas
y están alineados con las estrategias de negocio. Sin un conjunto bien definido de
objetivos, la probabilidad de que las mejoras estén alineadas es menor. SP 1.2
utiliza el análisis de las l´ıneas base de rendimiento de proceso, las simulaciones
de proceso y modelos de rendimiento de proceso para evaluar la habilidad de
la organización para conseguir sus objetivos de negocio. Basado en este último
análisis, SP 1.3 identifica las á reas donde el rendimiento no está alcanzando el
objetivo.
SG 2 cuenta con cuatro practicas espec´ıficas. SP 2.1 se centra en recopilar
mejoras provenientes de diversas fuentes. Las mejoras propuestas son analizadas
en SP 2.2, estas se evalú an teniendo en cuenta su coste y su beneficio potencial.
Basándose en esta evaluación, algunas mejoras son seleccionadas para su valida-
ción, implementación y posterior despliegue a lo largo de la organización. Los
resultados del análisis se documentan en una propuesta de mejora. En SP 2.3 las
mejoras se validan en el entorno de usuario. La validación se lleva a cabo en pro-
yectos seleccionados que cumplan las caracter´ısticas adecuadas en función del tipo
de cambio a introducir. Tras el análisis y validación SP 2.4 selecciona finalmente
las mejoras que serán implantadas en la organización.
Respecto al SG 3 existen tres prácticas espec´ıficas. En SP 3.1 se crea el plan
de despliegue de cada mejora que va a ser implantada. Es necesario llegar a un
compromiso entre estabilidad y cambio, la introducción de cambios con mucha
frecuencia y poco impacto puede ser perjudicial. En SP 3.2 se gestiona el desplie-
gue del plan de acuerdo a lo expuesto en el punto anterior. Los resultados de la
implantación son evaluados en SP 3.3 empleando técnicas estad´ısticas y métodos
cuantitativos.
49
Gestionar el rendimiento en la organización
El rendimiento del negocio de la organización es gestio-
nado utilizando estad´ıstica y otras técnicas cuantitativas
para comprender las deficiencias de rendimiento de pro-
ceso e identificar á reas de mejora de procesos.
SG1
SP 1.1 Mantener los objetivos de negocio
SP 1.2 Analizar la información del rendimiento del
proceso
SP 1.3 Identificar á reas potenciales de mejora
50
facción de los objetivos genéricos muestra el nivel de institucionalización de cada
á rea de proceso CMMI
El GG 1 requiere que la organización lleve a cabo el trabajo necesario para pro-
ducir productos de trabajo, en términos CMMI al proceso de le denomina “per-
formed process”. Se realizan las prácticas espec´ıficas de las á reas de proceso.
Sin embargo, la definición de proceso puede estar incompleta y la infraestructura
necesaria para llevarlo a cabo ser deficiente. Como resultado no existe una garant´ıa
de que el proceso sea implementado consistentemente y duradero en el tiempo.
En GG 2 el proceso es institucionalizado. Se dice que el proceso está gestio-
nado, t´ıpicamente CMMI se refiere a é l como “managed process”, cuando est á
planificado y ejecutado de acuerdo a una pol´ıtica, emplea gente preparada con
recursos suficientes, involucra a todos los afectados, esta monitorizado, controlado
y revisado, y es evaluado de acuerdo a la descripción de su cometido.
GG 3 se fundamenta en el proceso gestionado de GG 2 para obtener un pro-
ceso definido o “defined process”. Para que un proceso sea definido este debe
ajustarse al conjunto de estándares de la organización de acuerdo a una serie de
gu´ıas predefinidas por la misma organización.
Las prácticas genéricas se relacionan con todas las á reas de proceso de CMMI
51
das
52
Categorı́a Á rea de Proceso
Organizational Process Definition
Organizational Process Focus
Gestión de Procesos Organizational Performance Management
Organizational Process Performance
Organizational Training
Integrated Project Management
Project Monitoring and Control
Project Planning
Gestión de Proyecto Quantitative Project Management
Requirements Management
Risk Management
Supplier Agreement Management
Product Integration
Requirements Development
Ingenier´ıa
Technical Solution
ValidationVerification
Causal Analysis and Resolution
Configuration Management
Soporte Decision Analysis and Resolution
Measurement and Analysis
Process and Product Quality Assurance
53
4.8.2. Representación por Etapas
Las organizaciones que quieran utilizar CMMI como gu´ıa para la mejora de
procesos deben elegir q ué representación utilizar. Para ello deben pensar cóm o
van a implementar las áreas de proceso. Hay que tener en cuenta que el contenido
es el mismo independientemente de la representación empleada. Deben ser las
necesidades de negocio las que establezcan q ué representación utilizar.
Las representaciones son a veces elegidas por las organizaciones en virtud del
tipo de evaluación o “appraisal” que persigan. En una evaluación, las repre-
sentaciones elegidas son utilizadas para monitorizar el progreso y el éxito de la
implantación de las mejoras.
Las organizaciones que utilicen la representación por etapas llevarán a cabo
evaluaciones que determinen si han conseguido cumplir con todas las á reas de
proceso de un conjunto de PA predefinido con el fin de lograr un nivel de madurez.
En la representación continua, las evaluaciones tienen como objetivo determi-
nar el nivel de capacidad de las á reas de proceso de forma individual.
54
Nivel Foco Á reas de Proceso
Causal Analysis and Resolution
5 Optimizado Mejora continua de
Organizational Performance Management
procesos
Organizational Process Performance
4 Gestionado cuanti- Gestión cuantitativa
Quantitative Project Management
tativamente
Decision Analysis and Resolution
Integrated Project Management
Organizational Process Definition
Organizational Process Focus
Organizational Training
3 Definido Estandarización de Product Integration
procesos Requirements Development
Risk Management
Technical Solution
Validation
Verification
Configuration Management
Measurement and Analysis
Project Monitoring and Control
2 Gestionado Gestión básica de pro- Project Planning
yectos Process and Product Quality Assurance
Requirements Management
Supplier Agreement Management
1 Inicial
Cuadro 4.28: Á reas de proceso asociadas a cada nivel de madurez del modelo por
etapas CMMI.
55
y que corresponden a su vez a las dos representaciones existentes: continua y por
etapas.
La aproximación por etapas es utilizada en las evaluaciones que determinan si
la implementación de un á rea de proceso logra alcanzar o no un nivel de madurez
predefinido. Los niveles de madurez muestran la evolución en el camino de la
institucionalización y rendimiento de procesos.
La aproximación continua es utilizada en las evaluaciones que evalú an el nivel
de capacidad de á reas de proceso individuales. Los niveles de capacidad muestran
un camino de evolución basado en el grado de institucionalización y aptitud en el
rendimiento de un á rea de proceso individual.
El concepto de nivel es el mismo independientemente de si se utiliza la repre-
sentación continua o por etapas. Alcanzar un cierto nivel puede ser importante
para las organizaciones, ya que es habitual que este constituya un requisito a la
hora de obtener proyecto o de trabajar para otras empresas o instituciones.
Á rea de Proceso n
56
proceso en el modelo CMMI. Cada nivel conseguido sirve como base para alcanzar
el siguiente nivel, un nivel superior se basa en el inmediatamente anterior, y este
en el anterior, y as´ı de forma recursiva.
La clasificación del nivel de madurez se realiza en virtud de la satisfacción de
todos los objetivos genéricos y espec´ıficos de las á reas de proceso agrupadas en
el nivel correspondiente y en los niveles anteriores. Para conseguir un nivel 3 de
madurez se deben cumplir todos los objetivos espec´ıficos de los niveles 1, 2 y 3.
Cada nivel de madurez sirve como capa y sustrato del nivel siguiente, tal y
como se muestra en la figura 4.6. Los objetivos de cada nivel son:
3. Defined
2. Managed
57
4.10. Evaluación CMMI
Las evaluaciones o “appraisals” son el mecanismo utilizado para determinar
el nivel de capacidad y madurez de una organización.
La figura muestra la estructura general de evaluación para las dos representa-
ciones disponibles en CMMI.
Para la representación continua, se utiliza la satisfacción de objetivos genéricos
para determinar el nivel de capacidad de las áreas de proceso individuales.
En la representación por etapas, la satisfacción de las á reas de proceso es
empleada para determinar el nivel de madurez de la organización.
En las evaluaciones los componentes de CMMI son considerados de tres formas:
Esperado. Mientras que los objetivos son considerados como requeridos, las
prácticas se consideran esperables. Las prácticas representan las actividades
que normalmente son esperables cuando la organización trata de satisfacer
un objetivo genérico o espec´ıfico. La manera en la que las organizaciones.
Informativo.
La tabla 4.29 muestra las variaciones entre los tres métodos de evaluación. El
nivel de detalle aumento de C a B y de B a A. Normalmente las organizaciones
emplean SCAMPI-C y SCAMPI-B como preparación para una auditor´ıa basada
en SCAMPI-A que les permite acreditarse con un nivel de madurez o capacidad
CMMI.
58
Caracterı́stica Clase C Clase B Clase A
Cantidad de evidencias objetivas Bajo Medio Alto
Puntuaciones generadas No No Si
Recursos necesarios Bajo Medio Alto
Tamañ o del equipo Pequeño Mediano Grande
59
Capı́tulo 5
CMMI Ágil
Los métodos de desarrollo ágiles y las prácticas CMMI son a menudo percibidas
como antagónicas y excluyentes entre s´ı. Sin embargo, esto está lejos de la realidad,
CMMI y los métodos de desarrollo ágiles son compatibles y pueden por tanto
usarse conjuntamente, es más , el correcto uso de ambos puede generar importantes
sinergias que permitan aumentar la tasa de éxito de los proyectos software.
60
5.1.1. Falta de uso y uso incorrecto
Tanto CMM como CMMI son modelos y no estándares para mejorar el ren-
dimiento de los procesos software dentro de las organizaciones. Sin embargo, con
cierta frecuencia las organizaciones han utilizado las evaluaciones CMMI como un
criterio para catalogar el rendimiento del negocio, de esta forma prima m á s la
evaluación CMMI obtenida que los beneficios que se puedan obtener de ella.
Las primeras organizaciones que implantaron CMM y CMMI eran grandes
organizaciones inmersas en grandes proyectos con complejos procesos, muchos de
á mbito militar. Este origen dotó a CMM/CMMI de la fama de ser adecuado para
este tipo de proyectos. Además, mucha de la literatura y libros escritos sobre la
materia abordaban principalmente cómo poner en práctica CMM/CMMI en este
tipo de proyectos y organizaciones.
61
predecidos con precisión y por tanto “la perfección es el enemigo de lo suficien-
temente bueno, es mejor reaccionar y refactorizar a predecir”. En cambio, CMMI
utiliza el término predictable de manera m á s sutil. En el nivel 4 de CMMI, las
predicciones se derivan a partir de la compresión de las variaciones esperadas a
nivel de proceso junto con modelos estad´ısticos y probabil´ısticos que predicen los
rangos de variación del proyecto. La predictibilidad no se consigue a partir de un
plan minucioso que cubra todos los hitos del ciclo de vida del proyecto, ni siquiera
CMMI espera o requiere este tipo de predictibilidad.
62
Las metodolog´ıas ágiles han conseguido escalar para poder ser utilizadas en
grandes proyectos a través de diversas formas: release planning, test planning,
integración continua, despliegue continuo, y utilizando nuevas arquitecturas como
microservicios en lugar de componentes.
Desde el punto de vista de la ingenier´ıa de sistemas, los siguientes puntos son
conflictivos en grandes proyectos:
63
Otro reto a la hora de combinar CMMI y los métodos ágiles, y que por otra
parte es comú n en casi cualquier actividad, es el factor humano. El factor humano
se puede manifestar de dos formas:
Al igual que con los métodos ágiles también existen retos a la hora de implantar
CMMI. No existe ninguna aproximación o metodolog´ıa que aborde todos los retos y
situaciones que puedan surgir a lo largo de un proyecto software [74]. Simplemente
por el hecho de que una organización obtenga un determinado nivel de madurez
CMMI, no significa que los proyectos dentro de la organización vayan a ser todos
exitosos. El nivel de madurez de una organización indica que la organización está
preparada para gestionar aquello que puede hacer que un proyecto fracase hasta
un cierto punto.
En ocasiones las organizaciones se ven en la necesidad de alcanzar un deter-
minado nivel de madurez en un tiempo poco realista, bien porque lo necesitan
para optar a conseguir un proyecto o bien por decisión de la dirección. En estas
situaciones el objetivo deja de ser la mejora de procesos para ser el hecho de dis-
poner de una acreditación del nivel de madurez. As´ı, se puede dar el caso de que
se instauren normas, gu´ıas y métodos recogidos en CMMI pero que no sean los
apropiados para la organización. En estos casos, la organización se acredita con
un nivel de madurez, pero sin adoptar los procesos adecuados de acuerdo a sus
necesidades reales. Por ejemplo, una organización de tamañ o medio desarrollando
software web adopta procesos de desarrollo, validación y verificación propios de
una organización de gran tamañ o desarrollando software cr´ıtico de tiempo real.
Las gu´ıas implantadas en una organización pueden no ser los suficientemente
flexibles para un determinado proyecto, o para un proceso concreto del proyecto.
Esta es una de las razones por las que el modelo de desarrollo ha evolucionado
desde el modelo en cascada pasando por el iterativo o de espiral y llegando a los
métodos ágiles. En un mundo tan cambiante como el actual, las organizaciones
que implanten CMMI deben tener esto en cuenta y adaptarse a las situaciones de
su entorno, cambiando si es preciso sus procesos a aquellos que mejor aborden los
retos y problemas a los que se enfrentan.
64
5.3. Á reas de Proceso CMMI y SCRUM
En esta sección veremos c ómo se pueden SCRUM en las á reas de proceso
CMMI. De las 17 á reas de proceso descritas en CMMI-DEV no en todas podremos
aplicar métodos ágiles, ni tampoco será posible aplicar metodolog´ıas de trabajo
á gil a todas las prácticas asociadas a las á reas de proceso.
Se ha elegido SCRUM como metodolog´ıa ágil por su amplia implantación y
popularidad. Otros métodos á giles tendrán otro tipo de relación con CMMI ya
que no todos ellos cubren las mismas etapas del desarrollo.
65
SP 2.6 Planificar la participación Normalmente participan en las reuniones que se
de los involucrados realizan al comienzo y al finalizar cada sprint.
Esta participación es responsabilidad del Scrum-
Master.
SP 2.7 Establecer el plan de pro- Se podr´ıa decir que la visión de producto y el bac-
yecto klog permiten definir un plan de proyecto, aunque
este plan es ciertamente difuso.
SP 3.1 Revisar los planes que Se llevan a cabo en las reuniones de planificación
puedan afectar al proyecto y en las reuniones retrospectivas.
SP 3.2 Poner de acuerdo el tra- Ocurren durante las reuniones de planificación
bajo y los recursos compartidos dado que el backlog es dinámico y por tanto los
plazos son continuamente reestimados.
SP 3.3 Obtener compromiso de Se obtiene de manera informar con las reuniones
acuerdo para el plan de proyecto que se mantienen entre los involucrados del pro-
yecto.
revisi
Reuniones de
Reuniones retrospectivas
66
5.3.3. Requirements Management (REQM) y SCRUM
67
cesado y almacenamiento de información. Los datos serán capturados por sensores
que se encontrarán ubicados en cualquier punto geográfico reportando medidas a
un servidor central. El servidor central podrá recibir información en cualquier
momento de diferentes sensores, procediendo al procesado de la información, la
toma de decisiones en virtud de los resultados obtenidos tras el procesado y el
almacenamiento de toda la información para posteriores análisis o consultas. Para
implementar el sistema lo descompondremos en subsistemas m á s simples, de tal
forma que diferentes equipos de desarrollo puedan participar en paralelo en la im-
plementación. De esta forma los subsistemas que constituyen la solución completa
son:
68
Asana. Es simple de utilizar y se puede integrar con otras herramientas de
desarrollo software en la nube como GitHub, Slack, Okta, Google Drive, etc.
Atlassian JIRA. Forma parte del conjunto de aplicaciones de Atlassian
(muy centrados en el apoyo al desarrollo de software), que pueden ser utili-
zadas tanto en la nube como en datacenters privados. JIRA es m á s compleja
que Asana y requiere de un mayor esfuerzo tanto por parte del encargado
del proyecto como del resto de participantes.
69
Risk (RSK). Esta issue modelará los riesgos potenciales del proyecto y
permitirá hacer seguimiento de los mismos. Un ejemplo de aplicación es
cuando se procede a realizar un merge entre dos ramas de desarrollo del
repositorio de código fuente.
Corrective Action (CA). Cualquier acción correctiva que sea preciso rea-
lizar s erá modelada con esta issue.
Una vez visto el entorno software de gestión veremos ahora q ué herramientas y
q ué arquitectura se empleará para que los analistas y programadores lleven a cabo
el trabajo de desarrollo de forma ágil adhiriéndose al mismo tiempo a CMMI.
70
119
120
b) Interfaz de usuario backend. Existe una amplia variedad de lengua-
jes de programación que podr´ıan ser empleados para este módulo, la
elección se debe hacer en virtud de los programadores disponibles, la
complejidad esperada, el volumen de información a gestionar, la futura
escalabilidad y mantenimiento del sistema, etc. Algunos de los lenguajes
m á s habituales son: Java, PHP, Ruby, Python, Scala, Perl y Javascript.
En nuestro caso vamos a proponer el empleo del lenguaje Python ya
es un lenguaje cada vez m á s popular, lo que nos garantiza encontrar
programadores, permite hacer desarrollos rápidos gracias a su sencillez
y al gran nú mero y calidad de las librer´ıas disponibles y presenta un
rendimiento aceptable.
c) Módulo de procesado. a. El módulo de procesado requiere de un len-
guaje eficiente y con capacidad para comunicarse con bases de datos y
otros subsistemas. Entre los lenguajes que podr´ıamos emplear tenemos
C++, Java o Scala. El primero, C++, es sin duda el m á s eficiente, pero
dispone de pocas librer´ıas disponibles para el procesado de datos. Tanto
Java como Scala son dos opciones muy similares y muy empleadas en
el procesado de datos. Nos decantaremos por Java por la gran cantidad
de programadores disponibles en el mercado.
d) Fuente de datos. Los dispositivos encargados de capturar datos son
aparatos con serias limitaciones en cuanto a procesador y memoria. Es
por esto que un lenguaje como C++ caracterizado por aprovechar al
máximo el hardware disponible se convierte en una solución ideal.
121
b) Bamboo. Es el sistema de integración continua de Atlassian, creador de
JIRA. Es similar en prestaciones a Jenkins y al formar parte de la suite
de Atlassian nos permite integrarlo con JIRA con mayor facilidad. A
diferencia de Jenkins es una herramienta de pago. Será nuestra elección
por las facilidades que tendremos para integrarlo con JIRA.
122
5.4.4. Implementación CMMI y SCRUM: Proceso de desa-
rrollo.
Como ya hemos mencionado la gestión del proyecto tendrá tanto una vertiente
clásica como una m á s ágil. La gestión clásica aborda los aspectos de m á s alto nivel
del proyecto, cómo resultado podremos descomponer las actividades a realizar en
la estructura de descomposición de tareas conocida como WBS, ver figura 5.2.
123
WBS Proyecto Software
2.1 Requisitos de 3.1 Interfaz usuario 4.1 Equipo 5.1 Pruebas 6.1 Documentaci´on 7.1 Gesti´on de
1.1 Planificaci´on
alto nivel frontend captura datos funcionales desarrollo despliegue
1.2 Gesti´on de 2.2 Elementos 3.2 Interfaz usuario 4.2 Equipo 5.2 Pruebas 6.2 Documentaci´on 7.2 Despliegue
plazos y costes Reutilizables backend comunicaciones rendimiento instalaci´on pruebas y QA
1.3 Gesti´on del 2.3 Arquitectura 3.3 M´odulo 5.3 Pruebas 6.3 Manuales 7.3 Despliegue
124
1.6 Gesti´on de
recursos
1.7 Gesti´on de
calidad
Iteración Inicial
Iteración de desarrollo
125
de código, lo que se suele denominar commitear. Todo commit al repositorio va
acompañado de un mensaje. El repositorio (git en nuestro caso) verificará que el
comentario se ajusta a un patrón espec´ıfico: “[CODIGOSUBTASK][REQ-XXXX]
texto”, de esta forma JIRA es capaz de relacionar el código fuente que implemen-
ta una subtask de una historia de usuario concreta. As´ı es como satisfacemos el
SP1.4 “mantener la trazabilidad bidireccional de los requisitos” del á rea de proce-
so REQM. Por último, los cambios de requisitos se verán registrados en el propio
registro de la issue, satisfaciendo el SP 1.3 de REQM.
Integración continua
Despliegue
126
complejos o en producción. Estas versiones serán internas al equipo de desarrollo,
el cliente recibirá las versiones fruto de un sprint completo, las cuales seguirán un
esquema de numerado predefinido.
127
Capı́tulo 6
6.1. Conclusiones
En este TFM hemos abordado dos temas de gran importante dentro de la in-
genier´ıa de software. Por un lado, hemos visto en q ué consisten las metodolog´ıas
ágiles de desarrollo y q ué las hace tan diferentes de los métodos de desarrollo tra-
dicionales. Por otra parte, hemos puesto nuestra atención en el proceso software
y hemos visto cómo el marco de trabajo CMMI podr´ıa ser una herramienta ú til
para ayudarnos a conseguir que los proyectos software que lleva a cabo una or-
ganización ganen en capacidad y madurez. Si nos hubiéramos deteniendo en este
punto, el TFM pasar´ıa por ser un mero trabajo descriptivo del estado del arte de
las metodolog´ıas ágiles y CMMI. Sin embargo, hemos visto cómo es posible que al
mismo tiempo que el proceso software se adhiere a la filosof´ıa formal de CMMI,
los trabajos de desarrollo puedan llevarse a cabo mediante el empleo de filosof´ıas
ágiles.
128
con las expectativas del cliente. Sin embargo, a diferencia de otros tipos de
proyectos el software es un producto intelectual por lo que disponer de un
personal lo suficientemente capacitado contribuirá en gran medida a alcanzar
el éxito.
129
crecido, pero se echa en faltan ciertos aspectos, como cuantificar el impacto que
ha tenido la adopción.
130
Bibliografı́a
[1] Andrew Hunt. The pragmatic programmer. Pearson Education India, 2000.
[2] Project Management Institute. A Guide to the Project Management Body of
Knowledge: PMBOK(R) Guide. 5th. Project Management Institute, 2013.
ISBN: 1935589679, 9781935589679.
[3] EN Iso. ‹9000: 2005 ›. En: Quality management systems-Fundamentals and
vocabulary (ISO 9000: 2005) (2005), pág. 1.
[4] CMMI Product Team. CMMI for Development, Version 1.3 (CMU/SEI-
2010-TR-033). Software Engineering Institute. 2010.
[5] International Project Management Association, Gilles Caupin y col. IPMA
competence baseline: ICB; Version 3.0. Internat. Project Management As-
sociation, 2006.
[6] AN ISO. ‹21500: 2012 ›. En: Guidance on project management (2012).
[7] Edsger W Dijkstra. ‹The humble programmer ›. En: Communications of the
ACM 15.10 (1972), págs. 859-866.
[8] Pierre Bourque, Richard E Fairley y col. Guide to the software engineering
body of knowledge (SWEBOK (R)): Version 3.0. IEEE Computer Society
Press, 2014.
[9] James Johnson y col. ‹The chaos report ›. En: Standishgroup. com (1994).
[10] Magne Jørgensen y Kjetil Moløkken-Østvold. ‹How large are software cost
overruns? A review of the 1994 CHAOS report ›. En: Information and Soft-
ware Technology 48.4 (2006), págs. 297-301.
[11] Kjetil Molokken y Magen Jorgensen. ‹A review of software surveys on soft-
ware effort estimation ›. En: Empirical Software Engineering, 2003. ISESE
2003. Proceedings. 2003 International Symposium on. IEEE. 2003, págs. 223-230.
[12] J Laurenz Eveleens y Chris Verhoef. ‹The rise and fall of the chaos report
figures ›. En: IEEE software 27.1 (2010), págs. 30-36.
[13] Barry W. Boehm. ‹Software Engineering-as It is ›. En: Proceedings of the
4th International Conference on Software Engineering. ICSE ’79. Munich,
Germany: IEEE Press, 1979, págs. 11-21. URL: http : / / dl . acm . org /
citation.cfm?id=800091.802916.
[14] Ian Sommerville. ‹Software Engineering. International computer science se-
ries ›. En: ed: Addison Wesley (2004).
[15] Richard H Thayer, Sidney C Bailin y M Dorfman. Software requirements
engineerings. IEEE Computer Society Press, 1997.
131
[16] Barry Boehm. ‹Software risk management ›. En: ESEC’89 (1989), págs. 1-19.
[17] Vincent Massol y Ted Husted. JUnit in action. Manning Publications Co.,
2003.
[18] Winston W Royce y col. ‹Managing the development of large software sys-
tems ›. En: proceedings of IEEE WESCON. Vol. 26. 8. Los Angeles. 1970,
págs. 1-9.
[19] Herbert D Benington. ‹Production of large computer programs ›. En: Annals
of the History of Computing 5.4 (1983), págs. 350-361.
[20] Thomas E Bell y Thomas A Thayer. ‹Software requirements: Are they really
a problem? › En: Proceedings of the 2nd international conference on Software
engineering. IEEE Computer Society Press. 1976, págs. 61-68.
[21] Gene Kim. ‹DevOps distilled, Part 1: The three underlying principles ›. En:
(2013). URL: https : / / www . ibm . com / developerworks / library / se -
devops/part1/part1-pdf.pdf.
[22] Barry Boehm. ‹A spiral model of software development and enhancement ›.
En: ACM SIGSOFT Software Engineering Notes 11.4 (1986), págs. 14-24.
[23] Barry W. Boehm. ‹A spiral model of software development and enhance-
ment ›. En: Computer 21.5 (1988), págs. 61-72.
[24] Per Kroll y Philippe Kruchten. The rational unified process made easy: a
practitioner’s guide to the RUP. Addison-Wesley Professional, 2003.
[25] UML Revision Taskforce. ‹OMG UML Specification v. 1.4 ›. En: Object Ma-
nagement Group (2001).
[26] Ivar Jacobson y col. The unified software development process. Vol. 1. Addison-
wesley Reading, 1999.
[27] Scott Ambler, John Nalbone y Michael Vizdos. Enterprise unified process,
the: extending the rational unified process. Prentice Hall Press, 2005.
[28] Harlan D Mills, Michael Dyer y Richard C Linger. ‹Cleanroom software
engineering ›. En: IEEE Software 4.5 (1987), pág. 19.
[29] Jane Radatz, Myrna Olson y Stuart Campbell. ‹Mil-std-498 ›. En: Crosstalk,
the Journal of Defense Software Engineering 8.2 (1995), págs. 2-5.
[30] Leanna Rierson. Developing safety-critical software: a practical guide for
aviation software and DO-178C compliance. CRC Press, 2013.
[31] Craig Larman y Victor R Basili. ‹Iterative and incremental developments.
a brief history ›. En: Computer 36.6 (2003), págs. 47-56.
[32] Ernest A Edmonds. ‹A process for the development of software for non-
technical users as an adaptive system ›. En: General Systems 19.215C18
(1974), pág. 8.
[33] Justus D Naumann y A Milton Jenkins. ‹Prototyping: the new paradigm
for systems development ›. En: Mis Quarterly (1982), págs. 29-44.
[34] James Martin. Rapid application development. Macmillan Publishing Co.,
Inc., 1991.
[35] K. Beck y col. The Agile Manifesto. Inf. téc. The Agile Alliance, 2001.
132
[36] A Cockburn y col. ‹The Declaration of Interdependence for Modern Manage-
ment or DOI ›. En: Online: http://alistair. cockburn. us/The+ declaration+
of+ interdependence+ for+ modern+ management+ or+ DOI (2005).
[37] RC Martin y col. ‹Manifesto for software craftsmanship ›. En: Online: http://manifesto.
softwarecraftsmanship. org (10.10. 2015) (2009).
[38] Ken Schwaber y Jeff Sutherland. ‹The scrum guide ›. En: Scrum Alliance
21 (2011).
[39] Scott Ambler. Agile modeling: effective practices for extreme programming
and the unified process. John Wiley & Sons, 2002.
[40] Jim Highsmith. Adaptive software development: a collaborative approach to
managing complex systems. Addison-Wesley, 2013.
[41] Steve R Palmer y Mac Felsing. A practical guide to feature-driven develop-
ment. Pearson Education, 2001.
[42] Kent Beck. Extreme programming explained: embrace change. addison-wesley
professional, 2000.
[43] Mary Poppendieck y Tom Poppendieck. Lean Software Development: An
Agile Toolkit: An Agile Toolkit. Addison-Wesley, 2003.
[44] H Takeuchi e I Nonaka. ‹16 The new new product development game ›. En:
Japanese Business: Part 1, Classics Part 2, Japanese management Vol. 2:
Part 1, Manufacturing and production Part 2, Automotive industry Vol. 3:
Part 1, Banking and finance Part 2, Corporate strategy and inter-organizational
relationships Vol. 4: Part 1, Japanese management overseas Part 2, Inno-
vation and learning 64.1 (1998), p ág. 321.
[45] Ken Schwaber. ‹Scrum development process ›. En: Business Object Design
and Implementation. Springer, 1997, págs. 117-134.
[46] Ken Schwaber y Mike Beedle. Agile software development with Scrum. Vol. 1.
Prentice Hall Upper Saddle River, 2002.
[47] David J Anderson. Kanban: successful evolutionary change for your techno-
logy business. Blue Hole Press, 2010.
[48] David J Anderson y Dragos Dumitriu. ‹From Worst to Best in 9 Months ›.
En: TOC ICO World Conference. 2005.
[49] Corey Ladas. ‹Scrumban ›. En: Lean Software Engineering-Essays on the
Continuous Delivery of High Quality Information Systems (2008).
[50] Mark Paulk. ‹Capability maturity model for software ›. En: Encyclopedia of
Software Engineering (1993).
[51] Mark C Paulk y col. ‹Capability maturity model, version 1.1 ›. En: IEEE
software 10.4 (1993), págs. 18-27.
[52] Bill Curtis, Bill Hefley y Sally Miller. People capability maturity model (P-
CMM) version 2.0. Inf. téc. DTIC Document, 2009.
[53] Roger Bate y col. A systems engineering capability maturity model, Version
1.1. Inf. téc. DTIC Document, 1995.
133
[54] Alec Dorling. ‹SPICE: Software process improvement and capability deter-
mination ›. En: Software Quality Journal 2.4 (1993), págs. 209-224.
[55] Pasi Kuvaja y Adriana Bicego. ‹BOOTSTRAP—a European assessment
methodology ›. En: Software Quality Journal 3.3 (1994), págs. 117-127.
[56] SEI. Capability Maturity Model Integration, version 1.1. Inf. téc. CMU/SEI-
2002-TR-011. Pittsburgh, Carnegie Mellon University: Software Engineering
Institute, 2002. URL: http://www.sei.cmu.edu/cmmi/.
[57] CMMI Product Team. ‹CMMI for Development, version 1.2 ›. En: (2006).
[58] CMMI Product Team. CMMI for Services Version 1.3. Lulu. com, 2011.
[59] CMMI Product Team. CMMI for Acquisition Version 1.3. Lulu. com, 2011.
[60] W Edwards Deming. ‹Out of the crisis, Massachusetts Institute of Tech-
nology ›. En: Center for advanced engineering study, Cambridge, MA 510
(1986).
[61] Philip B Crosby. Quality is free: The art of making quality certain. Signet,
1980.
[62] Joseph M Juran y col. Juran on planning for quality. Free Press New York,
1988.
[63] Victor R Basili y H Dieter Rombach. ‹The TAME project: Towards improvement-
oriented software environments ›. En: IEEE Transactions on software engi-
neering 14.6 (1988), págs. 758-773.
[64] Victor R Basili. Software modeling and measurement: the Goal/Question/Metric
paradigm. Inf. téc. 1992.
[65] Kevin Pulford, Annie Kuntzmann-Combelles y Stephen Shirlaw. A quantita-
tive approach to software management: the AMI handbook. Addison-Wesley
Longman Publishing Co., Inc., 1995.
[66] Stephen Viller y Ian Sommerville. ‹Ethnographically informed analysis for
software engineers ›. En: International Journal of Human-Computer Studies
53.1 (2000), págs. 169-196.
[67] David Martin y col. ‹’Good’organisational reasons for’Bad’software testing:
An ethnographic study of testing in a small software company ›. En: Procee-
dings of the 29th international conference on Software Engineering. IEEE
Computer Society. 2007, pags. 602-611.
[68] John Hughes y col. ‹Moving out from the control room: ethnography in
system design ›. En: Proceedings of the 1994 ACM conference on Computer
supported cooperative work. ACM. 1994, págs. 429-439.
[69] Business Process Model. ‹Notation (BPMN) version 2.0 ›. En: OMG Speci-
fication, Object Management Group (2011).
[70] Ian Sommerville y Pete Sawyer. Requirements engineering: a good practice
guide. John Wiley & Sons, Inc., 1997.
[71] Hillel Glazer y col. ‹CMMI or agile: why not embrace both! › En: (2008).
[72] David J Anderson. ‹Stretching agile to fit CMMI level 3-the story of creating
MSF for CMMI/spl reg/process improvement at Microsoft corporation ›. En:
Agile Conference, 2005. Proceedings. IEEE. 2005, págs. 193-201.
134
[73] Michael A Cusumano y Richard W Selby. Microsoft secrets. 1997.
[74] Joseph P Elm y col. ‹A Survey of Systems Engineering Effectiveness-Initial
Results ›. En: (2008).
[75] Jessica Diaz, Juan Garbajosa y Jose A Calvo-Manzano. ‹Mapping CMMI
level 2 to scrum practices: An experience report ›. En: European Conference
on Software Process Improvement. Springer. 2009, págs. 93-104.
[76] CJ Salinas, Maria J Escalona y Manuel Mejias. ‹A scrum-based approach to
CMMI maturity level 2 in web development environments ›. En: Proceedings
of the 14th International Conference on Information Integration and Web-
based Applications & Services. ACM. 2012, págs. 282-285.
[77] KL- ukasiewicz y J Miler. ‹Improving agility and discipline of software deve-
lopment with the Scrum and CMMI ›. En: IET software 6.5 (2012), págs. 416-422.
[78] Taghi Javdani Gandomani y col. ‹Compatibility of agile software develop-
ment methods and CMMI ›. En: Indian Journal of Science and Technology
6.8 (2013), págs. 5089-5094.
[79] Marco Palomino y col. ‹Agile Practices Adoption in CMMI Organizations:
A Systematic Literature Review ›. En: International Conference on Software
Process Improvement. Springer. 2016, págs. 57-67.
[80] Philipp Diebold, Thomas Zehler y Dominik Richter. ‹How Do Agile Practi-
ces Support Automotive SPICE Compliance? › En: (2017).
[81] Luigi Benedicenti y col. ‹Improved Agile: A Customized Scrum Process for
Project Management in Defense and Security ›. En: Software Project Mana-
gement for Distributed Computing. Springer, 2017, págs. 289-314.
[82] Carlos Joaquin Torrecilla Salinas. ‹A mature agile approach in web enginee-
ring contexts ›. Tesis doct. Universidad de Sevilla, 2017.
[83] Carlos J Torrecilla-Salinas y col. ‹An Agile approach to CMMI-DEV levels
4 and 5 in Web development ›. En: (2016).
[84] Gabriela Arauz Ortiz y col. ‹Integrating Agile Methods into a Level 5
CMMI-DEV Organization: a Case Study ›. En: IEEE Latin America Transac-
tions 14.3 (2016), págs. 1440-1446.
135