Seit unserer Gründung 1997 entwickeln wir komplexe Websites. Eines unserer ersten Projekte war das Finanzportal wallstreet-online.de, das damals bereits über 100.000 Community-Mitglieder und mehreren Millionen Besucher pro Monat hatte. Auch mit vielen anderen Unternehmen haben wir in den vergangenen 15 Jahren Webanwendungen und Portale aufgebaut, die deutlich umfangreicher sind als eine einfache Website.

Solche Lösungen basieren schnell auf mehreren 10.000 Zeilen individuellem Programmcode, der über lange Zeit gewachsen ist. Die leistungsfähigen Frameworks, die im PHP-Umfeld in den letzten Jahren entstanden sind, werden oftmals nicht genutzt. Andere Komponenten sind veraltet oder werden schon gar nicht mehr weiterentwickelt. Das führt zu einer zunehmenden Einarbeitungszeit bei Entwicklern und treibt auch die Preise für kleine Änderungen nach oben.

Eine komplette Neuprogrammierung ist allerdings auch keine Lösung. Wie wir an anderer Stelle schon geschrieben haben, ist sie mit erheblichen Risiken und Unwägbarkeiten verbunden. Oftmals übersehen solche Projekte wichtige Sonderfälle und Einzelfunktionen und geraten daher “over time and budget”.

Den Betreibern hilft das aber nicht weiter. Auf sie steigt der Druck:

  • Die Gestaltung wirkt auf die Besucher mittlerweile altbacken. Ladezeiten für mobile Geräte werden zu lang. Standards der “User Experience” wie Responsive Design oder Barrierefreiheit werden nicht erreicht, obwohl dies teilweise sogar gesetzlich vorgeschrieben ist.
  • Die internen Abläufe zur Steuerung und Pflege der Site sind nicht mehr zeitgemäß. Eine Anpassung an die aktuellen Anforderungen könnte Zeit und Ressourcen sparen.
  • Neue Features oder Verbesserungen werden immer teurer. So bleiben auch kleinere Veränderungen aus, obwohl sie dringend nötig wären. Die Site fällt im Vergleich mit dem Wettbewerb weiter zurück.

Die Betreiber sind in ihrem Webportal gefangen.  Wie kann man diese vertrackte Situation lösen?

Unser Ansatz

Seit 2011 setzt die webfactory auf das Open-Source-Framework Symfony 2. Für Nicht-Programmierer vereinfacht gesprochen: Symfony 2 ist eine sehr leistungsfähige und flexible Grundlage zur Entwicklung PHP-basierter Websites und Webanwendungen. Es vereinfacht grundlegende Tätigkeiten und hilft dabei, Projekte mit einer einheitlichen, vertrauten Struktur aufzubauen. Dahinter steht eine große Entwickler-Gemeinde, die das Framework stetig weiterentwickelt.

Für unsere Kunden haben wir ein Konzept entwickelt, wie sich Symfony 2 mit Altsystemen gut verbinden lässt. Damit können wir neue Funktionen auf einer modernen Basis realisieren. So als würde man sein Haus erweitern – und dabei natürlich auf Doppelverglasung und Wärmeisolation achten.

Für die Besucher des Webportals sieht alles genau so aus wie vorher. Sie bemerken keinen Unterschied zwischen der neuen Programmierung und dem Altsystem, alles wirkt wie aus einem Guss.

Diese Brücke zwischen Alt und Neu können wir auf verschiedenen Ebenen umsetzen:

  • Ein neues Design für alte Funktionalität
  • Ein altes Design behalten und mit neuen Features erweitern
  • Eine Mischung aus beidem – etwa bei einzelnen neuen Modulen

Auch ohne dass sich irgendetwas Sichtbares ändert, können Websites von einer Integration von Symfony 2 profitieren: Zum Beispiel dadurch, dass Symfony 2 ein sehr leistungsfähiges Caching-System mitbringt, durch das bei komplexeren Informationsangeboten mit wenig nutzerspezifischen Inhalten vielfach große Performancegewinne realisiert werden können.

Wichtig ist uns dabei, so mit jedem neuen Baustein auf der Höhe der Zeit zu sein. Das ist schneller, weniger fehleranfällig und damit günstiger, als immer weiter in ein Altsystem zu investieren.

Das Ergebnis

Die Betreiber können ihr Webportal Stück für Stück erneuern – statt in einem Investitonsstau gefangen zu sein. Mit jedem kleinen Erweiterungsprojekt wird ein Stück neuer Code geschaffen und im besten Fall auch ein kleines Stück Altcode in den Ruhestand versetzt. Es entsteht ein "rollierender Modernisierungsprozess". Ihre Lösung bleibt ständig auf der Höhe der Zeit.

Passend zum Thema

Wir freuen uns über Feedback und Diskussionen via @mpdude_de oder @webfactory!