sábado, 12 de enero de 2008

El otro lado de la moneda Extreme Programming (XP)


Pues hasta ahora hemos visto modelos de gestión de calidad de software, pero para ir agregando puntos de vista, y otras versiones de la "historia" tenemos del otro lado la Programación Extrema (XP).

La Programación Extrema se basa en el supuesto de que todo en el vida varía, y que este es un proceso natural, para el que hay que estar preparado, y que para un proyecto de desarrollo de software es muy común los cambios en los requisitos, y de allí su punto de vista distinto, En lugar de crear grandes planificaciones, los proyectos de "XP" no lo hacen tan extenso, si no que postulan que es mejor simplemente afrontar el cambio, que tener una gran estructura predefinida, y estar tratando de controlarlo.

Una persona enfocada en este paradigma dice: "Es mejor poner énfasis en la Adaptabilidad que en la previsibilidad" Es decir sus proyectos son totalmente dinámicos.



Las principales características de la "XP" son:

Desarrollo Iterativo incremental: Esto significa que realizan variaciones no grandes entre cada etapa.

Frecuente Interacción con el Cliente: Esto para ir verificando el cumplimiento de los bloques, y reconocimiento de cambio en los requisitos.

Pruebas Unitarias Continuas: Realizar pruebas especificas sobre el código escrito en cada iteración, y recomienda la escrita en papel antes de código de las ideas a realizar.

Corrección de Todos los Errores: Consiste en no avanzar a la siguiente funcionalidad si no esta ideal la anterior.

Programación en parejas: Recomienda trabajar cierta parte del proyecto en parejas, haciendo el mismo trabajo, y juntos, para la revisión instantánea y maximización de ideas.

Simplicidad: En este paradigma se dice, hay que hacer código sencillo, de esta forma si necesitamos modificar algo, será más fácil, incluso agregar funcionalidades.

Refactorizar el Código: Esta relacionado con reescribir el código escrito, con el objetivo de obtener mayor Simplicidad.


Cada quien tiene derecho a tener un punto de vista, yo me quedo con los Modelos de Gestión de Calidad....

jueves, 10 de enero de 2008

Test Autoevaluacion y Autoasesoria CMMI

A continuación les agrego "zips" con autoevaluaciones creadas con referencia en el modelo CMMI de gran utilidad para enfocar esfuerzos, ya que como otros modelos de gestión de calidad, nos provee una "linea base" o de referencia, para medir que tan gestionado esta nuestro proyecto.

1. Test sobre capacidad de procesos de prueba (Ingles Incluye el test, hoja de calculo, archivo de ayuda, explicación de términos y conceptos, y archivo Readme)

2. Test procesos basada en el modelo CMMI-SE/SW/IPPD (Ingles Incluye el test, hoja de calculo, archivo de ayuda, explicación de términos y conceptos, y archivo Readme)

3. Test estamos en nivel 2 CMMI-SE/SW 1.1 (Version Traducida al Español Incluye solamente hoja de calculo)

miércoles, 9 de enero de 2008

Guia Básica Aplicación Metrica


En esta ocación les agrego el link de un PDF que contiene una guía de aplicación del modelo de gestión de calidad de Software "Metrica" Modelo con reseña en este sitio en el post de nombre "Modelo Metrica 3" para acceder haz clik aqui.

martes, 8 de enero de 2008

Modelo Metrica3


Metrica3 o Metrica V3 (Metrica versión 3)

En lo que se refiere a estándares se ha tenido en cuenta como referencia el Modelo de Ciclo de Vida de Desarrollo propuesto en la norma ISO 12.207 "Information technology Software life cycle processes". Siguiendo este modelo se ha elaborado la estructura de MÉTRICA Versión 3 en la que se distinguen procesos principales (Planificación, Desarrollo y
Mantenimiento) e interfaces (Gestión de Proyectos, Aseguramiento de la Calidad, Seguridad y Gestión de Proyectos) cuyo objetivo es d
ar soporte al proyecto en los aspectos organizativos. Además de la norma ISO 12.207, entre los estándares de referencia hay que destacar las normas ISO/IEC TR 15.504/SPICE “Software Process Improvement and Assurance Standards Capability Determination”, UNE-EN-ISO 9001:2000 Sistemas de Gestión de la Calidad. Requisitos, UNE-EN-ISO 9000:2000 Sistemas de Gestión de la Calidad. Fundamentos y Vocabulario y el estándar IEEE 610.12-1.990 “Standard Glossary of Software Engineering Terminology”. Igualmente se han tenido en cuenta otras metodologías como SSADM, Merise, Information Engineering, MAGERIT. Metodología de Análisis y Gestión de Riesgos de los Sistemas de Información promovida por el Consejo Superior de Informática y EUROMÉTODO. Referencias a estas últimas metodologías pueden localizarse en las páginas del CSI: www.map.es/csi.

Se ha ampliado el enfoque de la Planificación de Sistemas de Información respecto a MÉTRICA Versión 2.1, incluyendo planificación estratégica y recogiendo las actividades de más alto nivel de la fase PSI de MÉTRICA Versión 2.1. Las actividades restantes de la antigua fase PSI se han incorporado al proceso de Desarrollo de la actual versión. Igualmente, aparece el proceso de Mantenimiento de Sistemas de Información que no estaba contemplado en MÉTRICA Versión 2.1.

Se ha reforzado el ciclo de vida de las pruebas a través del plan de pruebas y se han mejorado los procedimientos de prueba. Se ha da
do respuesta formal a problemáticas específicas de diseño con la incorporación de tecnologías tipo cliente/servidor, interfaces de usuario basadas en entornos gráficos, etc.

Los procesos principales se han enriquecido especificando el contenido, la forma y el momento en que se obtienen los productos, así como la relación entre los productos obtenidos en cada tarea, su reutilización en tareas posteriores y el producto final de cada actividad o proceso. También se han especificado los participantes de forma más precisa en cada tarea, reformando la participación de los usuarios, bien sea usuario final o de sistemas, de forma que dicha participación no se limite a labores informa
tivas frente a las tareas de verificación, aumentando así su responsabilidad.

Se ha diferenciado entre la aplicación de Técnicas, como conjunto de heurísticas y procedimientos apoyados en estándares que utilizan notaciones específicas en términos de sintaxis y semántica, y de Prácticas cuya utilización no conlleva reglas preestablecidas con la misma rigidez. Las nuevas técnicas están amplia
mente soportadas por herramientas comerciales.

Estructura de Metrica3

Por ser un "retoño" de ISO 12207, esta también toma el enfoque de procesos, subdividos en actividades, y estas a su ves en tareas.

Así los procesos de la estructura principal de MÉTRICA Versión 3 son los siguientes:

- PLANIFICACIÓN DE SISTEMAS DE INFORMACIÓN.
- DESARROLLO DE SISTEMAS DE INFORMACIÓN.
- MANTENIMIENTO DE SISTEMAS DE INFORMACIÓN.

El enfoque del Proceso de Planificación de Sistemas de Información, al no estar dentro del ámbito de la norma ISO 12.207 de Procesos del Ciclo de Vida de Software, se ha determinado a partir del estudio de los últimos avances en este campo, la alta competitividad y el cambio a que están sometidas las organizaciones. El entorno de alta competitividad y cambio en el que actualmente se encuentran las organizaciones, hace cada vez más crítico el requerimiento de disponer de los sistemas y las tecnologías de la información con flexibilidad para adaptarse a las nuevas exigencias, con la velocidad que demanda dicho entorno.

La existencia de tecnología de reciente aparición, permite disponer de sistemas que apoyan la toma de decisiones a partir de grandes volúmenes de información procedentes de los sistemas de gestión e integrados en una plataforma corporativa. MÉTRICA Versión 3 ayuda en la planificación de sistemas de información facilitando una visión general necesaria para posibilitar dicha integración y un modelo de información global de la organización.

En cuanto al Proceso de Desarrollo de Sistemas de Información, para facilitar la comprensión y dada su amplitud y complejidad se ha subdividido en cinco procesos:

- ESTUDIO DE VIABILIDAD DEL SISTEMA (EVS).
- ANÁLISIS DEL SISTEMA DE INFORMACIÓN (ASI).
- DISEÑO DEL SISTEMA DE INFORMACIÓN (DSI).
- CONSTRUCCIÓN DEL SISTEMA DE INFORMACIÓN (CSI).
- IMPLANTACIÓN Y ACEPTACIÓN DEL SISTEMA (IAS).

La necesidad de acortar el ciclo de desarrollo de los sistemas de información ha orientado a muchas organizaciones a la elección de productos software del mercado cuya adaptación a sus requerimientos suponía un esfuerzo bastante inferior al de un desarrollo a medida, por no hablar de los costes de mantenimiento. Esta decisión, que es estratégica en muchas ocasiones para una organización, debe tomarse con las debidas precauciones, y es una realidad que está cambiando el escenario del desarrollo del software. Otra consecuencia de lo anterior es la práctica, cada vez más habitual en las organizaciones, de la contratación de servicios externos en relación con los sistemas y tecnologías de la información y las comunicaciones, llevando a la necesidad de una buena gestión y control de dichos servicios externos y del riesgo implícito en todo ello, para que sus resultados supongan un beneficio para la organización. MÉTRICA Versión 3 facilita la toma de decisión y la realización de todas las tareas que comprende el desarrollo de un sistema de información.

Desde el enfoque de la norma ISO 12.207, el Proceso de Mantenimiento de Sistemas de Información comprende actividades y tareas de modificación o retirada de todos los componentes de un sistema de información (hardware, software, software de base, operaciones manuales, redes, etc.). Este marco de actuación no es el objetivo de MÉTRICA Versión 3, ya que esta metodología está dirigida principalmente al proceso de desarrollo del software. Por lo tanto, MÉTRICA Versión 3 refleja los aspectos del Mantenimiento, correctivo y evolutivo, que tienen relación con el Proceso de Desarrollo.


Las áreas mencionadas como otros aspectos importantes se imprimen en el siguiente diagrama:


para agrandar la imagen haga clik sobre ella


Link Resultados Aplicar CMMI


Buenas, en esta vez les adjunto un link, este es sobre resultados en empresas en donde se aplicó el modelo de gestión de calidad de Software CMMI, dichos resultados están categorizados por indicadores de calidad, manejo de costos, manejo del calendario de actividades, productividad, satisfacción del cliente, y el retorno de la inversión.

Además se pueden ver los resultados ordenados según, nombre de organización o por el nivel de "performance" obtenido.

El sitio está en idioma Inglés, y puedes acceder a él haciendo click aquí.

sábado, 5 de enero de 2008

Normas ISO 12207

Las Normas iso 12207 también son normas enfocadas a la calidad en el desarrollo de proyectos de software, perteneciente al grupo de las normas ISO (Organización mundial para la estandarización por su siglas en Inglés).

Organización que se encarga de dar normas para la calidad en todo tipo de negocios, en este caso por el motivo de nuestro blog estudiaremos la norma 12207, ya que la misma esta enfocada al desarrollo de software.



NORMAS ISO 12207

Antes de:

Lo primero que hay que tener muy presente, haciendo la observación en este modelo también, es que los modelos de gestión de calidad de software nos dicen Que debemos hacer en nuestra empresa para encaminarnos a la calidad, y no como hay que hacerlo.

Lo Segundo es que la norma ISO 12207 esta enfocada a una visión de procesos, por lo que debemos hacer una pequeña introducción sobre el tema.

Proceso:
Un proceso puede ser definido como un conjunto de actividades enlazadas entre sí que, partiendo de una o más entradas los transforma, generando un output (resultado).

Las entradas por lo general se pueden dividir en 2 tipos, las que se consumen "recursos" como papel, tinta, formularios, materias primas, etc... y los que no se consumen, "sources" que no se consumen, como un algoritmo para realizar un producto, información actual del mercado.

Entonces todas las funciones que se realizan en una empresa pueden ser vista como procesos. Como por ejemplo el proceso que debe seguirse para tratar una queja, el proceso de ensamblado de algún producto, etc.


MAPA de procesos NORMA ISO 12207


para agrandar la imagen haga clik sobre ella


Entonces también la norma ISO12207 divide la gestión de la Calidad en proyectos de software dividiéndolo en procesos, dividiendo estos a su ves en Actividades; entonces que es una actividad.

Actividad, es un conjunto de tareas, que son fruto de subdividir un proceso.


MAPA ISO12207 Actividades:


para agrandar la imagen haga clik sobre ella


Tarea, es la unidad atómica de un proceso, consiste en un paso del algoritmo para realizar una Actividad, y un proceso puede estar compuesto de varias actividades.


jueves, 3 de enero de 2008

CMMI que es? niveles? beneficios?


Para el enriquecimiento de los lectores, adjunto una reseña el modelo de calidad de software "CMMI", explicando sus 6 niveles y sus características, así como los procesos necesarios para llevar el proyecto de cierto nivel, a uno superior.

Iniciemos!!!

Introducción:

Es bien conocido que en el mundo tan cambiante y “Global” actual en el que vivimos se necesita ser competente y para poder decir que nuestra empresa es competente, se tiene a utilizar personas terceras que certifiquen que tan bien hacemos nuestros trabajos, nuestro producto, es de allí entonces que nacen normas para la certificación de la calidad, y de allí es donde nace CMMI, que es una especie de manual, de que hay que hacer para producir software con calidad.

Es muy importante recalcar que este tipo de estándares, solamente nos dicen que debemos hacer, y no el como, ya que nos permite poder escoger que tipo de tecnologías, lenguajes de programación, IDEs o incluso que modelo de gestión de proyectos utilizar, ya que los estándares solamente son orientaciones, y no formulas para la calidad.


CMMI

Capability Maturity Model Integration.


Básicamente el CMMI son normas para calidad enfocada al mundo del Software.

Estas se aplican a los diferentes procesos que hay que llevar a cabo para lograr producir software con calidad, es muy importante mencionar que igual que las normas ISO 9000-3, este modelo nos dice que hay que hacer, y no como hay que hacerlo

Anteriormente existían varios sistemas que se utilizaban en los procesos de desarrollo y mantenimiento de software, dichos procesos eran enfocados a cada una de las sub-áreas en las que se divide el desarrollo de sistemas de software, entre algunos de estos sistemas tenemos:

La combinación del sistema CMM-SW (CMM enfocado al desarrollo del software), con el SE-CMM (Ingeniería de Sistemas), Junto con algún Producto para el desarrollo.

Entonces la Idea de CMMI a sido integrar esas distintas tecnologías o fases, en un solo proceso que maneje de forma adecuada las interacciones entre las fases antes mencionadas, pero por ser parte del sistema, de una manera optima, ya que anteriormente, era una parte del trabajo, ensamblar los distintos sistemas mencionados, anteriormente.

El Sistema CMMI, Incluye las herramientas para la implementación de:

Ingeniería de Sistemas (Systems Engineering SE), Ingeniería de Software (Software Engieneering SW), Desarrollo integrado del Producto y Procesos (Integrated product and process development IPPD), Suplidor de recursos (Supliré sourcing SS).


Madurez en CMMI:

Son nombres que se le dan a ciertos niveles para determinada empresa, dependiendo de la implementación de procesos de calidad que esté tomando en cuenta en sus procesos.

Niveles CMMI:

En general los niveles son 6 y están relacionados con el nivel de “madurez” de la empresa y están distribuidos como sigue:

Nivel 0 se dice de cuando los niveles de madurez, no son aplicables a una empresa, no se cumplen los objetivos, o no se concluye el proceso de desarrollo.

“Nivel 1” o nivel Inicial de Madurez:

Se agrupan en este nivel las empresas que simplemente no tiene procesos definidos. Es decir emprenden un proyecto sin tomar en cuenta tiempo que le lleva producir cierta parte, incluso no dividen el proyecto en partes. Pero que concluyen el mismo.

“Nivel 2” o nivel Gestionado o también llamado Repetible:

Se diferencia del Nivel anterior básicamente, por que el proyecto a sido Gestionado. Con gestionado queremos decir que además de concluir un proceso, este fue planificado, se revisan y evalúan los procesos para ver si se cumplen las expectativas planteadas. Además es llamado repetible por que para un proceso exitoso, este podría repetirse y obtener los mismos resultados exitosos.

“Nivel 3” o nivel Definido:

Incluye las características de un proceso de Nivel 2, pero los procesos utilizados, son ajustados a la política de procesos de la empresa, es decir el proceso se alineará con las directivas que posee la empresa como propios.

“Nivel 4” o nivel Cuantitativamente Gestionado:

Una empresa llega a este nivel, cuando es una empresa con nivel de madures 3, y además agrega la característica de agregar la medición de resultados de una forma cuantitativa, es de decir poder medir que tan buenos fueron sus procesos.

“Nivel 5” o nivel Optimizado:

Es la empresa que teniendo nivel 4, además tiene procesos de mejora continúa, es decir mide sus resultados, los analiza, aprende, y toma decisiones a partir de ellos. Esto llevará a la empresa a estar siempre más cerca de la optimización.

Como se vio en la lectura, para pasar de un nivel a otro, hay procesos claves que elevan una empresa de un nivel a otro.


Para pasar de Nivel 0 a Nivel 1 es necesario:

Concluir el proceso de desarrollo.


Para pasar de Nivel 1 a Nivel 2 es necesario:

Agregar los procesos:

  • 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

Para pasar de Nivel 2 a Nivel 3 es necesario:

Agregar los procesos:

  • 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

Para pasar de Nivel 3 a Nivel 4 es necesario:

Agregar los procesos:

  • Gestión cuantitativa de proyectos
  • Mejora de los procesos de la organización

Para pasar de Nivel 3 a Nivel 4 es necesario:

Agregar los procesos:

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

Beneficios de CMMI

La correcta aplicación del modelo trae beneficios como:


Beneficios puramente “ingenieriles”:

1. Los procesos maduros permiten:

- Entender lo que está pasando.

- Que el personal desarrolle todo su potencial más completamente y más efectivamente dentro de la organización.

2. La mejora de los procesos tiene más posibilidades de resultar con éxito y ser más sustanciosa a la organización ya que se basa en la definición, medición y control de los procesos.

3. Se incrementa sensiblemente la probabilidad de éxito en la introducción de nuevas y apropiadas tecnologías, técnicas y herramientas en la organización.

Beneficios “económicos” u “organizativos”:

1. Enfatiza el desarrollo de procesos en las organizaciones que permiten mejorar el desarrollo de los productos y los servicios ofertados a los clientes.

2. Proporciona un marco de trabajo que permite organizar y priorizar las actividades de mejora de procesos, involucrando alpropio producto, al negocio, al personal y a la tecnología.

3. Da soporte a la coordinación de actividades multidisciplinarias que pueden ser necesarias para construir con éxito un determinado producto.

4. Enfatiza el alineamiento de los objetivos de la mejora de procesos con los objetivos de negocio de las organizaciones

miércoles, 2 de enero de 2008

Conceptos Relacionados Calidad Sofware


En este pequeños post, les presento algunos conceptos relacionados con el objetivo de este blog, así que empecemos de una vez...

Software
Creación intelectual que comprende los programas, los procedimientos,
las reglas y cualquier documentación asociada que pertenece a la operación
de un sistema de procesamiento de datos.
[ISO 2382-1: 1984, 01.04.04]

Producto de Software
Conjunto informático completo de programas, procedimientos, así como
documentación y datos asociados, diseñado para ser despachado a un
usuario.
[ISO 9000-3: 1994, 3.2]

Componente de Software
Cualquier parte identificable de un producto de software en una etapa
intermedia o en la etapa final de desarrollo.
[ISO 9000-3: 1994, 3.3]

Desarrollo
Todas las actividades a llevarse a cabo para crear un producto de software.
[ISO 9000-3: 1994, 3.4]

Verificación (para software)
El proceso de evaluar los productos de una fase dada, para asegurar la
corrección y la consistencia con respecto a los productos, así como
normas proporcionadas como elementos de entrada a esa fase.
[ISO 9000-3: 1994, 3.6]

Validación (para software)
El proceso de evaluar el software para asegurar el cumplimiento con los
requisitos especificados.
[ISO 9000-3: 1994, 3.7]

QUE ES CALIDAD? para comprender su evolución y lo que encierra, usaremos términos que reflejan lo que es la calidad, y lo que encierra el termino

Insepección
Es el proceso por el cual se chequea la buena producción de determinado producto, luego de haber sido terminado la producción del mismo.

Control
Proceso de chequea si el nivel de fiabilidad del producto es el deseado, pero este se hace durante la producción, y no solo hasta el final.

Aseguramiento
Además de tener procesos de chequeo en la sala de maquileo del producto, se implementan los conceptos antes mencionados, en toda la empresa. (Departameto técinco, Estadistica, planeación, etc...)

Gestión
Además de tener la empresa en un nivel de "Aseguramiento" se incluye el proceso de mejora continúa, es decir, la empresa no solo realiza sus procesos con chequeos de los mismos, si no que busca aprender de ellos, y hacerlos mejores, estudiando sus resultados.

Excelencia
Esta relacionado estrechamente con el nivel de sostenibilidad de resultados, ya que se puede asegurar, que si realizamos de nuevo un proceso con nivel de excelecia, podemos estar seguros de que obtendremos los resultados esperados.