Saltar al contenido

8 razones de la importancia de la calidad del software basadas en la experiencia

La importancia de la calidad del software

Cuando estés metido en un proyecto de desarrollo de software, ten en cuenta que la calidad del trabajo va a impactar en los resultados. Recuerda que hay una fase del ciclo de vida del software de la que, en general, nos olvidamos. Esta fase es la de mantenimiento.

Los libros te van a contar el problema del coste de los errores, una baja calidad del software y sus consecuencias. Hasta hay un artículo interesante sobre este tema que publicó la NASA. Aquí no quiero tratar ese coste durante la ejecución del proyecto, ni tampoco dar lecciones sobre la importancia de evitar la degradación. Simplemente, daré unos consejos para acelerar esa degradación y sus consecuencias. Ya sabes, me gusta dar consejos.

8 consejos basados en la experiencia

  1. Define la arquitectura del software: Desde la arquitectura tecnológica hasta la arquitectura de la solución. Sin este paso estás condenado a sufrir una reingeniería de la solución antes del plazo esperado. Ya sabes, no hagas una previsión de cómo se va a comportar el software en la fase de mantenimiento y verás lo poco que dura tu solución funcionando. También verás cómo dejas de cumplir el período previsto de amortización de su coste.
  2. Define los puntos de control de la calidad del desarrollo: Este punto es relativamente fácil, pero no se suele hacer. Define claramente cómo vas a lograr la calidad del desarrollo. No te recomiendo que sean hitos de control como parte de los módulos a desarrollar dentro del proyecto. Te recomiendo más que sea de la misma manera en que lo vas a realizar dentro de la fase de mantenimiento. Monta cuatro puntos de control para cada desarrollo que se haga como parte del software a desarrollar. Que no te importe si es una nueva funcionalidad estimada en el proyecto, un parche o una mejora durante la fase de mantenimiento:
    • Pasar el control del umbral de calidad del código. Herramientas de control del estilo del código, o los detectores de código poco mantenible o propenso a errores son cruciales en este punto.
    • Tests unitarios en código. Las funciones básicas deben probarse y asegurar que hacen lo esperado. Llenar el código de tests unitarios es una garantía, no algo superficial.
    • Tests de integración. Cuando ya queremos probar algo más complejo, se puede decidir hacer los test de integración. Suelen ser necesarios en la mayoría de los casos, aunque usualmente no suelen tener todas las casuísticas controladas. Una buena cobertura de este tipo de tests aseguran que el código hace lo que tiene que hacer.
    • Tests funcionales automáticos. Para probar que una nueva funcionalidad o caso de uso se cumplen y no generan interferencias, se pueden añadir una batería de tests funcionales a medida que se van necesitando.
  3. Define un sistema de gestión de integración continua o de entrega continua. Estos procedimientos ayudan a entender en qué fase estamos cuando desarrollamos algo en una aplicación, y aseguran que se pasan todos los puntos de control de calidad y que además se hace de forma automática.
  4. Define el procedimiento de despliegue de una funcionalidad o actualización del software durante el proyecto. Tiene que ser la misma manera en la que luego se desplegará una versión con cambios durante la fase de mantenimiento. Eso dará garantías de que durante y después del proyecto, el proceso de despliegue es el mismo y cumple con los mismos controles de calidad. Añade en este punto algún aspecto de despliegue que garantice que no hay pérdida de servicio de la aplicación (no hay período de parada del servicio) y que además asegura que, tras el despliegue no va a haber pérdida de funcionalidad o afectación al negocio.
  5. Define las métricas de control del software mientras está ejecutándose: Se trata de saber cómo vamos a medir que el software está funcionando y está funcionando adecuadamente. Mide el comportamiento de la infraestructura, pero mide también los resultados funcionales. Piensa si tienes que definir nuevas métricas cada vez que añades una versión al software durante el proyecto o más allá.
  6. Asegura que las métricas se pueden monitorizar y se gestionan las alarmas necesarias: Si una funcionalidad deja de estar bajo unos umbrales de control, puede ser por la infraestructura o porque alguna funcionalidad desplegada en tu software o en otro dependiente está generando un problema. Monitoriza y asegura que el sistema se puede operar en los casos en que un aviso llegue a las personas adecuadas.
  7. Define el procedimiento de operación del sistema: Qué hay que hacer y cuando para asegurar que el sistema está bajo los parámetros de control esperados, asegura que el objetivo del proyecto y el futuro de la solución de software implementada sirva para su objetivo. Un error puede generar un impacto en los resultados de un negocio, pero no atajarlo a tiempo genera seguramente mucho más impacto aún.
  8. Define un sistema de prioridades en la resolución de los errores: Vas a detectar errores, ya sea durante la fase de implantación o la de mantenimiento. Asegura que tienes una política de priorización y que es compatible con la estrategia de la empresa.

Como conclusión reforzaré el siguiente mensaje: La calidad del software no es sólo un concepto teórico de la ingeniería del software. Tampoco sólo se ciñe a asegurar que los requisitos se cumplen, sino que se extiende hasta la fase de mantenimiento. Todo lo que definas durante el proyecto que se extienda hasta el mantenimiento hará que la amortización del coste de la solución se acorte y el impacto en los resultados esperados no se vea comprometido.

Etiquetas:

Deja una respuesta

Puedes añadir un comentario o responder a otro.

Información básica sobre protección de datos Ver más

  • Responsable: Antonio Gutiérrez Martín.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento: No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad