Ich betrachte die Hauptursache für Softwarefehler als Programmierer.
Das soll nicht nur lustig sein, sondern auch, weil eines der großen Probleme, die ich bei meiner Arbeit festgestellt habe, das Sammeln schlechter Anforderungen ist, verbunden mit einem schlechten Verständnis der Problemdomäne, was zu schwerwiegenden Fehlern und Usability-Problemen im Projekt führt.
Ein Teil davon ist darauf zurückzuführen, dass man nicht bereit ist, die Terminologie des Endbenutzers zu lernen / zu verstehen, was zu Missverständnissen führt.
Ein Teil davon rührt daher, dass zu früh im Prozess über Technologie gesprochen wird, wenn Leute keine Ahnung haben, wovon Sie sprechen oder warum es darauf ankommt.
Das beste Beispiel dafür war, als ich hörte, wie einer der Programmierer versuchte, herauszufinden, wie lange die Fragen / Antworten in Zeichen sein würden ... Ich wusste, dass er versuchte, herauszufinden, welche Feldgröße in der Datenbank verwendet werden sollte, aber das Die Abteilung, die dies anforderte, hatte nicht den geringsten Grund, warum das von Bedeutung war - oder dass Leerzeichen gezählt wurden. Für uns scheint das offensichtlich, aber für sie war es eine echte Offenbarung.