Angenommen, Sie sind ein Mechaniker, der sich auf die Individualisierung von Autos spezialisiert hat und diese sogar von Grund auf neu baut, wenn der Kunde dies wünscht. Es gibt diesen Kunden, der von Zeit zu Zeit wieder in Ihrem Geschäft ist, um immer etwas Neues in seine übergroße Limousine zu stecken.
Sobald er hereinkommt, hat er ein schönes Soundsystem installiert. Sie führen die Aufgabe sorgfältig aus, indem Sie die Drähte verlegen und alles ordnungsgemäß anschließen. Er geht einen Tag später aus, ist glücklich und zahlt wie immer gut.
Im nächsten Monat kommt er zurück, aber diesmal möchte er ein vollwertiges Heimkino installieren. Wieder nehmen Sie die Limousine in die Hand. Als Profi überarbeiten Sie das Soundsystem und erleichtern die Wartung, indem Sie ein Schlauchsystem installieren, mit dem die Kabel um das Auto verlegt werden. Auf diese Weise sind die Drähte geschützt und lassen sich leichter herausziehen. Sollten Sie weitere hinzufügen müssen, ist dies ebenfalls einfach. Also reißen Sie die alten Kabel heraus, installieren die Schläuche und übergeben das Soundsystem und die zusätzlichen Kabel für das Kino. Schließen Sie alles und fertig.
Da der Kunde Sie nicht gebeten hat, das alte Soundsystem zu ersetzen, haben Sie einen Teil der Kosten für den Ersatz und die Röhren abgekratzt. Wie auch immer, Sie verdienen immer noch Geld mit dem Geschäft. Nur nicht so viel, wie Sie gehabt hätten. Sie haben das System einfach so zusammengeschmissen, wie Sie es beim ersten Mal getan haben.
Einen Monat später kommt er zurück, diesmal möchte er ein Beleuchtungssystem und neue Lautsprecher, die die alten früher in der Woche beschädigt haben.
Weil Sie alles schön aufgeräumt haben, können Sie die neuen Beleuchtungskabel schnell durch Ihre Röhre führen, das System installieren und den Lautsprecher austauschen. Diesmal sind Sie jedoch viel schneller fertig, und das Re-Factoring zahlt sich aus, indem Sie immer den Überblick behalten.
Ihr Konkurrent, der Sie ausgelacht hat, weil Sie perfekt gute Drähte gerissen und all diese zusätzlichen Schläuche installiert haben, tut sich immer noch schwer, seinen Kunden zufrieden zu stellen. Sicher, er war die meiste Zeit schneller als Sie, aber mit der Zeit beklagen sich seine Kunden, dass es immer mehr Verzögerungen gibt und die Gesamtqualität der Arbeit abnimmt.
Wenn Sie dies betrachten, erkennen Sie, dass es Ihr Ziel ist, nicht nur im Geschäft zu bleiben, sondern die Top-Waffe zu sein, was Sie tun, um die Anforderungen des Kunden zu erfüllen, und was Sie tun, um Ihr Leben auf der Straße einfacher zu machen. Sehr selten zahlt ein Kunde für beides, so dass Sie eng zusammenarbeiten müssen. Sie setzen darauf, dass Sie die Wartungskosten auf einem kontrollierten, stabilen Prozentsatz Ihrer Produktivität halten, wenn Sie die Dinge proaktiv richtig machen, selbst wenn Sie die Kosten doppelt tragen.
Die Software ist die gleiche, mit der Ausnahme, dass Programmierer SEHR lange mit digitalem Klebeband spielen können, bevor die Auswirkungen von Kunden und Managern wirklich wahrgenommen werden. Leider steigen zu diesem Zeitpunkt die Kosten für das Wiederherstellen von Dingen exponentiell in Bezug auf die Menge des vorhandenen Klebebands und das Durchschnittsalter des Klebebands.
Aus diesem Grund ist es wichtig, das System ständig neu zu faktorisieren. Sehr oft zeigt uns die Erfahrung, dass wir auf effizientere Weise dasselbe tun können, oder wir können ähnliche Funktionen kombinieren und Redundanzen ausnutzen, anstatt sie nur zu kopieren. So halten wir das System schlank und gemein. Die Zeit wird zeigen, dass eine ständige Umgestaltung des Systems, um die Anforderungen zu erfüllen, die Produktivität konstant hält, indem die Menge an Wartungsarbeiten gesteuert wird.
Das Anbringen von Klebeband erhöht vorübergehend die Produktivität auf Kosten eines suboptimalen Systems. Technische Schulden entstehen immer dann, wenn eine sofortige Produktivität begünstigt wird, die die anderen Aspekte eines Systems beeinträchtigt. Die Schuldenanalogie ist gut, denn genau wie Zinsen für geliehenes Kapital die Gewinne verschlingen, führt die geliehene Zeit, mit der Dinge hergestellt werden, schnell zu einer höheren Wartung und erhöht die Systemzerbrechlichkeit, was ein Team dazu zwingt, zusätzliche Ressourcen für die Wartung aufzuwenden, anstatt sie zu schaffen. Wenn die Kreditaufnahme unvermindert anhält, werden genau wie bei seinem finanziellen Verwandten die meisten Ressourcen für die Zinsrückzahlung ausgegeben, und es bleibt nur sehr wenig für Verbesserungen übrig. Technische Schulden kosten technische Ressourcen bis zu einem Punkt, an dem die meisten Ressourcen ausgegeben werden, während das System alle anderen möglichen Verbesserungen zum Stillstand bringt.
Letztendlich lautet die Frage also nicht, ob wir es tun sollen oder nicht, sondern ob es ethisch ist, Manager und Kunden glauben zu lassen, dass sie sich auf Produktivitätszahlen verlassen können, die durch die Verwendung von digitalem Klebeband künstlich aufgebläht werden. Einige würden denken, dass es eine Geschäftsentscheidung ist, aber ehrlich gesagt ist dies nur deshalb so, weil Manager es nicht verstehen. Am Ende muss jemand die Schulden entweder durch starkes Re-Factoring oder durch Migration auf ein neues System bezahlen. Letztendlich liegt es an uns Programmierern, die Systeme wartungsfähig zu halten. Sie sollten nicht um eine Neueinstufung bitten müssen, da dies ein fester Bestandteil des Auftrags ist. Wenn Sie dies nicht verstehen, verstehen Sie auch nicht, worum es beim Software-Engineering geht. Allerdings ist mir klar, dass es Systeme gibt, bei denen bereits eine wichtige Schuld entstanden ist, und dass die Tilgung dieser Schuld Entscheidungen der Zahler erfordert. Ihre Aufgabe ist es, zumindest Ihren Teil dazu beizutragen, keine Kredite mehr aufzunehmen. Diese Schuld ist entstandenVON UNS Vielleicht, weil wir es nicht besser wussten, weil wir unter Druck gesetzt wurden, haben wir diese Schulden trotzdem übernommen und sehr oft haben die Leute, denen wir die Schulden ausgehändigt haben, sie nicht verstanden, können sie also nicht richtig verwalten.
Hier ist Ihre Software, alles fertig, ich hoffe es gefällt Ihnen ... Übrigens, ich habe Ihre Kreditkarte voll ausgereizt, ich hoffe es macht Ihnen nichts aus ... cya