Ist das Requirement Engineering tot?

desertDen Begriff „Requirements Engineering“ verbinden viele mit schwergewichtigen, dokumentenorientierten Vorgehensweisen, mit denen man Riesenprojekte besonders in der Luft- und Raumfahrt durchführt. Es beschreibt eine Herangehensweise aus den alten Zeiten der trägen „Wasserfall“-Projekte. Das Wort „Engineering“ klingt dabei wie ein komplexes Konstrukt, eine aufwändige Maschinerie für Anforderungen, ein starres Gebilde, das viel Ressourcen verschlingt und sich, wenn überhaupt, nur träge und langsam bewegt.

Mancheiner meint, dort, wo Requirements Engineering („RE“) wirklich gebraucht wird, hat es sich schon längst etabliert, und außerdem haben Projektmanager und Entwicklungsleiter den Umgang mit Anforderungen, Spezifikationen oder Lastenheften schon weitgehend gelernt und im Griff. „RE“ wird standardmäßig in allen ingenieursnahen Studienzweigen gelehrt, Schulungen für Berufstätige werden überall und von jedem angeboten. Ein alter Hut also. RE hat damit seinen Endzustand erreicht, denkt man.
In der Entwicklung setzen sich außerdem die agilen Vorgehensweisen immer mehr durch. Man macht Agile, Scrum, Kanban und Lean. Braucht man da noch Anforderungen?

Die Anforderung lebt!hydrangeas

Ich möchte diesen verschiedenen Ansichtsweisen nicht vollkommen widersprechen, doch einer, der so denkt, hat hier etwas Wesentliches weggelassen: Den wirklichen Blick nach vorne!

Wir befinden uns in einer Zeit, in der die Herausforderungen für die Produkt- und Dienstentwicklung sehr schnell wachsen. Wer da nicht mithält, wird in 5 oder 20 Jahren möglicherweise weniger Chancen auf dem Markt haben. Globalisierung, Individualisierung und Miniaturisierung der Produkte verändert derzeit stark die Entwicklungslandschaft. Wie auch neue Zusammenarbeitsmodelle, Entscheidungsformen oder Organisationsstrukturen in den Entwicklungsunternehmen sich zunehmends weiterentwickeln. Diesem Wandel können wir nur standhalten, wenn wir gemeinsam neue Wege in der Entwicklung gehen.

Eine moderne Betrachtungsweise von „Anforderungen“ kann da einen wertvollen Beitrag leisten. Lassen sie mich ein paar Gedanken dazu vorstellen. Ich möchte kurz und aus ein paar Perspektiven beleuchten, wie die „Anforderung“ aus moderner Sicht „lebt“:

Die Anforderung lebt in seiner Form

Das Wort „Anforderung“ drückt im Englischen „Requirement“ weit mehr aus, als die gebräuchliche deutsche Übersetzung. Laut LEO.org bedeutet es auch Bedarf, Bedürfnis, Anspruch, Forderung, Voraussetzung, Bedingung, Vorgabe. Das ist viel mehr als nur eine  semiformale textuelle Anforderung in DOORS, so wie sie heutzutage oft benutzt wird. Demnach sollte man unter dem Begriff „Anforderung“ – als Sammelbegriff betrachtet – wesentlich mehr verstehen: Kundenwünsche, Kundenbedürfnisse, Visionen, Ziele, Use Cases, User Stories, Backlog Items…, all diese sind eine Art von „Anforderung“ an das, was wir entwickeln wollen oder sollen. Selbst Zeichnungen, graphische Modelle, Testfälle, Prototypen und Programmcode beschreiben Anforderungen an unser Produkt. Programmcode ist sogar eine ausführbare Anforderung an die Hardware.

Die Anforderung lebt im Produktlebenszyklus

Die Anforderung lebt mit dem Entwicklungs- und Lebenszyklus des Produkts. Ein Kundenbedürfnis ist eine Anforderung, die sich vielleicht in eine Produktvision (eine zukunftsbezogenes Bild als Anforderung an ein Produkt) eines Unternehmens wandelt. Von dort aus entwickelt sie sich zu verschiedenen Zielen (angestrebte Teilzustände, Vorgaben), die dann als Produktfeatures oder Systemanforderungen ausformuliert werden. Daraus entstehen dann Modelle für die Architektur, die näher beschreiben und „anfordern“, wie das Produkt das ursprüngliche Kundenbedürfnis umsetzen könnte. Letzteres wird weiter detailliert und entwickelt sich in die verschiedenen Formen wie Teilsystem-/SW-/HW-Anforderungen und Programmcode. Die Anforderung lebt sogar in Form des fertigen Produkts weiter, indem es eine (Teil-)Anforderung an die nächste Produktgeneration darstellt, zur Weiterentwicklung oder Wiederverwertung.

Die Anforderung lebt agil

Gerade im agilen Umfeld wird der oben beschriebenen „Formveränderung“ bewußt Rechnung getragen. In „Backlogs“ (Sammlungen von Anforderungen) werden die Einträge im Laufe der Zeit immer mehr detailliert. Z.B. wird ein „Epic“, eine Anforderung auf hoher Abstraktionsebene, kleingeschnitten sobald es erforderlich ist, und in handhabbare und realisierbare „User Stories“ aufgeteilt. Diese werden dann weiter geteilt oder präzisiert, z.B. mit „Definitions of Done“, also gewissen Bedingungen, wann eine User Story als umgesetzt oder fertig gilt.
Die agilen Vorgehensweisen berücksichtigen zudem auch bewußt, dass sich eine Anforderung nicht nur in seiner Form, sondern sich auch im Inhalt wandeln kann. Denn die Entwicklungszyklen werden immer schneller und individueller. Änderungen und Anpassungen passieren immer häufiger und werden daher im Agilen als normal betrachtet. Umso wichtiger ist es, dass eine moderne „Anforderung“, egal ob im agilen oder klassischen Umfeld auch inhaltlich den angepassten Bedürfnissen folgen kann.

Die Anforderung lebt in Gemeinschaft

Mit Anforderungen allein kann man den heutigen Herausforderungen in der Entwicklung nicht mehr unbedingt standhalten. Die moderne Anforderung ist erst dann effektiv und wird wirklich lebendig, wenn sie Hand in Hand mit Modellierung, Architektur, Tests und Abnahmen geht. Nicht zuletzt sollte der Kunde und die Organisation in den Umgang mit Anforderungen eng mit einbezogen sein. Ein Leben in Gemeinschaft bringt alle voran.

Die Anforderung lebt in einer Organisation

Aus unserer Erfahrung bei der HOOD Group heraus wissen wir, dass der Umgang mit Anforderungen stark mit der Organisation des Unternehmens selbst zusammenhängt. Verändert sich die Organisation, muss sich der Umgang mit der Anforderung auch verändern. Und umgekehrt: Überall da, wo der Umgang mit Anforderungen verbessert oder eingeführt werden soll, muss sich zwangsläufig auch die Organisation darum herum verändern. Um so mehr sich die Organisation auf Veränderung einlassen kann, um so mehr können die Techniken, Methoden und Denkweisen der modernen „Anforderungen“ auch wirklich greifen. So wird sich auch der Benefit für das Unternehmen erhöhen. Und genau das wollen wir ja mit „Anforderungen“.koala

In diesem Sinne:
„Die Anforderung lebt, es lebe die Anforderung!“

Wir bei der HOOD Group leben den modernen Umgang mit Anforderungen seit vielen Jahren,  wir lieben und leben Anforderungen und Agilität, und machen dies für andere erlebbar.