Methoden für Software- und Systemengineering

Die Gruppe „Innovation & Best Practice“ richtet sich an Entwickler aus den Bereichen Software- und Systemengineering. Bei den regelmäßigen Treffen tauschen sich die Teilnehmer über Methoden und Themen aus, die für diesen Anwendungsbereich griffig sind. TRIZ-Kenntnisse sind nicht erforderlich. Notwendige Voraussetzung zur Teilnahme ist ein entsprechender beruflicher Hintergrund. Auf dem Plan stehen Themen wie Usability Engineering, Varianten-/Versionsmanagement, Systemengineering, Software-Patentierung und agile Methoden wie Scrum. Das zentrale Element der Treffen bilden Best Practices aus den Unternehmen. Diese wertvollen Beiträge dienen als Grundlage für den Austausch und die Weiterentwicklung der teilnehmenden Firmen. Fachbeiträge von Referenten runden die Sitzungen ab und liefern die notwendigen Hintergrundinformationen, Grundlagen und Tipps zu den ausgewählten Fragestellungen. Die Teilnehmer entscheiden selbst, welches Thema bearbeitet wird. Die Auswahl erfolgt dabei prozessbegleitend, um eine optimale Umsetzung und Implementierung der Methoden und Managementtools sicherzustellen. So werden einzelne Methoden und Tools auch immer wieder zum „Thema des Tages“ gewählt. 

Was sind agile Methoden?

Agile Methoden oder Prozesse sind konkrete Verfahren während der Softwareentwicklung, die sich auf die sogenannten "agilen Werte und Prinzipien" stützen. Agilität leitet sich aus dem Lateinischen agilis ab und steht für flink oder beweglich. Das Ziel agiler Softwareentwicklung ist es, den Softwareentwicklungsprozess flexibler und schlanker zu machen als bei klassischen Vorgehensmodellen wie z.B. dem V-Modell. Die Werte agiler Softwareentwicklung wurden 2001 als Agiles Manifest (englisch: Manifesto for Agile Software Development oder kurz: Agile Manifesto) formuliert: „Wir zeigen bessere Wege auf Software zu entwickeln, indem wir es selbst tun und anderen dabei helfen, es zu tun. Durch unsere Arbeit sind wir zu folgender Erkenntnis gekommen":

  • Menschen und Interaktionen sind wichtiger als Prozesse und Werkzeuge.
  • Funktionierende Software ist wichtiger als umfassende Dokumentation.
  • Zusammenarbeit mit dem Kunden ist wichtiger als die ursprünglich formulierten Leistungsbeschreibungen.
  • Eingehen auf Veränderungen ist wichtiger als Festhalten an einem Plan. "Das heißt: obwohl die Punkte auf der rechten Seite durchaus wichtig sind, halten wir die Punkte links für wichtiger.“

Agilen Prozessen ist gemeinsam, dass sie sich zahlreicher Methoden bedienen, um die Aufwandskurve möglichst flach zu halten. Zu den bekanntesten agilen Prozessen zählen:

  • Scrum
  • Extrem Programming
  • Feature Driven Development
  • Kanban

Was ist Usability?

Usability Engineering hat zum Ziel, eine einfach zu bedienende Benutzeroberfläche zu entwickeln. Alle Anforderungen der Benutzer, die sich aus den verschiedenen Faktoren (z. B. Sprache, Zugangsberechtigung, Aufgaben- und Anwendungsbereich …) und ihrem Zusammenspiel ergeben, werden bei der Umsetzung mit einbezogen. Die Interaktion zwischen Benutzer und System rückt im Zuge der „Softwareisierung“ von Maschinen und Systemen immer mehr ins Zentrum der Systementwicklung. Hier arbeiten Usability-Experten und (Software-)Ingenieure zusammen, um sicherzustellen, dass das entstehende Produkt sich so verhält, wie es der Benutzer benötigt und erwartet. Nur wenn die Maschine in der realen Umgebung für den vorhergesehenen Zweck eingesetzt werden kann, entsteht tatsächlich Nutzungsqualität.
Usability Engineering bezeichnet einen Prozess, bei dem kontinuierlich die Usability (engl. Bedienbarkeit, (Be-)nutzbarkeit) eines Produktes definiert, gemessen und verbessert wird. Der Begriff Usability geht auf folgende Definition der Internationalen Organisation für Standardisierung (ISO 9241) zurück:
Usability eines Produktes ist das Ausmaß, in dem es von einem bestimmten Benutzer verwendet werden kann, um bestimmte Ziele in einem bestimmten Kontext effektiv, effizient und zufriedenstellend zu erreichen.
Die Methoden des Usability Engineering umfassen u. a.

  • Die Analyse des (bestehenden) Systems und dem „Umgang“ des Nutzers damit (Nutzungskontextanalyse).
  • Das Konzeptionieren und Gestalten des User Interfaces.
  • Das Zeigen – „erfahrbar machen“ – und Testen des Interfaces im Nutzungskontext.

Beim Usability Engineering handelt es sich ebenfalls um eine inkrementelle, iterative Vorgehensweise und lässt sich dadurch sehr gut mit agilen Methoden umsetzen und durchführen.