02 October 2006

Uso del Brainstorming

El brainstorming o “tormenta de ideas” es una herramienta de trabajo grupal que persigue la generación de ideas por parte de un grupo de personas reunidas a tal efecto. Se pretende potenciar la creatividad de todas las personas que participan para que expresen sin temor y de una forma espontánea todas las ideas que les vayan surgiendo, sin censura ni crítica. La lluvia de ideas constituye una actividad que permite aprovechar la sinergia de un grupo de trabajo y la creatividad individual, para generar la mayor cantidad de ideas en un mínimo lapso de tiempo.

El brainstorming fue diseñado para mejorar la toma de decisión y la comunicación, aumenta la "fluidez" —es decir, la capacidad de producir muchas ideas originales con facilidad— y la "flexibilidad", que es la habilidad para generar muchas clases diferentes de ideas. En la actualidad, los ejercicios de brainstorming se basan en dos principios: (1) mientras se generan ideas no hay que emitir juicios, y (2) la cantidad de ideas afecta la calidad de la decisión final.

Se deberá utilizar la lluvia de ideas cuando exista la necesidad de: (1) Liberar la creatividad de los equipos, (2) Generar un número extenso de ideas y (3) Involucrar oportunidades para mejorar.

Esta herramienta permite: (1) Plantear y resolver los problemas existentes, (2) Plantear posibles causas, (3) Plantear soluciones alternativas, (4) Desarrollar la creatividad, (5) Discutir conceptos nuevos y (6) Superar el conformismo y la monotonía

Durante la sesión de lluvia de ideas, los miembros del equipo sugerirán problemas y causas de los problemas, una sugerencia conducirá a otra, creando una retro-alimentación de ideas.

Las sesiones de lluvia de ideas podrán efectuarse con todos los miembros de un equipo interdisciplinario después que cada uno de sus miembros haya tenido amplia oportunidad de revisar la información disponible sobre el sistema bajo estudio. El líder del grupo debe asegurar que los problemas presentados son reales, no potenciales, anticipados o corresponden a opiniones personales.

Los pasos para el desarrollo del brainstorming son: 1- Escribir sobre un papel el tema o cuestión a estudiar, de manera que sea bien visible por todos. 2- Confirmar que todos los asistentes hayan comprendido exactamente el tema y su alcance 3- Permitir que los participantes piensen acerca del tema durante algunos minutos antes de abrir la sesión 4- Definir con los participantes las reglas que regirán la actividad 5- Escribir todas las ideas en un papel 6- Finalizada la sesión, analizar y aclarar cada una de las ideas y agruparlas por afinidades 7- Elaborar una lista de referencia con todas las ideas 8- Distribuir a cada uno de los participantes, una copia de la lista de referencia para su revisión y reflexión sobre lo tratado y las ideas aportadas 9- En la siguiente reunión se discuten los resultados de las reflexiones individuales y se elabora la lista de referencia definitiva

Se puede facilitar la lluvia de ideas si los participantes se reúnen en un ambiente agradable e informal con un líder de discusión y un asistente para tomar notas. Mientras que el líder del grupo estimula la discusión, el asistente hace una lista de todos los problemas y sus causas sugeridas por los participantes. Los problemas se anotan como se presentan, sin ordenamiento particular.

Una vez que la sesión de lluvia de ideas haya terminado, el equipo puede revisar la lista de referencia de Problemas Potenciales. Debido a que muchas veces suele ser una lista relativamente larga, cuyo análisis punto por punto llevaría varias horas o días, es conveniente que la lista de referencia sea revisada por cada miembro del equipo, con el propósito de identificar importantes problemas o causas de problemas que puedan haber sido pasados por alto en la sesión de discusión espontánea. La lista de referencia servirá como guía para organizar los problemas que se anotaron en el ejercicio de lluvia de ideas, agrupando los problemas de acuerdo a sus respectivos puntos en el sistema, colocándolos en una perspectiva que contribuya a esclarecer las relaciones de causa y efecto.

El brainstorming se relaciona con las siguientes herramientas:

(1) Diagrama de afinidad: Es un herramienta que organiza un gran numero de ideas en función de afinidad, es decir, de las relaciones que existen entre ellas.

(2) Diagrama de causa – efecto (Ishikawa): Es una técnica de análisis de causa y efectos para la solución de problemas, que relaciona un efecto con las posibles causas que lo provocan.

Esta herramienta de brainstorming se puede aplicar a los siguientes puntos de la Norma ISO 9001:2000: “Ambiente de trabajo” (6.4), “Revisión de los requisitos relacionados con el producto” (7.2.2), “Planificación del diseño y desarrollo” (7.3.1), “Elementos de entrada para el diseño y desarrollo” (7.3.2), “Auditoria de la Calidad” (8.2.2), “Mejora continua” (8.5.1), “Acción correctiva” (8.5.2) y “Acción preventiva” (8.5.3). La aplicación de esta herramienta permite desarrollar la creatividad de acuerdo a la finalidad de cada punto. Todos estos puntos mencionados forman parte de la Norma ISO 90003:2004 (ISO 9001:2000 aplicada el Software).

Respecto de CMMi V1.1 y CMMi V1.2, se puede decir el brainstorming puede aplicarse a las siguientes áreas de proceso: Project Planning (PP), Requirements Development (RD) y Decisión Analysis and Resolution (DAR).

De esta forma, el brainstorming es una herramienta que permite aplicar la creatividad en cada proceso que requiera el mantenimiento o mejora del mismo, lo cual permitirá lograr los niveles de calidad establecidos.

Auditoría de la Calidad del Software

Durante las tres primeras décadas de la Informática el principal desafío consistió en desarrollar el hardware de manera que se redujeran los costos de procesamiento y almacenamiento. Hoy en día el problema es diferente. La principal meta está en reducir el costo, elevar la productividad, y la eficiencia en la Industria del Software y mejorar la calidad para lograr un producto competitivo que se ajuste a los requerimientos de calidad establecidos por el cliente y por el productor. Producir “calidad“ es indispensable no sólo para lograr y conservar un segmento de mercado, contra una competencia cada vez mas aguerrida, sino por que estamos pasando de una concepción de mercado nacional a otra dimensión regional o global. La utilización de métodos y técnicas para incrementar la calidad de los productos de software permite ampliar los propios horizontes comerciales.

Cualquier organización que se dedica a la investigación, producción y comercialización de software debe tener en cuenta el factor del aseguramiento de la calidad, hoy con mas razón, donde existe un mercado en el cual el cliente es cada vez más exigente, no sólo en lo que se refiere al precio, sino sobre todo, en cuanto a los servicios y a la confiabilidad que brindan los productos de software. El aseguramiento de la calidad desempeña un rol determinante para la competitividad de la empresa. Las normas técnicas se ubican como la opción más clara para asegurar la calidad del software. Los productos fabricados bajo normas técnicas tienen mayores oportunidades comerciales en el mercado mundial.

La calidad ha dejado de ser un tópico y es necesario que forme parte de los productos o servicios que comercializamos para nuestros clientes. El cliente es el mejor auditor de la calidad, él exige el nivel que está dispuesto a pagar por ella, pero no más. Por tanto, debemos de cuantificar cuál es el nivel de calidad que nos exige para poder planificar la calidad de los productos que se generan a lo largo de la producción del producto o servicio final.

Al analizar las necesidades de nuestros clientes, deberemos tener en cuenta la previsible evolución de sus necesidades y tendencias en cuanto a características. Debemos tener en cuenta la evolución tecnológica del entorno de producción de nuestros productos de software para suministrarlos con el nivel tecnológico adecuado. No debemos olvidar el nivel de calidad de nuestros competidores, debiendo elaborar productos cuyas características y funcionalidades sean competitivas con las de nuestros competidores.

Al decidir la realización de un producto de software se debe hacer una planificación y un Plan de Calidad. En el centro de producción de software, deberá haber un Plan General de Calidad en el que estarán las especificaciones para poder definir cada uno de los planes específicos de nuestros desarrollos en función de los atributos de Calidad que deseamos implementar en el software. En este Plan se definen las actividades de Calidad que se tienen que realizar, en qué momentos tiene que intervenir la función de Aseguramiento de la Calidad, que a diferencia de Control de Calidad intervendrá proponiendo y supervisando los procesos de calidad a realizar en la fase de generación de los distintos componentes, adherencia a estándares, y la intensidad de aplicación de la misma según la criticidad de los productos y el nivel de riesgos que se haya encontrado en la evaluación del sistema.

Una Auditoria de Calidad tiene como objetivo mostrar la situación real para aportar confianza y destacar las áreas que pueden afectar adversamente esa confianza. Otro objetivo consiste en suministrar una evaluación objetiva de los productos y procesos para corroborar la conformidad con los estándares, las guías, las especificaciones y los procedimientos.

Para realizar la evaluación de la Calidad del Software se puede, entre otros, considerar la Norma ISO 9126-1:2001. Esta Norma define las características de calidad como un conjunto de atributos del producto de software a través de los cuales la calidad es descripta y evaluada. Estas características de calidad del software pueden ser precisadas a través de múltiples niveles de subcaracterísticas.

Esta Norma tiene 4 partes: (a) Modelo de Calidad – ISO 9126-1:2001 (b) Métricas Externas, las cuales miden el software en sí mismo (Calidad Externa) – ISO 9126-2:2003 (c) Métricas Internas, las cuales miden el comportamiento del sistema (Calidad Interna) – ISO 9126-3: 2003 (d) Calidad en Uso, el cual mide el efecto de usar el software en un contexto específico – ISO 9126-4:2004

Las 3 últimas partes tienen métricas asociadas por cada Subcaracterística definida.

ISO 9126-1:2001 plantea las siguientes características de calidad: (1) Funcionalidad, (2) Confiabilidad, (3) Facilidad de Uso, (4) Eficiencia, (5) Facilidad de Mantenimiento y (6) Portabilidad.

La Funcionalidad (1) es el conjunto de atributos que se refieren a la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones cumplen unos requerimientos o satisfacen unas necesidades implícitas. Las subcaracterísticas de la Funcionalidad son: Aptitud, Precisión, Interoperatividad, Conformidad, Seguridad y Trazabilidad.

La Confiabilidad (2) es el conjunto de atributos que se refieren a la capacidad del software de mantener su nivel de rendimiento bajo unas condiciones especificadas durante un período definido. Las subcaracterísticas de la Confiabilidad son: Madurez, Tolerancia a fallas, Facilidad de Recuperación, Disponibilidad y Degradabilidad.

La Facilidad de Uso (3) es el conjunto de atributos que se refieren al esfuerzo necesario para usarlo, y sobre la valoración individual de tal uso, por un conjunto de usuarios definidos e implícitos. Las subcaracterísticas de la Facilidad de Uso son: Comprensibilidad, Facilidad de aprendizaje, Operatividad, Explicitud, Adaptabilidad al usuario, Atractivo, Claridad, Facilidad de ayudas y Amistoso al usuario.

La Eficiencia (4) es el conjunto de atributos que se refieren a las relaciones entre el nivel de rendimiento del software y la cantidad de recursos utilizados bajo unas condiciones predefinidas. Las subcaracterísticas de la Eficiencia son: Respecto al tiempo y Respecto a los recursos.

La Facilidad de Mantenimiento (5) es el conjunto de atributos que se refieren al esfuerzo necesario para hacer modificaciones especificadas. .Las subcaracterísticas de la Facilidad de Mantenimiento son: Facilidad de análisis, Facilidad de cambio, Estabilidad y Facilidad de prueba.

La Portabilidad (6) es el conjunto de atributos que se refieren a la habilidad del software para ser transferido desde un entorno a otro. Las subcaracterísticas de la Portabilidad son: Adaptabilidad, Facilidad de instalación, Conformidad y Facilidad de Reemplazo.

La valoración de estas características es útil para que el usuario pueda definir los requerimientos del producto utilizando solamente las características que emplee en la práctica. Para algunos tipos de productos de software, hay determinadas características que no son significativas y las restantes no garantizan que con ellas comprendan todos los requerimientos de los productos de software, por lo que en cada caso habrá que completarlas con otras definiciones más específicas para esos productos o situaciones. No obstante el modelo tiene el nivel de abstracción suficiente como para que sea adaptable en la mayoría de las situaciones, siendo además, independiente de la tecnología.

ISO 25000:2005 (SQuaRE -Software Quality Requirements and Evaluation) es una nueva serie de normas que se basa en ISO 9126 y en ISO 14598 (Evaluación del software). Uno de los principales objetivos de la serie SQuaRE es la coordinación y harmonización del contenido de ISO 9126 y de ISO 15939:2002 (Measurement Information Model). ISO 15939 tiene un modelo de información que ayuda a determinar que se debe especificar durante la planificación, performance y evaluación de la medición. Para su aplicación, cuenta con los siguientes pasos: (1) Recopilar los datos, (2) Preparación de los datos y (3) Análisis de los datos.

La integración de ISO 9126 e ISO 15939 permiten plantear un proceso de 4 pasos: (1) Identificación de los requerimientos relacionados a la calidad del producto, es decir, seleccionar la parte del modelo de calidad (ISO/IEC 9126-n) que resulta relevante para la evaluación de calidad. (2) Identificación del contexto de interpretación. Es decir, selección de los valores de referencia y determinación de los target especificados en un contexto determinado (3) Uso de las medidas derivadas de la etapa de preparación de los datos (4) Comparación y análisis de los resultados obtenidos respecto de un conjunto de valores de referencia.

SQuaRE incluye un estándar de requerimientos de calidad. Está compuesto por 14 documentos agrupados en 5 tópicos: (1) Administración de la Calidad – 2500n, (2) Modelo de Calidad – 2501n, (3) Medidas de Calidad – 2502n, (4) Requerimientos de Calidad – 2503n y (5) Evaluación de la Calidad – 2504n.

Administración de la Calidad (1): abarca: (1) Guía para SquaRE – Overview de la estructura y terminología y (2) Planificación y Administración – Provee una guía para planificar y administrar las evaluaciones del software.

Modelo de Calidad (2): describe el modelo de calidad interno / externo y la calidad en uso. Presenta características y subcaracterísticas.

Medidas de Calidad (3): Medición de primitivas, Medidas para la calidad interna, Medidas para la calidad externa y Medidas para la calidad en uso.

Requerimientos de Calidad (4): permite habilitar la calidad del software a ser especificado en términos de requerimientos de calidad durante todo el ciclo de vida de un proyecto de software o adquisición, mantenimiento y operación.

Evaluación de la Calidad (5): Evaluación de la Calidad, Proceso para desarrolladores, Proceso para compradores, Proceso para evaluadores y Documentación del módulo de evaluación.

Estos 5 tópicos conforman la Arquitectura de SQuaRE.

Los beneficios de utilizar SQuare son: (1) El modelo representa la calidad esperada del producto de software, (2) Planteo del desdoblamiento de las necesidades o expectativas en calidad en uso, calidad externa y calidad interna, (3) Permite una mayor eficacia en la definición del software, (4) Plantea la evaluación de productos intermedios, (5) Propone una calidad final a través de las evaluaciones intermedias, (6) Permite efectuar un rastreo entre las expectativas, requisitos y medidas de evaluación; y (7) Mejora la calidad del producto.

Los pasos para la realización de una Auditoria de la Calidad del Software son: (1) Identificación del Producto de software que se pretende auditar, (2) Determinar los Requisitos aplicables, (3) Relevar la información necesaria para el cálculo de las métricas de los requisitos aplicables, (4) Evaluar la Calidad del Software usando las métricas respecto de los requisitos establecidos en el paso 2 y determinar su cumplimiento, (5) Establecer las acciones correctivas respecto de los requisitos evaluados y (6) Elaborar un Informe Final.

El Informe de Auditoria de la Calidad es un medio formal para comunicar los objetivos de la Auditoria, el cuerpo de las normas de Auditoria, el alcance de la Auditoria, y los hallazgos y conclusiones. Es el documento que refleja los objetivos, alcances, observaciones, recomendaciones y conclusiones del proceso de evaluación relacionados con las áreas de informática. El Informe debe incluir suficiente información para que sea comprendido por los destinatarios esperados y facilitar las acciones correctivas.

Existen esquemas recomendados respecto de los informes de auditoria con los requisitos mínimos aconsejables respecto a estructura y contenido. Los puntos esenciales de un Informe de Auditoria son: (1) Identificación del Informe, (2) Identificación del Cliente, (3) Identificación de la Entidad auditada, (4) Objetivos de la Auditoria Informática, (5) Normativa aplicativa y excepciones, (6) Alcance de la Auditoria, (7) Conclusiones: Informe corto de opinión , (8) Resultado: Informe largo y otros informes, (9) Informe previo, (10) Fecha del Informe, (11) Identificación y firma del Auditor, (12) Distribución del Informe y (13) Conclusiones.

Por último, se puede decir que la Auditoria de la Calidad del Software puede traer aparejado la certificación del software, lo cual permite mejorar el nivel de competitividad de la empresa con sus respectivas consecuencias.

Gestión de los Recursos e ISO 9001:2000 (3)

En todo Sistema de Gestión de la Calidad, se puede decir que la Dirección de la organización debe identificar y disponer los recursos necesarios para satisfacer los objetivos estratégicos de la organización, entre los cuales están los objetivos de la calidad.

Los aspectos a considerar en “Gestión de los Recursos” son: (1) Provisión de recursos, (2) Recursos humanos, (3) Infraestructura y (4) Ambiente de trabajo. La norma ISO 90003:2004 considera los mismos ítems que la Norma ISO 9001:2000 para el punto de Gestión de los Recursos.

El punto “Provisión de Recursos” (6.1) hace referencia a que la Dirección debe tener una clara noción de los recursos que se requieren para desempeñar los objetivos planteados y, asumiendo las restricciones que presentan el mercado y tipo de negocio, determinar cuáles serán los recursos futuros que deban procurarse a efectos de obtener los objetivos de crecimiento y mejora continua inherentes al plan estratégico y a la planificación de la calidad.

El punto “Recursos Humanos” (6.2) plantea que la Dirección debe administrar los recursos humanos de modo de fomentar la participación sobre la base de la motivación, el reconocimiento y el sentido de pertenencia. La organización debe hacer un relevamiento de las competencias exigidas a su personal en función de los requisitos de cualificación planteados por los diferentes procesos que impactan sobre la calidad. Una vez obtenido este perfil de competencias requeridas se debe estudiar las competencias que efectivamente reúne su personal y establecer planes de acción en formación para salvar cualquier brecha que pudiera quedar. Las competencias necesarias para el desempeño de los procesos no es sólo la necesidad actual de cualificación, también lo es en términos de futuro, teniendo en cuenta los planes de crecimiento o de evolución en aspectos de calidad que la organización haya establecido.

Las personas de una organización deben aprender a trabajar en contextos cambiantes, en áreas sometidas al mejoramiento continuo de condiciones y técnicas de trabajo y al uso de herramientas de gestión cambiantes y, en muchos casos, desempeñarse en contextos confusos.

Las áreas de procesos “Organizational Environment for Integration” (OEI) de CMMi V1.1 y “Organizational Training” (OT) de CMMi V1.1 y CMMI V1.2 guardan relación con este punto.

El punto “Infraestructura” (6.3) hace referencia a que la organización debe disponer los elementos de infraestructura tales como ambiente de trabajo, instalaciones asociadas, equipos, herramientas, hardware y software, servicios de apoyo tales como comunicaciones, transportes, instalaciones auxiliares, etc. En todos los casos, la organización deberá asegurar la disponibilidad de funcionamiento a través del tiempo, para todas las instalaciones aplicables.

El área de proceso “Organizational Environment for Integration” (OEI) de CMMi V1.1 guarda relación con este punto.

El punto “Ambiente de trabajo” (6.4) hace mención que la organización debe procurar el ambiente de trabajo adecuado que favorezca la consecución de los objetivos de calidad fijados, contemplando la combinación de factores físicos y humanos y promoviendo la motivación y la buena calidad de vida del personal.

Las áreas de procesos “Organizational Environment for Integration” (OEI) de CMMi V1.1 y “Project Planning” (PP) de CMMi V1.1 y CMMi V1.2 guardan relación con este punto.

De esta forma, el punto “Gestión de los Recursos” forma parte del modelo de un Sistema de Gestión de la Calidad, el cual está basado en procesos que ilustran los vínculos entre los procesos presentados en los capítulos 4 a 8 de la ISO 9001:2000.