Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Primero se debe intentar identificar los factores que desde un punto de vista externo
definen la calidad del software, no me refiero a los procesos internos de desarrollo, como
pruebas unitarias, gestión de cambios, calidad del código... no!! se refiere a lo que se
percibe, una vez el software está terminado, implantado y en producción, lo que nota un
usuario. Intentemos pensar (como ejemplo para evaluar la calidad) en un producto
software..., uno de los primeros que desarrollamos o probamos, así veremos mejor su
evolución y evaluaremos la calidad teniendo en cuenta factores temporales.
Satisfacción del cliente (se suelen hacer encuestas para obtener este dato): Interfaz
de usuario (usabilidad, accesibilidad, facilidad de manejo, curva de aprendizaje, diseño.)
Es tan difícil medir la calidad..., no cabe duda de que si diésemos con una fórmula
válida, nos haríamos multimillonarios, pero la calidad no es algo tan trivial, que se pueda
medir en una escala de 0 a 10... la calidad tampoco es binario o 0 o 1, o se tiene o no se
tiene, es algo más complejo, la calidad es el día a día, el trabajo meticuloso, de trabajo
organizado y estructurado, probado y documentado, orientado a la petición de cambio del
cliente y a la facilidad para llevar a cabo el cambio en el equipo de desarrollo, la calidad no
es CMMI o SCRUM, aunque si es cierto que cualquier metodología actual sienta las bases
para desarrollar un producto de calidad.
Por todo esto y para terminar, decir que la calidad no se puede medir, pero los
factores que afectan a la calidad si se pueden identificar y mejorar... por lo tanto la calidad
está en la mejora diaria, en cada uno de los eslabones del desarrollo de software, en la
buena gestión, en cada línea de código, ... todos deben aportar calidad, desde la
codificación (tratando de documentar el código, haciéndolo, legible, mantenible...), hasta la
implantación del producto (haciendo un aterrizaje suave sobre un entorno de pre-
producción, pasar de nuevo el plan de pruebas), hasta incluso después de la puesta en
producción aportando al cliente un buen bug-tracker y comunicación continua.
Sin embargo, hoy en día existen empresas que tienen solidez y contemplan en su
visión el entregar no sólo lo que pide el cliente, sino que también dar el plus que los
diferencia de la competencia, no sólo es pensar en el bien de la organización, sino que
también pensar en el bienestar de los clientes. Pero ¿Cómo infundir la cultura de calidad en
una organización? ¿Cómo hacer que nuestros colaboradores se involucren en el cambio?
Para contestar estas preguntas debemos empezar por cosas muy sencillas, para luego
establecer un departamento que cumpla con la función de asegurar la calidad en la
organización. Podemos empezar con:
1.- Comprender qué significa calidad (que los clientes reciban lo que esperan del servicio y
queden satisfechos).
2.- Estar convencidos de que lo que se desea es producir servicios y productos con calidad,
y que para esto “todos” tenemos la responsabilidad de alcanzarlo.
3.- Comprometerse a realizar todo lo que sea necesario para brindar productos y servicios
con calidad, desde la primera vez que se hacen
4.- Promover la cultura donde todos se sientan con libertad de contribuir con ideas, donde
el involucramiento en la solución de problemas y la toma de decisiones sea una norma.
El aseguramiento de calidad hace que todo lo creado tenga sentido, pero no
podemos asegurar la calidad sino existen controles adecuados para cada proceso, es
importante definir éstos controles de acuerdo a lo que producimos para luego infundir una
cultura de calidad en los que conforman nuestro equipo de TI.
Con el paso de los años se han ido inventando nuevas formas de mejorar los
sistemas. Estas mejoras son tomadas en cuenta dada la necesidad de obtener productos
(software) de mejor calidad. Este artículo ha sido escrito precisamente para tratar de aclarar
2 de los conceptos más mencionados al referirse a la calidad del software: Pruebas de
Software (Software Testing) y Aseguramiento de la calidad QA (siglas de las palabras en
inglés Quality Assurance).
Para tener una idea clara de las diferencias y relación entre ambos, es necesario
conocer los conceptos.
Las Pruebas de Software son una fase muy importante dentro de casi todos los
modelos conocidos de Ciclo de Vida del Software. Por ejemplo; en el venido de los 70’s
pero aún utilizado, modelo Cascada, se realizan las pruebas una vez terminada la
construcción del sistema, en el Incremental se realizan las pruebas en cada incremento del
sistema, o por ejemplo, en el Evolutivo mediante la retroalimentación de los usuarios, en el
espiral durante su verificación y validación del desarrollo, o en los enfoques XP (eXtreme
Programming o Programación Extrema) con repetidas pruebas de cada una de las mejoras
debido a su desarrollo iterativo e incremental. Así podríamos ir mencionando otros modelos
no tan conocidos pero que seguramente incluyen Pruebas también para entregar sistemas de
Calidad.
Por otro lado, QA se refiere a asegurar (como su nombre lo dice) la calidad en cada
una de las fases de la elaboración de un producto final, cualquiera que éste sea. En el caso
de QA de software, se referirá entonces, a asegurar la calidad de los resultados de cada una
de las fases del ciclo de vida del software y con esto, asegurar la calidad del producto final.
Para cumplir con este aseguramiento se deberán definir estándares y establecer
procedimientos contra los cuales se pueda comparar lo alcanzado durante cada una de las
fases. Por ejemplo; si para el Análisis de Requisitos dentro de un modelo cascada, se ha
definido un tipo determinado de documento a presentar, entonces para pasar a la fase de
Diseño, el documento de Análisis deberá estar conforme al documento estándar ya que una
fase que no se ejecutó de forma correcta podría causar (y muy probablemente lo haga)
defectos en las fases posteriores. La idea es que mientras más temprano se detecten las
fallas, menor será el costo (monetario, de tiempo, recursos, calidad, etc.) de repararlas y
mayor la calidad del producto final.
Una vez con estos conceptos en mente será más sencillo señalar un par de
diferencias y relaciones entre ambos:
1.- Las Pruebas de Software se realizan en una de las fases del ciclo de vida del software;
mientras que QA de software se deberá ejecutar en todas las fases (incluida la fase de
Pruebas).
2.- Las Pruebas de Software utilizarán Casos de Pruebas para ser ejecutados; en cambio QA
de software utilizará los estándares y procedimientos establecidos para cada una de las
fases del ciclo de vida del software.
3.- Ambas permitirán verificar y afirmar la calidad del producto final, el software.
4.- Ambas definen un conjunto de actividades a realizarse dentro del ciclo de vida del
software para mejorar y asegurar la calidad del mismo.
Este tema es sumamente amplio y en este artículo sólo se ha tocado una pequeña
parte de él, pero como se mencionó inicialmente, QA y Pruebas de Software son de los
conceptos más utilizados al hablar de Calidad de Software así que hay que tenerlos siempre
claros para saber cuándo utilizarlos.