Warum wir Joules BASE entwickelt haben
Als wir vor 10 Jahren Joules entwickelten, sollte es vor allem einen Zweck erfüllen: Provisionen generieren. Das Ur-Joules war also streng genommen als ein einfaches "CORE / PARTNER" aufgestellt. Im Laufe der Zeit kamen mit neuen Kunden auch neue Anforderungen auf uns zu. Dabei haben unsere frühen Kunden besonders an uns geschätzt, dass wir jederzeit dazu bereit waren, mehr oder weniger "auf Zuruf" Erweiterungen in ihre Systeme zu verbauen.
Entwicklungen in diesem Stil gehen sehr schnell und lösen das akute Problem in der Regel; sie haben aber leider auch einen Haken: In Eile geschriebener Code ist schwer zu warten und nicht besonders zukunftssicher. Zudem führte das dazu, dass die Codebasis in jedem Produktiv-System verschieden gestaltet und mit anderen Joules-Systemen nicht kompatibel war. In der Konsequenz bekamen wir somit häufig eigentlich ähnliche Anforderungen von verschiedenen Kunden, mussten für diese aber jeweils individuelle Lösungen entwickeln – schlicht weil der Code der verschiedenen Systeme nicht zueinander kompatibel war. Im Lauf der Zeit entstanden so verschiedene stark individualisierte, wartungsintensive Joules-Installationen, die aber paradoxerweise in ihrem Funktionsumfang gar nicht mal so mächtig waren.
(R)Evolution
Klar war: Wenn Joules weiter wachsen und zukunftssicher bleiben sollte, musste der Code standardisiert werden – alles andere als eine triviale Aufgabe. 2017 war es dann schließlich soweit: Joules Base war in einer ersten Version bereit für unseren Vertrieb. Mit Joules Base hatten wir eine einheitliche, kundenübergreifende Codebasis mit individuellen Konfigurationen auf Datenbankebene geschaffen.
Die kundenspezifischen Workflows, Prozesse etc. würden dabei im Standardsystem weiter abgebildet werden können. Nur statt jeweils Individualcode zu produzieren, konnte nun viel mehr über Parameter in der Joules Oberfläche konfiguriert werden. Der Vorteil: Es war nun nicht mehr für jeden Handgriff ein Programmierer notwendig. Das neue Joules machte es möglich, dass auch ehemals komplizierte Anforderungen, wie beispielsweise das Einrichten einer neuen Schnittstelle, von den Kundenbetreuern oder sogar den Kunden selbst erledigt werden konnte.
Selbstverständlich waren wir auch weiterhin bereit dazu, individuelle Anforderungen für die einzelnen Kundensysteme zu entwickeln. Diese Erweiterungen waren aber von der Software-Architektur nun weitgehend gekapselt, wodurch eine prinzipielle Updatefähigkeit hergestellt wurde.
Lessons learned
Die Umstellung auf eine einheitliche Codebasis hatte natürlich große Auswirkungen auf unsere Workflows und unseren Projektalltag. Das ganze Team – Entwickler, Projektmanager und Kundenbetreuer – musste sich an die neuen Abläufe gewöhnen. Anforderungen von Kunden werden nun nicht mehr wie früher direkt von einem Kundenbetreuer gemeinsam mit einem Entwickler geplant und umgesetzt, sondern in der Produktabteilung einer zentralen Planung unterworfen.
Handelt es sich um generell sinnvolle Erweiterung des Joules Funktionsumfangs, erarbeiten wir eine möglichst generische und damit flexible Gesamtlösung, die nicht nur das eine gerade aktuelle Problem löst, sondern auch schon die vielleicht in Zukunft anstehenden Änderungen mitbedenkt. Diese Neuerungen fließen dann nach Freigabe der Produktabteilung über Updates in den Base-Code ein. Seit 2019 ist eins+null bei einem wöchentlichen Update-Rhythmus angelangt.
Legacy-Systeme
Mittlerweile haben wir die meisten unserer Altsysteme auf den neuen Code-Standard migriert. Einige dieser Legacy-Systeme existieren aber noch, und werden auch von uns nach dem alten Verfahren betreut. Diese Zweigleisigkeit ist eine Herausforderung, aber momentan noch unvermeidbar.
Nicht nur aus Eigennutz möchte ich daher die Gelegenheit nutzen, Anwendern von Legacy-Systemen die Migration auf Joules Base ans Herz zu legen. Dabei analysieren wir gemeinsam mit Ihnen den Ist-Zustand Ihres Legacy-Systems und beschliessen, welche der Funktionalitäten in das neue System migriert werden sollen. Diese Funktionen werden dann refaktorisiert und im Migrationssystem als Extension verbaut. Der Prozess ist aufwändig, aber er lohnt sich. Denn danach haben Sie ein zukunftssicheres System, das mit den raschen und häufigen Innovationen der Branche Schritt halten kann.
Haben Sie noch ein Legacy-System?
Sollten Sie eine Joules-Installation von vor 2017 in Ihrem Haus im Einsatz haben, so handelt es sich bei Ihrer Joules-Version um ein „Legacy-System“. Wie beschrieben sind Legacy-Systeme nicht in den normalen Produktentwicklungsprozess von Joules eingebunden. Die Code-Basis entspricht dabei im wesentlichen dem Code-Stand zum damaligen Zeitpunkt des Setups. Da Legacy-Systeme nicht aktualisiert werden können, empfehlen wir Kunden mit Altsystemen die Migration auf eine aktuelle Base-Version von Joules. Bei einer Migration wird ein neues Joules System aufgesetzt, in das die Daten aus dem Altsystem Schritt für Schritt umgezogen werden. Dabei werden alle im Altsystem im Lauf der Zeit verbauten Erweiterungen und Individualisierungen überprüft und gegebenenfalls für das neue System kompatibel gemacht. Ab dem Go Live des neuen System profitieren Sie dann auch von einer jederzeit aktuellen Code-Basis.
eins+null BLOG
Unsere vorherigen Blogbeiträge
Kraftwerk-Unternehmensgruppe
Joules goes Kraftwerk: Mit vier weiteren Softwareunternehmen haben wir uns unter der Dachmarke "Kraftwerk" zusammengeschlossen, um die Demokratisierung der Versorgung zur Gestaltung der Energiewende zu ermöglichen.
#eins+null
#Featured
Dominik Flubacher
Feb 2024
Joules Go
Door-to-Door-Vertrieb oder Live-Beratung im Kundencenter, mit Joules GO beschleunigen Sie Ihren Vertrieb und beraten Ihre Kunden auf einer schlanken Oberfläche professionell. Das neue Interface beinhaltet nur die Informationen, die Ihre Vertriebspartner im Alltag benötigen.
#Digitaler Energievertrieb
Eveline Eckert
Jul 2023
PDF Mapping in Joules
Mit dem neuen Bereich "PDF Formulare" in Ihrem Joules können Sie nun selbständig und einfach Ihre PDF Formulare mit den Joules Datenbankfeldern mappen. Selbst schwierige Bereiche, wie Unterschriftsfelder, können nun von Ihnen exakt platziert und konfiguriert werden.