Wie wir arbeiten
Erfahrung, Sorgfalt und eine ruhige Hand am Steuer:
wie wir Projekte verlässlich in den sicheren Hafen bringen.
Lernen Sie unsere Arbeitsweise und Workflows kennen.
Klar definierte Arbeitsprozesse und ein standardisierter Workflow bieten große Vorteile, wenn es darum geht, komplexe Projekte auf Kurs zu halten und erfolgreich durchzuführen. Denn auch wenn es immer wieder neue technische Herausforderungen zu bewältigen gibt: viele Problemstellungen ähneln sich – und das gilt nicht nur für gewünschte Funktionalitäten in einem Web-Projekt.
Als Dienstleister für ein Projekt mit einem hohen Anteil an Individual-Entwicklung muss man stets dafür gerüstet sein, Untiefen erfolgreich auszuloten und Riffe zu umschiffen. Dies gelingt am besten mit einem reichhaltigen Erfahrungsschatz und einer versierten Crew – vom Steuermann bis zum Maschinenraum.
Die Kombination aus bewährten Prozessen und einer routinierten Mannschaft, die sie verwirklicht, ist unser Rezept für den Projekterfolg. Nachfolgend stellen wir unsere Arbeitsweise im Detail vor.
Vom Start weg sicher ans Ziel
Die Reisestationen im Überblick
Gestatten: erdfisch.
Wir freuen uns, Ihre Bekanntschaft zu machen.
erdfisch stellt die richtigen Fragen, denkt weit voraus und findet selbst für knifflige Problemstellungen eine elegante und robuste technische Lösung.
Kennenlernen im Erstgespräch
Ab der ersten Kontaktaufnahme nehmen wir uns Zeit für Sie. Wenn eine Anfrage bei uns anlandet, dann schauen wir uns nicht einfach nur die übermittelten Informationen an und schicken Ihnen ein Angebot aus dem Baukasten mit irgendwelchen Zahlen darin.
Erst einmal greifen wir zum Hörer und rufen Sie an.
Denn schon im Vorfeld und lange vor einer möglichen Beauftragung möchten wir so viel wie möglich über Ihr Web-Projekt in Erfahrung bringen. Einige Zeilen einer schriftlichen Anfrage und selbst Zusatzmaterialien wie z.B. ein grobes Lastenheft sind nämlich nie genug, um ohne Kontext und weiteres Hintergrundwissen eine belastbare Kostenkalkulation zu erstellen. Dafür das Bewusstsein zu schaffen und mögliche Risiken, aber auch Chancen für das Projekt noch vor dessen Beginn aufzuzeigen, ist daher ebenfalls ein wichtiger Baustein des Erstgesprächs.
Genauso erwarten wir, dass Sie erdfisch auf Herz und Nieren prüfen. Denn im wechselseitigen persönlichen Austausch wird im Regefall schon früh erkennbar, ob Ihr Projekt und unsere Dienstleistung miteinander harmonieren.
Das Erstgespräch und ggf. weitere Kennenlerngespräche sind selbstverständlich kostenlos und unverbindlich.
Schulterblick Bestandsprojekt
Manche Projekte sind von Grund auf neu und haben keinen technischen Vorläufer. Aber in vielen Fällen gibt es bereits eine bestehende technische Lösung. Entweder wird dann für die Betreuung dieses Bestandsprojekts ein neuer Dienstleister gesucht, oder aber es ist ein Upgrade oder eine vollständige Neuentwicklung geplant.
Verfügen Sie bereits über ein Bestandssystem, so gibt es auch bereits technische Lösungen, die z.B. Ihre Geschäftsprozesse abbilden oder mit denen Sie Ihre Workflows planen und durchführen, um Ihre Ziele zu erreichen.
In der Regel kennen Sie aber nur die (Benutzer-)Oberfläche Ihres Systems. Wie die technischen Konzepte aussehen, welche darunter verwirklicht worden sind, oder wie es um deren Qualität, Robustheit oder Skalierbarkeit bestellt ist – über diese Fachinformationen verfügen Sie als Betreiber in der Regel aber nicht.
Für die Dienstleisterseite ist jedoch der Kenntniserwerb über den technischen Unterbau eine zwingende Voraussetzung, um beispielsweise bewerten zu können, ob für ein Bestandsprojekt die Wartung und Weiterentwicklung übernommen werden kann.
Daher empfehlen wir für Bestandsprojekte immer einen so genannten "Schulterblick". Ziel des Schulterblickes ist es, dass wir das Bestandssystem grob kennenlernen und uns ein Bild über dessen aktuellen Zustand aus technischer Sicht machen können. Die von uns hierbei gewonnenen Erkenntnisse und unsere Bewertung teilen wir Ihnen im Anschluss mündlich in einem maximal 30 minütigen Telefongespräch/Videocall mit.
Auch für den Schulterblick entstehen Ihnen noch keinerlei Kosten und dieser ist ebenfalls unverbindlich.
Checkliste: was brauchen wir für die Durchführung des Schulterblicks bei einem Drupal-Projekt?
- (1) Eine wechselseitig unterzeichnete Geheimhaltungserklärung (NDA)
-
Eine Geheimhaltungserklärung (Non-Disclosure-Agreement, NDA) ist im Regelfall erforderlich, da Sie uns für den Schulterblick Dateien aushändigen, die wir sorgsam behandeln müssen, nicht an Unbefugte weitergeben dürfen und nach der Durchführung der Schulterblick-Maßnahme wieder löschen müssen, sofern eine Projektübernahme nicht zustande kommt. Den rechtlichen Rahmen hierfür bietet der NDA.
- (2) Die Codebase
-
Bei der Codebase handelt es sich um die System-Dateien des Bestandsprojekts.
- (3) Die Datenbank
-
Hier sind z.B. die konkreten Inhalte und ggf. auch Konfigurationsinformationen des Projekts hinterlegt.
Aus Datenschutzgründen empfehlen wir, die Datenbank vor der Übergabe an uns um etwaige sensible Informationen wie beispielsweise personenbezogene Daten bei Nutzerkonten zu bereinigen zu lassen und diese mit Dummy-Daten zu überschreiben. - (4) Files-Ordner (optional)
-
Im Files-Ordner hinterlegt Drupal standardmäßig alle von ihm verwalteten Dateien – also z.B. Bilddateien, Textdateien oder andere Dateien, die im Projekt zum Einsatz kommen oder in der Medienverwaltung hinterlegt werden.
Grundsätzlich ist ein Setup zwar auch ohne Files-Ordner lauffähig. Je nach Business-Usecase macht es aber trotzdem Sinn, den Files-Ordner bereitzustellen. Auch hier gilt, dass keine Dateien übermittelt werden sollten, die sensible oder vertrauliche Informationen beinhalten, und diese ggf. durch Dummy-Dateien ersetzt werden sollten.
Auf Los geht's los.
Das Projekt gemeinsam entdecken und die Grundlagen erarbeiten.
Discovery Workshop
Sollen wir lediglich ein Bestandsprojekt in die Wartung und Weiterbetreuung übernehmen, können wir im Regelfall bereits nach dem kostenfreien Schulterblick einschätzen, ob die Projekt-Übernahme möglich ist und welche einmaligen Kosten für die Übernahme sowie wiederkehrenden Kosten für die Betreuung anfallen.
Etwas anders stellt sich die Situation dar, wenn das Projekt gänzlich neu ist oder aber das Bestandsprojekt einen vollständigen Relaunch erfahren soll – etwa aufgrund einer Migration von Drupal 7 auf 10.
In diesem Fall müssen wir uns gemeinsam mit Ihnen sehr viel tiefer in die Materie einarbeiten. Dies geschieht anhand eines so genannten Discovery-Workshops.
Wie es die englische Bezeichnung schon anklingen lässt, gleicht ein Discovery-Workshop einer "Entdeckungsreise" in mehreren Etappen. Diese Reise erfolgt zudem aus zwei unterschiedlichen Blickwinkeln: aus Ihrem in der Rolle des Kunden, wie auch aus unserer Sicht in der Rolle des potenziellen Dienstleisters.
Bei Discovery-Workshop handelt es sich um eine separat buchbare Leistung, im Rahmen derer wir gemeinsam mit Ihnen das geplante Projekt und den thematischen Kontext ausführlich kennenlernen. Dies betrifft sowohl die funktionalen als auch nonfunktionalen Eigenschaften des Projekts, aber beispielsweise bei Bestandsprojekten auch deren gegenwärtige technische Realisierung. Sie wiederum profitieren von unserer konzeptionellen Expertise und der technischen Erfahrung, die wir mitbringen. Mit diesem fachlichen Kontext können Sie viele Aspekte Ihres Projekts neu entdecken, hinterfragen, anders priorisieren, oder neue Potenziale im Projekt entdecken, die Ihnen vorher möglicherweise verborgen waren.
Nach Abschluss des Discovery-Workops haben wir genügend Informationen, um in die nächste Projekt-Phase einzutreten, in der eine technische Grobkonzeption des Projekts und darauf basierend eine erste Kalkulation des erwarteten Gesamtumfangs erarbeitet werden.
Anforderungsanalyse, technisches Konzept und Kalkulation
Nach Abschluss und Protokollierung der Discovery-Phase ist unser Software-Expertenteam am Zug. Die erfassten Anforderungen, gewonnenen Erkenntnisse und das zusätzlich erworbene Kontextwissen fließen in die jetzt durchzuführende Anforderungsanalyse mit ein. Dabei handelt es sich um einen weiteren Workshop, der diesmal rein auf Dienstleisterseite stattfindet.
In diesem Workshop werden die in der Discovery-Phase ermittelten Anforderungen und Learnings einer eingehenden Analyse durch das Expertenteam unterzogen. Dabei gehen wir wie folgt vor:
- es erfolgt eine Evaluation der Anforderungen anhand von Kriterien wie grundsätzlicher Machbarkeit, Skalierfähigkeit, Komplexität, Wirtschaftlichkeit, Datensicherheit, sowie Wechselwirkungen oder möglicher Konflikte mit anderen beschriebenen Anforderungen
- es werden Annahmen zur Funktionsweise und zu Prozessen im zu entwickelnden System getroffen und dokumentiert, die in der Discovery-Phase nicht konkret benannt wurden, aber für die Implementierung erforderlich sind (z.B. bei auffallenden Definitionslücken)
- es wird ein technisches Grobkonzept erstellt. Dies geschieht auch schon auf der Grundlage konkreter Web-Technologien und Web-Frameworks, mit denen die identifizierten Anforderungen technisch realisierbar sind. Da wir ein auf Drupal spezialisierter Dienstleister sind, ist das Framework unserer Wahl entsprechend auch fast immer Drupal.
- auf der Basis des technischen Grobkonzepts werden die identifizierten Anforderungen gegliedert, geclustert, in technische Arbeitspakete gruppiert und deren Implementierungsaufwand grob geschätzt
Mit Beendigung von Anforderungsanalyse und Grobkalkulation erhalten Sie als Kunde und wir als Dienstleister eine relativ präzise Vorstellung in Bezug auf die anstehenden Aufgaben, die erwartete Komplexität und den voraussichtlichen Implementierungsaufwand für das Projekt. Ab diesem Punkt kann es daher auch realistisch kalkuliert werden, um es im Anschluss z.B. in Form eines agilen Softwareprojekts zu planen und umzusetzen.
Butter bei die Fische
Zusammen auf Große Fahrt: das Projekt wird realisiert.
Wireframing und Data Modelling
Das Projekt ist kalkuliert, die Arbeitspakete beschrieben und priorisiert, der Umsetzungszeitraum abgesteckt und das Projekt-Team fixiert?
Dann ist die Zeit für die Kiellegung gekommen.
Die erste Phase der Projekt-Implementierung steht im Zeichen der Informationsarchitektur.
Das betrifft einerseits die Planung und Konzeption der künftigen Benutzeroberfläche, über die Nutzer mit dem entwickelnden System interagieren werden. Ein gutes "Nutzererlebnis" – in IT-Deutsch "User Experience" oder kurz UX – ist ein entscheidender Faktor dafür, ob ein Projekt von den Zielgruppen angenommen wird oder nicht.
Auch muss die Benutzeroberfläche andererseits möglichst selbsterklärend und intuitiv bedienbar sein. Denn nur mit einer entsprechend hohen Gebrauchstauglichkeit (Usability) werden die Zielgruppen das Produkt gerne nutzen und entsprechend frequentieren.
Ein gutes UX-Design zu entwickeln, welches das Angebot des umzusetzenden Projekts möglichst gebrauchstauglich abbildet, ist eine nicht zu unterschätzende Herausforderung. Sie bedarf viel konzeptioneller Arbeit und der einen oder anderen Korrekturschleife. Um dennoch schnell visuelle Ergebnisse der Konzeption erhalten und auf Praxistauglichkeit testen zu können, haben sich daher Modelle wie z.B. Mockups oder Wireframes durchgesetzt, die wir ebenfalls in der Phase der visuellen Konzeption einsetzen.
Neben der Entwicklung der Benutzeroberfläche ist das Festzurren des Datenmodells die zweite wichtige Säule zum Implementierungsbeginn. Im Datenmodell wird festgelegt, wie mit den vorhandenen Daten umgegangen werden soll, also beispielsweise
- welche Daten es überhaupt gibt
- wie sie aufgebaut, formatiert und strukturiert sind
- wer Zugriff auf sie hat
- wer sie erstellen, bearbeiten oder löschen kann
- ob sie von oder zu Drittsystemen transferiert werden
Datenmigration und Datenmapping
Manche Projekte benötigen keine Migration von Bestandsdaten. Sei es, weil sie keinen direkten Vorläufer besitzen oder auch, weil Sie sich als Kunde entschließen, einen Relaunch zum Anlass zu nehmen, auch den Content von Grund auf neu erstellen zu lassen.
Treffen diese Szenarien jedoch nicht zu, so ist eine Etappe der Reise die Übernahme von Bestandsdaten in das neu zu entwickelnde System.
Weicht das Datenmodell des neuen Systems von der vorherigen Lösung ab – was in der Regel der Fall ist – so ist es vor allem wichtig, dass die Bestandsdaten so migriert werden, dass sie mit dem neuen Datenmodell kompatibel sind. Dieses "Datenmapping" ist meist der komplexere Part einer Datenmigration und kann bei sehr komplizierten Datenmodellierungen einige Zeit in Anspruch nehmen.
Daher ist es wichtig, sich der Migration relativ früh im Projekt zu widmen – eben dann, wenn das Datenmodell des Zielsystems stabil genug ist, so dass die zu migrierenden Daten in dieses überführt werden können.
In der Regel wird die Migration während der Implementierungsphase mehrfach optimiert, so dass sie kurz vor dem Launchtermin – wenn der finale Transfer der Altdaten ansteht – als ein Teil des Going-Live-Prozesses automatisiert durchgeführt werden kann. Dies ist notwendig, damit das Zeitfenster vom Switch des alten Systems zum neuen Setup so kurz wie möglich gehalten werden kann.
Entwicklung und Sitebuilding
Was bisher zunächst Ideen, dann Pläne, Konzepte und visuelle Vorlagen waren, wird in diesem Projektabschnitt "zum Leben erweckt".
Die Implementierungsphase ist die umfangreichste Etappe im ganzen Projekt, denn hier erfolgt nun der technische Aufbau des Systems. Dies geschieht in der Regel einerseits durch so genanntes "Sitebuilding", andererseits durch konkrete Implementierung von individuellem Programm-Code, der explizit für den vorgesehenen Zweck geschrieben wird.
Sitebuilding
Beim "Sitebuilding" werden vom Software-Entwickelnden bereits existierende Funktionen des Drupal-Kerns und vorhandener Zusatzmodule genutzt, um die gewünschten Features, Workflows oder Prozesse im Projekt genau so abbilden zu können, wie sie dort benötigt werden.
Da Drupal aufgrund seines speziellen Modul-Konzepts über eine enorme Menge an solchen "Ready to customize"-Funktionen verfügt, ist es in vielen Fällen die schnellere und wirtschaftlichere Option, auf dieses Angebot zurückzugreifen und über die richtige Kombination und Konfiguration die im Projekt gewünschten Funktionen bereit zu stellen.
Voraussetzung für gutes und effizientes Sitebuilding ist natürlich, genau zu wissen, wann es gegenüber einer Individual-Entwicklung die bessere Alternative darstellt. Dies setzt umfangreiche Kenntnisse sowohl Drupals als auch geeigneter Module für die Sitebuilding-Tasks voraus.
Individual-Entwicklung
Nur Sitebuilding allein führt aber meist nicht zum Ziel. Insbesondere bei sehr großen und komplexen Projekten ist die Wahrscheinlichkeit groß, dass bestimmte funktionale Aspekte sich nur über Individual-Entwicklung, also beispielsweise eigens für diesen Zweck entwickelte Custom-Module abbilden lassen.
Unsere Entwicklerinnen und Entwickler mit langjähriger Programmiererfahrung im allgemeinen und Drupal-Development im besonderen stellen sich dabei jeder Herausforderung. Dies erfolgt in einem professionellen Entwicklungsumfeld, um Produktivität und Effektivität zu maximieren und Fehlerquellen zu minimieren.
Entwicklungsumfeld und Prozesse
- Verwendung des Versionskontrollsystems Git, analog wie es auch bei drupal.org eingesetzt wird
- verschiedene Funktionen werden in eigenen Versionszweigen, sogenannten Feature-Branches entwickelt
- bei der Entwicklung wird streng darauf geachtet, dass diese gemäß der für Drupal formulierten Qualitäts- und Coding-Standards erfolgt
- falls das Projekt einschließlich automatisierter Vertestung realisiert wird, wird jeder Commit in die Codebase automatisch einer Vertestung unterzogen, und der Entwickler wird benachrichtigt, wenn durch seine Änderung Tests fehlschlagen
- umgesetzte Features werden intern einer funktionalem Prüfung und einem Code-Review durch einen weiteren Entwickler unterzogen
- im Anschluss wird die Funktion für den Kunden zum Testen bzw. der Endabnahme auf einem entsprechenden Stage- bzw. Abnahmesystem bereitgestellt
- und erst wenn die Funktion alle genannten Qualitätskontrollen erfolgreich passiert hat, kommt sie in das Live-System
Bei neu umzusetzenden Projekten rollen wir regelmäßig Entwicklungs- Snapshots auf ein Testsystem aus, so dass Sie als Kunde jederzeit Einblick in den Stand der Umsetzung nehmen und bei Bedarf Einfluss nehmen können. Auch können hier Teilabnahmen oder Demos erfolgen.
Bei der Handhabung von Bestandsprojekten, die sensible Kundendaten enthalten (z.B. Shops, Intranets o.ä.), achten wir im Rahmen der Weiterentwicklung genau darauf, dass Sie die Kontrolle über diese Daten behalten. Müssen zum Zwecke der Weiterentwicklung z.B. Kopien des Setups auf den lokalen Entwicklungsrechnern unserer Mitarbeitenden aufgesetzt werden, so anonymisieren wir mit speziell von uns entwickelten „Wiper“- Scripten die in der Datenbank enthaltenen personenbezogenen Daten, so dass diese ausschließlich auf Ihren Servern verbleiben.
Für besonders sensible Daten, die generell niemals in der Drupal-Datenbank verbleiben sollten, bieten wir außerdem spezielle Lösungen an.
UX/UI und Theming
Während der "technische Unterbau" des Projekts voranschreitet, geht es auch in Sachen Benutzeroberfläche weiter.
Im Regelfall wird für diese ausgehend von den in der Konzeptionsphase entwickelten Wireframes und/oder Mockups ein dem "Atomic-Design"-Ansatz folgendes Frontend-Design entwickelt.
Die Realisierung des Design-Entwurfs kann beispielsweise mit dafür spezialisierten Tools wie "Figma" oder "Adobe XD" erfolgen. Auch Designs, die Sie als Kunde z.B. von Ihrer eigenen Design-Abteilung entwickeln lassen, können wir verwenden.
Komponentenbasierte Design-Ansätze wie Atomic Design ermöglichen es uns in Verbindung mit einem Styleguide-Framework wie Storybook, das Styling für später im Projekt vorkommende funktionale und inhaltliche Elemente unabhängig davon zu realisieren, ob diese im Zielsystem schon technisch implementiert sind oder nicht.
Zudem können die ausgestalteten Komponenten einfach in anderen Seitenkontexten des Projekts wiederverwendet, neu zusammengestellt und schnell geändert werden.
Dadurch gewinnen wir Geschwindigkeit und können das Verhalten der Komponenten vom Start weg in verschiedenen Viewports wie Mobile und Desktop testen. Als Kunde wiederum können Sie sich frühzeitig ein Bild davon machen, wie Elemente des fertige Designs einmal im Webbrowser aussehen werden und wie sich die Interaktion damit anfühlen wird.
Der aufmerksame Blick unserer Frontend-Experten stellt sicher, dass im Endergebnis eine attraktive, aber auch durchdachte und übersichtliche Benutzeroberfläche für Ihr Projekt entsteht. Dass diese auch responsiv, barrierearm und möglichst selbsterklärend ist, versteht sich von selbst.
Validierung und Testing
Je umfangreicher das Projekt, und je komplexer die zu entwickelnde Business-Logik, desto mehr Zeit muss für gewissenhafte Funktions- und Abnahmetests reserviert werden.
Auch wenn bereits während der laufenden Entwicklung permanent und stetig entwickelte Funktionen im Vier- oder sogar Sechs-Augenprinzip geprüft und auch Code-Reviews unterzogen werden – erst wenn das Projekt in seiner Gesamtheit steht, lässt sich zuverlässig überprüfen,
- welche unerwünschten Wechselwirkungen eventuell durch das Zusammenführen zuvor parallel entwickelter Funktionen in einem Entwicklungs-Branch entstanden sind
- ob alle Nutzergruppen die für sie vorgesehenen Berechtigungen erhalten haben
- ob alle Caches des Systems korrekt konfiguriert sind und nicht beispielsweise durch zu "hartes" Caching eigentlich für einzelne Nutzer individualiserte Inhalte auch Dritten angezeigt werden
- ob sich die Benutzeroberfläche in allen üblichen Browsern und den gängigen Viewports robust verhält
- ob die geplante Anbindung an potentielle Drittsysteme wie erwartet funktioniert
- und viele Aspekte mehr...
Im Normalfall nimmt diese Test- und Abnahmephase mehrere Wochen in Anspruch. Sie erfordert
- intensive Mitarbeit des Kunden
- eingespielte, kurze Kommunikationswege
- einen klaren Prozess für das Reporting von Bugs und Fehlern
- und ein aufmerksames und kooperierendes Team auf Seiten des Dienstleisters, welches die Reports zeitnah auswertet, verifiziert, klassifiziert, und dann als Teil einer Korrekturschleife gemeinsam mit anderen Cleanups- und Optimierungsmaßnahmen eintaktet.
Hilfreiche Ergänzung: automatisierte Tests
Um den manuellen Testaufwand sowohl während der erstmaligen Umsetzung als auch später in der Betreuung und Weiterentwicklung zu reduzieren, besteht immer die Möglichkeit, besonders wichtige und geschäftskritische Funktionen mit so genannten automatisierten Tests abzusichern.
Es gibt hierbei eine ganze Reihe von Möglichkeiten zur automatisierten Vertestung. Sehr verbreitet sind beispielsweise Unit Tests, die das korrekte Ablaufen bestimmter Prozesse oder Funktionen überprüfen. Es gibt zudem eigene Software-Frameworks wie zum Beispiel Selenium, um automatisiert Interaktionen mit einer Web-Applikation durchzuführen und deren Erfolg oder Fehlschlag ebenso automatisiert an die entwickelnden Personen zurückzumelden.
Aber nicht nur durch die Weiterentwicklung des Systems kann es zu möglichen Fehlern oder unerwünschten Nebeneffekten kommen. Auch Updates oder Upgrades, die im Rahmen der Wartung regelmäßig eingespielt werden müssen, verändern die Codebase des Setups.
Automatisierte Tests helfen somit bei jeder Änderung der Codebase, mögliche Fehler und/oder unerwünschte Seiteneffekte in denjenigen Funktionen schnell und effizient zu ermitteln, die sie überwachen.
Wann lohnen sich automatisierte Tests?
Grundsätzlich gilt: je größer der potentielle Schaden ist, wenn eine bestimmte geschäftskritische Funktion in einer Software selbst kurzfristig nicht mehr funktioniert, desto dringender ist der Einsatz von automatisierten Tests anzuraten. Es muss jedoch auch die wirtschaftliche Komponente im Blick behalten werden, denn die Vertestung eines Systems steigert den ingesamt notwendigen Implementierungsaufwand merklich. Als Faustformel kann man damit rechnen, dass die automatische Vertestung einer bestimmten Funktion den Implementierungsaufwand für diese um ca. 50 bis 75% erhöht.
Bei der Entscheidung, ob automatisierte Tests ja oder nein, und falls ja, für welche Funktionen, lassen wir Sie als Kunde selbstverständlich nicht alleine, sondern stimmen diese Fragen eng mit Ihnen anhand des jeweiligen zu implementierenden Systems ab.
Lasttests
Ist damit zu rechnen, dass das Projekt nach dem Going-Live stark frequentiert sein wird oder es zu Lastspitzen aufgrund punktuell zahlreicher Zugriffe oder Seitenaufrufe kommen wird, sollte vorab sichergestellt sein, dass das System nach seinem (Re-)Launch nicht überlastet sein wird. Hierfür bieten sich so genannte Lasttests an, mit denen man z.B. eine hohe Zahl von Zugriffen oder Anfragen simulieren und auf diese Weise das Verhalten des Systems und dessen Antwortzeiten bereits vor dem eigentlichen Going-Live auswerten und optimieren kann.
Lasttests sind somit insbesondere für Projekte mit einer konstant hohen Besucherzahl oder einer großen Menge an eingeloggten Benutzern, für die nicht alle Inhalte gecached werden können, sinnvoll.
Bereitstellung auf Live
Es ist üblich, dass die Testphase auf einer so genannten "Pre-Live"-Umgebung stattfindet. Dabei handelt es sich um ein mit dem Produktiv-System weitgehend identischen Setup. Falls das Produktiv-System im Rahmen eines Relaunches komplett durch eine neue Lösung ersetzt wird, wird das neue "Live"-System auf der neuen Hosting-Umgebung nach der Endabnahme des Systems für den anstehenden "Switch" vorbereitet.
Der eigentliche Going-Live-Termin wird gründlich vorbereitet und mit Ihnen als Kunde terminlich abgestimmt. Kurz bevor das alte System durch das neue ersetzt wird, wird ein so genannter "Content Freeze" vereinbart. Das bedeutet, dass ab jetzt stattfindende redaktionelle Änderungen auf dem Alt-System nicht mehr vorgenommen werden sollten - oder aber die Änderungen parallel auch schon auf dem neuen System eingepflegt werden müssen, damit sie nicht verloren gehen.
Bei Plattformen mit viel nutzergeneriertem Content wie z.B. aktiven Communities kann kein Content-Freeze vereinbart werden. In diesem Fall muss das Projekt für die Dauer der Umstellung vorübergehend vom Netz genommen werden.
Muss eine vollumfängliche Datenmigration stattfinden und ist diese sehr umfangreich und zeitaufwändig, lassen wir diese zum spätestmöglichen Zeitpunkt vor dem Relaunch komplett durchlaufen. Um die nach diesem Zeitpunkt veränderten oder neu hinzugekommenen Daten bis zur Abschaltung des Altsystems ebenfalls migrieren zu können, ist dann eine weitere Migration mit nur diesen Änderungen notwendig. Diese wird auch als "Delta-Migration" bezeichnet, da sie das "Daten-Delta" zwischen der bereits durchgeführten Vollmigration und den danach noch erfolgten Änderungen erfasst. In der Regel geht diese Delta-Migration schnell vonstatten, so dass der Zeitraum, in welchem das Projekt zwecks Systemumstellung offline ist, auch für Systeme mit einem sehr umfangreichen Datenbestand relativ kurz gehalten werden kann.
Nach dem Switch auf das neue System sind wir in Bereitschaft und überwachen die Performance des Systems unter Realbedingungen. Ebenso stellen wir Kapazitäten ab, um bei Bedarf schnell reagieren zu können, falls in den ersten Stunden und Tagen im Realbetrieb noch Probleme auffallen sollten, die während der Test- und Abnahmephase entweder nicht aufgetreten oder trotz größtmöglicher Sorgfalt nicht als solche erkannt worden sind.
Sind alle Stromschnellen bewältigt und die Jungfernfahrt erfolgreich absolviert, so ist es geschafft: Ihr Projekt ist live.
Es war eine lange Reise bis hierhin, und wahrscheinlich war sie an der einen oder anderen Stelle schwierig und herausfordernd. Aber ist das Projekt gelungen und erfolgreich, so ist es das immer wert - und daher gehen wir diese Reise auch immer wieder gerne aufs neue und mit neuen spannenden Projekten und Herausforderungen an.
Alles Klarschiff?
Regelmäßig ins Trockendock: Wartung und Weiterentwicklung nach dem Launch.
Wartung und Erweiterung
Eine gängige These im Web-Development lautet: eine Website oder eine Web-Applikation "ist niemals fertig". Auch nach dem initialen Launch oder dem Relaunch eines Projekts bestehen in der Regel Pläne für dessen Verbesserung und funktionale Erweiterungen. Oftmals ist es auch so, dass aufgrund von Budget-Limitierungen nicht der ganze geplante Funktionsumfang direkt zum Start realisiert werden konnte und Features somit während des späteren Betriebs nachgerüstet werden. Oder es ergeben sich während des Betriebs veränderte oder neue Anforderungen an das Projekt, für die eine technisch Lösung erarbeitet und in das Projekt integriert werden muss. Oder es werden andere Anwendungen neu in Dienst gestellt, an die das Projekt angebunden wird oder es mit ihnen interagieren soll. Kurz gesagt: insbesondere bei umfangreichen Webprojekten, die viele Business-Use-Cases abbilden ist die Wahrscheinlichkeit nahe 100%, dass es auch nach dem erstmaligen Going-Live kontinuierlichen Bedarf an konzeptioneller und technischer Weiterentwicklung gibt.
Auf dieses Szenario langfristiger und stetiger Weiterentwicklung – auch über Jahre hinweg – legen wir unsere Projekte daher vom Start weg aus. Wir sorgen sowohl für ein stabiles und robustes technisches Fundament als auch konzipieren wir das zu entwickelnde System von Anfang an so, dass es offen für flexible Anpassungen bleibt, die sich aus den sich wandelnden Anforderungen während der Betriebszeit ergeben können. Denn nichts ist frustrierender sowohl für Sie als Kunde wie auch für uns als Dienstleister, wenn technische "Sackgassen" oder unflexible Bestandslösungen verhindern, dass sich das Projekt auf sich ändernde Begleitumstände und neu entstehende Funktionswünsche anpassen lässt.
Ein Restrisiko für diese unerwünschte Szenario besteht zwar immer. Jedoch können wir es dank der großen Erfahrung und somit vorausschauenden technischen Planung unserer Solution-Architekten minimieren und damit sicherstellen, dass wir von uns umgesetzte Projekte zuverlässig und stetig auch über Jahre hinweg funktional erweitern und verbessern können, sofern Sie als Kunde dies wünschen.
Wartung und Pflege
Neben der Weiterentwicklung ist die Wartung und Pflege eines Projekts das zweite wichtige Investment in seinen Betrieb. Funktionsmächtige Frameworks wie Drupal und seine Module unterliegen selbst der kontinuierlichen Weiterentwicklung, und die jeweils aktuell supporteten Versionen werden regelmäßig mit sicherheitsrelevanten Updates versorgt.
Die evolutionäre Entwicklungsstrategie Drupals seit der Version 8 sorgt dafür, dass Website-Betreiber seit dieser Version mit erheblich weniger Aufwand auf ein neues Major Release – also eine neue Drupal Version – upgraden können, als dies in früheren Versionen Drupals der Fall war.
Dies gelingt aber nur dann, wenn die betreffende Seite in der Zwischenzeit regelmäßig Aktualisierungen innerhalb der bestehenden Drupal-Version – so genannte Minor Releases – erhalten hat. Zudem werden Minor-Releases von Drupal für sich stehend nur jeweils etwa ein Jahr lang supported und erhalten nur in diesem Zeitraum auch regelmäßig sicherheitsrelevante Aktualisierungen. Entsprechend wichtig ist es also, die regelmäßige Wartung und Instandhaltung des eigenen Setups nicht zu vernachlässigen und dafür Sorge zu tragen, dass erscheinende Sicherheits-Updates kontinuierlich eingespielt werden und auch regelmäßig eine Aktualisierung auf das neueste Minor-Release Drupals erfolgt.
Wird dies beherzigt, so lässt sich ein als Drupal 8 gestartetes Setup – eine weitsichtige Entwicklungsstrategie wie im vorherigen Absatz beschrieben vorausgesetzt – problemlos auf Drupal 9, Drupal 10 und weiter upgraden. Dies ermöglicht eine optimale Ausnutzung des finanziellen Investments durch Projektlaufzeiten von potenziell vielen Jahren, ohne dass dabei eine technische Alterung des Systems einsetzt, wie es in der Vergangenheit bis einschließlich Drupal 7 der Fall war.
Drupal bringt damit alles mit, was ein Enterprise-Web-Application Framework für den professionellen Einsatz mitbringen muss:
- ein funktionsmächtiger Kern
- ein umfangreiches Ökosystem an verwendbaren Erweiterungsmodulen
- ein vielseitiges API-Konzept zur Anbindung aller erdenklichen Services und Dritt-Diensten
- eine verlässliche Update- und Upgrade-Strategie auch über mehrere Hauptversionen hinweg
- gewissenhafter und transparenter Umgang mit potentiellen Sicherheitsrisiken und die zeitnahe Bereitstellung von Security-Patches
Dafür lieben wir Drupal, und daher ist es auch nach über 15 Jahren nach wie vor das Tool unserer Wahl für die erfolgreiche Realisierung von Websites und webbasierten Software-Applikationen.
Welches spannende Projekt dürfen wir für Sie umsetzen? Schreiben Sie uns oder rufen Sie uns unter +49 6221 7515600 für ein unverbindliches und kostenfreies Erstgespräch an.