"En Dios confiamos, los demás denme datos" --Williams Edwards Deming
La gran mayoría de empresas o personas que se dedican al desarrollo de software, no utilizan ningún proceso en el desarrollo del software, algunos confían en sus capacidades tecnológicas o en sus programadores estrella y se limitan a un simple "vamos o bien" o "estamos atrasados, para controlar el desarrollo de un proyecto, esto no significa que los productos sean malos o que el proyecto este destinado al fracaso, pero si aumenta la probabilidad que esto ocurra.
A esto se refería Deming, con que necesitamos datos para poder afirmar, que tanto han variado nuestros productos de software o los tiempos de implementacion y para poder aporta estos datos necesitamos procesos, estos procesos, el personal, la tecnología, la empresa tienen que cumplir ciertos parámetros y estándares, los cuales están normandos por ejemplo por: ISO 9000:1 o ISO 12207 o ISO14.
Entonces ¿por que estandarizar procesos? en el desarrollo de software
1. La complejidad del software, en un proyecto de software interviene una gran cantidad de personas, los dueños del proyecto, los usuarios, uno o mas programadores, etc. Esto nos lleva a pensar que sin un correcto manejo del proceso, podríamos en algún determinado momento perder el control del mismo y mas aquellas empresas que se dedican directamente al desarrollo de sistemas que administran varios proyectos pueden perder la estandarización entre cada uno de los proyectos lo cual generaría variabilidad y para Deming falta de calidad
La gran mayoría de empresas o personas que se dedican al desarrollo de software, no utilizan ningún proceso en el desarrollo del software, algunos confían en sus capacidades tecnológicas o en sus programadores estrella y se limitan a un simple "vamos o bien" o "estamos atrasados, para controlar el desarrollo de un proyecto, esto no significa que los productos sean malos o que el proyecto este destinado al fracaso, pero si aumenta la probabilidad que esto ocurra.
A esto se refería Deming, con que necesitamos datos para poder afirmar, que tanto han variado nuestros productos de software o los tiempos de implementacion y para poder aporta estos datos necesitamos procesos, estos procesos, el personal, la tecnología, la empresa tienen que cumplir ciertos parámetros y estándares, los cuales están normandos por ejemplo por: ISO 9000:1 o ISO 12207 o ISO14.
Entonces ¿por que estandarizar procesos? en el desarrollo de software
1. La complejidad del software, en un proyecto de software interviene una gran cantidad de personas, los dueños del proyecto, los usuarios, uno o mas programadores, etc. Esto nos lleva a pensar que sin un correcto manejo del proceso, podríamos en algún determinado momento perder el control del mismo y mas aquellas empresas que se dedican directamente al desarrollo de sistemas que administran varios proyectos pueden perder la estandarización entre cada uno de los proyectos lo cual generaría variabilidad y para Deming falta de calidad
2. El
software es
parte de los productos o servicios: y por lo tanto el tener definido un proceso asegura que el producto o servicio cumplirá con los estándares de la empresa y creara satisfacción en los usuarios.
Que puede provocar el no estandarizar procesos
Grandes fracasos.
-En el 2004, 71% de los proyectos de
software fracasaron.
- Millones de dolares en perdidas
-Millones de usuarios insatisfechos
con el software que manejan como su herramienta principal de trabajo.
Las
tres principales
razones por las que puede fallar un proceso de software son:
-El personal no se involucra en
el control de calidad
-La alta gerencia
no ha adquirido
la importancia de un buen proceso.
-Las practicas adquiridas
son inadecuadas.
Aumentar la calidad
-Reducir la variación
: para Deming calidad significaba que dos productos fueran iguales, en software mantener productos que se hayan desarrollado con los mismos procesos significa disminución en el tiempo de búsqueda de errores y garantizar que el producto tiene muy pocas fallas o que estas pueden ser fácilmente superadas.
En las organizaciones influyen tres dimensiones
Las personas: estas cambian a través de su vida, adquieren nuevos conocimientos y emociones lo que provoca rotación en los puestos de trabajo
Las herramientas: estas cambian constantemente se dice que cada 10 años hay un salto importante de tecnología.
Los procesos: son los que mantienen unido el sistema y sobre los cuales se debe enfocar el funcionamiento de la organización, a estos se deben adaptar las personas y herramientas ya que estos les indican que y como deben realizar sus funciones.
Modelo de madurez: es una
colección estructurada de elementos que describe características de un proceso efectivo, nos dice que características debe tener un proceso para que se considere efectivo.
CMM: es un
modelo de evaluación de los procesos dentro de una organización.
Establece
un conjunto de practicas o procesos clave
Los
procesos se agrupan en áreas clave de proceso KPA
-Las buenas practicas para
cada área de proceso son:
-Definidas en un procedimiento documentado
-Provistas (La organización) de los medios y formación necesarios
-Ejecutadas de un modo sistemático, universal y uniforme
(institucionalizadas)
-Medidas
-Verificadas
Las áreas clave de proceso se agrupan en 5 niveles de madurez:
5: Optimizado: los procesos están enfocados a la mejora constante produce innovación
4: Administrado: el proceso esta medido y bien controlado, se tienen métricas para cuantificar el estado de alguna tarea y cuanto se espera en recursos para finalizarla se tiene total control de los procesos y se le puede indicar con certeza al cliente el estado del producto.
3: Definido: Se tienen procesos institucionalizados en la organización, la mayoría de las empresas se quedan en este nivel para evitar incurrir en mas gastos ya que es equivalente a una certificación de calidad
2: Repetible: Se tiene la experiencia de proyectos anteriores y se pueden repetir las tareas.
1: Inicial: los resultados son impredecibles
§El
proyecto de integración de CMMI, ha sido
creado para regular el problema de utilizar distintos CMM
-SW-CMM, v2
-SECM
-IPD-CMM V0.98
-SE-CMM
Y OTROS
La combinación de los modelos en un
único marco busca, que este se aplique en la mejora de procesos de toda la
empresa
QUE ES CMMI
§Un
guía para mejorar procesos y comprobar la capacidad de un grupo al ejecutarlos§Un
modelo de madurez – directrices, prácticas y disciplinas basadas en estándares
de la industria
§Un
marco (checklist) para
diagnosticar el estado de la mejora
§Indica
QUÉ deben hacer los procesos, no CÓMO deben hacerlo
LO QUE NO ES CMMI
§Una
metodología de desarrollo o gestión de proyectos
§NO
compite con metodologías ágiles (e.g. XP) u otras metodologías de desarrollo (e.g. RUP)
§NO
compite con Scrum, PMBOK, u
otras metodologías de gestión de proyectos
§No
es un estándar más de procesos, el modelo CMMI está alineado con los objetivos de negocio
§Puede
ser complementado con otros modelos de mejora de procesos como SPICE, ITIL, SixSigma, etc
Esto es solo un extracto de lo que es CMM y CMMI de lo cual hay bastante en la web, para mas información aquí hay algunos links recomendados:
§
§Cmmi-overview05.pdf
§http://www.navegapolis.net/index.php?option=com_content&task=view&id=330&Itemid=84
Comentarios