Grupo Linuxero del Bajío

Prácticas y métodos para mejorar el desarrollo de Proyectos de Software 1ra parte

jacob israel cervantes luevano

Con la incertidumbre del desarrollo de software que se vive en el trabajo pues me dedique a investigar y estudiar como llevar a cabo algunas metodologías, formas , caminos para solucionar los problemas que surgen mientras se lleva a cabo el proceso de desarrollo de software el cual se vive el día de hoy, y no sólo en mi trabajo sino en todos lados donde se desarrolle software de aplicaciones a la medida, y de propósito general … entonces ….

El archivo en formato PDF lo puedes descargar desde este enlace http://www.ministeriosjm.com/area51/~jacob/docs/articles/ingsoftwarecmmcmmi_1.pdf

Por supuesto que lo que voy a contarles se puede implementar tanto en software libre como en software privado (no ético), pero como son varias áreas de conocimiento pues voy a ir describiendo una por cada post que realice, así que el primer tópico es sobre CMM - CMMI:

Cuando vi por primera vez esto dije: ¡Oh Dios mío! Esto va estar super aburrido pero esto tiene mucha pinta y como diría mi buen chucho garcia: “¡está con ganas!”

CMM-CMMI

En mi anterior trabajo escuche que la institución queria certificarse en el modelo de calidad como ISO 9000, ahora me doy cuenta que a muchas empresas realmente les importa muy poco la calidad de lo que producen sino mas bien tener la certificación y poner el sello en su publicidad.

El Departamento de Defensa de los Estados Unidos de América tenía muchos problemas con el software que encargaba a desarrollar a otras empresas, los presupuestos se disparaban, las fechas se alargaban más y más.¿En dónde he visto esto? ¿Quién no se ha encontrado con este tipo de problemas si ha trabajado con una empresa de software?

Como esta situación les parecía intolerable convocó un comité de expertos para que solucionase estos problemas, la solución que se encontró fue la de crear un instituto de la ingeniería de software, dedicado exclusivamente a los problemas de software, y a ayudar al Departamento de Defensa.

Se convocó un concurso público y la Universidad Carnegie Mellon ganó el concurso en 1985, creando el SEI.

¿Qué es el SEI? El SEI (Software Engineering Institute) es el instituto que creó y mantiene el modelo de calidad CMM-CMMI.

¿Qué es el CMM-CMMI?

Es un modelo de calidad del software que clasifica a las empresas, organizaciones, dependencias, … etc., en niveles de madurez. Estos niveles sirven para conocer la madurez de los procesos que se realizan para producir software.

Niveles CMM-CMMI Los niveles son 5:

  1. Inicial o Nivel 1 CMM-CMMI. Este es el nivel donde están todas las empresas, organizaciones que no tienen procesos. Los presupuestos se disparan, no es posible entregar el proyecto en fechas, tienes que trabajar en vacaciones, fines de semana para avanzar en el proyecto. No hay control sobre el estado del proyecto, el desarrollo del proyecto es completamente opaco, no sabes lo que pasa en él.

Es el típico proyecto en el que pasa lo siguiente:

Jefe: ¿Cómo va el proyecto? ProgramadorX, Diseñador(lo que sea): Bien , bien.

Dos semanas después….

Jefe:¿Cómo va el proyecto? ProgramadorX, Diseñador(lo que sea): Bien, bien.

1 mes después…..

Jefe: El lunes hay que entregar el proyecto ProgramadorX, Diseñador(lo que sea): El lunessss!!!?? uttaa,je, Todavía falta mucho!!!! Jefe: ¿Qué? ¿Cómo? Me dijiste que el proyecto iba bien!!!! Quedamos en algo!!!!!Arréglatelas como quieras, pero el proyecto tiene que estar terminado para el lunes.

Si no sabes el tamaño del proyecto y no sabes cuanto llevas hecho, nunca sabrás cuando vas a terminar.

  1. Repetible o Nivel 2 CMM-CMMI. Aquí el éxito de los resultados se puede repetir, la diferencia entre este nivel y el anterior es que el proyecto es gestionado y controlado durante el desarrollo del mismo. El desarrollo no es opaco y se puede saber el estado del proyecto en todo momento.

Los procesos que hay que implantar para alcanzar este nivel son:

* Gestión de requisitos
* Planificación de proyectos
* Seguimiento y control de proyectos
* Gestión de proveedores
* Aseguramiento de la calidad
* Gestión de la configuración

3.Definido o Nivel 3 CMM-CMMI. Alcanzar este nivel significa que la forma de desarrollar proyectos tanto la gestión como la ingeniería esta definida, por definida quiere decir que esta establecida, documentada y que existen métricas(obtención de datos objetivos) para la consecución de objetivos concretos.

Los procesos que hay que implantar para alcanzar este nivel son:

* Desarrollo de requisitos
* Solución Técnica
* Integración del producto
* Verificación
* Validación
* Desarrollo y mejora de los procesos de la organización
* Definición de los procesos de la organización
* Planificación de la formación
* Gestión de riesgos
* Análisis y resolución de toma de decisiones

La mayoría de las empresas u organizaciones que llegan al nivel 3 para aquí, ya que es un nivel que proporciona muchos beneficios y no ven la necesidad de ir más allá porque tienen cubiertas la mayoría de sus necesidades.

  1. Cuantitavemente Gestionado o Nivel 4 CMM-CMMI. Los proyectos usan objetivos medibles para alcanzar las necesidades de los clientes y la organización. Se usan métricas para gestionar la organización.

Los procesos que hay implantar para que alcanzar en este nivel son:

* Gestión cuantitativa de proyectos
* Mejora de los procesos de la organización
  1. Optimizado o Nivel 5 CMM-CMMI. Los procesos de los proyectos y de la organización están orientados a la mejora de las actividades. Mejoras incrementales e innovadoras de los procesos que mediante métricas son identificadas, evaluadas y puestas en práctica.

Los procesos que hay que implantar para alcanzar este nivel son:

* Innovación organizacional
* Análisis y resolución de las causas

A grandes rasgos he intentado introducir el modelo de calidad del software CMM-CMMI para aquella gente que no tiene idea de la gestión de un proyecto y que se encuentre por primera vez con el modelo. La implantación de un modelo de estas características es un proceso largo y costoso (tiempo de esfuerzo). Aún así el beneficio obtenido para la empresa u organización es mucho mayor que lo invertido.

nota original: http://www.ingenierosoftware.com/