Die meisten Projekte scheitern nicht an der Software, sondern an unklaren Anforderungen und schlecht spezifizierten Schnittstellen. Requirement Engineering ist die Antwort darauf: Wünsche der Fachbereiche in Spezifikationen übersetzen, die ein Entwicklungsteam umsetzen kann, ohne nachzufragen. Mein Arbeitsprinzip dazu steht auf der Seite Interim-Projektleitung: Lieber eine Woche länger spezifizieren als drei Monate Fehler im Produktivbetrieb beheben.
Diese Übersetzungsarbeit mache ich seit Jahren im Projectile-Umfeld: Als offizieller Information Desire Software GmbH-Partner nehme ich seit 2016 Anforderungen von Endkunden auf und verfeinere sie iterativ zu umsetzbaren Spezifikationen, für Rollouts, Erweiterungen und Schnittstellen. Die Fallstudie dazu steht unter Referenzen.
Von der Anforderung zur Spezifikation
Eine brauchbare Spezifikation beantwortet vier Fragen: Wie sieht das Datenmodell aus? Welche Geschäftsregeln gelten? Was passiert im Ausnahmefall? Und woran erkennt man, dass es funktioniert? Der Normalfall ist meist schnell beschrieben; die Substanz steckt in den Ausnahmen: Stornierungen, Sonderfälle, fehlerhafte Eingaben. Wer sie nicht spezifiziert, findet sie im Produktivbetrieb wieder. Warum ein klassisches Lastenheft diese Arbeit nicht ersetzt, steht im Beitrag Warum das Lastenheft der teuerste Fehler im Projekt ist.
Datenflüsse dokumentieren
Bei Schnittstellen dokumentiere ich jeden Datenfluss nach demselben Muster: Quelle, Ziel, Mapping, Fehlerbehandlung. Erst wenn alle vier Punkte beantwortet sind, ist eine Schnittstelle spezifiziert; alles davor ist eine Absichtserklärung. Nach diesem Muster sind im Projectile-Umfeld unter anderem Schnittstellen zu DATEV, Salesforce, Atlatos, Diamant und Rex entstanden, technisch umgesetzt via REST-API, Schattentabellen oder Dateiexport; das Daten-Mapping ist dabei jedes Mal die Kernaufgabe. Wie tief das gehen kann, zeigt die Projectile-DATEV-Schnittstelle, deren Spezifikation ich in einem frei verfügbaren Whitepaper auf 11 Seiten dokumentiert habe, inklusive Buchungslogik und Fehlerszenarien.