Anforderungen an Anforderungen

Projekte scheitern oft am Requirements-Engineering und daher möchte ich auf das wichtige Thema eingehen. Stellt sich die Frage was unter Requirements-Engineering überhaupt zu verstehen ist? In diesem Blog-Artikel möchte ich daher auf das Thema Requirements-Engineering eingehen.

Unter Requirements-Engineering versteht man den geordneten Prozess in dem Anforderungen ermittelt, dokumentiert, verwaltet, analysiert, abgestimmt und geprüft werden. Damit ergeben sich aus Bedürfnissen, Visionen und Randbedingungen, Anforderungen an ein Projekt und an ein Produkt.

req_eng1

Bei der Frage, was eine Anforderung ist hilft IEEE 1990 weiter:

  • Eine Eigenschaft oder Bedingung, die von einem Benutzer (Person oder System) zur Lösung eines Problems oder zur Erreichung eines Ziels benötigt wird.
  • Eine Eigenschaft oder Bedingung, die ein System oder eine Systemkomponente erfüllen muss, um einen Vertrag, eine Norm, eine Spezifikation oder andere formell vorgegebene Dokumente zu erfüllen.

Diese doch sehr formale Beschreibung kann man bildlich auch mit der DNA des Systems vergleichen. Ein nicht umsichtiger Umgang mit Anforderungen kann zu großen Schäden führen.

Ihr Ansprechpartner:

Dipl.-Ing. Goran Madzar, Gesellschafter, Senior Systems Engineer 
E-Mail: madzar@medtech-ingenieur.de
Tel.:  +49 9131 691 240
 

Benötigen Sie Unterstützung bei der Entwicklung Ihres Medizingeräts? Wir helfen gerne! Die MEDtech Ingenieur GmbH bietet Hardware-Entwicklung, Software-Entwicklung, Systems Engineering, Mechanik-Entwicklung und Beratung aus einer Hand. Nehmen Sie Kontakt mit uns auf.

Kontakt aufnehmen


Der Aufwand beim Schreiben von Anforderungsdokumenten steckt nicht im Schreiben selbst, sonst wäre man nach spätestens einer Woche fertig, wenn man halbwegs tippen kann. Der größte Teil der Arbeit ist Kommunikation. Dabei gilt es verschiedene Stakeholder ins Boot zu holen und deren oft widersprüchlichen Anforderungen einzusammeln und abzugleichen. Aus meiner Erfahrung steckt hier ca. 2/3 der Arbeit. Die Stakeholder können dabei der Produktmanager, Kunde, Auftraggeber, Projektmanager, Management, QM/RA, Service, Produktion, Juristen und viele mehr sein.

Beim Schreiben der Anforderungen gibt es einiges zu beachten. Ich nenne das auch die Anforderungen an die Anforderungen. Darunter verstehe ich Eigenschaften, die eine Anforderung aufweisen soll.

anfananf

Eigenschaft Erklärung
Testbar Jede Anforderung wird abgeprüft. Wenn Ihnen kein sinnvoller Testfall einfällt, dann ist die Anforderung nicht gut.
Vollständig Achten sie darauf nichts zu vergessen. Viele Informationen hat man im Kopf. Bringen sie diese auch zu Papier. Entsprechend wird auch die Testtiefe verbessert.
Relevant Formulieren sie nur Anforderungen, die für die Komponente oder das System relevant sind. Es ist nicht relevant welche Bauteile sie einsetzen oder wie die Umsetzung konkret aussieht.
Konsistent Vermeiden sie Widersprüche bei den Anforderungen. Achten sie darauf, dass die Anforderungen zusammen passen.
Eindeutig Formulieren sie die Anforderungen eindeutig, so dass sich kein Raum für Interpretation ergibt.
Kontextfrei Formulieren sie die Anforderung so, dass man sie ohne den Kontext versteht. Schlecht ist z.B. wenn man die Anforderung nur versteht, wenn man weiß in welchem Kapitel sie steht. Die Anforderung soll allein für sich verständlich sein.
Atomar Halten sie die Anforderung kurz und knapp. Versuchen sie nicht mehrere Anforderungen in eine unter zu bringen. Damit werden die Anforderungen verständlicher, lesbarer und leichter testbar.

Bei der Formulierung der Anforderungen kann man viel falsch machen. Idealerweise setzt man Satzschablonen ein, die die Qualität der Anforderungen deutlich erhöhen. Dabei baut man die Anforderungen immer nach dem gleichen Schema auf. Das kann zwar bei der Erstellung langweilig sein, ist aber für die Verständlichkeit und Klarheit ein großer Gewinn.

satzschablone

Aus meiner Erfahrung in Projekten habe ich eine Liste mit 10 Tipps zusammengestellt, die oft nicht berücksichtigt oder bedacht werden.

  1. Jede Anforderung hat ein Preisschild und kostet Geld.
  2. Jede Anforderung kostet Zeit.
  3. Verwenden sie ein Glossar mit eindeutigen und definierten Begriffen.
  4. Führen sie mit dem Kunden oder den Stakeholdern Workshops durch und machen sie kein Pingpong-Spiel.
  5. Weniger ist mehr. Hinterfragen sie jedes Feature kritisch.
  6. Behalten sie den Kundennutzen im Fokus. Der Kundennutzen ist der Grund, dass das Produkt gekauft wird.
  7. Schieben sie Entscheidungen nicht auf die lange Bank. Nicht getroffene Entscheidungen können dazu führen, dass viel Energie unnötig investiert wird.
  8. Definieren sie welche Priorität eine Anforderung hat, was umgesetzt werden muss und was optional ist.
  9. Vermeiden sie implizite Annahmen. Das Pflichtenheft sollte auch verstanden werden, wenn man kein Vorwissen hat.
  10. Setzen sie ein Werkzeug ein, um Anforderungen zu verwalten.

Ich habe oft in Projekten gehört: „Unser Kunde / unser Produktmanager weiß nicht was er will!“. Mittlerweile habe ich herausgefunden, dass das nicht die Ausnahme sondern die Regel ist. Wir entwickeln innovative Produkte, wo eben nicht alles bekannt ist. Zudem verändert sich die Welt und damit die Anforderungen an das Produkt. Pro Monat ändern sich ca. 1-5% der Anforderungen! Dagegen hilft es nur, die Projekte kurz zu halten, den Aufwand und die Komplexität zu reduzieren und frühzeitig ein Änderungsmanagement aufzusetzen. Wenn sie mit Anforderungen arbeiten, dann benötigen sie auch ein Werkzeug dafür. Bitte nutzen sie dafür nicht Word und Excel! Das funktioniert bei größeren Projekten nicht mehr.

Ein wichtiger Tipp noch zum Schluss. Führen sie Reviews durch und prüfen sie das Anforderungsdokumente formal und inhaltlich. Nehmen sie dazu Ihre wichtigen Stakeholder mit ins Boot. Es kann auch sinnvoll sein, kleine Teilabschnitte zu reviewen. Das führt zu schnellen Ergebnissen.

Ich freue mich sehr über Feedback und den Austausch mit ihnen. Sie können gerne auch einen Kommentar zu dem Artikel abgeben. Falls sie jemanden kennen, für den der Blog ebenfalls interessant sein könnte, freue ich mich auch sehr über eine Weiterempfehlung.

Viele Grüße

Goran Madzar

Kontaktieren Sie uns!

Autor

  • Goran Madzar

    MEDtech Ingenieur aus Leidenschaft! Mein Team und ich helfen Medizintechnik-Herstellern mit Engineering-Dienstleistungen dabei, Produkte zu entwickeln und in Verkehr zu bringen! Sprechen sie mich gerne an, ob bei LinkedIn oder per Mail. Ich freue mich Sie kennenzulernen.

Auch interessant:

Statische Code Analyse – Analysieren Sie schon oder debuggen sie noch?

Statische Codeanalyse gehört nicht wirklich zu den Neuheiten in der Softwarewelt. Tools wie PC-Lint sind seit den 80er Jahren im Einsatz und werden in der Industrie durchaus auch häufig verwendet. Für die Verwendung eines solchen Tools spielt es eigentlich keine Rolle ob Firmware für ein Embedded Target oder Software für…
Getagged mit: , , , ,