contributor hub

System und Modell

Softwaresysteme bilden immer ein Modell für einen Vorgang im realen Leben ab (System). Ein Modell hat per Definition weniger Eigenschaften als das System, das modelliert wird. Es ist also immer auch eine Vereinfachung.

  • Aber welche Eigenschaften sind besonders wichtig?
  • Und welche Eigenschaften der reellen Welt können ignoriert werden?

Diese entscheidenden Fragen lassen sich erst nach umfangreicher Analyse des abzubildenden Vorgangs beantworten.

Damit ein Softwaresystem erstellt werden kann, erstellt man zuerst eine Anforderung. Sie beschreibt das zukünftige Softwaresystem allerdings nicht in allen Aspekten, sondern nur in denen, die man für wichtig befunden hat (bzw. woran man bei der Erstellung der Dokumente eben gedacht hat). Die Anforderung stellt also selbst eine Vereinfachung des zu entwickelnden Systems dar.

Sie ist also ein Modell für die Realität und zugleich ein Modell für die zukünftige Software. Diese Doppelrolle wird einem erst bewusst, wenn man Softwareanforderungen liest, die Anwender ohne Kenntnisse in Softwareentwicklung oder Entwickler ohne Kenntnisse in der Realität erstellen. Denn keiner der obigen Varianten kann zu einer reibungslosen Softwareentwicklung führen. Sie benötigen ein harmonisches Modell für beide Ziele.

Auge und Ohr

Möchte man «das Geschäft» verstehen, muss man den Anwendern gut zuhören. Dabei ist es wichtig, dass die Person, die das System analysiert ein Auge für die Zusammenhänge zwischen den Systembestandteilen hat. Diese verstecken sich oft in Halbsätzen, die Anwender «nebenher» sagen. Der Grund liegt darin, dass die Anwender nur das Subsystem des Gesamtsystems betrachten, in dem sie tätig sind. Diese Verbindungen sind aber entscheidend für den Datenfluss.

Ich habe schon in meinem Studium angefangen mich mit den Besonderheiten der Analyse komplexer Systeme zu beschäftigen. Modellierung und Synthese helfen dabei, die Ergebnisse zu visualisieren und verständlich zu spezifizieren.

Bestand → Veränderung

Meine Arbeit beginnt mit der Bestandsaufnahme. Um bei der Wortwahl zu bleiben: die Realität wird modelliert.

Anschließend erstelle ich aus dem Bestand das Modell des zukünftigen Systems in Form von Use Cases, Feinspezifikation und funktionalen Anforderungen.

Wichtig ist dabei, dass das neu entworfene System normalerweise Auswirkungen auf den Vorgang hat, welchen man in der Zukunft mit veränderter Softwareunterstützung bewältigen möchte. Diese Veränderung muss so transparent kommuniziert werden, dass alle Anwender bereits in dieser Phase der Entwicklung ihre zukünftigen Rollen verstehen können. Denn nichts kann einem Softwareprojekt mehr schaden, als eine grundlegende Ablehnung des Vorhabens «das nur der Chef will», bloss, weil man nur eine trübe Vision der Veränderung zur Sicht bekommt. Hierzu erstelle ich bebilderte und gut verständliche User Stories und stelle diese den Anwendern vor.

Das Ergebnis meiner Arbeit ist, dass die Anwender verstehen, was sie bekommen werden und die Entwickler wissen, wie sie dieses Ziel erreichen können. Ein harmonisches Modell also für alle beteiligte.

Erfahrungen

+25 Jahre Softwareentwicklung

  • Microsoft .Net
  • Microsoft SQL-Server
  • Oracle
  • MySQL
  • PostgreSQL

+15 Jahre Projektleitung

  • Viele große Projekte
  • Im behördlichen Umfeld der Polizei, Sanität und Feuerwehr
  • Im privatwirtschaftlichen Umfeld der Logistikbranche und Finanzbuchhaltung
  • Agile Softwareentwicklung
  • Projektleitung nach Hermes

+10 Jahre Mitarbeiterführung

  • Teamleader
  • Bereichsleiter
  • Geschäftsführer

Brücken schlagen

Der Erfolg Ihres Vorhabens bei einem Softwareprojekt hängt in erster Linie davon ab, wie weit die Entwicklung die Anforderungen der Anwender verstanden hat. Die meisten Fehler werden in dem oberflächlichen Verständnis der Geschäfts­grundlage begangen. Diese Kommunikation ist essenziell, denn hierdurch werden grundlegende Prinzipien des zukünftigen Systems «verdrahtet». Das Problem betrifft nicht nur die Softwareentwicklung nach dem «Wasserfall» Modell, sondern auch die Agile Methoden.

Missverständnisse, die zu spät erkannt werden, führen üblicherweise zur mangelnden Performance oder zum Fehlen wichtiger Funktionalitäten. Oft entstehen hierdurch teure Anpassungen, und nicht selten gibt es Streit darüber, wessen Aufgabe es gewesen wäre, die Anforderungen korrekt zu managen.

Ich habe mehr als 20 Jahre Erfahrung auf dem Gebiet des Anforderungs­managements. Durch meine starken analytischen Fähigkeiten kann ich sehr präzise die Anforderungen der Anwender verstehen und ich beherrsche alle Produktionsschritte der Softwareherstellung von der Erstellung der Pflichtenhefte bis zur Wartung des fertigen Produktes.

Die Wichtigkeit der Verbindung zwischen Anwendern und der Entwicklung wird in vielen IT-Projekten unterschätz, da es an Personen mangelt, die diese Brücke schlagen können. Das tiefe Verständnis der Anforderungen und die Konvertierung dieser in für die Entwicklung verständliche Modelle ist die Garantie für den Erfolg Ihres Vorhabens.

Impressum