Wiederverwendung von Code als Problem
Ich habe über diese Frage zur Softwarebereitstellung nachgedacht und bin immer wieder auf das Thema Wiederholbarkeit und / oder Reproduzierbarkeit zurückgekommen . Sie spielen eine Rolle, denn wenn Sie ein Projekt nicht wiederholen, wird es schwieriger, den Prozess zu verbessern, mit dem Sie das Projekt erstellt haben. Das Engineering beinhaltet die ständige Verbesserung der mit dem Entwurf und der Konstruktion verbundenen Prozesse, um Projekte mit höherer Qualität zu produzieren.
Software kann aufgrund ihrer digitalen Form stark auf die Wiederverwendung angewiesen sein. Anstatt ein Modul neu zu schreiben, rufen wir es einfach erneut auf oder kopieren es auf das andere System. Einige Beispiele sind Authentifizierung / Anmeldung oder möglicherweise eine Protokollierungsfunktion. Es gibt viele bekannte Beispiele für diese Kategorien, und die übliche Weisheit besteht darin, das Vorhandene wiederzuverwenden, anstatt das Eigene zu verwenden.
Einige Vergleiche zu anderen Disziplinen
Konstruktion
Im Gegensatz dazu ist der Bau physischer Systeme (Gebäude, Brücken) bei weitem nicht so wiederverwendbar. Es ist wahr, dass die Blaupause eines Hauses viele Male wiederverwendet werden kann, um dieselbe Kopie des Hauses zu bauen, aber die Konstruktion muss jedes Mal durchgeführt werden. So funktioniert Ausschneiden & Einfügen in der analogen Welt nicht. Brückenentwürfe sind weniger wiederverwendbar als Häuser, da die Standortbedingungen variieren.
Baumeister sind Experten, die dafür bekannt sind, dass sie in ihrem Gebiet Dutzende, Hunderte oder Tausende von Dingen entworfen und / oder gebaut haben. Zum Beispiel Frank Lloyd Wright , ein weltbekannter Architekt und Designer designed more than 1,000 structures and completed 532 works
. Vergleichen Sie das mit Anders Hejlsberg , der „nur“ fünf Sprachen entworfen hat (Turbo Pascal; Delphi; J ++; C #; Typescript). In vielerlei Hinsicht ist es ein unfairer Vergleich, da die Domänen unterschiedlich sind. Auf einer breiten Ebene ist die quantifizierbare Produktion zweier sehr intelligenter Menschen jedoch sehr unterschiedlich.
Kampfkunst
Kampfkünstler werden sagen, dass die Beherrschung eines Zuges nur aus Tausenden von Wiederholungen resultiert. Nachdem ein Großteil dieser Wiederholungen vorgenommen wurde, sind viele Kampfkünstler überrascht, wie einfach eine zuvor als komplex empfundene Kata oder Form geworden ist. Die Ausbilder dieser Schüler werden auch bemerken, wie die Bewegung flüssiger und zielgerichteter wird und eine Wirtschaftlichkeit der Bewegung aufweist. Ebenso sind erfahrene Kampfkünstler in der Lage, komplexere Katas schneller als weniger erfahrene Studenten aufzunehmen. Die Erfahrung aus Wiederholungen hat ihnen einen Rahmen oder Prozess gegeben, der es ihnen ermöglicht, schneller zu lernen.
Holzbearbeitung
Holzarbeiter erleben eine ähnliche Transformation. Hobby-Holzarbeiter verweisen immer auf ihr erstes Projekt, das viele Schubladen benötigte. Wenn sie das Projekt abschließen, gewinnen sie eine neue Wertschätzung für die Effizienz, die Montagelinien erzielen. Es gibt noch weitere Vorteile, z. B. ein besseres Verständnis der Anordnung der Schubladenteile auf dem Plattenmaterial, um die Holznutzung zu maximieren. Im Vergleich zu Bastlern können professionelle Holzarbeiter Gegenstände, die sie schon oft hergestellt haben, schneller entwerfen, herstellen und herstellen. Sie erlangen auch die Fähigkeit, in der Konstruktion eines anderen Menschen inhärente Probleme zu erkennen, die diesen Fehler in ihrer Arbeit gemacht haben.
Verhindert die Wiederverwendung von Software, dass Softwareentwickler kompetenter werden?
In vielerlei Hinsicht ist Software-Design und -Konstruktion immer neu. Wir wiederholen keine früheren Arbeiten, denn wenn wir ein Modul, eine Bibliothek oder ein System wiederverwenden können, tun wir das auch. Wir werden ein bestehendes System vorzugsweise erweitern, bevor wir das Ganze von Grund auf neu schreiben . Aber Wiederholung ist es, was es uns ermöglicht, Effizienz im Design und in der Konstruktion zu finden. Jeder, der eine Sportart oder körperliche Aktivität ausgeübt hat, wird Ihnen sagen, dass Wiederholung der Schlüssel ist, um ein guter Praktiker zu werden.
Meine Frage: Verhindert die Wiederverwendbarkeit von Software die notwendige Prozessverbesserung und Effizienz, die sich aus der Wiederholung eines Projekts ergibt?