1. Introducción
El Modelo de Calidad de Software (MCS) es una herramienta concebida para guiar a las instituciones a la mejora
continua, con el propósito de que fortalezcan sus procesos y puedan brindar productos y servicios de alto nivel a los
ciudadanos, con el adecuado uso de las tecnologías.
La aplicación del MCS busca fortalecer las capacidades de las personas y las organizaciones, particularmente en los
procesos y actividades vinculadas a la construcción y mantenimiento de software. Este modelo se fundamenta en el ciclo
de vida del software, desde el nacimiento de la idea, la cual es posteriormente conceptualizada y refinada, hasta
lograr construir y poner en operación una solución tecnológica, brindando algunas pautas aplicables a su mantenimiento.
El MCS incluye los diferentes aspectos vinculados a la ingeniería de software, haciendo foco en los aspectos mínimos y
necesarios de aseguramiento de la calidad a tener en cuenta. Desde su concepción se intenta que sea genérico para poder
se aplicado a diversas realidades (diferentes tecnologías y lenguajes de programación, diferentes tipos de productos,
diferentes organizaciones, etc), teniendo en cuenta las particularidades del Estado uruguayo. Está compuesto por 4
componentes principales:
-
Dimensión del modelo: se compone de un conjunto de actividades que se asocian a productos de
trabajo que son necesarios para ejecutar dicha actividad (entrada) o resultado de la ejecución de las mismas
(salida), a su vez se vinculan con los roles sugeridos para llevar acabo dichas actividades.
-
Dimensión del tiempo: brinda el orden de ejecución de las actividades del ciclo de vida de la
construcción del software. Este se presenta con dos enfoque distintos, uno dirigido por planes (MCS-OpenUp) y otro ágil (MCS-Scrum). El
ciclo de vida se define por medio de iteraciones y/o fases. También se proponen un conjunto de indicadores
para poder evaluar su aplicación y la calidad de los productos generados.
-
Marco de competencias: describe las competencias necesarias para definir los roles que llevaran a
cabo las actividades.
-
Modelo de madurez: brinda una guía sobre un orden natural para los distintos aspectos a
trabajar dentro del proceso de desarrollo de software.
Dado que el MCS es un modelo, el mismo puede ser adaptado para ajustarse a cada contexto particular. Lo importante es
que la organización cuente con procesos descritos los cuales se apliquen y se tengan en constante evolución.
Por más detalles de cómo navegar en el modelo, puede consultar la siguiente Guía para el uso del modelo MCS.
2. Modelos de proceso para la construcción de soluciones tecnológicas
El MCS cuenta con dos enfoques para la construcción de soluciones tecnológicas:
Ambos guían en la construcción de soluciones tecnológicas tomando en cuenta diferentes contextos de partida (tipo de
proyecto, tipo de equipo, tipo de solución a construir). Por más información, consultar los detalles de cada ciclo de
vida siguiendo el link.
3. Calidad de Software
Las organizaciones en su afán de proveer productos y servicios a los ciudadanos se ven en la necesidad de construir
soluciones tecnológicas que fortalezcan sus procesos de gestión. Los ciudadanos son cada día más exigentes y demandan
frecuentemente el uso de las tecnologías en sus relaciones con el gobierno, y son críticos naturales de la forma en que
dichas tecnologías son aplicadas en el común uso de sus relaciones. La forma en que se conciba y construya una solución
tecnológica puede brindar seguridad, agilidad, confianza o entorpecer la gestión de productos y servicios que se
proveen a los ciudadanos. En caso de entorpecer generará incertidumbre, desconfianza y descontento.
Las soluciones tecnológicas continúan brindado resultados satisfactorios a la hora de proveer productos y servicios,
haciéndose cada día más necesarias y comunes entre los ciudadanos, es por esto que la calidad de software juega un
papel muy importante en la construcción de las soluciones tecnológicas ayudando en la definición de criterios
necesarios para la obtención de soluciones aceptables y proveyendo una visión de organización para los proyectos de
software en función a asegurar que los criterios se cumplan y de ser posible superen lo esperado por todos.
Un poco para comprender el significado que tiene la calidad del software, el estándar internacional IEEE 610 la define
como “el grado en el cual un componente, sistema o proceso satisface requisitos especificados y/o necesidades y
expectativas del usuario/cliente”. En este sentido, cobra significado ver involucrada la calidad del software desde la
concepción de la idea y no desde las pruebas de software como comúnmente se le atribuye.
El cronómetro de satisfacción de los ciudadanos se mantendrá en verde en la medida que nuestros esfuerzos se consoliden
de forma positiva, construyendo soluciones tecnológicas que brinden respuestas satisfactorias, que sean percibidas como
fáciles e intuitivas al usar, y realmente ayuden a conseguir rápidamente lo que se necesita.
3.1 ¿Cómo se gestiona la calidad en el MCS?
Hay dos aspectos de calidad a tener en cuenta: la calidad del proceso y la calidad del
producto de software (o solución de software).
La calidad del proceso se gestiona a través de la adopción de las actividades propuestas por el MCS y
su adaptación al conexto particular del organismo y del proyecto.
La calidad de la solución de software, es abordada de forma diferente en cada uno de los enfoques
propuestos: MCS-OpenUp y MCS-Scrum. Cada
enfoque provee actividades específicas para la gestión de la calidad en diferentes momentos del ciclo de vida. En
general son las actividades pertenecientes a la disciplina de Verificación
y Validación. Para conocer los detalles de estas actividades, revisar la descripción de cada uno de los modelos.
4. Niveles de madurez
El nivel de Madurez dentro del MCS se define como el cumplimiento y logro (desarrollo) de la adopción de
ciertas actividades dentro de una organización. Para el modelo de calidad de software se asumen cuatro (4) Niveles de madurez, es decir, cuatro (4) grados de cumplimiento de las
actividades que componen los ciclos de vida. Se parte de que el nivel de madurez 1 es el grado menor de
desarrollo. Como referencia para la definición de los niveles de madurez, se uso el estándar internacional CMMI con
algunas adaptaciones para considerar variantes y premisas propias del contexto de las organizaciones uruguayas. Los
niveles de madurez definidos son:
En la construcción de software es muy importante tener siempre en cuenta todos los aspectos que hacen posible obtener
un software con un alto grado de calidad. Para ello proponemos diferentes niveles de madurez en los cuales se
desarrollan dichos aspectos. En cada nivel se agrupa una serie de aspectos sobre los cuales hacer foco. El objetivo de
ello es brindar cierto orden en la introducción de los distintos aspectos.
1. Nivel inicial de madurez: Los procesos son ad-hoc y no tienen un esquema formal. No
proporciona un entorno estable para dar soporte a los procesos. El éxito depende de la competencia y disposición del
personal de la organización y no del uso de procesos probados. Una misma persona podría estar cumpliendo varios roles
al mismo tiempo. La calidad de los productos se centra en la verificación y validación de los requerimientos y
necesidades del negocio con los referentes adecuados y son tenidas en cuenta para la aceptación del producto entregado.
2. Nivel gestionado de madurez: La organización asegura que sus proyectos planifican
los procesos y los ejecutan de acuerdo a formas específicamente definidas para ellos; los proyectos emplean personal
con habilidades adecuadas, dispone de recursos necesarios para producir resultados controlados; involucran a los
stakeholders relevantes; se monitorean, controlan y revisan; y se evalúan en cuanto a su adherencia a sus descripciones
de proceso. Incorpora los aspectos de calidad de nivel 1 para los productos y se consideran los aspectos técnicos y de
integración.
3. Nivel institucionalizado de madurez: Los procesos son bien caracterizados y
comprendidos, y se describen en políticas, estándares, procedimientos, herramientas y métodos. El conjunto de procesos
estándar de la organización son comunicados y utilizados de acuerdo a las adaptaciones necesarias para cada proyecto.
Se establece y mejora a lo largo del tiempo. La calidad de los productos cumple los criterios de nivel 2 y comienza a
asociarse al cumplimiento de los procesos de la organización. Se reutilizan activos y respetan estándares.
4. Nivel optimizado de madurez: Mejora continua del rendimiento de procesos mediante
mejoras incrementales e innovadoras de proceso y tecnologías. La organización y los proyectos establecen objetivos
cualitativos y cuantitativos en cuanto al rendimiento para calidad y procesos, y los utilizan como criterios en la
gestión. Los objetivos cuantitativos se basan en las necesidades del cliente, usuarios finales, organización e
implementadores del proceso. El rendimiento de calidad y del proceso se comprende en términos estadísticos y se
gestiona durante la vida de los procesos. Los objetivos cualitativos y cuantitativos para una organización se
establecen y revisan continuamente para reflejar el cambio a los objetivos del negocio, y se utilizan como criterios
para gestionar la mejora de procesos.
5. Marco de Competencias
En numerosas oportunidades nos encontramos con situaciones donde se cree que un profesional de TI debe ser conocedor y
experto en todo lo que refiere a las tecnologías. Incluso, se confunden las capacidades necesarias para la construcción
de nuevas soluciones tecnológicas con las capacidades para mantener operativa y en buen funcionamiento una solución en
ambiente de producción.
Nuestro marco de Competencias tiene su foco en proyectar las competencias necesarias para los
diferentes roles que participan en los procesos de evolución y mantenimiento de software dentro de las áreas de TI. Se
espera que las instituciones sean quienes asignen a sus roles y perfiles dichas competencias y surjan planes de acción
para el desarrollo y fortalecimiento del talento humano en función a las necesidades y al contexto.
6. Indicadores
Este MCS promueve el uso de Indicadores para la mejora de los procesos y los productos de software.
Cualificar y cuantificar aspectos que contribuyan con el resultado final en la construcción de soluciones tecnológicas
provee información valiosa que ayuda a mejorar los procesos de desarrollo de software, facilitará la toma de decisiones
y guiará de forma más precisa a los procesos.
Existen muchos indicadores que pueden usarse en proyectos de software. El MCS muestra algunos indicadores básicos y
otros adicionales que se consideran de importancia y podrían ser de uso común a diferentes tipos de proyectos
usando diversas metodologías.
Por más detalles, consultar los Indicadores propuestos por el MCS.
|