Anforderungsmanagement

Erwartete Lesezeit: 3 minuten

In Vorbereitung eines jedes Softwareentwicklungsprojektes oder im Zuge eines neuen Auftrages, müssen die Anforderungen, die die Software erfüllen soll spezifiziert werden. Egal ob im traditionellen Wasserfallmodell oder in der agilen Softwareentwicklung erfolgt die Schätzung basierend auf den Anforderungen der Stakeholder. Hierbei muss man aber sagen, dass ggf. nicht nur der Auftraggeber für die Erstellung und Formulierung zuständig ist. Je nach Unternehmensstruktur und Art der erwarteten Lösung müssen Anforderungen von weiteren Anforderen einfließen. Hier zählen z.B.

  • Projektleitung
  • Betriebseinheiten
  • Anwendungsentwickler
  • anderen Abteilungen wie Security und Infrastruktur

Die Anforderungen werden im Normalfall zu bzw. vor Beginn eines Projekten erstellt. Anhand dieser Anforderungen werden im Anschluss die Kosten geschätzt und die Termin und Laufzeit des Projektes ermittelt. In der Theorie. Aus Erfahrung kann ich sagen , dass die Reihenfolgen meistens anders ist. Meisten wird zuerst der Endtermin festgelegt und anschließend beginnt erst die Anforderungsspezifikation und die Schätzungen.

Was umfasst eine Anforderung

Eine Anforderung bzw. Auftrag umfasst im Regelfall die folgenden Punkte:

Funktionale Anforderungen

Bei den Funktionalen Anforderungen wird beschrieben , was das Produkt nach der Produktivsetzung leisten soll. Die Anforderungen sollten in die folgenden Kategorien eingeteilt werden :

  • Basisfunktionen oder auch Mussfunktionen
    Diese Funktionen müssen auf jeden Fall implementiert werden und zum Releasetermin zur Verfügung stehen
  • Zusatzfunktion
    Diese Funktionen sind zwar nicht optional, aber können auch in einem Folgerelease nachgeliefert bzw. eingeführt werden.
  • Optionale Anforderungen / Nice to Have
    Diese Anforderungen sind zur Nutzung der Software nicht unbedingt notwendig, würden aber dem Anwender z.B. das Leben leichter machen. Diese Anforderungen können auch nachgelagert geliefert werden, sollten aber niedriger als die Zusatzfunktionen priorisiert werden.

Qualitätsanforderungen

Bei den Anforderungen im Bereich Qualität handelt es sind hauptsächlich aus Sicht des Auftragsgebers um Zuverlässigkeit, Sicherheit und Leistung. Von den übrigen Stakeholdern, wie den Betriebseinheiten und Entwickler, können bzw. sollten noch die folgen Anforderungen gestellt werden.

  • Wartbarkeit
  • Wiederverwendbarkeit
  • Flexibilität
  • Portierbarkeit

Weitere Bedingungen

Neben den o.a. Anforderungen sollten noch weitere Randbedingungen berücksichtigt werden:

  • Infrastrukturspezifikationen
    Hier sollte die zu verwendende Infrastruktur beschrieben werden.
    Beispiel: Linux-Server anstatt Windows-Server
  • Terminvorstellungen
    Wie bereits erwähnt kommen viele Anforderungen schon zu Beginn der Anforderungsspezifikation mit einem fixen Einführungstermin. Egal ob man schon weiß, was gemacht werden soll oder nicht.
  • Kostenvorstellungen
    Es kann vorkommen , dass der Auftragsgeber ein max. Budget bzw. die maximalen Betriebskosten nennt.
  • Make or Buy Entscheidungen
    Existiert bereits eine Nutzbare Software auf dem Markt , kann es vorkommen, dass der Auftragsgeber nur die Integration dieser wünscht oder im Zuge der Projektinitiierung eine Abwägung zwischen Eigenentwicklung und Kauf getroffen werden soll.
  • Technologien
    Von den Entwicklern können die zu verwendenden Technologien bereits in der Anforderungsphase festgelegt werden.

Wie erfasst man die Anforderungen ?

1. Ermittlung der Anforderungen

Hier werden die Quellen der Anforderungen festgelegt und die Anforderungen analysiert und klassifiziert. Im Zuge dieser Phase können z.B. Machbarkeitsstudien oder Analysen von Vorgängerprodukten durchgeführt werden.

2. Konsolidierung der Anforderungen

Hier sollten alle Anforderungen auf Korrektheit und Vollständigkeit geprüft werde. Hierbei sollte aber auch kritisch auf die Realisierbarkeit geschaut werden.

3. Verwalten der Anforderungen

Hier sollten alle Anforderungen kommuniziert und an die Projektteilnehmer verteilt werden.

4. Formalienfestlegung

Hier erfolgt die Festlegung, welche Art der Dokumentation genutzt werden sollen. Soll es nur Prosatext geben , oder sollen auch z.B. Use-Case Modelle erstellt werden. Daneben wird auch festgelegt, ob die Dokumentation einem Versionskontrollkonzept unterliegen soll , und wie Dokumente archiviert werden sollen.