Open Source Web Frameworks: Produktiv ab dem ersten Tastendruck
Jedes Software-Projekt ist anders. Unterschiedliche Benutzergruppen, die Implementierung und Gewichtung spezifischer Prozesse sowie der Wunsch nach einzigartigen Benutzererlebnissen geben jeder Software einen individuellen Charakter, der nur schwer auf andere Projekte übertragbar ist. Dennoch teilen viele Software-Projekte die grundsätzlichen Anforderungen und Funktionalitäten ihrer Anwendungsklassen und Domänen. Web Anwendungen z.B. sollten, unabhängig von Aufgabe und implementiertem Prozess, durch einen Browser erreichbar sein und dem Endbenutzer ein modernes und nutzerfreundliches Interface präsentieren. Software-Frameworks vereinfachen die Implementierung solch generischer Anforderungen immens. Zudem sollte bei der Entwicklung von Software-Projekten die Umsetzung von anwendungsspezifischen Merkmalen im Mittelpunkt stehen und nicht die wiederholte Implementierung von Altbekanntem. Die Nutzung von Software-Frameworks erlaubt es den Fokus auf die Individualität eines Projektes zu legen, und somit Ressourcen effizient und gewinnbringend einzusetzen.
Ein Software-Framework stellt Entwicklern einen strukturgebenden Rahmen aus Programmbausteinen zur Verfügung, in welchen anwendungsspezifische Logik eingepasst werden kann. Jeder Baustein implementiert generische und oft gebrauchte Funktionalitäten einer bestimmten Klasse von Anwendungen – so kann ein Web Framework z.B. vorgefertigte Lösungen für Page Templating, Datenbankzugriff, Caching, Security oder Authentifizierung/Autorisierung von Nutzern bieten. Framework Bausteine werden durch die kumulierte Erfahrung und Expertise der Softwareindustrie geformt und bestätigt. Entwickler können sich darauf verlassen, dass Anwendungen die auf einer soliden Framework-Basis stehen z.B. generischen Sicherheitsattacken widerstehen können.
Außerdem kann durch freies Kombinieren und Anpassen solcher Bausteine eine Anwendung die gesammelten Ergebnisse von Experten wiederverwenden und in anwendungsspezifische Kontexte einfügen. Die Individual-Softwareentwicklung kann somit früh im Entwicklungsprozess mit der Umsetzung von anwendungsspezifischen Anforderungen beginnen.
Drei maßgebliche Merkmale
Frameworks werden sowohl von kommerziellen Anbietern vertrieben als auch als Open Source Projekte angeboten. Open Source-Frameworks – d.h. zusammengefasst Frameworks, deren Quellcode für jedermann einsehbar ist und je nach gewählter Softwarelizenz in kommerziellen Projekten verwandt werden darf – werden von einer globalen Entwicklergemeinschaft auf freiwilliger, aber auch kommerzieller Basis entwickelt. Die Vorteile der Softwareentwicklung auf Basis von Open Source-Frameworks lassen sich zu drei maßgeblichen Merkmalen zusammenfassen:
Qualität:
Die quelloffene Natur dieser Frameworks erlaubt es vielen Entwicklern Optimierungen und Erweiterungen einzubringen, welche in den Entwicklungsprozess Einzug finden – dies erzeugt eine hohe Softwarequalität, die bei kommerziellen Produkten nicht zwangsweise gegeben oder überprüfbar ist.
Erweiterbarkeit:
Gleichermaßen können Entwickler eigene Erweiterungen des Frameworks entwickeln welche als weitere Bausteine verwandt werden können. Somit kann bei der Entwicklung von Individualsoftware z.B. aus einer Reihe von spezifischen Bausteinen für die Benutzerauthentifizierung einer Webanwendung ausgewählt werden, welche dann auf die spezifischen Anwendungsfälle zugeschnitten werden können.
Unabhängigkeit:
Ein kommerzielles Framework ist an das finanzielle Wohlergehen sowie etwaige Neuausrichtungen des herstellenden Unternehmens gebunden – der Lebenszyklus von Software, die auf Basis eines solchen Frameworks entsteht, kann somit ein jähes Ende finden. Open Source-Frameworks werden durch ihre Nutzer gepflegt und können somit unabhängig von Unternehmenserfolgen weiter bestehen.
Open Source-Frameworks ermöglichen kurze Entwicklungszyklen mit Fokus auf Individualität. Der Einsatz der richtigen Open Source-Frameworks in der Individual-Softwareentwicklung verspricht Kunden einen individuellen und konsistenten Entwicklungsprozess mit grundsoliden Ergebnissen. Der Großteil des Entwicklungsaufwands fließt dadurch in die Entwicklung der anwendungsspezifischen Logik und deren Präsentation auf Basis von bewährten Bausteinen. Auf diese Weise ist es möglich neue Geschäftsideen prototypisch zu validieren, aber auch Prozesse nachhaltig zu digitalisieren und optimieren - schnell, qualitativ hochwertig und kosteneffizient.