Das PHP-Framework für praxisnahe und pragmatische Web-Applikationen
Wie fange ich an?
Obwohl ich ganz genau weiß, was ich am Ende mit diesem Blog-Beitrag erzählt haben will, bin ich noch nicht sicher, wie ich anfangen soll. Ist so.
Zum Beispiel könnte ich damit anfangen, dass code-x als Internetagentur bestimmt nicht die einzige Dienstleisterin ist, die neben ihrem Kerngeschäft auch immer wieder interessante Projekte umsetzt, die man so nicht erwartet hätte. Davon zu berichten wäre auch mal spannend.
Ich könnte aber auch damit anfangen, dass wir uns in der Flut der sich immer wieder rasant entwickelnden Internet-Technologien immer wieder neu verlieben. Und vor einiger Zeit haben wir uns volle Kanne in Symfony verschossen.
Ich könnte aber auch bei Ihnen oder bei euch anfangen, und einfach fragen: Welche Prozesse, welche Workflows, welche Daten-Verwaltungen oder Informations- oder Kommunikationsflüsse zwischen euch und euren Teams, Interessenten oder Kundinnen gibt es. Welche davon glaubt ihr durch eine pfiffige digitale Lösung so verbessern zu können, dass ihr damit Zeit, Geld oder Nerven spart. Oder bestenfalls alles drei.
Bei euch anzufangen wäre bestimmt die charmanteste Art und Weise.
Ich bin mal ehrlich: Die drei folgenden Beispiele sind so aber nicht entstanden. Nicht, indem wir uns unseren Kundinnen und Kunden proaktiv als Ideenschmiede, Berater und Umsetzer für die Digitalisierung angeboten hätten. Sie sind eher zufällig entstanden, während wir in unserem Brot- und Buttergeschäft tätig waren. Während wir Websites aufgebaut haben, während wir Webshops programmiert haben oder während wir digitale Marketing-Kampagnen begleitet haben.
Erfreulicherweise kommt es nämlich immer wieder vor, dass eine Kundin oder ein Kunde fragt:
„Sagt mal, könntet ihr uns vielleicht auch dabei helfen, …?“
Es folgen drei Beispiele, bei denen wir laut und deutlich „Ja“ gesagt haben.
Und so ist mir nun der Anfang eines Blog-Beitrags aus den Fingern geflossen, mit dem ich euch am Ende inspirieren möchte, mal über den Einsatz von Symfony nachzudenken. Einem PHP-Framework, mit dem jede erdenkliche Web-Applikation umgesetzt werden kann. Intern, extern, beides. Desktop, mobil, beides. Groß, klein. Stand Alone, voll integriert. In jedem Fall aber zweckmäßig, skalierbar und mit dem Fokus auf maximale Benutzerinnen- und Benutzerfreundlichkeit.
Dies ist ein Blog-Beitrag über drei Beispiele für ganz unterschiedliche Web-basierte Anwendungen, die wir für unsere Kunden schmieden durften.
Beispiel #1 – Weg von EXCEL und Co.
Ein oft unschlagbarer Vorteil von Web-basierten Anwendungen ist die Zentralisierung von Daten-Verwaltung und -Verarbeitung für ein mehrköpfiges Team, oder um es etwas blumiger auszudrücken: Alle arbeiten mit den selben Daten, die jederzeit für alle immer aktuell sind. Also das Gegenteil von der alten EXCEL-Tabelle, die für alle unerreichbar auf irgendeinem PC herumliegt. Die Daten von Symfony liegen auf einem zentralen Server, und das System sorgt dafür, dass alle gleichzeitig daran und damit arbeiten können. Und es geht auch nix kaputt.
Im Beispiel der Theologischen Fakultät Paderborn ging es zunächst um zwei Listen: die Liste der aktuell Studierenden und die Liste der externen Interessenten von Kursen und Workshops, die die ThF der Öffentlichkeit anbietet. Adresslisten, nicht mehr und nicht weniger. Diese wurden zuvor wie vielerorts in Excel gepflegt, lagen abgespeichert auf einem Arbeitsplatz-Rechner und es war eigentlich unmöglich, diese dort aktuell zu halten. Spätestens wenn ein neues Mailing verschickt werden sollte, stand die Frage im Raum: Sind die Listen noch aktuell? Waren sie in letzter Konsequenz nie.
Von diesem regelmäßigen Stress erzählte uns unser Ansprechpartner am Rande eines Meetings, in dem es eigentlich um ein paar Fragen zur Website ging. Aus der Randbemerkung wurde dann flott die Idee, beide Adress-Verzeichnisse durch eine zentrale Lösung basierend auf Symfony abzulösen. Und wenn schon, denn schon: Was könnte man mit einer neuen zentralen Anwendung noch erledigen? Ein, zwei Gesprächsrunden später stand der Plan.
Wir durften und sollten für die Theologische Fakultät Paderborn ein Intranet auf die Beine stellen, das folgende Möglichkeiten bieten sollte:
- Verwaltung aller aktuell und zuvor Studierenden
- Verwaltung aller Lehrenden und Dozenten der Fakultät
- Verwaltung aller Interessenten an offenen Workshops und Seminaren
- Newsletter Funktion, um eine Auswahl der gespeicherten Kontakte jederzeit per E-Mail informieren zu können
- Lehrende können so z.B. ihre Studierenden auf dem Laufenden halten
- Die ThF kann so z.B. die Interessierten über neue Angebote und Termine informieren u.v.m.
- Ein zentraler Ablageort und ein Archiv aller digitalen Lehrmaterialien für die Studierenden
- Ein jederzeit und überall für alle Studierenden und Lehrenden einsehbarer und immer aktueller Lehrplan des laufenden Semesters
- Ein all diesen Anforderungen genügendes Rechte- und Rollensystem
Diese Intranet-Lösung haben wir für die Theologische Fakultät Paderborn auf Symfony umgesetzt. Somit kann es überall genutzt werden, wo das Internet ankommt, mit jedem Gerät vom Desktop bis zum Smartphone.
Beispiel #2 – Auf die Schnelle noch ein Sondereinsatz
Das System, die Lösung, die ich euch jetzt vorstellen möchte, ist schon in der zweiten Generation. Die ursprüngliche Idee von Elmar Kloke, die Projekte seines Betriebes Kloke Malermeister GmbH & Co. KG mit einer eigens dafür entwickelten Software zu verwalten, liegt weit, weit zurück. Ich sage es mal so: Elmar Kloke war mit der BauVe aus dem Hause code-x wirklich früh dran. Damals im Jahr 2004.
Die erste Version, noch ganz ohne Framework erstellt, war viele Jahre ununterbrochen im täglichen Einsatz.
Nachdem die Telekom und der Zentralverband des Deutschen Handwerks unsere Anwendung im Jahr 2009 mit dem 1. Preis als IT Master prämiert hatte, durfte sie ab dann in Würde altern. Basierend auf den vielen Erfahrungen haben wir dann eine komplett neue Version ins Leben gerufen, bei der nun Symfony zum Einsatz kam.
Und seitdem können mit der BauVe 2.0 alle Mitarbeitenden von Malermeister Kloke jeden Morgen aktuell auf ihren Smartphones nachschauen, was für den Tag geplant ist.
Wir haben gelernt und verstanden, dass die Verwaltung von Baustellen eines Handwerkbetriebes seiner Größenordnung absolute maximale Flexibilität erfordert. Die Einsatzplanung für die nächsten Tage steht immer im Großen und Ganzen, doch es gibt genug Parameter und gute Gründe, dass diese täglich überprüft und flexibel angepasst werden müssen.
Denn die von uns mit Elmar Kloke gemeinsam konzipierten und umgesetzte Softwarelösung verwaltet nicht nur die Kunden und Baustellen, sondern auch wer wann wo mit welchem Fahrzeug und welchen Materialien in welcher Reihenfolge eingeplant ist. Das alles unter Berücksichtigung von Feiertagen, Urlaubstagen oder auch mal krankheitsbedingten Ausfällen, Fahrzeugen in der Werkstatt, Konten für Überstunden, Auszubildenden in der Schule oder spontanen Einsätzen, die hier und jetzt erforderlich sind.
Herausgekommen ist eine zentrale, tägliche Planung, die allen Beteiligten jederzeit per Smartphone zur Verfügung steht. Mehr Flexibilität und Planungssicherheit kann ich mir für ein Handwerksbetrieb nicht vorstellen.
Beispiel #3 – Ein Orchester fährt Bus
Wenn ein Orchester erst einmal im Orchestergraben Platz genommen hat, ist das meiste vermutlich schon geschafft. Auch wenn noch keine Saite gezupft und kein Ton geflötet wurde. Ich erzähle kurz, wie ich das meine.
In einem Orchester wie der Nordwestdeutschen Philharmonie, das verwundert niemanden, treffen sich eine Menge Leute, die zusammen musizieren. Diese kommen aber aus ganz unterschiedlichen Orten, spielen die unterschiedlichsten Instrumente und treffen sich in immer wieder wechselnden Konstellationen.
Wann hat also wer mit welchem Instrument zur Probe zu erscheinen? Wann muss ich von A nach B, um dort mit Kolleginnen und Kollegen vor Publikum aufzutreten? Wo treffen wir uns alle zusammen, um von dort aus gemeinsam mit dem Bus eine etwas weiter gelegene Konzertreise anzutreten? Und was werden wir dort überhaupt genau spielen? Ach ja, die Kleiderordnung gibt es ja auch noch.
Das alles zu verarbeiten und allen Beteiligten 24 Stunden 7 Tage die Woche zur Verfügung zu stellen, dafür braucht es schon eine breite Klaviatur der Software-Entwicklung.
Wären da nicht auch noch die Sonder-Konzerte mit abweichendem Programm. Oder das immer herzlich willkommene Publikum, das sich jederzeit auf der Webseite über das aktuelle Konzertangebot informieren möchte, um von dort aus auch bestenfalls bequem an Karten zu kommen. Oder an ein Abo.
Also mussten auch Schnittstellen her, zwischen Verwaltung und Website, zwischen Website und Kartenvorverkauf. Außerdem verwöhnen wir alle Orchestermitglieder dann auch noch mit einem immer aktuellen Export der für sie relevanten Termine in die Kalender ihrer Smartphones. Nur auf Wunsch, selbstverständlich.
Und so verwaltet die Nordwestdeutsche Philharmonie seit vielen Jahren jeden Einsatz ihres Orchesters mit einer von uns erstellten Software-Lösung. Dass diese auf Symfony basiert, erwähne ich der Vollständigkeit halber.
Dieses dritte Beispiel unterscheidet sich von den ersten beiden insbesondere dadurch, dass es neben dem Intranet auch eine Einbindung in das öffentliche Internet gibt. Es kann sich sehen lassen. Unter https://www.nwd-philharmonie.de/konzerte-und-tickets/ findet ihr das, was vorne rauskommt, während im Hintergrund täglich daran gearbeitet wird, dass alles aktuell bleibt und die erste Geige immer pünktlich am richtigen Ort gespielt wird. Mit orchestraler Begleitung und jubelndem Publikum.
Warum uns Symfony so gut gefällt?
Nun, da ich Symfony immer wieder als Framework erwähnt habe, hier ein paar gute Gründe, warum wir Feuer und Flamme sind.
- Framework – Symfony ist ein PHP-Framework, eine Sammlung wiederverwendbarer PHP-Komponenten. Die Standardgrundlage, auf der die besten PHP-Anwendungen gebaut werden. Mit über 50 einzeln verfügbaren Komponenten für unterschiedlichste Anwendungen.
- Modularität – Symfony besteht aus einer Reihe von Modulen (Bundles), die unabhängig voneinander verwendet werden können. Dies ermöglicht es, nur die Funktionen zu nutzen, die tatsächlich benötigt werden.
- Skalierbarkeit – Symfony ist für große und skalierbare Anwendungen entwickelt worden. Es ist in der Lage, hohe Lasten zu verarbeiten und bietet eine gute Leistung, selbst bei größeren Projekten.
- Sicherheit – Symfony bietet viele Sicherheitsfunktionen, Authentifizierung und Autorisierung, die es möglich machen, sichere Anwendungen zu erstellen.
- Rapid Development – Die Entwicklung mit Symfony ist rasend schnell. Das erste MVP ist bereits nach kurzer Zeit für Sie einsatzbereit. Und dann geht es Schritt für Schritt, agil und flexibel an die Weiterentwicklung.
- Dokumentation und Community – Symfony hat eine sehr aktive Community und eine umfangreiche Dokumentation, die allen Entwicklerinnen und Entwicklern zur Verfügung stehen.
- Open Source – Keine Lizenzkosten, keine Gebühren, dafür eine weltweit aktive Gemeinschaft, die sich um die regelmäßige Weiterentwicklung kümmert.
- Flexibilität und Individualität – Symfony ermöglicht es, Anwendungen auf ihre spezifischen Anforderungen anzupassen und zu erweitern. Es bietet zahlreiche Konfigurationsoptionen und ermöglicht es, eigene Komponenten und Bundles zu erstellen.
- Einfache Wartung – Symfony ist sehr gut strukturiert und bietet somit beste Voraussetzungen, was die Wartung und Erweiterung von Anwendungen erleichtert.
- Gute Testbarkeit – Symfony bietet eine umfangreiche Unterstützung für automatisierte Tests, was die Qualitätssicherung optimiert und die Fehlerbehebung erleichtert.
- Internationalisierung und Lokalisierung – Symfony bietet Unterstützung für die Internationalisierung und Lokalisierung von Anwendungen, was es ermöglicht, Anwendungen in verschiedenen Sprachen bereitzustellen.
- Vielseitigkeit – Symfony kann für eine Vielzahl von Anwendungstypen verwendet werden, wie z.B. Daten-Management-Systeme, Informations-Verwaltungs-Systeme, Intranets, soziale Netzwerke und alles andere.
Zugabe, Zugabe, Zugabe
Weiter oben habe ich bereits die Skalierbarkeit von Symfony herausgestellt, und diese möchte ich noch mal unterstreichen. Alle drei Web-Anwendungen werden seit ihrem ersten Tag immer wieder erweitert, vergrößert, verbessert und damit an neu gewonnene Erkenntnisse und Anforderungen angepasst. Oft in kleinen Schritten, manchmal auch in großen.
Das war nun also mein Versuch, euch von drei Beispielen für Web-basierte Anwendung auf Basis von Symfony zu erzählen; kurz, knackig und hoffentlich nachvollziehbar. Bestenfalls inspirierend.
Denn eigentlich ist es mein heimlicher Versuch, euch dafür zu gewinnen, mal darüber nachzudenken, wo euer unternehmerischer, organisatorischer Alltag mit einer pfiffigen Idee entspannt werden kann. Wie ihr für eure Mitarbeitenden, Interessenten oder Kundinnen und Kunden den Informations- und Kommunikationsfluss flotter machen könnt. Wie wir euch dabei helfen könnten, den Weg der Digitalisierung Schritt für Schritt zu gehen. Pragmatisch, wirksam und im richtigen Tempo.
Falls euch was einfällt: Wir sind für euch da.
Danke an die Fotografinnen und Fotografen
- Schreibtischszene von ThisisEngineering RAEng auf Unsplash
- Schreibmaschine von Florian Klauer auf Unsplash
- Pinsel von Robert Ruggiero auf Unsplash
- Trompete von Hal Gatewood auf Unsplash
- Brille und Noten von Dayne Topkin auf Unsplash