Drupal oder präziser Drupal 8 ist derzeit in aller Munde. Nach mehr als drei Jahren Entwicklung ist die neuste Majorversion des Open Source CMS (Content Management Systems) Ende letzten Jahres erschienen. Dabei blieb kaum eine Komponente unberührt: Das Core-System basiert auf Symfony2, verwendet die etablierte Frontend-Engine Twig und ist vollständig responsive. Die Möglichkeiten zur Bearbeitung und Verwaltung von Inhalten (in-place Editing, Überarbeitung des Backend-UX) wie auch der Pflege mehrerer Sprachen wurden stark ausgebaut. Der Erfolg des CMS hängt jedoch mit dem riesigen Angebot von über 34'000 ergänzenden Modulen zusammen, welche ebenfalls frei verfügbar sind.
Oft höre ich die Frage, ob es nicht zu früh ist, an den produktiven Einsatz von Drupal 8 zu denken. Ich bin überzeugt, der Zeitpunkt könnte nicht besser sein! Es gibt drei Argumente, welche mich zu dieser Überzeugung kommen lassen: Zum einen kommt der Stand der Modul- und Core-Entwicklung auf Drupal 8 zum Tragen. Weiter spielen die Projekttypen eine Rolle, welche für Drupal in Frage kommen. Und schliesslich ist das Projektvorgehen und damit einhergehend die Erwartungshaltung an den Scope ein wichtiger Faktor.
Stand der Modul und Core-Entwicklung
Zum aktuellen Zeitpunkt sind zahlreiche, zum Teil zentrale Module, noch nicht vollständig portiert. Ich denke dabei an das Media-Ecosystem, das Webform- oder das Panels-Modul, um nur einige zu nennen. Aber auch das Commerce-Modul, welches Drupal mit einem vollwertigen und mächtigen Onlineshop erweitert, ist bis heute lediglich im Alpha-Status verfügbar. Daher sind auch noch keine Upgrade-Pfade verfügbar. Eine breite Auswahl an Modulen ist für eine effiziente Entwicklung aber relevant. So lassen sich mit Drupal 7 und den dazugehörigen Modulen bereits sehr mächtige Tools erstellen, was für Drupal 8 im Moment nur bedingt gilt.
Was stimmt mich trotzdem positiv? Der Core von Drupal 8. Durch die Integration zahlreicher Module, in Drupal 7 noch separiert, ist er deutlich mächtiger geworden. Speziell für kleine bis mittelgrosse Projekte lassen sich damit viele klassische Anforderungen an Websites und deren Entwicklung kostengünstig erfüllen. Im Vergleich zur Vorgängerversion hat sich Drupal 8 weiter in Richtung Web-Framework entwickelt. Drupal versteht sich als mächtiges System, welches sich in der IT-Landschaft von Unternehmen als sehr flexibel präsentiert. Durch die Umstellung auf eine objektorientierte Architektur ist der Einstieg für Entwickler einfacher geworden. Zudem wurde Drupal konsequent für die Anforderungen einer modernen Webapplikation ausgerichtet. Der Wechsel der Templating-Engine von PHPTemplate zu Twig unterstreicht diese Absicht auf anschauliche Weise. es setzt die gängige best practice um und trennt die Logik von der Darstellung. Dies resultiert unter anderem in der deutlich verbesserten Lesbarkeit der Template-Files, wie die Bartik Template-Files gut veranschaulichen.
Verbesserte Lesbarkeit im Bartik Template. Quelle: OSTraining.com.
Seit dem Release von Drupal 8 sind bei der Modul-Portierung deutliche Fortschritte gemacht worden. Viele Module sind inzwischen verfügbar, andere stehen als Beta-Versionen zur Verfügung oder kurz davor. Dabei engagieren sich die mehr als 100'000 aktiven Mitglieder der Drupal-Community. Selbst für das hochkomplexe Commerce-Modul wird im August der Release der ersten Beta-Version erwartet. Die Community ist motiviert, die neue Hauptversion von Drupal mit den zusätzlichen Elementen vorwärts zu bringen. Der Fortschritt ist förmlich spürbar. Somit ist es auch keine Überraschung, dass mit rund 100'000 aktiven Drupal 8 Websites bereits 8 Prozent der 1.3 Millionen Drupal Websites auf der neusten Version laufen. Das CMS ist in der Breite noch nicht auf dem Stand seines Vorgängers, aber die neuen Möglichkeiten und die eingeschlagene Marschrichtung bei der Portierung von Modulen, lassen kaum Raum für Zweifel am Erfolg von Drupal 8.
Drupal 8 – das CMS für komplexe Projekte
Drupal stellt spätestens seit der Version 7 für einen Grossteil von Website-Ausschreibungen eine Option dar – unabhängig von deren Grösse und Komplexität. Seine grossen Stärken spielt das System im Enterprise-Segment aus. Drupal ist selbst bei hohen Zugriffszahlen ausserordentlich stabil, hat ein fundiertes Sicherheitssystem und ist durch seinen modularen Aufbau ausserordentlich flexibel und kosteneffizient einsetzbar. Dies erhöht die Investitionssicherheit deutlich.
Daten strukturiert zu organisieren entspricht der DNA von Drupal. Mit Hilfe von Inhaltstypen, Taxonomien und der Rollenverwaltung lassen sich komplexe Stakeholderstrukturen abbilden. Inhalte werden zentral erfasst und im Frontend flexibel dem Endnutzer zugänglich gemacht. Das Enterprise-Segment wird durch die neue Version 8 und die damit einhergehenden Funktionserweiterungen noch konsequenter angesprochen. Während der aktuelle Stand von Drupal 8 für kleinere bis mittelgrosse Projekte bereits eine gute Basis darstellt, lässt sich dies für die grösseren und anspruchsvolleren Vorhaben allerdings noch nicht vorbehaltlos behaupten.
Selbst wenn Drupal 7 bis zum Release von Drupal 9 offiziell unterstützt wird, scheinen die Tage von Drupal 7 gezählt. Es wäre leichtsinnig, in der sich rasant entwickelnden Web-Welt auf die alte Version zu setzen, zumal ein Systemupdate durch die drastischen Änderungen am Core einer Neuentwicklung der Website gleichkommt. Viel eher lohnt es sich, einen agilen Entwicklungs-Ansatz zu wählen, um das Projektrisiko zu reduzieren.
Durchdachtes Projektvorgehen
In diesem Zusammenhang muss aus meiner Sicht ein realistisches Projektvorgehen bedacht werden. Selbst wenn zum heutigen Zeitpunkt eine Umsetzung auf Drupal 7 als geringeres Risiko eingeschätzt würde, ist der Einsatz eines inzwischen bereits veralteten Systems als Basis fragwürdig. Es kommt hinzu: Bei zunehmender Komplexität eines Projekts steigt die Voraussetzung an sauber durchgeführte Konzeptionsarbeiten. Das braucht Zeit. Bei Liip machen wir regelmässig die Erfahrung, dass sich ein ausführliches Vorprojekt gerade in Zusammenhang mit Drupal mehr als auszahlt. Bei dem von uns dafür verwendeten 5S-Vorgehen gemäss Jesse James Garrett sind die Phasen Scope und Structure besonders relevant. So werden die Inhalte mit Fokus auf den Nutzer sauber für die Inhaltstypen strukturiert und sinnvoll via Taxonomien verknüpft. Auch bietet das Vorgehen die Möglichkeit, sich mit den Umsystemen vertraut zu machen und so sinnvolle Schnittstellenspezifikationen zu entwickeln. Systemspezialisten erhalten einen Überblick über die relevanten Anforderungen der Applikation und können das Grundsystem mit Hilfe von Core- und relevanten Modulfunktionalitäten für einen möglichst hohen ROI optimieren. Ein solches Vorprojekt dauert bis zur Fertigstellung von Wireframes und einem Styleguide mindestens ein halbes Jahr und geht der Entwicklung zwingend voraus. Diese Tatsache muss in Zusammenhang mit dem aktuellen Entwicklungsstand von Drupal 8 und den damit kompatiblen Modulen berücksichtigt werden.
Sobald mit der Entwicklung gestartet wird, zahlt sich ein agiles Vorgehen gleich doppelt aus. So können die Funktionen mit dem effektiv grössten ROI (Business Value/Aufwand) anhand realer Gegebenheiten umgesetzt und Bereiche mit noch nicht ausgereiften Standardlösungen in Drupal auf später verschoben werden. Die Massgeschneiderte Entwicklung von Modulen oder Anpassungen am Core können dabei an die Community zurückfliessen.
Was noch folgt
Die Entwicklungsfortschritte seit dem ersten Release von Drupal 8 zeigen eine klare Gangart auf und es ist davon auszugehen, dass Drupal 8 bis in einem halben Jahr noch einmal deutlich weiter gereift sein wird. Für mich steht es ausser Frage, dass viele Module bis dahin auf einem sehr hohen Niveau zur Verfügung stehen und sich für den Produktiveinsatz eignen werden. Ebenfalls wird der Core – geplant sind ein Punktrelease pro Halbjahr – noch einmal merklich Fortschritte machen. Damit wird auch bei einem grossen Projekt das Risiko für eine Umsetzung auf der neusten Version noch einmal reduziert. Wer heute ein Webprojekt in Angriff nehmen will, sollte Drupal 8 ganz sicher auf der Liste der zu evaluierenden CMS haben.