Stellen Sie sich vor, Sie sitzen in einem Sessel an einem Ende eines Bauernhofs, der gerade einen großen Ertrag abwirft! Wie wäre es, wenn Sie Ihre Software auf ähnliche Weise betrachten könnten? Haben Sie das schon einmal versucht? Das habe ich. Ich sehe darin eine Menge Lehren, die wir in die Softwareentwicklung einbringen können, damit wir die gleiche Art von Zufriedenheit empfinden, wenn wir unsere Software betrachten! Hier sind meine Gedanken dazu.
Ich werde über die Ernteerträge berichten, die wir alle schon einmal gehört haben oder die wir kennen. Die Stärke der nächsten Ernte liegt in den Samen der aktuellen Ernte. Ich möchte die gleiche Denkweise für den Aufbau einer Softwarearchitektur entwickeln, die mit dem Wachstum mitwachsen kann.
Der Aufbau einer skalierbaren Architektur hat viele Dimensionen. Ich werde auf die grundlegendste Intuition bei der Visualisierung von versionierten Produkten eingehen. Nehmen wir an, wir wollen ein MVP bauen, wie die erste Ernte einer Saison, die kurzfristig ist, aber langfristige Auswirkungen hat. Wenn wir sicherstellen, dass die "Saat (Architekturbasis)", die wir damit erzeugen, stark ist (resistent gegen unangemessene Belastungen durch das Ökosystem), erhalten wir mehr "Ertrag (neue Funktionen)", ohne Energie für den Umbau des bestehenden Produkts zu verschwenden, um es an neue Marktanforderungen anzupassen. Auch wenn es sich um die erste Ernte handelt, müssen alle Aspekte berücksichtigt werden, um sicherzustellen, dass der volle Ertrag profitabel ist.
Zu Beginn einer Ernte wird das Feld in Konturen strukturiert, die auf der Art der Kultur, der Landoberfläche, dem Wasserfluss usw. basieren. Wir können auch damit beginnen, das Produkt in Module zu unterteilen. Die Module sollten auf der Grundlage der logischen Grenzen des Bereichs abgeleitet werden und den Kommunikationsfluss in Echtzeit, Rollenspielszenarien, wiederverwendbare technische Module und Daten-/Nachrichtenflüsse nachbilden. Der natürliche Fluss jeder Benutzeranfrage wird dann intuitiv sein wie der Wasserfluss in einem Feld. Auf diese Weise können wir die für die Entwicklung neuer Funktionen benötigte Zeit messen und optimieren und wissen, wo die Hürden liegen.
Sobald Sie Module haben, denken Sie als nächstes über geeignete Daten, Persistenz, Benutzeroberfläche, Interaktionen zwischen Modulen und anderen Systemen nach. Verlassen Sie sich dabei auf die Weisheit, die in Form von Entwurfsmustern, gut definierten API-Verträgen, effizienter Nutzung von Bibliotheken von Drittanbietern usw. weit verbreitet ist. So wie wir den Anbau mehrerer Kulturen mit unabhängigen Bedürfnissen für jede Kultur planen, können wir die Designanforderungen der einzelnen Module unabhängig voneinander erfüllen und dennoch zu einem gemeinsamen Nutzen beitragen. In dieser vielfältigen und doch vernetzten Welt ist das Verständnis für Wiederverwendbarkeit und Koexistenz von entscheidender Bedeutung.
Das Unkrautmanagement spielt eine wichtige Rolle bei der Ertragssteigerung. Unkraut ist ein unvermeidliches Naturphänomen in der Landwirtschaft und auch in der Softwareentwicklung, da es eine Vielfalt an Ressourcen gibt. Unkraut wird eher durch das Betrachten des Feldes als durch das Graben eines Lochs im Feld entdeckt. Das Diagramm der Systemarchitektur sollte wie ein Feld mit Modulen sein. Wir müssen uns angewöhnen, das Systemarchitekturdiagramm, das Domänenmodell, das Interaktionsdiagramm, das Datenflussdiagramm, die ERD usw. zu betrachten und nicht den Quellcode (das ist wie ein Loch graben!!). Domänenwissen und bewährte Praktiken, wie das Verständnis des gesamten Systems aus der Sicht der einzelnen Module, helfen dabei, unerwünschte Komponenten zu identifizieren und zu entfernen. Dies führt zu einem effizienten Einsatz von Ressourcen für die beabsichtigten Ergebnisse.
Neben Best Practices hilft uns eine starke Testautomatisierung, wiederkehrende "Bugs" zu vermeiden. All diese Maßnahmen wirken wie "Pestizide". Sie helfen uns, den Ertrag zu verbessern, indem sie die "Bugs" reduzieren.
Ein gut durchdachtes Gleichgewicht zwischen Modularität, Designaspekten und bewährten Praktiken (Konturstruktur - Düngemittel, Unkrautbekämpfung - Pestizide) führt zu besseren Erträgen in der Zeit bis zur Markteinführung mit einer Architektur, die mit der Zeit skaliert werden kann. Wie wir wissen, ändert sich der Wind. Doch die über mehrere Iterationen erworbene Weisheit ermöglicht es, die richtige Abstimmung für jeden dieser Aspekte zu finden. Hier trifft Wissenschaft auf Kunst!
Verfasst von
Satyavani Gorti
Unsere Ideen
Weitere Blogs
Contact



