paint-brush
Defekte Windows-Theorie in der Softwareentwicklung: Warum Details wichtig sindvon@aferreira
1,690 Lesungen
1,690 Lesungen

Defekte Windows-Theorie in der Softwareentwicklung: Warum Details wichtig sind

von André Ferreira, MSc10m2023/02/27
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

Die Broken-Windows-Theorie legt nahe, dass Umweltstörungen kriminelles, asoziales oder zivilrechtliches Verhalten begünstigen. Dieser Artikel bietet eine Reflexion und versucht, Veränderungen zu fördern, indem er den Lesern klar macht, wie sich ihre Handlungen auf die Umgebungen auswirken, in denen sie tätig sind. Einige Probleme in der Welt der Softwareentwicklung mögen belanglos erscheinen, sie können jedoch schwerwiegende Nebenwirkungen und Kosten für Menschen und die Gesellschaft haben.
featured image - Defekte Windows-Theorie in der Softwareentwicklung: Warum Details wichtig sind
André Ferreira, MSc HackerNoon profile picture
0-item


Während einige Probleme in der Welt der Softwareentwicklung belanglos erscheinen mögen, können sie schwerwiegende Nebenwirkungen und Kosten für Menschen und die Gesellschaft haben. Dieser Artikel bietet eine Reflexion und versucht, Veränderungen anzuregen, indem er den Lesern klar macht, wie sich ihre Handlungen auf die Umgebungen auswirken, in denen sie tätig sind, und wie selbst einige kleine Dinge am Ende ein Vermögen kosten können.

Kaputte Fenster

Als kleiner Junge, bevor ich meinen ersten Computer bekam, war ich immer mit dem Fahrrad unterwegs. Gegenüber meinem Haus gab es einen kleinen Wald mit ein paar schmalen Wanderwegen, auf denen ich regelmäßig Rad fuhr.


Ich habe mir oft vorgestellt, dass mein BMX-Fahrrad ein Formel-1-Fahrrad sei und ich mit Nigel Mansell, Alain Prost oder Ayrton Senna konkurriere. Dann, kurz vor der Ziellinie, gelang mir ein souveränes Überholmanöver und ich holte mir den knappen Sieg.


Am anderen Ende des Waldes befand sich ein altes Lagerhaus. Es hatte oben in der Nähe des Daches kleine Fenster, durch die Licht hereinkam. Diese waren jedoch hoch genug, dass niemand durch sie hineinschauen konnte.


Ich habe nie vergessen, wann ich zum ersten Mal innegehalten habe, um mich auszuruhen und das Gebäude zu betrachten. Ich erinnere mich, dass ich dachte: „Seltsam! Warum liegt es nicht in der Nähe einer Straße? ... Jemand hat Steine geworfen und einige Fenster zerbrochen ... Warum wurden sie nicht repariert? Es sieht geheimnisvoll, aber düster aus. Ich bleibe besser weg, irgendetwas fühlt sich komisch an.“ Ich wäre dann mit dem Fahrrad davongefahren und hätte mich nie wieder viel in diese Gegend gewagt.


Die Jahre vergingen und schließlich wurde der Wald von einer Straße durchschnitten und langsam schossen einige neue Gebäude an ihm entlang. Aber zumindest eine Zeit lang blieb das alte Lagerhaus bestehen. Doch mit jedem Jahr mussten mehr Fenster den auf sie geworfenen Steinen nachgeben.


Fairerweise muss man sagen, dass derjenige, der die Fenster eingeschlagen hat, nicht von Gewissensbissen geplagt wurde. Einige waren bereits kaputt und nicht repariert, wen würden also schon ein paar mehr interessieren? Schließlich wären die Kosten für den Austausch gleich hoch, da sie alle repariert werden müssten.


So boten die alten Lagerhausfenster eine Gelegenheit, das Zielen zu trainieren und zu feiern, wenn die vorzeitige Abrisshilfe erfolgreich war (ein weiteres Fenster ging zu Bruch), wie ich es einmal bei einigen älteren Jungs beobachtet habe.


Für mich und einige andere Kollegen ermöglichte die Straße einen kürzeren Weg zur Schule. Nichtsdestotrotz würden wir alle die ältere und etwas längere Route bevorzugen, da es sich um einen bekannten Weg handelte und wir so das heruntergekommene Gebäude umgehen konnten, das uns ein seltsames Unbehagen bereitete. Es war etwas weniger, worüber man nachdenken oder sich Sorgen machen musste.


Ich erzähle diese Geschichte aus einer Zeit vor den Mobiltelefonen, um Sie in Ihre eigene Kindheit zu versetzen und ähnliche Gefühle hervorzurufen, die Sie vielleicht als Kind beim Betrachten eines heruntergekommenen Gebäudes oder einer heruntergekommenen Gegend verspürt haben, und Ihnen diese vorzustellen Defekte Windows-Theorie .


Kurz gesagt legt die Theorie der zerbrochenen Fenster nahe, dass Umweltstörungen kriminelles, asoziales oder zivilrechtliches Verhalten begünstigen. Keine zerbrochenen Fenster bedeuten eine geringere Wahrscheinlichkeit von Unordnung und begünstigen Frieden und Gesetzmäßigkeit. Wie bei den zerbrochenen Fenstern des alten Lagerhauses ist es einfacher, noch mehr anzuhäufen, wenn bereits reichlich Unordnung herrscht.


Ich bin vor vielen Monden zum ersten Mal auf die Theorie der zerbrochenen Fenster gestoßen, als ich den Pragmatischen Programmierer gelesen habe. Wenn Sie neu in der Welt der Softwareentwicklung sind, ist es eine Lektüre wert.


Die Weisheit der Theorie der zerbrochenen Fenster kommt mir oft in den Sinn. Sicherlich hätten Kriminologen und Verhaltensexperten noch viel mehr dazu zu sagen, aber für mich ist es ein eindringliches Beispiel dafür, wie die Umwelt das menschliche Verhalten beeinflusst.


Und während einige neuere Wissenschaftler behaupten, dass die Theorie nicht mehr Bestand hat, auch ohne ihre Arbeiten oder Behauptungen gelesen zu haben, würde ich bereits widersprechen: „Entschuldigung. Ich verstehe, dass Sie ein Experte sind, aber meiner Erfahrung nach steht es.“


Wenn Sie die Fernsehsendung „Bing Bang“ mögen, dann wissen Sie, dass selbst Experten falsch liegen und selbst von Freunden das Gegenteil bewiesen werden können.


Ich hoffe, Sie haben verstanden, dass die zerbrochenen Fensterscheiben in dieser alten Lagerhausgeschichte zu asozialem Verhalten einluden, das auch Passanten dazu verleiten würde, wie von einer automatischen Vorahnung des Unglücks geleitet, Schritte davon zu machen und es aus dem Bewusstsein zu verbannen.

Technologie und Kriminalität

Damit Sie nicht denken, ich sei zu alt, erlauben Sie mir, als weiteres Beispiel die TikTok-Kia-Challenge zu verwenden (zu deren Durchführung auch das Einschlagen der Fahrzeugscheibe gehören kann).


Falls Sie es nicht kennen: Es handelt sich um ein auf dieser Plattform geteiltes Video, das zu einer Reihe von Autodiebstählen gegen Kia und Hyundai führte, meist von Teenagern, die zu Sachschäden, Trauer, dem Verlust von Menschenleben und anderen Schandtaten führten Konsequenzen, die alle negativ sind … ausgenommen TikTok-Gewinne und weitere Bekanntheit der Plattform.


Obwohl es sich um eine beabsichtigte oder unglückliche Designentscheidung dieser Automobilhersteller handelte, handelte es sich dennoch um eine Systemfragilität, die über ein herkömmliches USB-Kabel erfolgreich ausgenutzt werden konnte.


Ein Bild einer Autofabrik


Die Erwachsene oder zumindest die Verantwortungsbewusste wäre gewesen, diese Schwachstelle beiden Marken mitzuteilen und zu hoffen, dass sie Maßnahmen ergreifen würden, um sie zu beheben. Das hätte natürlich bedeutet, dass die Autoren des Videos höchstwahrscheinlich nie berühmt werden würden und auch keinen Spaß dabei hätten.


Es ist für mich interessant, dass die Jugend heutzutage lieber Influencer sein möchte, wenn auch als Botschafter des Bösen, statt Feuerwehrleute, Ärzte oder Astronauten. Gute Arbeit, Massenmedien! (mein Sarkasmusversuch für diejenigen, denen es schwerfällt, Sarkasmus zu bekommen).


In diesem Beispiel können wir also anerkennen, dass ein zerbrochenes Fenster (und ein USB-Kabel), selbst wenn es unbeabsichtigt ist, dramatischere Folgen haben kann als nur zersplittertes Glas.


Beide Unternehmen haben seitdem Schritte unternommen, um das kriminelle Verhalten einzudämmen und zu bekämpfen, oder mit anderen Worten, die zerbrochene Fensterscheibe zu reparieren, allerdings nicht bevor sie Reputationsschäden und finanzielle Verluste erlitten haben.

Softwareentwicklungsdesign: Das Beispiel für einen HTTP-Referer-Header

Ein Beispiel aus der Softwarewelt, das seit vielen Jahren ein kaputtes Fenster ist, ist der HTTP-Referer-Header, eine falsche Schreibweise des Wortes Referrer. Es hat mir Probleme bereitet, vielleicht Ihnen und auch Hunderten, wenn nicht Tausenden von Menschen.


Wie ich haben Sie wahrscheinlich auch die Autoren verspottet (unhöfliche und spöttische Bemerkungen gemacht, normalerweise mit lauter Stimme). Möglicherweise haben Sie auch nach der Schuld gesucht und sind möglicherweise auch nach so vielen Jahren zu dem Schluss gekommen, dass die Ausrede, zu beschäftigt zu sein oder „Irgendwann werde ich das schon hinbekommen“, sehr menschlich ist, wie Sie es getan haben Ich habe sicher schon einmal ähnliche Argumente für andere kaputte Fenster gehört.


Wen kümmert es schon, dass andere Menschen Zeit verlieren, wenn einem leicht beigebracht werden kann, dass man etwas falsch machen muss, weil das die richtige Art ist, es zu tun? Oder, hier ist ein lustiger Gedanke: Warum ändern wir nicht das Wörterbuch? Dann wird es kein Fehler mehr sein.


Öffnen Sie den Texteditor Ihrer Wahl und schreiben Sie einen Satz mit der falsch geschriebenen Version und dem Wörterbuch auf Englisch. Wird das Wort als Tippfehler gekennzeichnet?

Die Ergebnisse werden Sie vielleicht überraschen.


Ein zerbrochenes Fenster, das nicht repariert wird, führt zu noch mehr zerbrochenen Fenstern, aber wenn sich selbst die Experten nicht darum kümmern, warum sollte es dann der Rest von uns tun? Warum nicht mehr Fenster einschlagen? Sicherlich muss eines Tages alles repariert werden.


Hier ist ein möglicher Grund! Da es um Zahlen geht, kann man sich leicht irren, aber versuchen wir es mal.


Nehmen wir das durchschnittliche Programmierergehalt in den USA im Jahr 2021, das laut dieser Quelle 93.000 US-Dollar betrug. Nehmen wir 40 Stunden pro Woche und 52 Arbeitswochen an, um den Stundenwert von 44,71 US-Dollar zu erhalten (Amerikaner legen offenbar keinen großen Wert auf Urlaub).


Angesichts dessen gibt es dieser Quelle zufolge allein in den USA 4,3 Millionen Programmierer. Selbst wenn wir nur 5 % davon nehmen würden (ich habe den Wert willkürlich gewählt), kämen wir auf 215.000 Programmierer, die auf die eine oder andere Weise auf den Tippfehler gestoßen sind und Maßnahmen ergreifen mussten, um ihn zu verstehen und zu beheben.


Wenn jeder dieser Programmierer im Durchschnitt nur eine Stunde damit verbringen würde, sich mit den Nebenwirkungen auseinanderzusetzen und zu verstehen, warum sie überhaupt vorhanden sind, dann hätten die Kosten für ihre erste Begegnung 9,6 Millionen Dollar betragen. Bei 30 % (1.290.000 Personen) läge der Wert bei 57,7 Millionen Dollar . Nochmals: Nur USA .


Selbst wenn Sie einen anderen, willkürlichen Prozentsatz wählen, wird die Verschwendung immer noch immens sein.


Das Bild einer Person, die Geld in beiden Händen hält, als würde sie zählen


Und bitte beachten Sie, dass ich nicht berücksichtigt habe, dass Probleme, die früher in einem Entwicklungszyklus auftreten, deutlich weniger kosten als solche, die in der Produktion auftreten. Ich habe auch keine Inflationsanpassungen hinzugefügt, noch habe ich verschiedene Länder berücksichtigt oder Studenten und Professoren, die sich damit befassen, noch diejenigen von Leuten, die Websites haben und nicht als Programmierer gelten, noch diejenigen, die im Ruhestand sind, und auch nicht diejenigen, die es noch haben um es zu lernen.


Extrapolieren Sie diesen Wert nun, um die Welt einzubeziehen. Wie viel Geld, wie viel Wert, wie viel Leben ist Ihrer Meinung nach bereits verloren gegangen und wird noch verloren gehen?


Ich sehne mich nach dem Tag, an dem eine freundliche Seele irgendwo mitteilt: „Übrigens haben wir es behoben und die alte Methode wird in Version X veraltet sein.“ Denn für mich war gestern der beste Zeitpunkt, ihn zu beheben, es sei denn, die Leute, die für den einfachen Fehler verantwortlich sind, sind so verabscheuungswürdig, dass sie wegen dieses Tippfehlers in Erinnerung bleiben sollten. (Kennen Sie jemanden bei der Apache Foundation oder arbeiten Sie mit Nginx? Bitte! Nörgeln Sie ihn!)


„Beginnen Sie mit dem Ziel im Hinterkopf“, dazu gehört auch, was Sie für andere getan oder nicht getan haben.


Dies ist jedoch nur ein Beispiel aus der Softwarewelt, kein Einhorn, wir haben mehr.

Unternehmensreife und kaputte Fenster

Ich habe die Erfahrung gemacht, dass je höher der Reifegrad, die Erfahrung der Beteiligten und die Langlebigkeit der Software sind, desto höher ist die Wahrscheinlichkeit, dass kaputte Fenster über längere Zeiträume bestehen bleiben oder nie behoben werden.


Und nein. Ich stehe weder hinter noch neben denen, die Freude daran haben, frühzeitig und oft zu entlassen, weil dies regelmäßig zu weniger Qualität und Sorgfalt führt. Zu wissen, dass Sie größtenteils kaputte Fenster und unüberlegte vollständige Funktionen veröffentlichen, bedeutet nicht, agil zu sein, sondern schlampig zu sein.


Und ja, ich bin mir bewusst, dass viele Gründe auftauchen und der obigen Aussage widersprechen werden, aber ich glaube, keiner von ihnen wird einer Wetteränderung widerstehen, die durch einen Cyber-Gegner herbeigeführt wird, der beschließt, zu profitieren. Noch deutlicher: Die Codebasen von Start-up-Unternehmen sind regelmäßig kriminalitätsgefährdet, mit anderen Worten, es handelt sich um niedrig hängende Früchte, die Kriminelle pflücken können.


Aber bei ausgereiften Organisationen sind die stärkste Kraft hinter der Realität der Reife, die zerbrochene Fenster umgibt, die geringe Kapitalrendite und andere dringende Prioritäten, die die Notwendigkeit der Aufmerksamkeit der verfügbaren Ressourcen diktieren und durchsetzen.


Darüber hinaus sind etablierte Organisationen an Vorschriften und Compliance gebunden, die sie daran hindern, bestimmte Risiken einzugehen, die, wenn sie eintreten, weitreichende gesellschaftliche Auswirkungen hätten. Das ist auch der Grund, warum diese Unternehmen es vorziehen, Startups zu gründen, um ihnen den Zugang zu bestimmten Nischen zu ermöglichen, und dann zu warten, bis die Vorschriften und Aktivitäten stabiler sind, bevor sie tatsächlich übernehmen.


Ein Bild mehrerer gestapelter Dossiers


Die Gesellschaft bevorzugt nicht diejenigen, die scheitern, wir feiern Gewinner! Daher ist es menschlich, bei Fehlern oder Misserfolgen defensiv zu sein. Wir fordern, dass alle außer uns niemals einen Elfmeter oder einen Freistoß verpassen. Außerdem sind Programmierer definitiv nicht freundlich zueinander, aber das ist kein Problem, das nur sie betrifft.


Daher ist es nicht überraschend, dass ein Team oder eine Einzelperson mit Argumenten antwortet wie: „Es ist nicht wirklich ein Fehler“, „Es ist nicht wirklich ein Defekt“, es war eine Designentscheidung“, „Wir hätten nie gedacht, dass es so verwendet werden könnte.“ “, „Niemand würde das jemals tun“, „Es schadet niemandem“, „Es funktioniert wie vorgesehen“ usw.


Und wenn kaputte Fenster nicht repariert werden, zumindest nicht in absehbarer Zeit, nennen Programmierer sie auf humorvolle Geek-Art „ ein Feature “.


Klingt albern, nicht wahr? Mal sehen, was los sein könnte.


Wenn wir uns bequem zurücklehnen und versuchen, unseren eigenen Vorurteilen zu widerstehen, könnten vielleicht mehr von uns dasselbe beobachten: Eine Gruppe von Menschen, die ihren Lebensunterhalt damit verdienen, Probleme zu lösen, können zerbrochene Fenster sicher und leicht erkennen. Und weil einige Probleme nie behoben werden können, werden die Menschen nach Möglichkeiten suchen, sich keine Sorgen mehr zu machen und sie aus dem Gedächtnisspeicher zu entfernen.


Denn wie so viele andere Dinge im Leben, die nicht einzeln oder direkt kontrolliert werden können, belasten Sie Sie, wenn Sie weiterhin Energie darauf verwenden, darüber nachzudenken.

Abschluss

Wann wird dieses übliche Verhalten, das Negativität mit sich bringt und unerwünscht ist, inakzeptabel? Ist das nur der Fall, wenn Menschen abstürzen und der Tod eintritt?


Wenn das so ist, dann gibt es einige Dinge, die niemals behoben werden können ... lasst uns weiter verlieren, oder genauer gesagt, lassen wir andere weiterhin verlieren.


Vom zersplitternden Glas, das nur den Lagerbesitzer betraf, über die Fahrzeugbesitzer, die Leute, die sie ausgeraubt haben, und schließlich für andere Programmierer wird die Auseinandersetzung mit den Details, auch wenn sie noch so klein sind, einen Unterschied machen.


Ich hoffe, dass Sie, wenn Sie das nächste Mal etwas falsch machen, darüber nachdenken, es sofort zu beheben oder es der Person, die es getan hat, erlauben, es zu ändern.


Und bitte hören Sie auf, Müll wegzuwerfen, denn andere tun das auch.


Und wenn das Experten sind, fordern Sie sie heraus! Sie sind Menschen, sie machen Fehler und haben es vielleicht nicht einmal bemerkt. Wenn sie wie Idioten reagieren, antworten Sie: „Gerne geschehen.“


Wenn ich Strafen zahlen müsste, für all die Tippfehler und anderen dummen Dinge, die ich bisher in meinem Leben getan habe ...


Aber ich versuche immer, eines zu tun : sie zu beheben, sobald ich mir ihrer bewusst bin. Du solltest auch!


Kleine Dinge, sie sind wichtig. Und wenn nicht genau sie, was bedeutet ihre Anwesenheit?


Lassen Sie „kaputte Fenster“ (schlechte Designs, falsche Entscheidungen oder schlechter Code) nicht unrepariert. – Der pragmatische Programmierer von Dave Thomas und Andy Hunt

(dazu gehören auch die Kleinen)