MCS_home
Portal de inicio al modelo MCS
Relaciones
Descripción principal

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.