El desarrollo de software es una de las actividades más complejas que se realizan hoy en día. Es considerado como algo abstracto ya que el producto que se construye no es algo físico, es una caja negra. Podemos decir sin temor a equivocarnos, que los requisitos que pedimos para desarrollar software son mínimos y por lo tanto éste tiene un alto grado de incertidumbre, el cual aumenta si en el proyecto se presentan los siguientes problemas:
• Falta de planeación
• Falta de administración del proyecto
• Falta de soporte ejecutivo
• Cambios no controlados
• Expectativas poco realistas
• Altos costos
• Falta de recursos
• Requerimientos incompletos
La pregunta es, ¿cómo se puede tener mayor certidumbre en el desarrollo de software y obtener productos con calidad, con el presupuesto planeado y en el plazo estimado?
Los problemas que enfrentamos en el desarrollo de software tienen solución a través de la adopción de procesos, lo cual consiste en que las organizaciones usen buenas prácticas que han demostrado ser efectivas y que definen de manera precisa cómo se construye el software. En el mercado existen diferentes modelos y estándares que pueden ser adoptados por la industria de TI: CMMI, ISO15504, MoProSoft, ISO9000, PMBoK, Trillium y Bootstrap, por mencionar algunos. Todos estos de alguna manera consideran y recalcan la importancia de establecer prácticas de aseguramiento de calidad en los proyectos de desarrollo de software.
Aseguramiento de Calidad
Actualmente, muchas organizaciones de TI, así como áreas internas de sistemas, sin la necesidad de establecer un programa de mejora o seguir todas las prácticas de un modelo o estándar de referencia, están adoptando la práctica de aseguramiento de calidad de software para incrementar la calidad de sus productos, y lograr que el desarrollo de software sea más predecible.
Hasta aquí la historia parece ir muy bien, sin embargo, a pesar de que las organizaciones, desde el punto de vista competitivo, reconocen el valor del SQA (Software Quality Assurer / Advisor), en la práctica este rol es muchas veces subvalorado, incluso por aquéllas donde se han establecido ciertas prácticas. Se cuestiona el valor agregado que puede aportar a los proyectos, siendo un recurso que no está involucrado al 100% en los mismos. En ocasiones, se visualiza al SQA más como un enemigo y una barrera para realizar el trabajo asignado, que como el aliado que puede avisarnos sobre los peligros latentes que se encuentran en el proyecto al no seguir adecuadamente un proceso o al fijarnos expectativas que se encuentran fuera de lo humanamente alcanzable. Esta visión resta importancia y respeto al papel que este rol desempeña, por lo cual es importante reivindicarlo para que pueda mostrar sus bondades al resto de la organización y una revisión de aseguramiento de calidad se convierta en algo que nos brinde un valor agregado más que en una pesadilla que no nos deje conciliar el sueño en la noche.
Para lograr una reivindicación adecuada del SQA, es necesario contestar las siguientes preguntas: ¿qué es el aseguramiento de calidad?, ¿quién es un SQA?, ¿cuáles son las actividades que realiza?, y ¿para qué las realiza?
Contestando a las preguntas, iniciaremos diciendo que el aseguramiento de calidad es el conjunto de actividades desarrolladas dentro del proceso de producción de software, necesarias para garantizar que una organización obtiene un determinado nivel de calidad en el producto o que cumple con los requisitos establecidos.
Un SQA es el rol en una organización que se encarga de revisar y auditar los productos y actividades para verificar que éstos cumplen con los procesos aplicables al proyecto y los estándares establecidos. Proporciona a la gerencia la visibilidad del estado en que se encuentran los procesos y los productos de los diferentes proyectos.
Las actividades del SQA no se limitan a realizar auditorías y revisiones; una de las principales tareas del SQA es la de proporcionar guía y asesoría a los miembros de los equipos de trabajo sobre el uso y aplicación de los procesos descritos en la organización, al nivel de sus proyectos. Así pues, podemos decir que el SQA realiza principalmente las actividades de auditar/revisar los proyectos y asesorar sobre el uso o aplicabilidad de los procesos. Adicionalmente, brinda soporte para facilitar la adopción de prácticas, monitorear la adecuada implantación de las mismas, proporcionar entrenamiento específico y facilitar la comunicación intergrupal.
¿Y para qué realiza todas estas actividades? Para evaluar la administración y buen desarrollo del proyecto, previniendo posibles riesgos o incidentes que se pudieran presentar durante el ciclo de vida del proyecto.
Haciendo Aliados
El secreto para que un SQA sea visualizado como un rol que aporta valor, es la creación de sinergia entre los equipos de trabajo y él o ella. De esta manera se estarán logrando varios objetivos, como por ejemplo establecer un ambiente de confianza y cooperación para realizar el trabajo de ambas partes, y así crear una visión compartida y objetivos comunes.
El establecimiento de esta visión y objetivos comunes debe hacerse para cada nivel representado en la organización.
De tal forma que la mejor manera encontrar aliados y mostrar el valor de los SQA’s es buscando estrategias que puedan ayudar a los sectores seleccionados a reconocer el valor del SQA en sus tareas cotidianas y del día a día.
Una estrategia para que los diferentes niveles de la organización vean al SQA como un aliado es establecer acciones que muestren cómo el papel del SQA, en su función de asesor, los ayuda a realizar su trabajo mediante la implantación de prácticas y procesos, coadyuvando con ello a alinear el trabajo diario con los procesos definidos, sin que éstos últimos se perciban como una actividad extra. Así se pueden empezar a identificar actividades sencillas y prácticas que ayudarán para mejorar las relaciones del grupo de SQA con los diferentes niveles de la organización, tales como: los ingenieros de software, los administradores de proyecto, la gerencia media y la gerencia alta.
Este enfoque ayudará al SQA a crear un ambiente de sinergia que mejore su credibilidad, reivindique su función y coadyuve a mejorar la productividad de los equipos, la calidad de su trabajo y los productos generados.
Estas son algunas sugerencias de lo que el SQA puede hacer para obtener el apoyo y la cooperación de los diferentes grupos en la organización:
Con el área operativa:
• Asesorarlos en sus funciones con respecto a la calidad.
• Ser guía y mentor en prácticas de ingeniería de software y técnicas de verificación y validación como revisiones entre colegas, pruebas, simulaciones, etc.
• Ayudar a los ingenieros de software a visualizar cómo sus actividades influyen en la calidad del producto final.
• Sensibilizarlos y mostrarles cómo los procesos les ayudan en la ejecución de sus tareas diarias.
Con la administración del proyecto:
• Asesorarlos en aspectos relacionados con su proyecto.
• Recompensarlos por sus esfuerzos, dándoles visibilidad correspondiente.
• Señalando las desviaciones de los procesos y/o productos, pero aplaudiendo los logros.
• Capacitándolos en los procesos y procedimientos para mejorar la calidad en sus proyectos.
• Escuchándolos y escalando sus sugerencias de mejora a los procesos.
Con la gerencia media:
• Mantenerlos informados sobre estado de los proyectos a su cargo.
• Asesorarlos en las funciones que corresponden a su nivel y realizar las revisiones que les correspondan de acuerdo a los procesos definidos por la organización.
• Proporcionarles visibilidad sobre los problemas comunes de aseguramiento de calidad en sus áreas y/o de otras áreas de la organización.
• Sugiriendo mejoras a prácticas administrativas y de ingeniería de software en sus proyectos.
Con la alta gerencia:
• Vigilando el apego a procesos, procedimientos, estándares y políticas definidos en la organización.
• Escalando problemas que deban ser atendidos a este nivel
• Reportando los resultados de las diferentes áreas.
• Brindando visibilidad sobre la calidad de los productos.
• Manteniéndolos informados sobre la operación del negocio y el apego a los procesos.
En la actualidad, se cuentan con datos de la industria que pueden ayudar a las organizaciones a estimar el esfuerzo que se invierte en las actividades de aseguramiento de calidad, como por ejemplo:
• El esfuerzo total invertido en actividades de aseguramiento de calidad por los proyectos representa entre 3 y 5% del esfuerzo total invertido en el mismo.
• El número de proyectos que un SQA puede atender varía entre 5 y 10 proyectos, dependiendo de la madurez del SQA, la complejidad de los proyectos, el tiempo (parcial o completo) dedicado a actividades de SQA y la madurez de los procesos revisados en los proyectos.
Finalmente, podemos concluir que si la organización pone en marcha esta práctica de aseguramiento de calidad, aunada con otras prácticas sencillas como verificación y validación, esto puede significar auténticos ahorros para todos los proyectos, eliminando defectos, previniendo riesgos, visualizando problemas en sus etapas tempranas y ayudando a los proyectos a potenciar los beneficios de los procesos.
- Log in to post comments