Auftraggeber

Techem ist einer der führenden Energiedienstleister für die Immobilienwirtschaft und private Wohnungseigentümer. Sie sind Marktführer im Bereich der Abrechnung und Erfassung von warmen sowie kalten Betriebskosten im Immobilien. Durch eine digitale Innovation wird bereits seit einigen Jahren das Angebot von Techem auch in einem eigenen Portal für Kunden von Techem angeboten.

Projekt-Zusammenfassung

Die digitale Erfahrung im aktuellen Portal entspricht nicht mehr dem zeitgemäßen Qualitätsanspruch vom Techem-Kundenstamm. Deswegen soll das gesamte Portal neu aufgesetzt werden, und unser Teil-Produkt für dieses neue Portal als Vorreiter für die gesamte weitere Entwicklung gelten. Dem Kunden wird die Möglichkeit gegeben, seine Abrechnung mit allen Abrechnungsrelevanten Informationen, wie die Verwaltung der Mieter der Immobilie, warmen und kalten Betriebskosten, sowie Umlage der Kosten über eine neue Weboberfläche zu erstellen. Der Fokus bei der Anwendung liegt darauf dem Kunden eine möglichst nutzerfreundliche Erfahrung zu bieten. Durch ein gezieltes Frage-Antwort Spiel kann der Kunde so seine Informationen in einem fachlich sehr komplexem Themengebiet, ohne große Vorkenntnisse eintragen.Diese Weboberfläche wird nahtlos mit den Schnittstellen zur Erstellung einer Abrechnung angebunden.Unser Projektteam, mit 5 Entwicklern, war dabei eines von vielen Teil-Projektteams, mit einer Gesamtgröße von über 30 Leuten.

Herausforderungen

Dieses Projekt / Anwendung ist der Techem-Vorreiter für das neue unternehmensweite Portal und stellt so den Grundstein für die weitere Entwicklung in diesem Portal dar. Die Herausforderungen, die sich dadurch gegeben haben, waren eine solide Grundarchitektur sowohl für das Front- sowie für das Backend bereitzustellen, auf dessen Basis weitere Teams in Zukunft Portal-Anwendungen implementieren konnten. Die Anbindung an die verschiedenen Komponenten (Authentication, Rechteverwaltung, UI-Komponenten Bibliotheken, allgemeine Hilfsbibliotheken), die von den jeweiligen Teams gebaut wurden, mussten stets koordiniert werden, um eine nahtlose Anbindung an die Anwendungen sicherzustellen.

Lösungen / Vorgehensweise

Um in Zukunft auch mehrere Portal-Anwendungen zu unterstützen, wurde sich im Frontend für eine Monorepo Architektur auf Basis von NextJS mit Turbo entschieden. Das gibt uns den großen Vorteil, dass jedes Teilteam in seinem eigenen Teil-Projekt arbeiten kann, ohne dass externe Einflüsse die Arbeit behindern können, aber trotzdem im späteren Deployment ermöglicht, das gesamte Portal, mit jeder einzelnen Anwendung, als eine einzelne digitale Erfahrung zu deployen.  Im Backend wird eine Service-Orientierte Architektur angewendet. So können für spezifische Anwendungsfälle, die eine oder mehrere Portal-Anwendungen betreffen, jeweilige Services implementiert werden, und potentiell mehreren Teams zur Verfügung gestellt werden. Die Backends werden in einem API-First Approach implementiert, mit dem Hintergrund, dass die gesamte Erstellung einer Abrechnung sowohl im Frontend, aber auch nur über das Ansprechen einzelner Webservices möglich sein muss.  Auf beiden Ebenen wird ein Clean-Architektur-Ansatz verfolgt, um einerseits eine konsistente Softwareerfahrung zwischen den Entwicklern herstellen zu können, und auch einen nahtlosen Wechsel zwischen Front- und Backend herstellen zu können. Wenn man einmal verstanden hat, wie eine Anwendung auf der Mid-Level Architektur aufgebaut ist, hat man im Grunde alle verstanden. Das Deployment passiert in einer Cloudnativen Umgebung auf Basis von Azure.

Ergebnisse

Das Ergebnis dieser Entscheidungen ist eine stabile Architektur auf allen Ebenen, die es uns ermöglicht nach Bedarf Anwendungen im neuen Portal über eine einfache NextJS-App im Monorepo hinzuzufügen, die dann über potentiell bereits vorhandene Services ihre Daten abfragen und speichern können.

Technologiestack

  • Java 17
  • Javascript / Typescript
  • React
  • Spring Boot
  • NextJS mit Turbo
  • Kubernetes
  • Azure