lunes, 25 de junio de 2012

Documento de Análisis de un Requerimiento Bancario, según Metodología CMMI

Adjunto encontraran un documento que especifica desde el punto de vista Funcional, los requerimientos de Diseño de Software, desde el punto de Vista del Usuario Final.

Es en documento donde se plasman las necesidades de automatización que tiene el usuario banco, para que el equipo de desarrollo, genere la aplicación solicitada, la que posteriormente pasara por un control exhaustivo de calidad, donde se revisará completamente, para evitar que el software llegue con errores donde el cliente y presente defectos o problemas en producción



https://rapidshare.com/files/2666493744/CD21B_-_ALT-10-01279-0A-G1-Vi.j__Analisis_de_Requerimientos__v13.pdf
Mi proyecto
Espero concretarlo en el corto plazo
Es mi Proyecto y mi idea de Negocio
http://www.megapyme.cl

RELACIÓN DE LOS MODELOS CMM/CMMI CON LOS TIPOS DE CULTURA ORGANIZACIONAL

El modelo CMM/CMMI en su esencia lleva a las organizaciones que lo aplican a una cultura racionalista, sin embargo, a medida que se alcanzan los niveles superiores de madurez según el modelo,  tiene características del tipo de cultura jeráquica.  El modelo P- CMM (People – CMM) que fue concebido como un complemento del anterior con foco en el  factor  humano,  tiene  aspectos  culturales  racionales  y consensuales enfocados a la misma función creando una contradicción interna.  Los modelos SW-CMM y P-CMM en lugar de complementarse son
contradictorios entre sí.   Ambos modelos afirman que tienen como  fin  una  cultura organizacional de desarrollo humano, y no como un medio. Sin embargo, las acciones recomendadas sólo la presentan como un medio y se abandona cuando la organización alcanza niveles superiores de madurez.

Cuando se comienza con la implementación de un proceso de mejoras basado en alguno de los modelos CMM/CMMI, los cambios propiciados por el modelo deben ocurrir en tantas  dimensiones  de  la  organización  que seguramente se producirá un choque con su cultura. Sin embargo, las contradicciones internas del modelo pretenden poner  en marcha procesos de racionalización,  por un lado, y por el  otro,  pretende generar equipos de trabajo consensuados y capacitación basada en desarrollo humano que no pueden convivir en una misma función de la organización en un mismo momento. Los patrones de comunicación y las expectativas departicipación de los miembros son tan distintos para cada tipo de cultura que
la confusión es inevitable. Por un lado, la conformación del equipo sobre la base consensual alienta el  desarrollo de objetivos mediante procesos deliberativos y por otro, la elaboración racional de reglas demanda que se las siga sin cambios, por ejemplo.
Cuando  la organización ha superado los primeros niveles con alto contenido participativo, generando una cultura  consensual,  la implementación de los niveles siguientes reglamenta su funcionamiento quitando los espacios de consenso que se habían formado durante el proceso
anterior. Repentinamente, miembros de equipos exitosos que han sacado sus propias conclusiones acerca del buen funcionamiento de los projectos ven su contribución reemplazada por decisiones jerárquicas correspondientes a los procesos de los niveles superiores del modelo (4/5).
De lo expresado rescatamos la idea de que cuando el proceso de mejoras avanza, su implementación afecta de  distintas maneras a la  organización representada por sus miembros, su forma de relacionarse y  de cumplir sus roles. Si sólo se presta atención y se pone foco en la implementación de los aspectos técnicos del modelo, los cambios producidos generan condiciones caóticas difíciles de comprender. Si no se reconocen estos síntomas y se planea su prevención y resolución, se estará frente a dificultades que llegan a veces al fracaso del proceso de mejoras. Esto es debido a que las premisas seguidas mientras la organización trabajaba para lograr su nivel de capacidad CMM/CMMI  3  cambian  cuando  la organización trabaja para lograr niveles superiores (4/5). Pasan de tener, primero, características consensuales y de desarrollo humano para seguir con pautas y reglas racionales y terminar finalmente  en  un sistema áltamente jerárquico que quita toda la
participación innovadora que habían  tenido antes. Este cambio afecta de varias maneras la conducta de los miembros de la organización hasta  el punto de socavar todo el proceso de mejoras.




El CMM y la mejora continúa del proceso de software 

Resumen: 
Dentro de la competitividad actual, conseguir productos software excelentes a 
buen  precio  en  márgenes  de  tiempo  estrechos  es  el  sueño  de  miles  de 
empresas. Ello se puede conseguir concentrando esfuerzos en torno a dos 
pilares  fundamentales:  Las  personas  por  un  lado,  y  los  métodos  y 
procedimientos por otro. El Modelo de Madurez de Capacidad del Software 
(CMM) hace hincapié en  la mejora del proceso de software en base a los 
procedimientos internos  y sin descuidar a las personas. Intentaremos en estas 
líneas explicar este Modelo. 
   
INTRODUCCIÓN 

En una economía capitalista como la nuestra, basada en la obtención de beneficios 
económicos  derivados  del  comercio,  el  estudio  de  las  organizaciones  dedicadas  a  la 
consecución de dichos beneficios ha sido objeto de numeroso material bibliográfico. 

En un entorno donde lo que prevalece es la maximización de los beneficios se busca 
como consecuencia inmediata la máxima eficiencia y efectividad en las tareas que generan el 
beneficio.  

Al  mismo  tiempo,  la  globalización  a  todos  sus  efectos,  el  nuevo  orden  social,  las 
nuevas formas de hacer negocios, las nuevas necesidades, los nuevos descubrimientos en 
todos los ámbitos, las nuevas relaciones sociales y, en definitiva, la propia evolución de la 
sociedad, elevan día a día la complejidad no solo de los procesos económicos sino también de 
las relaciones personales. 

Todos sabemos, que una de las formas más importantes de enfrentarse a estos retos, 
es a través de las distintas herramientas informáticas eficaces  y eficientes que facilitan la 
ejecución y control del trabajo diario. 

Sin embargo, la historia de la ingeniería del software o de la producción de material 
informático esta repleta de grandes fracasos y decepciones. Proyectos de miles de millones de 
dólares  que  no  han  cumplido  sus  objetivos  y  a  menor  nivel  pero  de  forma  mucho  mas 
abundante, millones de usuarios decepcionados con el software que manejan como principal 
elemento de su trabajo. Los problemas mas frecuentes que nos encontramos en la producción 
de software son:  

1.  La entrega del material fuera del plazo estipulado.  
2.  El  material  no  cumple  los  requisitos  estipulados,  ya  sea  en  eficiencia  o 
funcionalidad. 

Todos los problemas reflejados en el párrafo anterior originan pérdidas económicas en 
el mejor de los casos, ya que si es un sistema crítico podemos llegar a hablar incluso de 
perdidas de vidas humanas. 

Por tanto, la pregunta que nos planteamos es: ¿Cómo se pueden evitar los fracasos en 
la producción de software? 

LA MEJORA DEL PROCESO DE GESTIÓN DEL SOFTWARE 

Para conseguir tener un proceso de producción de software sin fallos, adecuado a las 
necesidades estipuladas en un principio y entregado a tiempo, esta claro que la producción de 
software debe convertirse en un proceso disciplinado y aceptado por todos. 

Son varias las razones por las que puede fallar el proceso de software, mencionamos 
las tres principales: 



1.  El personal no se involucra lo suficiente en el control de calidad del trabajo. 
2.  La alta dirección no ha adquirido conciencia de la importancia de un buen proceso 
de software para su compañía, la principal consecuencia de esto es que el proceso 
de software no tiene los recursos adecuados ya sea en forma de tiempo, dinero, 
tecnología, personal y formación de este. 
3.  Las prácticas establecidas no son las adecuadas. 

Hasta ahora hemos empleado el termino "proceso de software", pero ¿qué queremos 
decir con este término?: "Un proceso es un conjunto de pasos definidos para lograr una tarea", 
mientras que "un proceso definido es aquel que esta escrito a tal detalle que permite que los 
ingenieros  lo  usen  constantemente".  Los  procesos  definidos  ayudan  a  la  planificación  y 
desarrollo de un trabajo. El proceso que establezcamos debe ser flexible y debe facilitar el 
cambio y la innovación. Al mismo tiempo el proceso debe poder ser aprendido. 

Aquí es donde entra el CMM o "Modelo de Madurez de Capacidad del Software". El 
CMM esta destinado a la evaluación y mejora de procesos. Se debe evaluar a la organización 
para conocerla ya que sin conocerla no se puede mejorar. El propósito de CMM es guiar a 
las organizaciones en la selección de estrategias de mejora determinando la madurez del 
proceso actual e identificando los puntos importantes que se deben estudiar y trabajar 
para mejorar tanto el proceso como la calidad del software. Dicho en palabras de Dymon 
[Dymon 1997] ayudar a las personas a identificar aquellas actividades críticas que indican la 
capacidad para realizar de la  organización. Hay  dos razones  fundamentales  para  creer  la 
efectividad de este modelo: 

1. El modelo CMM esta construido en base a prácticas reales.  
2. Cada nueva (y correcta) implementación del CMM es un nuevo éxito. 




EL MODELO DE MADUREZ DE CAPACIDAD DEL SOFTWARE (CMM) 

Acabamos  de  ver  una  pequeña  introducción  al  significado  del  CMM.  También 
consideramos brevemente las ventajas de su empleo en una organización. Ahora bien, ¿tan 
bueno  es  el  CMM  que  no  tiene  ningún  inconveniente?  Por  supuesto  que  el  CMM  tiene 
inconvenientes,  aunque  mejor  deberíamos  llamarlo  riesgos.  El  CMM  puede  ser  mal 
interpretado,  para evitarlo es  conveniente que las  personas  que  lo utilicen comprendan  el 
modelo y sus implicaciones a la hora de aplicarlo a la organización. 

Este modelo es fruto del trabajo de SEI (Software Engineering Institute), desde 1986 
centra sus esfuerzos en mejorar la practica del proceso del Software. En 1991 consiguieron 
estabilizar  la  primera  versión  del CMM. Desde entonces este  modelo se  ha  empleado en 
organizaciones tales como el Departamento de Defensa de los EEUU, sedes que necesitaban 
controlar de manera exhaustiva el proceso de producción de software.  

El CMM es una forma de comprender la propia gestión  de procesos  dentro de  la 
organización. Es cierto que el CMM evalúa a la organización ya que para mejorar es preciso, 
antes, evaluar. Pero no podemos cometer el error de reducir el CMM a una mera lista de 
comprobación, el CMM es mucho más que eso, es una "institucionalización" del proceso para 
construir software con el objetivo de conseguir una mejora continua. 

A la hora de aplicar el CMM debemos tener claro una serie de aspectos sobre la 
organización, dichos aspectos son:  

1.  El tamaño de la organización.  
2.  Su nivel cultural.  
3.  Las tecnologías que emplea.  

Conociendo estos tres puntos podemos acometer el conocimiento de los objetivos de 
la organización. Posteriormente deberemos decidir como vamos a medir. 

El CMM establece 5 posibles niveles de madurez en los que puede encontrarse una 
organización: 



a)  Nivel 1: El más básico.  
b)  Nivel 2 (el proceso repetible).  
c)  Nivel 3 (el proceso definido).  
d)  Nivel 4 (el proceso gestionado).  
e)  Nivel 5 (el proceso de optimización). 






Nadie puede obtener el significado exclusive del CMM. El CMM no aporta una medida 
absoluta, no existe un nivel de 2'5, todos los resultados deben ser interpretados, mejor así ya 
que  el  CMM  es  flexible  para  adaptarse  en  su  utilización  a  las  peculiaridades  de  cada 
organización. Debido a este punto, el conocimiento del Modelo por parte de quien lo aplica se 
hace aún más importante. 

Nos queda ahora abordar en profundidad el proceso del CMM, para ello debemos tener 
en cuenta las siguientes definiciones [Paulk 1994]: 

a)  Institucionalizar: Edificar una infraestructura y una cultura que soporte los métodos, 
las prácticas y los procesos para que éstos sean la forma real de hacer negocios. 
Será  fundamental  conocer  cual  es  el  grado  de  conocimientos  de  todos  sus 
trabajadores, así como el esquema cultural y social en que se ubica la empresa. 

b)  Proceso  de  Software:  Conjunto  de  actividades,  métodos,  prácticas  y 
transformaciones para desarrollar y mantener software y productos asociados. 

c)  Capacidad de un proceso: Rango de resultados esperados que se pueden obtener 
tras seguir un proceso. 

d)  Madurez de un proceso de software: Es el punto hasta el que un determinado      
proceso está explícitamente definido, administrado, medido, controlado y ejecutado 
de manera efectiva. 

e)  Nivel de madurez: Plataforma bien definida desde la que podemos obtener un 
proceso maduro de software. 

f)  Procedimiento documentado: La actividad o procedimiento es un proceso rutinario 
y que ha sido codificado. 






DESCRIPCIÓN DEL MODELO CMMI

Aspectos claves
Los aspectos claves del modelo son, por un lado, la clasificación de las organizaciones en maduras e inmaduras y, luego, la prescripción del camino a seguir por una organización inmadura para evolucionar y convertirse en una organización madura.
El modelo entiende por organización inmadura aquella que lleva adelante sus proyectos sin una definición previa de los procesos a seguir. Estos proyectos frecuentemente sobrepasan sus presupuestos y tiempos de terminación debido a que son iniciados con estimaciones poco realistas, sin una planificación adecuada, y son llevados adelante sin ningún tipo de gestión. En general estos proyectos no terminan o terminan con una disminución importante en la calidad esperada del producto.
Por organizaciones maduras el modelo entiende a aquellas que desarrollan sus proyectos en forma planeada. El logro de los objetivos del proyecto es asignado al cumplimiento de las reglas preestablecidas. Los presupuestos asignados y el tiempo previsto son los necesarios porque se parte de estimaciones metódicas y basadas en datos de proyectos previos, con roles y responsabilidades bien definidos.
Para que una organización se convierta en madura debe evolucionar con el tiempo alcanzando sucesivos niveles de madurez.
El modelo CMM identifica los siguientes niveles de madurez:
  • Nivel de Madurez 1 - Inicial – ausencia total de procesos definidos.
  • Nivel de Madurez 2 - Repetible – procesos de administración establecidos para lograr el seguimiento de los costos, tareas y funcionalidad. La disciplina está dada por la repetición en proyectos con aplicaciones similares.
  • Nivel de Madurez 3 - Definido – Además de las definiciones del nivel anterior, son incorporadas actividades de administración de ingeniería en forma documentada, estandarizada e integradas en una familia de procesos normalizados de la organización. Los proyectos utilizan una versión adaptada de esas normas para su desarrollo.
  • Nivel de Madurez 4 - Administrado – se llevan adelante los proyectos en forma controlada con métricas que permiten mediciones confiables de los procesos y productos.
  • Nivel de Madurez 5 - Optimizado – incluye la mejora continua de procesos a partir de la comparación y análisis de mediciones sucesivas de los proyectos.
El modelo CMMI incorpora al modelo por niveles de madurez de las organizaciones una vista de niveles de capacidad por área de procesos. La misma está orientada a incluir los casos en los cuales las organizaciones necesitan una capacidad diferenciada por área de proceso debido a los objetivos de sus negocios. Además, este modelo enfatiza a lo largo de sus definiciones la relación de cada una de sus áreas de proceso con los objetivos de negocio mencionados.
Estos niveles de capacidad son caracterizados genéricamente de la siguiente manera:
  • Nivel de Capacidad 0 – Incompleto: área de proceso sin objetivos.
  • Nivel de Capacidad 1 – Ejecutada: objetivos específicos del área de proceso son satisfechos.
  • Nivel de Capacidad 2 – Administrada: área de proceso institucionalizada a partir de una política organizacional de uso de los procesos.
  • Nivel de Capacidad 3 – Definida: área de proceso institucionalizada a partir de un proceso definido.
  • Nivel de Capacidad 4 – Cuantitativamente Administrada: área de proceso institucionalizada a partir de una política organizacional de la administración cuantitativa de procesos.
  • Nivel de Capacidad 5 – Optimizada: área de proceso institucionalizada a partir de la optimización de sus procesos.

En el modelo CMMI las áreas de proceso son clasificadas en las siguientes categorías:
a.     Process Management
b.    Project Management
c.     Engineering
d.    Support

Implementación

La implementación de un proceso de mejoras según el modelo CMMI está compuesto de las siguientes fases:
  • Inicio, en esta fase se relevan los procesos, tareas, actividades y activos con que cuenta la organización, así como las políticas generadas por la conducción de la organización. El método que CMMI propone para la realización de este relevamiento es SCAMPI (Standard CMMI Assessment Method for Process Improvement). Consiste de un conjunto estructurado de actividades tales como entrevistas, revisión de documentos, presentaciones y análisis de respuestas a cuestionarios. El resultado de esto es la obtención de las fortalezas y debilidades, sobre las cuales se elaborará el Plan de Mejoras. El objetivo de esta fase es determinar las fortalezas, debilidades y oportunidades de mejora de la organización. Todo esto conducido por los objetivos de negocio de la organización.
  • Diseño, basados en las debilidades y fortalezas encontradas en el SCAMPI se elabora el Process Improvement Plan (PI Plan) y los Action Plan (PAs).
  • Piloto, de acuerdo a los objetivos planteados en cada PATs (Process Action Team) y al producto resultante de su trabajo (proceso, tarea, actividad, estándares), se capacita a los miembros del grupo del proyecto piloto y se prueba las prácticas correspondientes.
  • Implementación, en esta fase se extiende al resto de la organización las prácticas llevadas adelante en todos y cada uno de los proyectos piloto.

Implementar un programa de mejora requiere de la cooperación y coordinación de todos los niveles de gerencia y subordinados.

El CMM se centra en los tres principales aspectos que influyen en una organización:

a) Las personas: Se trata por disciplinas como el desarrollo organizativo, gestión de los RRHH y la Gestión de la Calidad Total (TQM).
b) La tecnología: La tecnología cambia a su propio ritmo a lo largo del tiempo, se puede adquirir.
c) El proceso: Pero, ¿cómo se gestiona el proceso y cómo se mejora?, ¿se puede comprar? La gestión del proceso se puede aprender e institucionalizar, aquí es donde entra el CMM.
La complejidad aparente del CMM se simplifica en cuatro conceptos base:
- La evolución es posible pero lleva tiempo.
- Hay etapas distinguibles en la madurez del proceso.
- La evolución implica que algunas cosas deben ser aplicadas antes que otras.
- La madurez disminuirá al menos que se mantenga. "Los cambios duraderos requieren un esfuerzo constante".
Para cambiar el proceso del software debemos gestionar las influencias y gestionar las mejoras sistemáticas.

El cambio puede empezar a aplicarse a través del ciclo de Deming: Planificar, Hacer, Verificar y Actuar. Adaptado a nuestra situación, Iniciar es acordar el motivo y la estrategia para el cambio. Diagnosticar es acordar qué cambiar, posteriormente debemos Establecer la infraestructura (equipos y planes), Actuar (llevar a cabo los planes) e Institucionalizar (capturar y reutilizar las lecciones aprendidas).
Al aplicar el modelo CMM se han de recorrer varios niveles de madurez, cada uno de los cuales se compone de una serie de prácticas, las colecciones de prácticas de software y de gestión específicas de un nivel de madurez se denominan Áreas Clave de Proceso (KPAs). Cada KPA tiene una serie de prácticas claves a realizar, algunas de ellas comunes a todos los niveles, en concreto:

- Compromiso para realizar (Co).
- Capacidad para realizar (Ab).
- Actividades realizadas (Ac).
- Medición y análisis (Me).
- Verificación de la implementación (Ve).

Hay que tener en cuenta que todo este proceso generará datos; la existencia de un repositorio de datos facilita la labor de proyectos futuros y será parte fundamental para la mejora del proceso dentro de la organización.

Si lo que pretendemos es aplicar el modelo CMM a una organización de tipo medio y queremos que el CMM sea efectivo, puede ser necesario depurar y eliminar ciertas acciones o condiciones que para este tipo de organización puede resultar excesivo y no hará sino saturar de trabajo al personal sin producir resultados. (Adecuación de los procesos a las distintas realidades de las organizaciones)