KISTERS Software-Entwicklung –
Ein Blick hinter die Kulissen.

NEWS

18.11.2009

Klein angefangen in 1985 mit einer Software für die Digitalisierung von Wasserstandsdaten, verzeichnet der Software-Bereich bei KISTERS mittlerweile beeindruckende Zahlen: Insgesamt 18 Produkte für die Bereiche Wasserwirtschaft, Energiemarkt, Leittechnik, Luftqualität und Umweltschutz & Sicherheit (EHS) werden bei rund 1500 Kunden auf der ganzen Welt eingesetzt. Das erfordert eine gut organisierte, kontinuierliche Weiterentwicklung, die bei KISTERS in der Hand von inzwischen knapp 120 Software-Entwicklern und -Entwicklerinnen an immerhin sieben Standorten liegt.

Höchste Zeit also, dass das KISTERSinfo-Redaktionsteam Ihnen einen Blick hinter die Kulissen ermöglicht und einen verständlichen und gebündelten Einblick in die ganze Vielfalt und Entwicklungsspezialität der Software-Entwicklung bei KISTERS gibt. Astrid Beckers (Technische Redakteurin) hat Dr. Heinz-Josef Schlebusch, den Entwicklungsleiter Software Engineering, befragt.

AB: Herr Dr. Schlebusch, was genau fällt in Ihren Aufgabenbereich?

HJS: Ganz abstrakt betrachtet bin ich produktübergreifend für die Erstellung qualitativ hochwertiger Software in einem vorgegebenen Zeitraum und mit einem bestimmten Budget verantwortlich. Konkret bedeutet das unter anderem die Vereinheitlichung des Software-Entwicklungsprozesses über alle Produkte hinweg, die Auswahl und Vereinheitlichung von Entwicklungswerkzeugen, Technologien und externen Komponenten, die Spezifikation von gemeinsam genutzten Plattformprodukten und Kernkomponenten sowie die Koordination der zuständigen Entwicklungsteams. Allem voran geht natürlich die kontinuierliche Abstimmung mit den Produktverantwortlichen hinsichtlich der technischen Anforderungen an die einzelnen Produkte sowie der Randbedingungen an die Realisierung.

AB: Vermutlich kann man bei der Vielzahl an KISTERS Lösungen mit ihren teils historisch gewachsenen Funktionen und Besonderheiten kein Standard-Software-Entwicklungsmodell anwenden. Was ist das Besondere an der Software-Entwicklung bei KISTERS?

HJS: Grundsätzlich verfolgen wir eine produkt-orientierte Entwicklungsstrategie nach dem Motto „Think product!“. Damit stellen wir bestimmte Ansprüche an unsere Software, die über die Anforderungen an spezielle Entwicklungen für Individualprojekte hinausgehen. Dazu gehört die kontinuierliche Weiterentwicklung unserer Software in Release-Zyklen und die damit verbundene ständige Anpassung an neue Kundenbedürfnisse, und natürlich die schon erwähnte Nutzbarkeit unserer Komponenten für verschiedene Produkte unseres Portfolios.

Unser Entwicklungsprozess orientiert sich an dem Standard V-Modell XT, einem allgemeinen und bewährten Vorgehensmodell zum Planen und Durchführen von Projekten. Dies scheint zunächst unserer „Think product!“ Strategie zu widersprechen – laut Definition ist nämlich ein Projekt eine „…einmalige Gesamtheit von koordinierten Aktivitäten mit bestimmten Anfangs- und Endpunkten…“. Diesen scheinbaren Widerspruch haben wir aufgelöst, indem wir jedes Release eines Softwareprodukts als „Projekt“ im Sinne des V-Modells interpretieren. Dadurch gelingt es uns, durch geeignetes „Tailoring“ dieses Prozessmodells, also der Anpassung an KISTERS-spezifische Organisationsstrukturen und Vorgehensweisen, einen einheitlichen Entwicklungsprozess für unsere Produkte zu definieren.

AB: Welche Organisationsstrukturen und Vorgehensweisen sind denn dafür relevant?

HJS: Insgesamt basiert unsere Software-Entwicklung auf drei Säulen: Teams, Prozesse und Technologie. Zunächst zu den Teams: Hierzu gehören alle Kollegen, die aktiv am Produktentwicklungsprozess beteiligt sind.



Das fängt an bei den Beratern und Produktmanagern, geht über die Entwicklung und Qualitätssicherung bis schließlich zu den Kollegen im Support. Alle Mitarbeiter bringen ein hohes Maß an Kompetenz mit und sind sich ihrer Rolle im Entwicklungsprozess bewusst. Speziell in den Entwickler-Teams übernimmt jeder die Verantwortung für bestimmte Software-Module. Schon alleine dadurch ist jeder bestrebt, „seine“ Software mit bestmöglicher Qualität zu erstellen. Hierbei entwickeln die Kollegen vielfach Spezialkenntnisse - sowohl bezüglich der eingesetzten Technologie als auch der fachlichen Anwendung - und bauen diese kontinuierlich weiter aus, was den Produkten wieder direkt zugute kommt.

Über den Softwareentwicklungsprozess haben wir schon gesprochen, bleibt also noch die Technologie: Wir setzen uns intensiv mit neuen Technologien auseinander und setzen diese ein, wenn sie einen gewissen Reifegrad erreicht haben. Das garantiert unseren Kunden einerseits die für Produktionssysteme notwendige Stabilität und andererseits die Investitions- und Zukunftssicherheit unserer Software. Natürlich benutzen wir aktuelle Entwicklungsumgebungen und Werkzeuge - für jede Technologie das am besten geeignete Tool.

AB: Welche Technologien und Tools zum Beispiel?

HJS: Am deutlichsten sichtbar ist wohl unsere aktuelle Arbeit an der nächsten Generation von WISKI und BelVis. In diesen Produktbereichen setzen wir auf eine Mehrschicht-Architektur, in der klar die Darstellungsebene, die Geschäftslogik und die Datenhaltung getrennt werden. Für die Geschäftslogik, die als Serversystem ausgelegt ist, verwenden wir JAVA als plattform-unabhängige Implementierungssprache. Neben der reinen Programmiersprache JAVA und der Entwicklungsumgebung Eclipse nutzen wir technisch anspruchsvolle Frameworks, die uns ermöglichen, unsere Software zu modularisieren und in Richtung einer Service-orientierten Architektur (SOA) auszubauen. Dadurch ist es möglich, die Leistung der Serverkomponenten über die Anzahl der eingesetzten Serverprozesse zu skalieren und dem tatsächlichen individuellen Bedarf unserer Kunden anzupassen.

AB: Gibt es weitere Besonderheiten der Software-Entwicklung bei KISTERS?

HJS: Aus unserer produktorientierten Entwicklungsstrategie ergeben sich natürlich weitere Konsequenzen. Wir wollen zwar einerseits die Vielfalt an Entwicklungsprojekten mit ihren spezifischen technologischen Anforderungen, Zeitrahmen, Größen und Komplexitäten im Griff halten, andererseits aber auch die individuellen Aufgaben unserer Kunden lösen. Daher ist die KISTERS Software so aufgebaut, dass alle Kundenanforderungen durch geeignete Kombination der Software-Komponenten und Konfiguration erfüllt werden und keine umfangreichen Code-Änderungen für einzelne Kunden nötig sind. So bekommt jeder Kunde, was er benötigt, und profitiert gleichzeitig vom großen Kundenstamm: Viele Software-Weiterentwicklungen werden zwar von einzelnen Kundenprojekten ausgelöst, aber da wir uns im „Think product!“-Sinn auf die Entwicklung wiederverwendbarer, universell einsetzbarer Produkte mit regelmäßigen Release-Zyklen konzentrieren, kommt jede Weiterentwicklung allen Kunden zugute.

AB: Das bringt uns auf die Zusammenarbeit mit den Kunden…

HJS: Es ist unser Hauptziel, für jeden Kunden die optimale Lösung zu finden, und damit kommen wir wieder auf die eben schon angesprochene Rolle der Teams im Entwicklungsprozess. Die KISTERS Consultants erarbeiten mit dem Fachpersonal beim Kunden ein detailliertes Konzept und konfigurieren das Produkt nach dessen Ansprüchen. Und auch nach der Auslieferung ist das Kundenfeedback eine wichtige Quelle für die Weiterentwicklung unserer Produkte. Damit meine ich nicht nur, dass wir auf eventuelle Probleme mit unserer Software reagieren, sondern auch, dass wir aktiv auf unsere Kunden zugehen und sie nach ihren Wünschen bezüglich der KISTERS Software fragen, zum Beispiel auf unseren Anwenderkonferenzen.

AB: Ja, auch die Kundenzufriedenheitsanalyse hat gezeigt, dass die Kunden die Kommunikation mit den KISTERS Beratern hoch schätzen. Wie ist denn danach die Kommunikation vom Berater zum Entwickler organisiert?

HJS: Dies geschieht in der Regel nach einem zweistufigen Konzept. Abhängig von der Dynamik in den einzelnen Produktbereichen tauschen die Berater in wöchentlichen oder monatlichen Besprechungen ihre Erfahrungen und Kundenwünsche mit dem jeweiligen Produktmanager aus. Die Produktmanager sammeln, verallgemeinern und bewerten diese Information und erstellen bzw. modifizieren damit ihren Releaseplan. Im nächsten Schritt koordinieren die Produktmanager und Entwickler in wöchentlichen Meetings die weiteren Arbeitsschritte der Softwareentwicklung.

Dabei ist es vorteilhaft, dass viele der Berater über doppelte Kompetenz, sowohl in ihrem Anwendungsfachgebiet als auch in der Software-Entwicklung, verfügen, und somit beim Entwurf von Lösungen als Vermittler zwischen Kunden und Programmierern fungieren können. Hier schließt sich der „Know-how“-Kreis zu den Entwicklern, die damit auch ihr Fachwissen ständig weiterentwickeln. Ich sage immer: „Wer nicht weiß, wie seine Software eingesetzt wird, der kann keine gute Software entwickeln“.

AB: Zur Software-Entwicklung gehört ja auch die Sicherstellung der Qualität.

HJS: Ja natürlich. Auch hier sind alle Teams beteiligt. Die Entwickler testen während des Entwicklungsprozesses ihre Software täglich mit automatischen Prozeduren („nightly build and test“). Parallel dazu führen unsere Test-Teams kontinuierlich sogenannte Systemtests auf den bereits fertig gestellten Softwarekomponenten durch. Da wir viel Wert auf ständige Qualitätskon-trolle durch Testautomatisierung legen, werden mit jedem neuen Feature auch jedes Mal neue Testprozeduren und –szenarien entwickelt. Kurz vor einem Release wird eine Beta-Version der neuen Software an in- und externe Beta-Benutzer ausgeliefert, die eventuelle letzte Fehler aufdecken. Außerdem bietet KISTERS den „factory acceptance test“ (FAT) an, bei dem der Kunde den Status der Software in der KISTERS Umgebung einsehen und beurteilen kann. Dabei werden Kritikpunkte direkt mit den KISTERS Spezialisten diskutiert.

AB: Herr Dr. Schlebusch, danke für das Interview! In den nächsten Ausgaben der KISTERSinfo werden wir einige der Software-Entwickler bei KISTERS mit ihren Bereichen und Aufgaben vorstellen.





Dr. Heinz-Josef Schlebusch:
Leiter der Software-EntwicklungFunktion bei KISTERS:
Entwicklungsleiter Software Engineering, objektorientierte Analyse und Design, Projektplanung und -controlling, Management-Methodik

Fachlicher Hintergrund:
Diplom-Mathematiker und Dr.-Ing. Elektrotechnik, Erfahrung in Software-Design und -Entwicklung, Systemsimulation, Numerik, Stochastik

Haben Sie weitere Fragen?
Wenden Sie sich direkt an  Astrid Beckers

Copyright © 2011 by KISTERS AG