miércoles, 12 de septiembre de 2012

Arquitectura - Primer acercamiento a los atributos de calidad del software

Primer acercamiento a los atributos de calidad del software

Aunque son llamados de muchas formas (Calidades sistémicas, requisitos de nivel de servicio, requisitos no funcionales, atributos de calidad, entre otros) no son más que aquellas características que hacen único a un producto de software. Dos productos pueden ser funcionalmente idénticos pero sus atributos de calidad son los que realmente marcan la diferencia porque dependen del entorno, de la organización y de las personas que finalmente se beneficiaran del uso del sistema. En otras palabras los atributos de calidad permiten determinar las condiciones de operación y evolución del software de cara a sus usuarios finales y/o no finales.

Respecto al nombre no vale la pena debatir, personalmente pienso que el nombre más adecuado es el de Atributos de calidad porque no demarca la delgada línea entre lo funcional y lo no funcional que en la mayoría de los casos es difícil de trazar. ¿La seguridad es un requisito no funcional? Probablemente la gran mayoría piensen que si, pero cuando pensamos en todo lo que involucra (Ingresar credenciales de acceso, autenticación, autorización) ¿No es todo esto algo funcional? Los atributos de calidad son difíciles de definir pero fáciles de percibir.

¿Por qué son importantes los atributos de calidad?

 PORQUE NOS AYUDAN A GENERAR VALOR EN LA SOLUCIÓN FINAL QUE OFRECEMOS A LOS USUARIOS.

Los atributos de calidad se podrían dividir en dos grupos:

1. Aquellos percibidos de forma directa por el usuario final y que finalmente impactan al negocio. Tales como: Disponibilidad, Facilidad de uso, Desempeño o Confiabilidad.
  •  Si el sistema no está disponible durante un periodo determinado de tiempo los usuarios finales no podrán ejecutar sus tareas, por ende el negocio sufrirá una baja de productividad y probablemente las personas tendrán que trabajar de mas afectando su calidad de vida.
  • Si el sistema tarda mucho tiempo en responder ante las diferentes solicitudes de los usuarios probablemente ocurra lo mismo que en el punto anterior.
 2. Aquellos que son percibidos en el tiempo por el negocio. Tales como: Facilidad de modificación, Facilidad de extensión, Portabilidad o Escalabilidad.
  • Si el sistema es difícil de modificar o de extender, se requerirá un esfuerzo mayor para realizar cambios sobre éste y por ende mayor será el costo de hacerlo, lo que finalmente afectará al negocio.
  • Si el sistema no es portable será difícil de reutilizar y probablemente ocurrirá lo mismo que en el punto anterior.
En ambos casos el impacto se da tiempo después cuando sea necesario hacer cambios o reutilizar funcionalidades y es justo en ese momento cuando el negocio se ve afectado, no antes.

Cualquier atributo de calidad que no pueda agruparse en una de estas dos categorías no tiene sentido porque no estaríamos generando impacto sobre la calidad de vida de las personas ni sobre el negocio y finalmente éste debe ser nuestro objetivo.

Es claro entonces que nuestra responsabilidad es identificar estos atributos de calidad de cara a su impacto directo sobre las personas o el negocio. Para lograrlo existen muchas técnicas, una de las que más me gusta se llama QAW (Quality attribute workshop) de SEI, la cual discutiremos en otro post.





No hay comentarios: