5 Causas que afectan la calidad de software

A pesar de que las causas que afectan la calidad de software siempre están presentes, la mala calidad no es un atributo inevitable de todo software.

El software de mala calidad siempre representa riesgos.

Las causas que afectan la calidad de software son resultado de malas prácticas que aparecen desde la concepción del sistema.

En tal situación te hacemos una amplia recomendación para que conozcas más acerca del tema y revises nuestro Curso de gestión de proyectos en TICS. El capacitarte en gestión de proyectos te servirá después para comenzar la preparación para la Certificación PMP del PMI, que es la certificación en gestión de proyectos más valiosa a nivel internacional.

Sin embargo estas pueden ser predichas y controladas.

El no contar con sistemas de software con factores de calidad como alta disponibilidad, desempeño y la facilidad de adaptarse a cambios deriva en un sin número de problemas.

Si sospechas que tu sistema de software puede estar en riesgo por una mala calidad. Te invitamos a que bajes el siguiente test de evaluación.

Un problema principal del software de mala calidad son los costos que se derivan después de su implementación.

Muchas veces estos costos son subestimados y se desconoce el impacto que pueden llegar a generar.

La analogía es un iceberg en donde en la superficie aparecen los costos visibles a corto plazo, sin embargo los que terminar causando más daño son los ocultos.

Causas que afectan la calidad de software - los costos visibles e invisibles

Decimos que las actividades, recursos y personas requeridas para mantener la operación del software una vez implementado, son designadas al proceso conocido como mantenimiento de Software.

Las 5 principales causas que conllevan a una mala calidad de software y que serán recurrentes año tras año, son:

1. Falta de dominio del negocio

En la mayoría de los proyectos los desarrolladores en un principio no son expertos en los conceptos y temas propios del negocio, para el cual se está desarrollando el software.

Con el tiempo ellos logran conocer mucho sobre el negocio y se llegan a convertir en unos verdaderos expertos.

Sin embargo, mucho de este desconocimiento al inicio se traduce en un buen número de defectos introducidos al sistema por reglas y requerimientos funcionales malentendidos.

Una solución es introducir a expertos del negocio al inicio del proyecto, que den orientación a analistas y desarrolladores.

Los analistas deberán trabajar en documentar el entendimiento a través de metodologías, diagramas y notaciones estándares que faliciten su validación con los usuarios de negocio.

Ejemplos de estos diagramas y notación son UML y BPMN.

Posteriormente se recomienda conducir revisiones con los expertos de negocio para verificar que la documentación generada es correcta.

2. Desconocimiento de la tecnología

La mayoría de los desarrolladores son conocedores de varios lenguajes y tecnologías informáticas.

Sin embargo, las aplicaciones empresariales actuales de múltiples capas son un enredo complejo de muchos lenguajes y plataformas de software.

Estos niveles incluyen la interfaz de usuario, la lógica empresarial y la gestión de datos, y pueden interactuar a través de middleware con sistemas de recursos empresariales y aplicaciones heredadas escritas en lenguajes arcaicos.

Pocos desarrolladores conocen todos estos lenguajes y tecnologías, y tienen suposiciones incorrectas sobre cómo funcionan otras tecnologías.

Esto llega a ser la fuente principal de los defectos no funcionales que causan interrupciones dañinas, corrupción de datos y fallas de seguridad durante la operación.

La mejor manera de mitigar esta causa es entrenar a los desarrolladores en diferentes tecnologías, realizando revisiones entre pares con otros desarrolladores que trabajen en diferentes aspectos de la aplicación.

3. Calendarios pocos realistas

Cuando los desarrolladores se ven obligados a sacrificar buenas prácticas de desarrollo de software por planes y calendarios mal elaborados y extremadamente cortos, los resultados no son buenos.

Los pocos resultados exitosos se basan en actos heroicos que rara vez se repiten.

Al trabajar a un ritmo vertiginoso, los desarrolladores más estresados cometen más errores y tienen menos tiempo para encontrarlos.

La única manera de mitigar esto es a través de la aplicación de fuertes prácticas de gestión de proyectos.

Controlar los compromisos a través de la planificación y el seguimiento para identificar problemas, así como el control de lo cambios en los requerimientos son prácticas críticas para proporcionar un entorno profesional para el desarrollo de software.

4. No implementar ingeniería de Software

La mayoría de las actividades de desarrollo de software implican el cambio o la mejora de código.

Estudios demuestran que la mitad del tiempo dedicado a modificar software se gasta comprendiendo la lógica del código fuente.

El código complejo frecuentemente es difícil de entender y la modificación conduce a numerosos errores y efectos secundarios negativos imprevistos.

Estos defectos recién inyectados causan retrabajos costosos y liberaciones retardadas.

La manera de mitigar esta causa es volver a partes críticas del código guiado por información de análisis de código arquitectónico y estático.

5. Utilizar malas o nulas prácticas de desarrollo de Software

La mayoría de las aplicaciones multi-nivel grandes son construidas y mantenidas por equipos distribuidos, algunos o todos los cuales pueden ser subcontratados de otras compañías.

En consecuencia, la organización adquirente a menudo tiene poca visibilidad o control sobre la calidad del software que está recibiendo.

Por varias razones, los niveles del modelo CMMI no siempre han garantizado entregas de software de alta calidad.

Para mitigar los riesgos de problemas de calidad en el software suministrado externamente, los administradores deben implementar objetivos de calidad en sus contratos y una sólida garantía de calidad para el software entregado.