Considero que la causa principal de los defectos de software son los programadores.
No estoy diciendo que solo sea divertido, sino porque uno de los grandes problemas que he observado en mi trabajo es la poca recopilación de requisitos, junto con una mala comprensión del dominio del problema, que causa defectos importantes Problemas de usabilidad en el proyecto.
Parte de eso proviene de no estar dispuesto a aprender / entender la terminología del usuario final, causando malentendidos.
Parte de eso proviene de hablar de tecnología demasiado pronto en el proceso a personas que no tienen ni idea de qué estás hablando o por qué es importante.
El mejor ejemplo de eso fue cuando escuché a uno de los programadores tratando de averiguar cuánto tiempo iban a ser las preguntas / respuestas en caracteres ... Sabía que él estaba tratando de averiguar qué campo de tamaño utilizar en la base de datos , pero el departamento que lo solicitó no tenía la menor idea de por qué importaba, o de que los espacios contaban. Para nosotros eso parece obvio, pero para ellos fue una verdadera revelación.