¿Cómo evaluar la calidad una aplicación web a medida?

Para evaluar la calidad de un software de ambito web es necesario considerar sus:

  • Cualidades Externas (se refieren a factores esperables que son útiles o aprovechables por los usuarios finales de un sistema)
  • Cualidades Internas (aquellas que permitirán una labor sencilla, productiva, ordenada, y eficiente, a los desarrolladores del sistema, o a quienes deseen re-programarlo, mantenerlo, etc)

Hay 16 atributos básicos de valoración esperables en la calidad de las aplicaciones web a medida . Es importante conocerlos y exigirlos como estándares que deben cumplir los programadores o desarrolladores de aplicaciones a medida. A continuación un detalle de los mismos:

Cualidad

Importancia

Preguntas para evaluar el atributo

Respuesta

Correctitud

fundamental
  • ¿al someter al programa a diversas tareas básicas, cumple este el/los requerimiento/s del/los usuario/s?
  • ¿realiza las tareas de manera tal que el resultado de las mismas sea correcto?
si / no

Usabilidad

fundamental
  • ¿es sencillo de entender y manejar el software para los usuarios a los cuales está destinado su uso?
  • ¿es intuitivo, y posee la información y ayudas adecuadas como para que el usuario no tenga que depender de alguien que explique cómo utilizar cada función?
  • ¿son cómodos los menúes, los botones, las ventanas de interfaces, los cuadros de diálogo, los formularios, etc?¿las jerarquías visuales son correctas?
  • ¿es sencillo buscar y filtrar información dentro del programa?
si / no

Oportunidad y Economía

fundamental
  • ¿el software puede ser (o ha sido) entregado en tiempo y forma por sus desarrolladores?
  • ¿pueden los desarrolladores establecer tiempos razonables de trabajo en relación a la complejidad del mismo?
  • ¿es capaz de ser desarrollado óptimamente sin utilizar más recursos que los previstos (presupuesto estimado)?
  • ¿es capaz el desarrollador de establecer un precio justo de desarrollo, implementación y soporte, previsiblemente amortizable según su productividad, y no inflado en relación al estándar del mercado?
si / no

Documentación y Visibilidad

esperable
  • ¿posee el proyecto una buena documentación interna y externa (del código fuente, y de la ayuda al usuario). (esto está relacionado a otros factores, como la usabilidad y la comprensibilidad).
  • ¿Hay transparencia hacia afuera en las etapas de desarrollo (ciclo de vida), están documentadas y disponibles para el cliente?
si / no

Compatibilidad

esperable
  • ¿puede interactuar el software con otras aplicaciones que complementan tareas, o procesos que necesita abarcar el usuario?
  • ¿sus reportes y datos están en archivos compatibles con aplicaciones de uso común y popular (por ejemplo planillas de excel, que es el estandar de las hojas de cálculo)?
si / no

Comprensibilidad

esperable
  • ¿es amigable el software para los desarrolladores?
  • ¿pueden comprender su estructura lógica, sus funciones de ejecución y procesamiento, su código fuente es fácilmente legible y comprensible?
si / no

Confiabilidad

fundamental
  • ¿es confiable el software para el usuario final?
  • ¿después de un buen periodo de uso: sucede a veces que el usuario “desconfía” porque en ocasiones anteriores ha perdido datos importantes que le ha llevado tiempo cargar?
  • ¿cuándo falla, son fallas graves o leves, según las consecuencias que provocan?
si / no

Eficiencia

fundamental
  • cuando el volumen de datos crece dentro de lo contemplado, ¿el software se vuelve lento?
  • ¿es capaz el software de procesar/almacenar datos de manera eficiente?
  • ¿comienza a insumir muchos recursos de hardware?
  • ¿se ve afectada la productividad de los usuarios por esta lentitud?
si / no

Escalabilidad

esperable
  • Escalabilidad funcional: ¿es sencillo y relativamente breve implementar al software nuevas funcionalidades y servicios, a medida que surgen nuevos requerimientos? (legibilidad, comprensibilidad, documentación).
  • Escalabilidad por crecimiento en volumen de datos: (ver eficiencia)
si / no

Funcionalidad

fundamental
  • ¿hay operaciones que el software podría realizar internamente y sin embargo hay que hacerlas “a mano” o en otras aplicaciones?
  • ¿son muy limitadas o incompletas las funciones que realiza el software?
  • ¿resuelve casi todos los problemas de operatividad y gestión de la información?
si / no

Mantenibilidad

fundamental/esperable
  • Reparabilidad: ¿es sencillo corregir errores del software (bugs o funcionalidades mal definidas)? (esto depende del grado de modularidad del software) si el software es modular se aísla problemas fácilmente y se gana tiempo encontrando y corrigiendo errores.
  • Flexibilidad: ¿es sencillo hacer adaptaciones cuando se alteran levemente los requerimientos iniciales? ¿es sencillo adaptar el software si se modifica su entorno de aplicación, si se actualiza el sistema operativo o el hardware?
  • Evolucionabilidad: ¿es sencillo perfeccionar el software en un proceso evolutivo viable?
  • Extensibilidad: ¿es sencillo extender el software hacia nuevas funcionalidades sin tener que modificar el código “existente”?
si / no

Portabilidad

esperable
  • ¿el software es portable a diferentes sistemas operativos y plataformas?
  • ¿es sencillo "trasladar" el software de una intranet a otra, o de un dominio/servidor a otro sin mayores problemas, y configurando tan solo unos pocos parámetros?
si / no

Disponibilidad / Recuperabilidad

fundamental
  • ¿el sistema, se “cae” muy a menudo?
  • ¿es preciso inhabilitarlo por mucho tiempo cada vez que hay que hacer tareas de mantenimiento?
  • ¿cuánto tiempo demora el sistema en “arrancar” hasta su estado funcional?
si / no

Reusabilidad

esperable ¿es el código fuente del software, reusable? si / no

Robustez

esperable ¿reacciona bien el sistema ante situaciones o casos no previstos o no contemplados en los requerimientos? si / no

Seguridad

fundamental
  • ¿están protegidos los datos que manipula el sistema, ya sea en su tiempo de proceso y tránsito, como así también en su estado de almacenamiento?
  • ¿es muy vulnerable al ataque de hackers / crackers?
  • ¿tiene contemplado un sistema de recuperación, ante pérdida de datos?
si / no