So formulieren Sie Anforderungen an ein IT Projekt
Für uns IT Unternehmen ist es oft schwer zu verstehen, was denn eigentlich die Anfragenden genau möchten. Der Grund liegt meist darin, dass es ein Kommunikationsproblem gibt. Die meisten wissen nicht genau, welche Informationen wir brauchen, um effizient zu arbeiten. Und wir als IT Unternehmen wollen auf der anderen Seite auch nicht zu aufdringlich sein.
Jedoch benötigen IT Unternehmen und Agenturen bestimmte Details des Projektes, sei es App-, Onlineshop- oder Software-Projekte, um gute Lösungen vorschlagen zu können.
In diesem Beitrag schreibe ich daher darüber, wie Anforderungen an ein IT Projekt formuliert werden können, so dass es für den Empfänger einfacher ist, das Projekt einzuordnen.
Wer ist der Anfragende?
Um einen ersten Einblick über das Projekt zu bekommen, kann es sinnvoll sein, zu beschreiben, wer der Anfragende überhaupt ist. Folgende Fragen können im Anforderungspapier stehen:
- Wer sind wir? (zum Beispiel: Stahlverarbeitendes Unternehmen, gegründet im Jahr 1976, Kaptialgesellschaft)
- Wo ist unser Firmensitz?
- Wieviele Mitarbeiter haben wir?
- Wieviel Umsatz haben wir im Jahr?
- Wieviele Standorte gibt es?
Grundinformationen zum Projekt
Auch hier geht man noch nicht auf das eigentliche Projekt ein, sondern umschreibt die weiteren Informationen, welche für das Projekt gelten.
- Wie hoch ist das Budget?
- Wer sind die Projektverantwortlichen?
- Warum soll das Projekt umgesetzt werden?
- Bis wann soll das Projekt fertig gestellt werden und was ist der Grund warum es bis dahin fertig gestellt werden soll?
Thema Budget
Beim Thema Budget, sind die meisten vorsichtig, da man die Befürchtung hat, dass das Angebot dem Budget angepasst wird. Der Gedanke liegt nahe „Wenn ich das Budget nicht nenne, dann bekomme ich es eventuell günstiger.“
Die Problematik liegt hierbei, dass ein Projekt auf verschiedenste Weisen ausgeführt werden kann. Man kann unterschiedliche Technologien, unterschiedliche Softwareentwicklungsprozesse, unterschiedliche Experten und noch viele weitere unterschiedliche Ansatzpunkte für das Projekt einsetzen. Jedoch hat alles das, einen Einfluss, auf den Aufwand für den Auftrag.
Weiss das IT Unternehmen also das Budget nicht, dann kann es nur schwer eine Aufwandskalkulation machen, welche auch dem Auftraggeber passt.
Weiss das Unternehmen oder die Agentur zum Beispiel, dass nur ein sehr geringes Budget X für diesen Auftrag bestehen, dann kann es von Anfang an, auf zum Beispiel, eine aufwendige Konzeption oder ein elaborates Design verzichten. Auch können weitere Ansatzpunkte gefunden werden, um das Projekt im vorgegebenen Budget zu entwickeln.
Ohne das Wissen über das Budget, ist das wie ein Dart-Spieler, der seinen Pfeil mit verbundenen Augen auf eine Dartscheibe wirft. Er kann zwar werfen, ob er trifft, ist in diesem Fall (ohne das Budget zu wissen) Zufall.
Nennen Sie also das Budget, welches Sie bereit sind, für dieses Projekt zu verwenden. Das wird eine optimale Ausgangssituation für alle Parteien bedeuten.
Die Softwareanforderung selbst
Jetzt kommt ein weiterer interessanter Teil. Die Anforderungen an die Software.
Es ist so, dass die meisten von uns wenig Interesse am Thema „Schreiben“ haben. Daher machen wir die Erfahrung, dass für die meisten Software-, Onlineshop- oder App-Projekte keine Anforderung in Schriftform besteht.
Es gibt jedoch einige Punkte, warum eine Anforderung in Schriftform so sinnvoll ist:
- Jeder im Team, sei es auf Kundenseite (Projektmanager, Auftraggeber, etc.) oder IT Unternehmen (Softwareprogrammierer, IT Projektleiter, Management, etc.), kann die Anforderung bei Fragen hervorholen, und diese im Detail nachlesen.
Falls diese Beschreibung nicht besteht, dann werden die gleichen Fragen, in alle Richtungen (Projektmanager zu Programmierer, Programmierer zu Auftraggeber, Management zu Projektleiter, etc.) gestellt, und die Fragen werden meistens nur zum Teil, oder gar unterschiedlich beantwortet. Was wiederum nur zu einem schlussendlich schlechten Software Code führt.
Mit einer Anforderungen die im Detail in Schriftform beschrieben ist, sind alle Projektbeteiligten, wie man im Englischen so schön und passend sagt „On the same Page“, d.h. alle lesen und verstehen das Gleiche.
- Am Anfang niedergeschriebene Punkte können relativ einfach, während der Erstellung des Dokumentes, umgeschrieben werden.
Zum Beispiel könnte der Programmierer schreiben: „Die Software soll eine Datei in eine PDF Datei umwandeln“. Nach dem Gegenlesen, merkt der Auftraggeber, das da etwas fehlt und schreibt das um als „Die Software soll eine Datei in eine PDF umwandeln, der Nutzer hat optional die Möglichkeit die Datei in eine Excel Datei umzuwandeln.“ Daraufhin kann wiederum der Programmierer seinen Input zu diesem Satz geben. Eventuell ist das ja so, nicht einfach umsetzbar.
Jetzt könnte man sage: So ein hin und her ist ziemlich zeitaufwendig.
Was man hierbei jedoch vergisst ist, was wäre wenn der Programmierer die Anforderung, so wie er sie am Anfang verstanden hat, umsetzt. Das heisst, „Die Software soll eine Datei in eine PDF Datei umwandeln“. Erst nach der umgesetzten Software wird der Auftraggeber feststellen, das etwas fehlt. Die Iterationen im Software-Code umzusetzen, kann mehrere Tage oder gar Wochen, mit den verbundenen Kosten, dauern.
Auf der anderen Seite lässt, sich in einer, zum Beispiel, Word Datei, die Anforderung sehr einfach mit der Rücktaste löschen und erneut schreiben.
Es ist also schon ein Unterschied, ob man Tage oder Wochen programmiert, was ja auch bezahlt werden muss, oder ob man die Anforderung relativ schnell in einem Text-Editor ausbessert und erst nach der Beschreibung der Anforderungen an die Software, mit dem Programmieren anfängt.
- Die Anforderungen können, durch die schriftliche Beschreibung, zeitlich besser, vom IT Unternehmen eingeschätzt werden.
Die Anforderung „Die Software soll eine Datei in eine PDF umwandeln“ benötigt eventuell 4 Stunden. Die Anforderung „Die Software soll eine Datei in eine PDF umwandeln, der Nutzer hat optional die Möglichkeit die Datei in eine Excel Datei umzuwandeln.“ benötigt eventuell 8 Stunden.
Ohne diese Aufstellung wird sich der Kunde auch fragen, warum er denn jetzt 8 Stunden Aufwand zahlen soll, wenn er oder sie vielleicht nur die erstere Anforderung, welche 4 Stunden dauert, umgesetzt haben will.
Daher schafft eine genau beschriebene Anforderung auch Vertrauen zwischen den Parteien.
- Auch ein Zeitplan kann aufgrund der Beschreibung erstellt werden.
Es wird dem IT Unternehmen gut möglich sein, einen Zeitplan zu erstellen, und diesen auch einzuhalten, wenn die Beschreibung genau vorgenommen wurde.
Auf der anderen Seite, kann man ein IT Unternehmen, nicht darauf hinweisen, dass der Zeitplan nicht eingehalten wird, wenn von Anfang an gar nicht feststeht, was zu entwickeln ist.
- Das Testteam kann die Beschreibung nutzen, um zu Wissen, welche Funktionalitäten es zu prüfen gibt.
Ohne die Beschreibung, müssen die Tester immer wieder beim Programmierer oder beim Programmierteam nachfragen, welche Funktionalitäten es nun zu testen gibt. Hiermit werden auch die Programmierer nicht zufrieden sein, denn sie möchten nicht immer wieder in ihrer Arbeit gestört werden.
Dieses ständige Nachfragen vom Test-Team kann auch zu internen Konflikten führen, denn die Entwickler werden sich höchstwahrscheinlich an das Management richten, und Nachfragen, weniger Fragen vom Test-Team zu bekommen. Dies führt wiederum zu einer Negativ-Spirale. Wenn sich die Tester nicht mehr trauen, oder nicht mehr in der Lage sind, bei den Programmiereren nachzufragen, dann werden die Tests nicht vollständig und gut durchgeführt, was zu vielen Fehlern im schlussendlichen Software-Code und zu Frustration beim Auftraggeber und bei den Nutzern der Software führt.
Durch eine Niederschrift der Anforderungen, können die Tester, anstatt an die Entwickler heranzutreten, einfach die Beschreibung lesen, und genau wissen, was zu testen ist und was nicht.
- Spätere Änderungen werden durch die genaue Beschreibung einfacher möglich.
Software ist meistens nicht statisch, dass heisst, nach einer Weile möchte man den Software-Code erweitern, so dass es weitere Funktionalitäten abdeckt. In dem bisherigen Beispiel könnte eine weitere Funktionalität sein „Die Software soll nun auch Bild Dateien in JPEG Dateien umwandeln“.
Wenn das jetzige IT Unternehmen, oder ein anderes IT Unternehmen, die frühere Beschreibung liest, dann weiss es, was bereits umgesetzt wurde, und welche Anforderungen nun umgesetzt werden müssen.
Fazit
Viele Auftraggeber scheuen sich, eine genaue Beschreibung der Anforderungen zu erstellen. Dies liegt an verschiedensten Gründen:
a) Scheu vor dem Schreiben – Schreiben gefällt den wenigsten, auch erfahrenen Managern oder anderen Personen
b) Keine Zeit – Man möchte sich die Zeit nicht nehmen, um die Anforderungen zu formulieren. Man hat das Gefühl, das sei Zeitverschwendung. Der Gedanke liegt nahe „In der Zeit könnte die Programmierung schon beginnen, und dann sind wir schneller am Ziel“
Das sind natürlich nicht die einzigen Gründe, für das nicht Schreiben der Spezifikationen. Jedoch sind dies, unserer Meinung nach, die Hauptgründe.
Falls es „Scheu vor dem Schreiben gibt“ sollte man Anfangen, sich das Schreiben anzugewöhnen. Dies kann man zum Beispiel durch einen Blog schaffen, aber auch Briefe an Verwandte und Freunde können ein Einstieg sein, um sich diese Angewohnheit anzueignen.
Der Punkt „Keine Zeit“ wurde bereits im Beitrag erwähnt. Durch die anfänglich „gesparte“ Zeit, wird das Projekt selbst, sehr komplex, und der Aufwand, das Projekt umzusetzen, steigt oftmals um ein vielfaches.
Nehmen Sie sich also die Zeit die Anforderungen genauestens, oder zumindest so genau wie möglich zu beschreiben, bevor Sie ein IT Projekt starten. Dadurch sparen Sie sich Zeit, Geld, Nerven und sind gleichzeitig besser für die Zukunft gerüstet.
Was ist Ihre Erfahrung mit der Formulierung von Anforderungen an App-, Onlineshop- oder Softwareprojekte? Ich freue mich auf einen Austausch.
Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt und Softwareprojekte abwickelt.
Punkt b) im Fazit finde ich ganz wichtig!
Vielen Dank für diesen Beitrag zu den Anforderungen an ein IT-Projekt. Gut zu wissen, dass man zunächst mit den Grundinformationen wie Budget und Projektverantwortlichen beginnen sollte. Ich möchte mich in einem IT-Systemhaus bewerben und wollte mich daher zu solchen Themen belesen.