Framework oder „From Scratch“, das ist hier die Frage? Nein! – Für eine ideologiefreie Produktentwicklung
von Andreas Keßler
Für nicht wenige Entwickler*innen gleicht die Frage nach dem richtigen Vorgehen einer philosophischen Grundsatzfrage. So setzen die einen auf die Arbeit mit komfortablen Anwendungsbibliotheken, während andere für die möglichst reine Programmierkunst plädieren und beim Codeaufbau echte „Handarbeit“ bevorzugen. Unser Blogbeitrag zeigt nicht nur die Vor- und Nachteile beider Vorgehensweisen, er macht auch deutlich, dass für ein gutes Endprodukt letztlich eine andere Perspektive entscheidend ist.
Framework vs. „From Scratch“ – Eine Einführung aus dem Hausbau
Die Entwicklung eines neuen Softwareproduktes ist vergleichbar mit dem Neubau eines Hauses. Steht der grundlegende Bauplan, kann das Haus entweder von Grund auf Stein aufgebaut werden oder aber es kommen einzelne Fertigbauelemente, wie beispielsweise ein Fertigkeller oder gleich ein ganzes Set aus vorgefertigten Bauelementen zum Einsatz. Hoher Aufwand und maximale Individualität stehen einer effizienten, aber auch standardisierten Bauweise gegenüber.
In ähnlicher Weise stehen auch Produktentwickler*innen vor der Frage, ob sie bei der Programmierung eines Produktes (möglichst) alle Elemente von Grund auf neu, also „From Scratch“, gestalten wollen oder auf vorgefertigte Bibliotheken zurückgreifen.
So müssen für einen Onlineshop z. B. verschiedene Datenbanken angelegt, Berechtigungsverwaltungen definiert, Abläufe programmiert und Oberflächendesigns angelegt werden. Entwickler*innen können dabei entweder jede Anforderung selbst gestalten oder auf Komponenten unterschiedlicher Frameworks, wie .NET Core, Symfony oder Spring Boot, setzen. Beide Vorgehensweisen haben dabei, wie beim Hausbau, eindeutige Vor- und Nachteile.
Produktentwicklung mit Frameworks: Vor- und Nachteile
Der größte Vorteil von Frameworks besteht vor allem darin, dass Entwickler*innen auf einen gut eingefahrenen Zug aufspringen und so einfach und schnell Fortschritte erzielen können. Dennoch lassen sich mit Frameworks nicht alle Probleme lösen.
Vorteile
|
Nachteile
|
Produktentwicklung „From Scratch“: Vor- und Nachteile
Liegt das eigene Produkt wie ein großes leeres Blatt auf dem „Entwicklungstisch“, so bietet dies ein hohes Maß an Freiheit. Mit dem Ehrgeiz, möglichst das ganze Blatt selbst gestalten zu wollen, ist allerdings ein immenser Aufwand verbunden.
Vorteile
|
Nachteile
|
Framework oder „From Scratch“ – das ist nicht die Frage!
Programmierungen via Framework bieten ebenso wie eine Programmierung überwiegend „From Scratch“ erhebliche Vor- und Nachteile. So kann durch „From Scratch“ zwar eine hochoptimierte Applikation erstellt werden, neue Funktionalitäten können jedoch nur langsam eingefügt werden. Im Gegenzug kann eine sehr bibliothekenlastige Anwendung zwar schnell neue Funktionalitäten einbinden, dafür kann sich der Wartungsaufwand im Laufe der Zeit aber immer weiter erhöhen.
Programmierer*innen sind deshalb gut beraten, nicht in ideologische Grabenkämpfe zwischen Frameworks und „From Scratch“ zu verfallen. Stattdessen sollte abseits aller persönlichen Vorlieben überlegt werden, wie das angestrebte Produkt zum Zweck einer möglichst positiven Nutzererfahrung so effizient wie möglich realisiert werden kann, ganz gleich, ob dafür Frameworks genutzt oder Codefunktionen selbst programmiert werden.
Fazit: Gute Entwickler*innen können Spagat
In der Praxis hat es sich in unseren Projekten bewährt, die Produktentwicklung mit Frameworks zu beginnen, die eingesetzten Tools aber immer wieder kritisch zu überprüfen und zu bewerten.
Es gilt zu evaluieren, warum eine notwendige Aufgabe mit dem verwendeten Tool am besten realisiert werden kann.
Wird deutlich, dass gerade für sehr spezifische Aufgaben keine passende Bibliothek zu finden ist, sollte der Bau von einzelnen Komponenten selbst in Angriff genommen werden.
So kann der Spagat zwischen einer ebenso effizienten wie bedarfsgerechten Produktentwicklung gemeistert werden.