Kürzlich wurde ich durch eine Statusaktualisierung von jemandem darauf aufmerksam gemacht, dass wir "dies" in Zukunft gleich beim ersten Mal richtig machen müssen.
In diesem speziellen Fall ging es um einen Test, der sich sehr spät im Projektzyklus befand und bei dem viele Dinge perfekt zusammenpassen mussten, damit er funktioniert. Jede Verzögerung würde nicht nur das aktuelle Projekt verzögern, sondern auch alle anderen Projekte, die auf die gemeinsam genutzten Ressourcen angewiesen sind. Diese enormen Kosten, wenn etwas schief geht, sind der Grund, warum es so wichtig ist, dass wir es gleich beim ersten Mal richtig machen.
Das Problem ist, dass dies Dutzende von Menschen in mehreren Unternehmen und Abteilungen betrifft, die Tausende von Codezeilen geschrieben haben.
Ich weiß nicht, was sie tun werden, um die Dinge in Zukunft richtig zu machen, aber wenn wir nach den Erfahrungen der Vergangenheit gehen, werden die meisten Leute noch strengere Zugangskriterien durchsetzen wollen.
Es gibt ein paar Probleme mit diesem Ansatz:
Diese Programmierer saßen so ziemlich im selben Boot. Sie mussten es gleich beim ersten Mal richtig machen. Jeder Tippfehler oder Irrtum kostete bestenfalls ein paar Stunden, möglicherweise aber auch Tage.
Heutzutage gibt es jedoch nur sehr wenige Programmierer, die sich um Tippfehler kümmern, bevor sie ein Programm ausführen. Geschweige denn, dass sie versuchen, komplexere Fehler herauszufinden. Warum ist das so?
Die Antwort ist natürlich der Compiler. Ein Compiler kann Ihren Code viel schneller auf diese Fehler überprüfen als Sie selbst. Warum sollten Sie Stunden damit verbringen, manuell nach Fehlern in Ihrem Code zu suchen, wenn der Compiler die meisten syntaktischen Fehler in Minuten oder Sekunden für Sie finden kann?
Die nächste große Erfindung war die Erfindung des Unit Tests. Das war viel aufwändiger, als nur einen Compiler auf Ihren Code anzusetzen, aber es ermöglichte es Ihnen, nicht nur syntaktische Fehler, sondern auch die meisten logischen Fehler sehr schnell zu finden. Dann kam die kontinuierliche Integration. Wir begnügen uns jetzt nicht mehr damit, Fehler im Code einer einzelnen Person zu finden, sondern können auch eine andere Klasse von logischen Fehlern finden, die durch die Komplexität entstehen, wenn mehrere Personen an derselben Anwendung arbeiten und sich auf externe Komponenten verlassen.
Was haben diese drei Maßnahmen also gemeinsam? Sie sind sehr billig, jedenfalls im Vergleich zu den Kosten, die entstehen, wenn der Fehler nicht entdeckt wird, und sie sind sehr schnell. Dank dieser Eigenschaften können Sie sie jederzeit einsetzen, was bedeutet, dass Sie sie auch nach jeder größeren Änderung einsetzen können, nur für den Fall, dass Sie einen Fehler eingeführt haben.
In den komplexen Umgebungen, in denen wir heute arbeiten, ist es unmöglich, es immer gleich beim ersten Mal richtig zu machen.
Wenn Sie also das nächste Mal sagen: "Wir müssen das in Zukunft einfach beim ersten Mal richtig machen", oder wenn Sie das jemanden sagen hören, dann ändern Sie es ein wenig. "Wir müssen es beim ersten Mal richtig machen, wenn wir es wirklich versuchen". Und dann finden Sie einen billigen und schnellen Weg, um herauszufinden, ob es funktioniert.
- Jede Komponente auf diese zusätzlichen Kriterien zu testen, ist eine Menge Arbeit
- Je länger die Liste der Kriterien ist, desto schwieriger wird es, zu garantieren, dass jede Komponente alle Kriterien erfüllt.
- Bei der Integration mehrerer Komponenten liegt die Komplexität in der Interaktion, nicht in den einzelnen Komponenten.
- Sie werden nur vorhersehbare Fehler verhindern
Verfasst von

Erwin van der Koogh
Unsere Ideen
Weitere Blogs
Contact
Let’s discuss how we can support your journey.



