IT-Projekte, Herausforderung Schnittstellen.

Ist die Schnittstelle von der Lohnbuchhaltung zur Finanzbuchhaltung in den vertraglichen Vereinbarungen für die Einführung einer Software zur Finanzbuchhaltung enthalten oder handelt es sich um einen Change Request? In IT-Projekten werden Schnittstellen häufig übersehen oder unterschätzt. Dann argumentiert die Auftraggeberin, dass in der Leistungsbeschreibung der Software die serviceorientierte Architektur mit Integration aller Geschäftsprozesse aufgeführt ist. Die Auftragnehmerin entgegnet, dass es vielfältige Möglichkeiten gäbe, aber keine konkret im Leistungsumfang bezeichnet sei. Falls die Implementierung der Schnittstelle nicht im Leistungsumfang enthalten ist, muss ein Change Request <Change Requests – Indikator für Schieflage?> vereinbart werden. Er führt in der Regel zu höheren Kosten und verlängert die Projektlaufzeit. Bei einer eskalierenden Auseinandersetzung der Projektpartner kann das ein Fall für den Sachverständigen werden. Er soll dann bestimmen, ob diese Schnittstelle zum vereinbarten Leistungsumfang gehört oder gesondert vergütet werden muss.

Nach meinen Erfahrungen werden Schnittstellen gerne übersehen oder die Aufwände für die Implementierung erheblich unterschätzt. Fehlende Schnittstellen bedeuten häufig

  • Medienbrüche wie die Nutzung von Papierbelegen für den Transport von Informationen,
  • mehrfach anfallenden Aufwand durch die Erfassung von Daten, die bereits in einem anderen System vorhanden sind oder
  • eingeschränkte Nutzbarkeit des gesamten Systems, falls etwa in einem Webshop Bonitätsabfragen nicht automatisiert durchgeführt werden können.

Fehlende Schnittstellen oder eine unzureichende Leistungsfähigkeit von Schnittstellen erfordern aufwendige Nacharbeiten und sind damit eine typische Ursache von Projektschieflagen (Problematische IT-Projekte beenden?).

In diesem Beitrag werde ich zunächst die verschiedenen Aspekte von Anwendungsschnittstellen skizzieren und mit einem Beispiel verschiedene Realisierungsmöglichkeiten beschreiben. Mit diesen Überlegungen werde ich die Eingangsfrage beantworten und Herausforderungen darstellen, die bei der Verwendung von Anwendungsschnittstellen in IT-Projekten entstehen können. Hierzu gehören die Merkmale von Schnittstellen und notwendige Vereinbarungen der Projektpartner. Am Schluss finden Sie eine Checkliste. Diese hilft Ihnen zu bestimmen, welche Angaben zur Definition des Leistungsumfangs erforderlich sind.

1.                       Was bedeutet Anwendungsschnittstelle?

Im Bereich der IT unterscheiden wir verschiedene Schnittstellenarten: So gibt es

  • Hardware-Schnittstellen, beispielsweise Kabel-Steckverbindungen,
  • Netzwerk-Schnittstellen zwischen Netzwerkkomponenten und
  • Software-Schnittstellen (wie zwischen Anwendungen oder von Anwendungsprogrammen zum Betriebssystem).

In IT-Projekten geht es vorwiegend um die Unterstützung und Abbildung von Geschäftsprozessen. Daher stehen Schnittstellen zwischen Anwendungen im Vordergrund. Es handelt sich dabei um einen Spezialfall von Software-Schnittstellen, die Anwendungen verknüpfen.

Schnittstellen zwischen Anwendungen werden häufig auf einer abstrakten Ebene logisch formuliert (wie Datenaustausch der Lohnbuchhaltung mit der Finanzbuchhaltung), was einen sehr breiten Raum für die Realisierung eröffnet. Damit sind die Art und Ausprägung der Realisierung eine häufige Ursache für Konflikte. Der ursprüngliche Weg war, Informationen aus der Lohnbuchhaltung oder der Bank (Kontoauszüge) auszudrucken und diese mit einem Beleg (Rechnung oder Referenz auf Gehaltszahlung) manuell im Finanzbuchhaltungssystem neu zu erfassen. Diese Schnittstelle besteht damit rein auf logischer/organisatorischer Ebene und erfährt keine IT-Unterstützung. Diese Lösungsvariante erfordert maximalen manuellen Aufwand und ist daher schlecht geeignet, Geschäftsprozesse wirksam zu unterstützen.

Wenn man mehr technische Unterstützung einführen möchte, kann man aus einem weiten Spektrum auswählen, da die Übertragung von Informationen auf unterschiedlichen Wegen erfolgen kann. Auf der historischen Seite der Skala stehen Bänder, mit denen Informationen transportiert wurden, heute werden Rechnernetze zur Übertragung von Dateien genutzt. Ein Beispiel für die Realisierung in einem Netzwerk ist, dass die Lohnbuchhaltung eine Datei mit den einzelnen Auszahlungsdaten erzeugt, die mit der manuellen Eingabe eines Benutzers in die Finanzbuchhaltung eingelesen wird. Dieser Weg dauert lange und verlangt Interaktionen mit einem Benutzer.

Auf der anderen Seite der Skala steht ein monolithisches System, bei dem Lohnbuchhaltung und Finanzbuchhaltung intern programmtechnisch verbunden sind. Bereits bei der Spezifikation der Zahlungsdaten wird festgelegt, wann die Zahlung mit welchem Belegschlüssel auf welchen Konten verbucht wird. Hier findet die Übertragung in kürzester Zeit statt; manuelle Eingriffe sind nicht notwendig. Es ist nur eine Grundkonfiguration der Verbuchung von Gehaltszahlungen erforderlich.

Daneben gibt es jeweils noch eine Vielzahl technischer Ausprägungen von Datei- und Datensatzformaten, Protokollen, Prozessverbindungen, Anwendungen verschiedener Hersteller etc., die zur technischen Realisierungsspezifikation gehören. Die beiden Lösungsbeispiele zeigen die große Bandbreite auf, die bei der Realisierung von Anwendungsschnittstellen besteht.

Im Optimalfall ist es für den Benutzer nicht erkennbar, ob seine Anwendung eine Schnittstelle nutzt oder ob es sich um ein monolithisches System handelt. In vielen Fällen ist es aber an einer abweichenden Benutzerführung oder einer anderen Gestaltung der Oberfläche zu erkennen, dass es sich um verschiedene Anwendungen handelt, die programmtechnisch miteinander verbunden wurden.

2.                       Beispiel

Zur Verdeutlichung greife ich das Beispiel aus der Einleitung auf. Ein Unternehmen beauftragt einen internen oder externen Dienstleister mit der Lohnbuchhaltung. Dieser berechnet die Gehälter und die hier nicht näher betrachteten Sozialversicherungsabgaben und Lohnsteuern. Die Gehälter werden in einem Datensatz zusammengestellt und in das Rechenzentrum einer Bank übertragen. Der Kontoverantwortliche gibt im Auftrag des Unternehmens die Zahlungen frei, so dass die Bank die Auszahlung an die Mitarbeiter veranlasst (siehe Grafik).

Es wurde kein Alt-Text für dieses Bild angegeben.

Die Verknüpfung mit der Finanzbuchhaltung kann auf verschiedenen Wegen erfolgen. Ohne IT-Unterstützung werden Kontoauszüge in Papier oder per Kontoabruf von der Bank abgeholt und in der Finanzbuchhaltung neu erfasst (durchgehender Pfeil). Die Finanzbuchhaltung erfasst dann diese Daten erneut und erzeugt (Buchungs-)Belege, die anschließend auf den Konten verbucht werden. Eine höhere Integration zwischen Lohnbuchhaltung und Finanzbuchhaltung kann erreicht werden, indem die Lohnbuchhaltung bereits Belege erzeugt (beispielsweise Übersichten mit den Zahlungen an die verschiedenen Empfänger), die danach automatisch den Kontoauszügen zugeordnet werden können (gepunkteter Pfeil).

Eine weiter verbesserte Vorgehensweise liegt darin, dass keine (Papier-)Belege mehr erzeugt werden und die Lohnbuchhaltung die relevanten Daten unmittelbar über eine Schnittstelle (gestrichelter roter Pfeil) in das Finanzbuchhaltungssystem überträgt. Dabei muss selbstverständlich gewährleistet werden, dass Dritte die Verarbeitung nachvollziehen und prüfen können. Die Benutzer prüfen dann nur noch den Ablauf und greifen in Ausnahmesituationen ein; sie sind nicht mehr damit beschäftigt, Belege zu verwalten.

3.                       Ist die Realisierung der Schnittstelle vereinbart?

Ist die Schnittstelle von der Lohnbuchhaltung zur Finanzbuchhaltung in den vertraglichen Vereinbarungen für die Einführung einer Software zur Finanzbuchhaltung enthalten oder handelt es sich um einen Change Request?

Zur Beantwortung der Eingangsfrage prüft der Sachverständige, ob es sich bei einer serviceorientierten Architektur (SOA) um die Spezifikation einer Schnittstelle handelt. SOA beschreibt eine Methode, um Funktionalitäten der Software zu strukturieren und zu verwenden. Diese Funktionalitäten sind an Geschäftsprozessen (wie etwa eine Bonitätsprüfung) ausgerichtet.

Bei der Verwendung dieser Vorgehensweise versucht man, Funktionalitäten nach ihrer Komplexität zu gliedern. Einfachere Funktionen wie Hole Kundendaten aus Datenbank oder Zeige die Verfügbarkeit des Artikels x werden flexibel zusammengesetzt, um komplexere Funktionalitäten (wie Auftragsabwicklung in einem Webshop) zu realisieren. SOA enthält keine technische Beschreibung, gemäß der eine Schnittstelle implementiert werden kann.

Bei der Nennung von SOA handelt es sich daher eher um eine Marketing-Aussage, nicht um eine belastbare Leistungsspezifikation, aus der man eine funktionsfähige Schnittstelle als Leistungsgegenstand ableiten könnte. Daher ist die eingangs gestellte Frage mit Change Request zu beantworten.

4.                       Welche Herausforderungen stehen an?

Um Change Requests möglichst zu vermeiden, kommt es auf eine klare und möglichst vollständige Beschreibung des fachlichen und des technischen Leistungsumfangs an. Technische Spezifikationen der Schnittstelle müssen auf beiden Seiten so beschaffen sein, dass die Schnittstellen Daten und Informationen austauschen können, also kompatibel sind.

Vorher muss jedoch geklärt werden, welche Aufgaben die Schnittstelle hat und welche Daten ausgetauscht werden sollen. Falls beispielsweise eine Schnittstelle zur Bonitätsprüfung nicht nur die Wohnadresse, sondern auch das Geburtsdatum benötigt, muss dieses über die Schnittstelle transportiert werden. Andernfalls ist die Schnittstelle zur Bonitätsprüfung nicht nutzbar.

Ein weiterer wichtiger Aspekt ist die Reaktionszeit der Schnittstelle: Bei einer Kartenzahlung im Supermarkt muss die Kartenautorisierung im Sekundenbereich erfolgen; andernfalls kommt es zu Verzögerungen und die Akzeptanz der Kunden für diese Zahlungsart oder für diesen Supermarkt sinkt rapide. Da viele Kassen gleichzeitig Kartenzahlungen durchführen können, muss eine entsprechende Bandbreite oder Leistungsfähigkeit der Schnittstelle zur Verfügung stehen. Eng damit einher geht die Ausfallsicherheit, die durch die Länge der Reaktionszeit definiert ist.

Schließlich muss geklärt werden, wie sich die Schnittstelle in Ausnahmesituationen, wie einer Nichterreichbarkeit des Systems auf der anderen Seite der Schnittstelle, verhalten soll. Soll unmittelbar eine Fehlermeldung angezeigt oder soll der Datensatz zwischengespeichert und später übertragen werden? Die letzte Lösung ist in einem Webshop denkbar, bei dem Bestellungen nicht im Sekundenbereich, sondern auch im Minutenbereich bestätigt werden können.

Und schließlich muss die Schnittstelle in das technische Umfeld integriert werden. So ist für Schnittstellen zu einem Smartphone relevant, welches Betriebssystem (wie Android oder IOS) auf dem Smartphone installiert ist, da sich die zugehörigen Anwendungen in ihrem Aufbau unterscheiden.

Für die Umsetzung sind die Verantwortlichkeiten und Aufgaben der Projektpartner zu regeln. Der Auftraggeber muss in der Regel Informationen zu den bestehenden/anzubindenden Systemen bereitstellen. Der Auftragnehmer muss eine ausreichende Spezifikation seiner Schnittstellen für den Auswahl- und Konzeptionsprozess bereitstellen. Ferner wird er in der Regel die Schnittstellen realisieren und funktional einbinden.

Die Realisierung von Schnittstellen verlangt daher ein kooperatives Vorgehen zwischen Auftraggeber und Auftragnehmer. Auftretende Probleme müssen in einem gemeinsamen Prozess zwischen Auftraggeber und Auftragnehmer gelöst werden, damit die angestrebten Geschäftsprozesse inhaltlich und fachlich richtig durch die technische Realisierung abgebildet werden.

5.                       Welche Merkmale einer Schnittstelle sind zu vereinbaren?

Zunächst sollte eine Schnittstelle eine eindeutige Bezeichnung besitzen, damit es nicht zu Missverständnissen mit entsprechenden Folgeproblemen kommt. Der Zweck und die Aufgabe der Schnittstelle sollte auf einer fachlichen Ebene beschrieben werden, damit für die Nutzer und die Fachabteilungen deutlich wird, was die erwartete Leistung dieser Schnittstelle ist. Es soll deutlich werden, welche Anwendungen verknüpft und welche Daten ausgetauscht werden.

Eine weitere wichtige Komponente ist die technische Schnittstellenbeschreibung, die Einzelheiten zur technischen Realisierung enthält. In diesem Kontext wird auch festgelegt, ob die Schnittstelle Daten (zwischen-)speichert, wie die Daten formatiert und kodiert sind und wie der Mechanismus des Datenaustauschs erfolgt. Dazu gehören die Spezifikation von Reaktionszeiten und von einer Bandbreite der Übertragungskapazität der Schnittstelle. Wie oft und wie intensiv wird die Schnittstelle genutzt, welche Datenmengen werden ausgetauscht?

Das Verhalten der Schnittstelle in Ausnahmesituationen umfasst folgende Szenarien:

  • Vollständiger (temporärer) Ausfall
  • Überlastung durch zu viele gleichzeitige Anfragen
  • Zeitverzögerungen bei der Reaktion
  • Verhalten bei unzureichenden Informationen/unvollständigen Datensätzen
  • Verhalten bei nicht spezifizierten Daten (außerhalb des zulässigen Wertebereichs)

Mögliche Reaktionen können die Anzeige einer Fehlermeldung („Bitte versuchen Sie es später noch einmal“), die Einleitung technischer Reparaturmaßnahmen oder die Speicherung von Anfragen an die Schnittstelle sein.

Es besteht somit eine sehr große Bandbreite bei den Realisierungskosten, die sich von sehr geringen Beträgen bei der Dateischnittstelle bis hin zu 6- und 7-stelligen Beträgen bei der Realisierung von Echtzeitschnittstellen mit hohen Bandbreiten und großen Leistungsanforderungen erstreckt. Erfahrungsgemäß ist die vom Auftraggeber gewünschte Reaktionszeit, gepaart mit der Ausfallsicherheit der wesentliche Kostentreiber für den Erstellungsaufwand.

6.                       Vor- und Nachteile von Schnittstellen?

Die Schaffung von Schnittstellen ermöglicht es, Anwendungen verschiedener Herkunft miteinander zu verknüpfen und damit das Leistungsspektrum des Gesamtsystems zu erhöhen. Der Auftraggeber wird unabhängiger von einem bestimmten Softwarelieferanten. Er kann die jeweils für einen bestimmten Geschäftsprozess (beispielsweise Bonitätsprüfung) vorteilhafteste Lösung auswählen und das Gesamtsystem flexibel zusammenstellen.

Der Auftraggeber muss jedoch zusätzliche Aufwendungen leisten, wenn er eine Standardschnittstelle implementieren will (falls es keinen Standard gibt, ist eine entsprechende Individualentwicklung durchzuführen):

  • Er muss die Anforderungen an die Schnittstelle spezifizieren,
  • einen entsprechenden Anbieter einer Schnittstelle auswählen und
  • die Implementierung durchführen (lassen).
  • Dazu sind konzeptionelle Arbeiten für die Gestaltung der Schnittstelle erforderlich.
  • Daneben ist für die Tätigkeit der Schnittstelle eine Protokollierung (sogenanntes Logging) einzurichten.
  • Nach der Implementierung müssen Schnittstellen-Tests mit möglichst repräsentativen Fallgestaltungen durchgeführt werden.
  • Auftretende Fehler sind zu analysieren und zu beseitigen.
  • Nicht zuletzt ist es bei auftretenden Fehlern schwieriger, die Verantwortung zuzuordnen, da eine Abgrenzung der Leistungen verschiedener Dienstleister notwendig ist.

Diese Nachteile bestehen in einem monolithischen System nicht, da der Datenaustausch zwischen verschiedenen Komponenten in der Regel standardmäßig vom Hersteller vorgesehen wird.

Das Bestreben der Hersteller von Schnittstellen ist eine möglichst universelle Verwendbarkeit für möglichst viele auf dem Markt verfügbare Systeme zu schaffen. Eine Gestaltung von Schnittstellen erfordert jedoch eine Abstraktion von Datenformaten, um eine allgemeine Verwendbarkeit herzustellen. Abhängig von der Art des Datenaustausches sind die Dateninhalte von der jeweils anderen Seite zu interpretieren und umzuformatieren, was mehr Verarbeitungslogik der Schnittstelle erfordert und damit zu einem erhöhten Ressourcenbedarf an Rechenleistung und Übertragungsbandbreite führt.

Ferner ist zu berücksichtigen, dass die Entwicklung von Schnittstellen ein spezielles Knowhow verlangt, das besonders auf der technischen Ebene ausgeprägt sein muss. In der Regel wird daher ein Auftraggeber die Implementierung von Schnittstellen extern an spezialisierte Unternehmen vergeben; somit bestehen nur beschränkte Möglichkeiten, durch Einsatz eigener Ressourcen die Kosten zu senken.

7.                       Checkliste für vertragliche Vereinbarungen/Leistungsspezifikationen

1.      Wie ist sichergestellt, dass alle für das Projekt notwendigen Schnittstellen als Anforderungen erkannt wurden?

2.      Sind für alle Schnittstellen folgende Punkte in den Anforderungen aufgeführt?

·          Zweck und Aufgabe

·          Beteiligte Systeme

·          Auszutauschende Daten

·          Zeitliche Anforderungen und Ausfallsicherheit

·          Häufigkeit und Menge der Nutzung

·          Verhalten in Ausnahmesituationen

3. Welche Arbeiten sind (noch) notwendig, um (im Standard) vorhandene Schnittstellen funktionsfähig zu machen?

4.      Wer ist dafür verantwortlich, dass Testdaten erzeugt und eine Testumgebung bereitgestellt werden?

5.      Wie wird getestet und auf welche Weise werden die implementierten Schnittstellen qualitätsgesichert? Exemplarische Kriterien sind, ob

·          die angestrebte Funktionalität vorhanden ist,

·          die Durchsatzvorgaben erfüllt werden,

·          die Übertragung richtig erfolgt,

·          der Austausch zuverlässig abläuft und

·          die Abläufe nachvollziehbar sind.

6.      Ist eine Dokumentation vorhanden, die insbesondere für Revisionen oder Betriebsprüfungen geeignet ist? In bestimmten Bereichen gibt es dazu weitere Anforderungen (bspw. Schnittstellen bei finanzbuchhalterisch relevanten Systemen).

7.      Was sind die Abnahmekriterien für eine implementierte Schnittstelle?

8.                       Zusammenfassung

Bei der Realisierung von Schnittstellen kommt es nicht auf das „Ob“, sondern auf das „Wie“ an. Die fachlichen Anforderungen definieren die notwendige technische Ausprägung und damit den Realisierungsaufwand. Wenn Sie die Schnittstellen vollständig erfassen und die Realisierung hinreichend planen, vermeiden Sie häufige Ursachen für Projektschieflagen.

Dr. Siegfried Streitz