Smart Requirements Engineering
In den letzten Jahren haben die Begriffe “KI”, “Digitalisierung” oder auch “Industrie 4.0” und “IoT” nicht nur vielfache Erwähnung in der Presse gefunden, sondern auch ein Umdenken in zahlreichen Unternehmen angestoßen. Durch das, was inzwischen technisch möglich ist, bestehen enorme Optimierungs- und Einsparungspotentiale sowie die Möglichkeit ganz neue Geschäftsmodelle zu implementieren.
Treiber für diese Entwicklungen sind nicht nur die großen Technologiekonzerne wie Google und Amazon, sondern auch eine Reihe etablierter Unternehmen, die nach und nach ihre konventionellen Produkte und Maschinen intelligenter und autonomer machen.
Doch schaut man in Unternehmen, die “maschinelle Intelligenz” immer mehr in die eigenen Produkte integrieren, ersteht der Eindruck, dass in den eigenen Entwicklungsprozessen kaum Wert auf eine solche “intelligente” Unterstützung gelegt wird. Vielmehr scheint im Zuge der agilen Transformation hier eher wieder weniger digital und mehr mit Stift, Papier und dem persönlichen Gespräch gearbeitet zu werden. Woher kommt dieser Widerspruch?
Ein Problem aus der Vergangenheit
Im Gespräch mit Praktikern zeigt sich, dass eigene Entwicklungen in der Vergangenheit häufig mit starren Tools und Prozessen nicht wirklich gut unterstützt wurden und man froh war, mit einer flexibleren Arbeitsweise Projekte besser durchführen zu können. Es ist also wenig verwunderlich, dass eine grundsätzliche Skepsis gegenüber innovativen Werkzeugen weit verbreitet ist. Zusätzlich gibt es in vielen Organisationen nur wenig Wissen darüber, was moderne Entwicklungstools tatsächlich leisten können. Oft wird argumentiert, dass sich bestenfalls das User Interface gegenüber den Tools aus dem vorletzten Jahrzehnt geändert hätte, und dass es sich um “alten Wein in neuen Schläuchen” handeln würde.
Insbesondere im Bereich des Requirements Engineerings (Anforderungsmanagement) assoziieren viele Unternehmen mit einem Requirements Management (RM) Tool noch immer schwergewichtige Desktop-Applikation wie das klassische DOORS und seine Mitbewerber. Kein Wunder also, dass (Non-RM) Tools wie beispielsweise Jira, Confluence, TFS oder nach wie vor auch Word und Excel in der Industrie großes Gefallen finden.
Trotz ihrer hohen User Experience und den Vorteilen, die sie zweifelsfrei für eine kollaborative Arbeitsweise bieten, sind diese Werkzeuge alles andere als „smart“. Qualität und Effizienz hängen deshalb nach wie vor ausschließlich an der Expertise sowie dem Engagement und der Sorgfalt der Personen, die damit arbeiten. Wie dies mit zunehmender Systemkomplexität skaliert ist offen.
Nachfolgend wollen wir aufzeigen, was künstliche Intelligenz (KI) im Umfeld des Requirements Engineerings heute bereits leisten kann, welche Mehrwerte sich dadurch für Unternehmen eröffnen und wo die Reise vermutlich hingehen wird. Dadurch wollen wir den aktuellen Stand der Praxis keineswegs in Abrede stellen, sondern aufzeigen, welche Möglichkeiten sich Entwicklungsorganisationen zu Nutze machen könnten.
Unter KI verstehen wir im Übrigen jegliche intelligente Unterstützung, die ein Tool seinen Anwendern bereitstellt. Eine Einschränkung beispielsweise auf Natural Language Processing (NLP) oder Deep Learning (DL) treffen wir an dieser Stelle nicht. Als “Smart Requirements Engineering” bezeichnen wir entsprechend ein Requirements Engineering, dass sich KI zu Nutze macht, um Verbesserungen im Entwicklungsvorgehen realisieren zu können.
Mehrwerte durch Smart Requirements Engineering
Grundsätzlich und unabhängig vom Einsatzkontext verfolgen Tools das Ziel, etwas zu ermöglichen, was Menschen aufgrund physikalischer, biologischer oder kognitiver Beschränkungen andernfalls nicht möglich ist, oder etwas schneller, besser oder einfacher bzw. bequemer erledigen zu können.
Im Hinblick auf die Aktivitäten des Requirements Engineerings sind Tools beispielsweise ein Mittel, um Anforderungen überhaupt dokumentieren zu können, da Menschen von Natur aus keine Fähigkeiten besitzen, um Information extern zu persistieren. Ob es sich bei dem Tool allerdings um Stift und Papier, ein Word-Dokument, eine Datenbank oder ein Wiki handelt, ist hierbei zweitranging.
Diese Betrachtung fällt allerdings ins Gewicht, wenn man berücksichtigt, was durch ein Tool schneller, besser oder einfacher gemacht werden soll. Je nach Aktivität des Requirements Engineerings – man unterscheidet üblicherweise Ermittlung, Dokumentation, Validierung und Verwaltung – können gänzlich unterschiedliche Mehrwerte im Mittelpunkt stehen und somit unterschiedliche Tools adäquat erscheinen. Geht es beispielsweise nur darum, Anforderungen möglichst einfach und bequem dokumentieren zu können, empfiehlt sich eher ein Wiki oder Word-Dokument als eine ausgefeilte Datenbankapplikation. Sind im Gegensatz dazu Verbesserungen in der Arbeitseffizienz oder / und Anforderungsqualität gewünscht, dann sollte man besser auf “Smart Requirements Engineering” Tools zurückgreifen, die hierfür entsprechende Assistenzfunktionen anbieten.
- Fehler in Anforderungen werden schneller gefunden
Anforderungen sind kein Selbstzweck, sondern sollen helfen, das richtige System richtig zu bauen. Dies stellt Unternehmen immer wieder vor Herausforderungen, denn einerseits sind gute Anforderungen unabdingbar für die effiziente und qualitativ hochwertige Entwicklung, andererseits wollen Unternehmen aufgrund des wenig wertschöpfenden Charakters möglichst wenig Aufwand für Requirements Engineering spendieren.
Durch eine (teil-)automatisierte Überprüfung von Anforderungen kann jedoch dieses Spannungsfeld aufgelöst werden. Dadurch können Unternehmen das Risiko von Entwicklungspannen frühzeitig reduzieren, ohne viele Ressourcen in oftmals aufwändige und anstrengende Validierungsrunden fließen zu lassen.
- Projektbeteiligte wissen stets, was noch zu tun ist
In großen Projekten verlieren selbst Experten und erfahrene Personen schnell den Überblick über den Stand der Anforderungen und der noch offenen Fragenstellungen bzw. ToDos. Da zudem häufig Änderungen an der Tagesordnung sind und die Anforderungen oftmals auch von Projektbeteiligten erarbeitet werden, die keine ausgewiesenen Experten in der Anforderungsanalyse sind, ist es äußerst schwierig und aufwändig zu koordinieren, wer noch was in welcher Form und Qualität liefern muss.
Durch eine (teil-)automatische Analyse des Anforderungsstands und der algorithmischen Herleitung von Empfehlungen über offene Arbeitsschritte können Projektbeteiligte jedoch jederzeit zielgerichtet zuarbeiten. Dies reduziert den Aufwand für Abstimmungen und Nacharbeiten, führt zu einer höheren Vollständigkeit und Qualität von Anforderungen, weniger Verunsicherung und generell einer Erleichterung der gesamten Anforderungsanalyse, was insbesondere für weniger versierte Beteiligte hilfreich ist.
- Anforderungen basieren auf belastbaren Daten
Immer mehr Produkte, insbesondere solche mit großen und (weltweit) verteilten Nutzerbasen, stehen im ständigen Wettbewerb und lassen sich leichter denn je gegen Konkurrenzlösungen austauschen. Für die Hersteller ist es daher enorm wichtig, stets die aktuelle Stimmung bei den Anwendern zu hören, als auch deren Wünsche, Vorschläge und Kritik aufzunehmen. Traditionelle Befragungstechniken stoßen hier jedoch an logistische Grenzen, zugleich sind Anwender aber auch oft wenig interessiert ihre Anliegen direkt an den Hersteller zu kommunizieren. Vielmehr werden zunehmend lieber Bewertungen und Erwartungen auf einschlägigen Plattformen gepostet, die aufgrund ihrer Vielzahl allerdings kaum manuell ausgewertet werden können.
Durch das (teil-)automatische Analysieren von Reviews (Text Mining) sowie der Sensor- und Log-Daten aus der Benutzung von Produkten (Usage Mining) können Unternehmen jedoch Daten, die ohnehin da sind, für die Ableitung von Neu- oder Änderungsanforderungen nutzen. Dies stellt nicht nur eine enorme Kostenersparnis gegenüber konventionellen Analysemethoden dar, sondern erlaubt auch schneller auf Marktänderungen und aktuelle Kundenbedürfnisse reagieren zu können.
- Entwicklungsartefakte entstehen auf Knopfdruck
Anforderungen sind – wie oben erwähnt – kein Selbstzweck, sondern lediglich der Ausgangspunkt für ein wertschöpfendes Entwicklungsprojekt. Folglich müssen aus Anforderungen andere Artefakte erstellt werden, um diesem Ziel gerecht zu werden. Das können beispielsweise Testspezifikationen, Angebote oder auch Entwürfe in Form von grafischen Modellen sein. In der Praxis werden diese Artefakte i.d.R. manuell erstellt und im besten Fall mit Hilfe eines Tools miteinander verknüpft. Eine automatische Überführung der Artefakte findet zumeist nur dort statt, wo modellgetrieben gearbeitet wird. In einer Vielzahl von Unternehmen finden sich jedoch hauptsächlich Anforderungen in Textform, was diese Möglichkeit einschränkt, aber wofür Ansätze existieren, die eine intelligente Unterstützung ermöglichen.
Durch eine (teil-)automatische Überführung von textbasierten Anforderungen in andere Artefakte, können bspw. der Arbeitsaufwand als auch die Fehleranfälligkeit für diese Aufgaben reduziert werden. Dadurch können Entwicklungsprojekte beschleunigt und Arbeitsschritte für die Beteiligten vereinfacht werden.
Tools für das Smart Requirements Engineering
Im Bereich der automatischen Qualitätsprüfung von Anforderungen existieren bereits verschiedene kommerzielle Tools am Markt, die mehr oder weniger die gleichen Features bieten. Durch NLP und formalisierte Best Practices, beispielsweise aus dem ICOSE Standard, bieten Tools wie
die Möglichkeit, riesige Mengen von Anforderungen in kürzester Zeit auf Unvollständigkeit, Uneindeutigkeit und Inkonsistenzen hin überprüfen zu lassen.
Auch wenn diese Tools aktuell keine inhaltliche Qualitätssicherung erlauben und auch nicht jeden Fehler korrekt identifizieren können, ermöglichen Sie jedoch den Großteil der Anforderungen in eine Qualität zu bringen, die Verständnisschwierigkeiten und somit Qualitätsmängel in der Entwicklung von Beginn an reduzieren. Die gleiche Qualität durch manuelle Reviews zu erreichen, würde nach Angaben der Hersteller mehr als das 600-fache an Zeit und Aufwand in Anspruch nehmen, was vielleicht auch das häufig stiefmütterliche Behandeln der Anforderungsvalidierung in der Praxis begründet.
In Hinblick auf eine Prozessassistenz in der Anforderungsanalyse existieren ebenfalls erste kommerzielle Lösungen. ReqSuite RM ist beispielsweise auf Basis von Ontologien und NLP in der Lage, die Semantik von Anforderungen zu verstehen. Dadurch kann das Tool automatisch empfehlen, welche Analyseschritte als nächstens für den jeweiligen Projektmitarbeitenden sinnvoll sind. So können Projektbeteiligte jederzeit erfahren, was im Rahmen der Anforderungsanalyse noch zu tun ist, wie inhaltliche Abhängigkeiten zwischen verschiedenen Personen aber auch Themen aussehen und welcher Fortschritt und welche Qualität die Anforderungen bereits haben.
Auch wenn diese Tools ebenfalls keine Unterstützung bieten, die inhaltliche Korrektheit und Vollständigkeit zu 100% sicherzustellen, so führen sie dennoch die Beteiligten selbst in komplexesten Kontexten zielsicher durch den Analyseprozess. In Analogie zu einem Navigationssystem im Auto, das auch ortsunkundigen Personen eine sichere Zielerreichung ermöglicht, können dank intelligenter Prozessassistenten (auch im Requirements Engineering unerfahrene) Personen in der Anforderungsanalyse jederzeit adäquat zuarbeiten. Der Aufwand für die Erhebung und Dokumentation von Anforderungen lässt sich dadurch um ca. 40% gegenüber einer herkömmlichen Arbeitsweise (gleicher Qualitätsanspruch an die resultierenden Anforderungen vorausgesetzt) reduzieren.
Mit der Sammlung von Kundenwünschen aus Online-Nutzerfeedback befassen sich aktuell zahlreiche Wissenschaftler. Unter dem Begriff “Crowd-based Requirements Engineerings (CrowdRE)”¹ wird untersucht, welche Methoden aus dem Machine Learning, Deep Learning und Crowdsourcing sich am besten dazu eignen, Anforderungen aus Onlinedaten automatisch abzuleiten. Obwohl herkömmliche Social Media Analytics Werkzeuge bereits verschiedene Erkenntnisse über die Kundenzufriedenheit bieten, können nur spezialisierte CrowdRE-Werkzeuge wie der User Echo Service des Fraunhofer IESE oder der Forschungsprototyp OpenReq Analytics aktuell belastbare Ergebnisse produzieren.
Auch wenn diese Werkzeuge aktuell ebenfalls noch keine 100% Korrektheit erreichen, sind sie dennoch in der Lage, für den Großteil getätigter Äußerungen eine automatische Zuordnung zu einzelnen Funktionen und Qualitätsmerkmalen vorzunehmen, und so zu ermitteln, wo am dringendsten Handlungsbedarf bei der Produktverbesserung besteht. Künftig werden solche Systeme Ergebnisse des Text Minings mit Usage Minings verzahnen, um getätigte Äußerungen von Nutzern mit deren tatsächlichem Benutzungserleben abzugleichen. Sogar konservative Messungen zeigen, dass automatisierte Analysen 22x schneller durchgeführt werden können, und dabei die Ergebnisse sofort übersichtlich zur Verfügung stehen.
Im Hinblick auf Tools, die Entwicklungsartefakte aus Anforderungen generieren, ist die Praxis noch nicht ganz so weit. Abgesehen von Ansätzen aus dem Bereich der Softwareproduktlinien, die mit Hilfe von Domänen-spezifischen Sprachen die Generierung von Artefakten bis hin zu Code ermöglichen, existieren bisher kaum Tools, die basierend auf NLP und anderen KI-Verfahren Entwicklungsartefakte vollautomatisch generieren. Allerdings entstehen gegenwärtig u.a. bei den drei zuvor genannten Herstellern erste Tools, um aus Anforderungen Testfälle oder UML-Diagramme zu generieren bzw. um für Anforderungen automatisch passende Lösungen aus einem Katalog auszuwählen, und daraus auf Knopfdruck Angebote erstellen zu können.
Ausblick
Vor etwa 10 Jahren begann die Agilisierung des Requirements Engineerings. Weg von langen Vorab-Analysen und umfassenden Anforderungsdokumenten, hin zu schlanken Dokumenten und flexiblen Analyserunden. Die zunehmende Komplexität moderner Systeme und bestehende Regulierungen in vielen Branchen haben in den vergangenen Jahren den Trend zu hybriden Ansätzen gefördert.
In den nächsten 10 Jahren wird die Komplexität von Systemen weiter steigern. Damit einher geht zweifelsfrei auch eine Digitalisierung des Requirements Engineerings. Aktuell existieren dafür bereits vielversprechende kommerzielle Tools am Markt, die allerdings aufgrund ihrer bisherigen Verbreitung noch nicht vollumfänglich ihre Mächtigkeit in der Praxis ausspielen konnten. Unternehmen, die jedoch schon heute auf solche Lösungen setzen, werden bereits kurzfristig enorme Wettbewerbsvorteile realisieren können, da typische Projektherausforderungen, die sich aus unzureichenden Anforderungen ergeben, von vornherein reduziert werden können.
Mittel- bis langfristig wird das Thema Smart Requirements Engineering noch weitere Möglichkeiten eröffnen. Lernalgorithmen werden in der Lage sein, aus Anforderungsspezifikationen Wissen über Produkte und Anwendungsdomänen aufzubauen und dieses Wissen auf ähnliche Kontexte zu übertragen. Dadurch werden die oben genannten Qualitätsprüfungen und Prozessassistenten nicht mehr nur methodische und strukturelle Empfehlungen aussprechen können, sondern auch den Beteiligten konkrete Anforderungen für ihr Projekt vorschlagen. Wie gut dies letztendlich funktionieren wird und ob es bei einer Wiederverwendung bleiben oder gar zu einer automatischen „Erfindung“ von Neuanforderungen kommen wird, bleibt abzuwarten. Die Zukunft wird sich aber definitiv dahin entwickeln, auch wenn bisherige Ansätze im Requirements Engineering parallel auch weiterhin existieren werden.
Hinweise:
Interessieren Sie sich für weitere Tipps aus der Praxis? Testen Sie unseren wöchentlichen Newsletter mit interessanten Beiträgen, Downloads, Empfehlungen und aktuellem Wissen.
[1] Crowed-based Requirements Engineering
Dr. Sebastian Adam hat einen weiteren Beitrag im t2informatik Blog veröffentlicht:
Dr. Sebastian Adam
Dr. Sebastian Adam ist Geschäftsführer der OSSENO Software GmbH und operativ für die Bereiche Produktinnovation und Marketing verantwortlich. Vor seiner Zeit bei OSSENO arbeitete er mehr als 10 Jahre lang als Berater, Wissenschaftler und Teamleiter für Requirements Engineering am Fraunhofer-Institut für Experimentelles Software Engineering (IESE). Dr. Adam hat bereits mehrere Duzend Unternehmen begleitet und verfügt über branchenübergreifende Best Practices bezüglich der Einführung und Durchführung von Requirements Engineering.
Eduard C. Groen
Eduard C. Groen ist am Fraunhofer-Institut für Experimentelles Software Engineering IESE in Kaiserslautern als Senior Requirements Engineer und Projektleiter in der Abteilung User Experience und Requirements Engineering tätig. Als Themenverantwortlicher für „Crowd-Based Requirements Engineering“ (CrowdRE) arbeitet er seit 2014 aktiv an der Entwicklung dieses neuartigen Ansatzes zur Anforderungserhebung, wobei er umfassend auf seinen ingenieurspsychologischen Hintergrund zurückgreifen kann. Darüber hinaus berät er Firmen darin, wie sie ihre Requirements-Engineering-Prozesse und zugehörigen Praktiken verbessern können und leitet Schulungen auf der ganzen Welt. Neben seiner Arbeit am Fraunhofer IESE strebt er eine Promotion im Bereich Informatik an der Universität Utrecht zum Thema CrowdRE an.