banner

Blog

Jan 14, 2024

Wiederverwenden, reduzieren, recyceln (Code): Nutzung nachhaltiger Software

Von Jacob Mathison

Das Potenzial und die Qualität wiederverwendbarer Softwarekomponenten (RSCs) könnten sich darauf auswirken, wie wir Web-Nachhaltigkeit und „grüne“ digitale Produkte betrachten. Allerdings sind RSCs einer der am wenigsten sichtbaren Aspekte des Innovationszyklus eines Software- oder Technologieunternehmens und bleiben oft am unteren Ende des Geschäftsvolumens. Der Begriff „wiederverwendbare Komponente“ ist zu technisch für diejenigen, die nicht an Technologie- und Innovationsbemühungen beteiligt sind, und zu vage für Programmierer (verständlicherweise), die ihre Arbeit mit minimalem Aufwand erledigen möchten. Das Kopieren und Einfügen einiger Codezeilen kann Auswirkungen auf die nachhaltige Entwicklung haben, da es, absichtlich oder unabsichtlich, seiner Hauptfragestellung folgt: Ist es effizient? Ist es leicht verständlich? Ist es modular? Ist es kostengünstig?

Verständlicherweise sind Unternehmen daran interessiert, wie sich die ersten drei Fragen auf die vierte und letzte Frage auswirken. Aber paradoxerweise sind die meisten nicht bereit, die Reihenfolge umzukehren, in der die Auswirkungen auf das Endergebnis gemessen werden. Wenn mehr Informationen und ein stärkeres Bewusstsein für die Wiederverwendbarkeit von Software verbreitet würden, würde deutlich werden, dass in einer ersten Definition „die Wiederverwendung von Software auf der Vorplanung zur Wiederverwendung einer Softwarekomponente beruht, die den Anforderungen der an der Softwareentwicklung beteiligten Organisationen entspricht.“ Kontexte.“ Planung, Einbindung und strategisches Design gehen weit über komponentenbasiertes Webdesign hinaus (Komponenten: Denken Sie an alle Elemente, die für Benutzer sichtbar sind, wenn sie eine Website oder Anwendung besuchen).

Der Aufstieg von Modularität im Design, No-Code-Plattformen und Standardlösungen mit beliebten Tech-Stacks wie Vue.js und Laravel ist nicht nur ein softwarebezogenes Phänomen, sondern eine Reaktion auf die steigende Nachfrage der Verbraucher nach Produktvielfalt in a sehr kurze Zeitspanne bei gleichzeitiger Gewährleistung der Langlebigkeit und Relevanz des Produkts. Wenn man es auf allgemeine Designprinzipien anwendet, kann „[M]odularität im Design daher definiert werden als die Wahl der Designgrenzen eines Produkts und seiner Komponenten (…), so dass die Designmerkmale und -aufgaben voneinander abhängig und unabhängig sind.“ modulübergreifend.“

Speziell im Technologiebereich werden Designgrenzen oft durch dedizierte Teams für Front-End, Back-End, Produktentwicklung und UX/UI und andere Bereiche bestimmt. Diese Grenzen könnten viele Varianten annehmen; Meistens entscheiden sich Softwareunternehmen für pod-ähnliche Strukturen, in denen funktionale Elemente mit dem Ziel entwickelt werden, Interaktivität sowohl mit dem Endbenutzer als auch zwischen den Designelementen selbst sicherzustellen. Viele bekannte Codebibliotheken und Stilbibliotheken wie Vuetify oder Bootstrap zielen darauf ab, Designprinzipien (wie Lesbarkeit und Barrierefreiheit) beizubehalten.

Die Messung der Nachhaltigkeit von Software kann oft eine Kosten-Nutzen-Verfolgung sowie die Verwendung von Wiederverwendungsökonomie-Modellen bedeuten. Auf der grundlegendsten Ebene kann Nachhaltigkeit daran gemessen werden, wie viele neue Codezeilen geschrieben wurden (was nicht nur menschliche Anstrengung, Zeit und professionelle Kapazität erfordert, sondern auch Ladezeiten, Rendering und Bandbreitennutzung beeinträchtigt). Bereits 1992 war dieses Konzept alles andere als neu: Im Verhältnis dazu, wie viele neue Codezeilen für ein Projekt geschrieben wurden, gibt es konkrete Kennzahlen zur Verfolgung des Nettowiederverwendungsvorteils im Vergleich zu den Nettokosten der Wiederverwendung. Heutzutage werden Automatisierungsmodelle zur Messung des Wartungs-Evolutions-Entwicklungszyklus für eine nachhaltige Entwicklung von Software vorgeschlagen, einschließlich der Verwendung modellbasierter Ansätze, algorithmischer Vorhersagen oder maschinellen Lernens. Doch die Implementierung neuer Lösungen kann für kleine und mittlere Unternehmen kostspielig sein.

Als Antwort auf dieses Problem sprechen die Forscher Maggo und Gupta über diesen weniger sichtbaren Aspekt nachhaltiger Software: „Für die Entwicklung wiederverwendbarer Softwarekomponenten von Grund auf sind zusätzliche Kosten erforderlich, die zum Aufbau und zur Stärkung ihrer Softwarereservoirs verwendet werden können.“ Um diese zusätzlichen Kosten zu vermeiden, liegt der Schlüssel in der Prozessbewertung von fünf Faktoren, die ohne aggregierte Ressourcen implementiert werden können.

Komplexität: Dies misst die Komplexität der Architektur, des Designs und der Implementierung eines Softwaresystems. Ziel ist es, die Komplexität zu minimieren, indem modularer, wiederverwendbarer und gut organisierter Code erstellt wird, der es Entwicklern erleichtert, das bestehende System zu verstehen, zu warten und darauf aufzubauen.

Der Rolling Stone Culture Council ist eine Community nur auf Einladung für Influencer, Innovatoren und Kreative.Bin ich qualifiziert?

Kosten: Langfristige finanzielle Rentabilität bedeutet, dass eine Website oder Anwendung individuell angepasst werden kann, ohne dass eine vollständige Neugestaltung erforderlich ist (auch im Zusammenhang mit der Veränderbarkeit). Eine anfängliche Investition in Softwaredesign sollte ausreichen, um mittelfristige Erträge zu erzielen, entweder in einer B2C- oder C2C-Struktur.

Stabilität:Stabilität legt Wert auf die Verwendung zuverlässiger, getesteter Komponenten und die Befolgung von Best Practices für Hosting und Debugging, um sicherzustellen, dass das System stabil, sicher und belastbar bleibt, wenn die Anwendung oder das Web vergrößert oder verkleinert werden muss.

Veränderlichkeit: Wiederverwendbare Softwarekomponenten und nachhaltiges Softwaredesign müssen auf Veränderungen reagieren und schnelle Änderungen entsprechend neuen Anforderungen vorschlagen. Durch die Entwicklung von Software unter Berücksichtigung von Modularität und Flexibilität fördert Nachhaltigkeit Code, der aktualisiert oder neu konfiguriert werden kann, ohne seine Kernfunktionalität zu beeinträchtigen.

Aktualität: Dies ist die Fähigkeit, Softwareprodukte innerhalb eines angemessenen Zeitrahmens zu liefern. Es bedeutet, effiziente Entwicklungspraktiken wie die Wiederverwendung von Code und die Optimierung von Arbeitsabläufen zu evaluieren, um den Entwicklungsprozess zu beschleunigen und Unternehmen eine bessere Reaktionsfähigkeit auf Markttrends oder Verbraucherbedürfnisse zu ermöglichen.

Forscher der University of Huddersfield sagen, dass einer der Schlüssel in der Integration von Design-Software-Teams liegt. Bei der Integration geht es darum, „sie so zu gestalten, dass sie zukünftige Änderungen in größerem Umfang berücksichtigen können, ohne die Grundstruktur des Systems wesentlich und mit minimalen Kosten zu ändern.“ Diese Forscher haben gezeigt, dass „das Wissen über die architektonischen Designentscheidungen eines softwareintensiven Systems leicht verloren geht, was zu erhöhten Wartungs- und Weiterentwicklungskosten sowie Designerosion führt (…).“

Mit anderen Worten schlagen sie vor, dass Entwickler Designsysteme verwenden sollten, die minimalen Änderungen bei geringen Kosten standhalten und gleichzeitig funktionsfähig bleiben. Dies erfordert die Einhaltung etablierter unternehmensinterner und internationaler Regelungen zu Gestaltungsgrundsätzen, wie etwa der Interessentrennung und der konzeptionellen Integrität. Aus diesem Grund können erfolgreich implementierte Software-Referenzarchitekturen (z. B. Bootstrap) als Beispiele dafür dienen, was nachhaltige Softwarearchitekturen innerhalb bestimmter Softwaresystemfamilien oder Geschäftsdomänen leisten können. Bei richtiger Umsetzung ist technisches Wissen in Kombination mit soliden Designprinzipien wiederverwendbar: Aber kann es den Test der technologischen Zeit bestehen?

Komplexität: Bin ich qualifiziert? Kosten: Stabilität: Veränderbarkeit: Pünktlichkeit:
AKTIE