Das Rad nicht neu erfinden - IT Frameworks einsetzen lohnt sich

Softwareentwicklung - am Anfang war das Rad

Die Erfindung/oder Nutzung des Rads war ein bedeutender Meilenstein in der frühzeitlichen Geschichte der Menschheit. Große Lasten mussten nicht mehr umständlich geschoben werden, sondern konnten auf achsgelagerten Fortbewegungsmitteln von A nach B befördert werden. Spricht man heute von einer neuen, scheinbar innovativen Lösung, so fällt oftmals ebenjener Spruch: „Da muss man das Rad nicht neu erfinden“. Aber was bedeutet das für die Softwareentwicklung in der Umsetzung von Kundenprojekten eigentlich?

  1. Ein Programmiergerüst zum Software bauen

  2. Welches Framework ist bei BRICKMAKERS im Einsatz?

  3. Herausforderung bei der Nutzung von Frameworks

  4. Einsatz von Frameworks über die Programmierung hinaus

Ein Programmiergerüst zum Software bauen

In einer Software-Agentur ist man ständig damit beschäftigt, Kunden die optimale User Experience zu ermöglichen. Das ist auch bei BRICKMAKERS nicht anders. Das spiegelt sich nicht nur im Design wider, sondern fängt in der Entwicklung an. Wie bei einem großen Bauvorhaben benötigt ein Softwareprojekt gewisse infrastrukturelle Grundvoraussetzungen sowie ein Gerüst, mit welchem sich dieses realisieren lässt. Genauso Bedarf es Management und Architektur.

Egal, ob Festpreis oder Zeit gegen Geld, die Zeit ist meistens begrenzt und die Mittel wollen kosteneffizient verwendet werden. Um hier nicht jedes Mal bei null anzufangen, setzen wir auf sogenannte Frameworks. Das sind in der Entwicklung auf einer oder mehrerer Programmiersprachen aufgesetzte Leitplanken, aus deren Werkzeugkasten sich Entwickelnde bedienen können, um eine Anwendung in Code zu gießen. Aber auch bei den Prozessen gibt es entsprechendes Tooling, welches den Outcome dieser günstig beeinflussen kann. 

Implementierung von Software ist vergleichbar mit einem Bauvorhaben - wichtig ist ein Gerüst

Welches Framework ist bei BRICKMAKERS im Einsatz?

BRICKMAKERS setzt zum Beispiel im Web-Bereich vermehrt auf Orchard Core, dass uns die Arbeit in vielen Hinblicken enorm erleichtert. Die Multimandantenfähigkeit ist bei diesem CMS-Framework hier von Haus aus gegeben und auch die Anbindung an externe Login-Provider (Microsoft, Google, Meta) besteht meist nur aus Konfiguration.

Für Mobile Apps nutzen wir Flutter, das uns die sogenannte Cross-Platform-Entwicklung für die beiden verbreitetsten Mobile-Plattformen (iOS und Android) ermöglicht und unseren Kunden somit aufwendige Doppelentwicklungen ein und derselben Applikation für mehrere Plattformen erspart.

Aber daraus allein lässt sich natürlich kein fertiges Softwareprojekt schustern. Ein Framework ist bestenfalls eine Grundlage. Gestützt von diesem soliden Fundament können wir aber Anforderungen in einem gleichförmigen, optimierten Prozess bedienen und in Software verwandeln. Frameworks gibt es hier auf unterschiedlichen, hierarchischen Ebenen.

Während die beiden o.g. Bibliotheken für den Entwurf einer ganzen Applikation hilfreich sein können, existieren auch solche, die das Testen enorm erleichtern oder gar automatisiert Code aufgrund der Eingabe von bestimmten Parametern generieren. 

Herausforderung bei der Nutzung von Frameworks

Dabei läuft allerdings nicht immer alles rund. Manche Wünsche sind so hochindividuell, dass sie sich nicht gut in ein bestehendes Framework einfügen lassen, ohne größere Änderungen an der Struktur vorzunehmen. Das kann mitunter die Gleichförmigkeit und Wartbarkeit beeinträchtigen. Um dem Paroli bieten zu können, bauen wir Anwendungen im Idealfall so, dass sie lose gekoppelt und in kleine Pakete geschnürt sind.

So lassen sich Komponenten oder Module austauschen und man ist nicht von bestimmten Drittanbieterpaketen abhängig, die unter Umständen auch einmal Sicherheitslücken oder unpassende Lizenzmodelle in neueren Versionen offenbaren. Ein solches Negativbeispiel ließ die Gemeinde der Entwickelnden vor einer Weile aufhorchen, bei der ein Paket in einer bestimmten Version den Code nach Emailadressen durchsuchte, um diese mit einer Datenbank abzugleichen, damit der Entwickler hinter dem Projekt herausfinden konnte, wer für seine Open Source-Lösung gespendet hatte. 

Bekannte Frameworks, die wir in der Programmierung einsetzen, sind z. B. Flutter oder Orchard Core

Einsatz von Frameworks über die Programmierung hinaus

Auch bei unseren Prozessen haben wir das Rad nicht neuerfunden. Wir setzen auf SCRUM, arbeiten auf dieser Grundlage auch mit unseren Kunden zusammen und leben das agile Mindset auch im Daily Business. An dieser Stelle ist es aber genau wie beim Code wichtig zu wissen, dass dies allenfalls als Rahmenwerk gelten kann.

Zelotisch den Prozessen bis ins Klein-Klein zu gehorchen, widerspricht schließlich auch dem agilen Gedanken. So viel wie nötig, so wenig wie möglich heißt die Devise, um zum Erfolg zu gelangen. Im Alltag der Entwickelnden spiegelt sich das wiederum in der gemeinsamen Zusammenarbeit wider: Das Daily dient der Besprechung von Fortschritt und Hindernissen, Probleme können hier schnell erkannt und angegangen werden.

Neben den Regelterminen wie dem Refinement, bei dem mit oder ohne Kunden Tickets zu ihrem Aufwand geschätzt werden oder der Retrospektive, bei der kritisch auf die letzte Iteration (den Sprint) geschaut wird, gibt es auch außerplanmäßige Besprechungen zu bestimmten Herausforderungen, die im Entwicklungsprozess auftreten können.

Wenn ein Meeting einmal überflüssig oder fehl am Platz ist, weil die Zeit möglicherweise so oder so durch Urlaub/Ausfälle begrenzt ist und lieber der Fertigstellung der Features gewidmet werden will, dann kann man dieses Meeting auch in einer E-Mail ausformulieren.

Kommt man bei einem bestimmten Problem im Code nicht weiter, hilft das Pair-Programming oder eine Frage in die Runde. Nicht zuletzt die SCRUM-Master bei uns helfen, dass man sinnige und angemessene Lösungen im Geschäftsbetrieb findet, um diese auftretenden Hürden zu überwinden. Wichtig hierbei ist, dass man miteinander in stetigem Austausch bleibt. Teams und andere Zusammenarbeits-Tools machen es möglich. Teamwork makes the dream work! 

Bekannte Frameworks, die wir in der Programmierung einsetzen, sind z. B. Flutter oder Orchard Core

Solche Frameworks sind trotz der vielen Ausnahmen, die wir dabei machen oder sogar machen müssen, dennoch unerlässlich. Die Ausnahme bestätigt bekanntlich die Regel. Doch auch hierbei gibt es einige Dinge, die uns zum Beispiel in die Initiative zwingen. Gerade beim Framework Orchard Core gibt es einige erhebliche Lücken in der Dokumentation, die wir mit unseren eigenen Erfahrungen und dem Zusammentragen von Informationen zu begegnen versuchen. So entstanden mehrere interne Schulungsvideos, Guides, ein Fachartikel und Austauschgruppen, die allesamt versuchen, die Herausforderungen mit diesem Framework zu lösen und dieses Wissen auch nach außen zu tragen.

Jede Open-Source Bibliothek und jedes Framework lebt von Mitwirkenden und der restlichen Community, damit diese Erfahrungen gespiegelt zurück in das Projekt fließen können. Davon profitieren wiederum die Kundenprojekte bei BRICKMAKERS, da wir so das evolvierte Knowhow auch in unseren Projekten verarbeiten können. So entstanden beispielsweise schon zahlreiche Module mit immer wiederkehrenden Aufgabenlösungen, die wir so bei Bedarf in unseren Software dazuschalten können. Ein Skalierungseffekt, den wir aufgrund der Verwendung dieses Frameworks erreichen konnten. 

Frameworks als multi Tool

Ein Framework kann also – egal in welchem Kontext auch betrachtet – helfen, eine gewisse Grundstruktur in die Prozesse zu bringen. Dabei sollte man sich jedoch nicht allein auf das Framework verlassen. Im technischen Sinne heißt das: Framework-agnostische, abstrahierte und damit austauschbare Komponenten helfen, das jeweilige Framework bei Gelegenheit zu wechseln. Das ist nicht immer möglich, empfiehlt sich aber, wenn angemessen, um sich nicht allzu sehr von bestimmten Fremdkomponenten abhängig zu machen.

Aber auch in Prozessen unterstützen Frameworks wie SCRUM, in eine gewisse Gangart zu kommen, die Softwareprojekte und ihr Team bei ihrer Fertigstellung anleitet. Auch hier sollte man jedoch nicht gnadenlos die Prozesspeitsche schwingen. 

Die Entwickler in unserem Unternehmen bauen Anwendungen, dabei hilft ein IT Framework beim Bauen der Software

Bei BRICKMAKERS haben wir ein gesundes Mittelmaß gefunden, dass bei Bedarf erweitert oder simplifiziert werden kann. Man muss das Rad also tatsächlich nicht neuerfinden, aber es hilft bisweilen, kritisch auf bestehende Lösungen zu schauen, um diese mit den eigenen Erfahrungen und mutiger Kreativität zu kombinieren. Schließlich fährt – eben dieser der Weiterentwicklung sei Dank – auch kein PKW mit Holzrädern einer Kutsche über die Straßen. 

Ähnliche Artikel

Developer Content
26. Januar 2022 4 Min. Lesezeit
Was Kuchenbacken und Softwareentwicklung gemeinsam haben
Weiterlesen
Developer Content
14. August 2020 6 Min. Lesezeit
Einstieg in die testgetriebene Entwicklung
Weiterlesen
Developer Content
1. April 2020 7 Min. Lesezeit
Code Review bei BRICKMAKERS
Weiterlesen
Developer Content
6. März 2020 2 Min. Lesezeit
Kovarianz und Kontravarianz von Unit-Tests
Weiterlesen
Developer Content
11. Dezember 2019 3 Min. Lesezeit
Cloud Architekturen im Überblick
Weiterlesen
Pfeil nach links
Pfeil nach rechts