Ich habe keinen Zugang zu harten Daten oder Fakten, daher kann ich Ihnen nur vereinzelte Beobachtungen anbieten, die ich aus meinen letzten 20 Jahren in der IT gewonnen habe.
Ich glaube, es gibt einen großen Unterschied zwischen der Art und Weise, wie die meisten Entwickler heute Software erstellen, und der vor 20 Jahren. Nachdem die Agile-Bewegung vor allem in den letzten fünf bis sechs Jahren so viel Fahrt aufgenommen hat, habe ich eine echte Veränderung der Einstellungen am Arbeitsplatz erlebt. So sehr, dass die Qualität unserer Arbeit jedes Jahr sprunghaft zuzunehmen scheint und wir mit jedem Projekt die Lehren ziehen, die wir von Projekt zu Projekt gezogen haben. Schlankere Prozesse in Verbindung mit der Konzentration auf die Test-First-Entwicklung haben sich von einer sehr kontroversen zu einer alltäglichen Entwicklung entwickelt. So sehr, dass Sie sich glücklich schätzen, wenn Sie heute in viele Unternehmen eintreten, und wenn Sie sich mit Agile nicht auskennen, haben Sie das Glück, dass sie Ihnen nicht die Tür zeigen.
Wie hat sich das ausgewirkt? Zunächst ist mir aufgefallen, dass Probleme häufig viel früher erkannt werden. Oft ist es der Fall, dass das Problem, wenn es nicht zu groß erscheint, manchmal auf unbestimmte Zeit zurückgestellt werden kann. In seltenen Fällen habe ich gesehen, dass Bugs, von denen angenommen wurde, dass sie trivial sind, zu ernsthaften Problemen werden, wenn sie später behoben werden, da ein grundlegendes Problem offensichtlich wird, das zu diesem Zeitpunkt nicht berücksichtigt wurde. Manchmal kann dies zu einem langwierigen Fixzyklus führen, der bis zu einem gewissen Grad kostspielig sein kann. Diese Kosten werden jedoch häufig weniger in Bezug auf die Beschaffung als vielmehr in Bezug auf die Auswirkungen auf die Beziehung zwischen Kunde und Entwickler gemessen. Kunden gewöhnen sich zunehmend an diese agile Denkweise, die viel schneller Ergebnisse liefert als früher. Mit hochgradig iterativen Entwicklungs-Sprints und einem schnellen Turnaround zwischen Anfragen und Implementierung haben sie es verstanden, viel von uns zu erwarten. In Bezug auf die eigentlichen Fehler wird die Zeit für die Behebung eines Fehlers häufiger verkürzt, da eine solide Reihe von Tests zur Unterstützung von Änderungen zur Verfügung steht und neue Tests erstellt werden können, anhand derer Erkenntnisse und Lösungen bereitgestellt werden können zu den gemeldeten Problemen.
Im Großen und Ganzen scheint sich der Gesamtaufwand für die Behebung von Fehlern in den meisten Fällen verringert zu haben, wenn eine solide Reihe von Tests vorhanden ist, und Verfahren, mit denen sichergestellt wird, dass das Testen im Mittelpunkt des Handelns des Entwicklers bleibt, jedoch die tatsächlichen Kosten hat sich teilweise zumindest von der Implementierung auf andere Geschäftsbereiche verlagert, da sich der Fokus in gewisser Weise auch von Angebot und Nachfrage auf Beziehungsmanagement verlagert hat.
Eine andere Sache, die offensichtlich geworden ist, ist, dass unser Bauchgefühl vor ein paar Jahren, das darauf hindeutet, dass Agilität unsere Wartungszyklen verkürzt, in gewissem Maße sowohl richtig als auch falsch erwiesen ist. Genau in dem Sinne, dass solide Tests das Debuggen und Korrigieren unseres Codes zu einem großen Teil erleichtert und die Anzahl der im Produktionscode veröffentlichten Fehler insgesamt verringert haben Beibehaltung von altem Code durch ständige Überarbeitung des Codes und Verbesserung der Architektur, sodass es immer seltener wird, dass wir neue Produkte komplett von Grund auf neu entwickeln müssen.
Was bedeutet dies letztendlich für die Frage des OP? Nun, es bedeutet, dass die Antwort wirklich nicht so trocken ist, wie wir es uns einmal vorgestellt haben. Vor 15 Jahren hätte ich die Frage wahrscheinlich als beantwortet JaAber jetzt finde ich es realistischer zu sagen, dass es wirklich zu schwierig ist, empirisch zu messen, da sich die Art und Weise, in der wir Software entwickeln, stark verändert hat, seit wir uns damals das erste Mal die Frage des OP gestellt haben. In mancher Hinsicht wächst die Frage von einem definitiven Ja zu einem Punkt, an dem ich vermute, dass wir in wenigen Jahren sagen werden, dass es keine Rolle spielt, je mehr wir unsere Techniken und Fähigkeiten als Branche weiterentwickeln Wenn wir Fehler beheben, weil unsere Tests und Prozesse so viel robuster sind, dass der Zeitpunkt für die Fehlerbehebung weniger durch Anstrengungen zur Einsparung unserer Budgets bestimmt wird, als vielmehr durch Prioritäten zur Befriedigung der Bedürfnisse unserer Kunden und die relativen Kosten werden praktisch sinnlos kontextuell.
Aber wie gesagt, dies sind keine stichhaltigen datengestützten Beweise, nur meine Beobachtungen der letzten Jahre, und mein Bauch sagt mir, dass es weitere bodenschüttelnde Weisheiten geben wird, die die Art und Weise, wie wir Dinge tun, verbessern werden.