Für Ihr Softwareentwicklungsteam ist es wichtig, so viele Informationen wie möglich über Ihr zukünftiges Produkt zu haben, um genaue Schätzungen abgeben zu können.
Manchmal kann eine scheinbar unbedeutende Funktion enorme Auswirkungen auf Ihr Budget und den Zeitplan haben. Aus diesem Grund ist eine detaillierte Spezifikation für jedes kundenspezifische Softwareentwicklungsprojekt von großer Bedeutung.
Was ist eine Spezifikation?
Jeder hat irgendwann in seinem Leben mit der Planung zu tun: Anschaffungen, Reisen, Veranstaltungen, Renovierungen und so weiter. In den meisten Fällen denken wir zuerst an das „große Ganze“ – was wir erreichen wollen, wie viel es kosten wird – aber wir machen uns in der Regel wenig oder gar keine Gedanken über die Details, bevor wir loslegen.
Bei den meisten alltäglichen Dingen ist das keine große Sache: Sie können sich einfach für eine der Optionen entscheiden, die Ihnen angeboten werden (Hühnchen oder Rindfleisch, erste Klasse oder Reisebus, erste Reihe oder Balkon, usw.).
Manchmal stehen Sie jedoch vor einem Szenario, in dem Ihre Optionen nicht ganz so klar sind: Sie brauchen eine maßgeschneiderte Lösung für Ihre speziellen Bedürfnisse, und wenn Sie ohne eine ohne eine klare Vorstellung davon, was genau Sie wollen oder brauchen, ist ein todsicheres Rezept, um weit hinter dem Zeitplan und weit über dem Budget zu landen.
Diese Vision, die in einem Dokument festgehalten wird, ist die Spezifikation für Ihr Projekt.
Beispiele aus dem Leben
- Nehmen wir an, Sie möchten einen Online-Shop einrichten. Sie haben bisher nur die Hauptseite entworfen, möchten aber abschätzen, wie viel die Entwicklung einer solchen Website kosten würde… Alle Seiten, die Sie benötigen, sind vollkommen standardisiert (Kategorien, Suche, Warenkorb usw.), die Designvorlage ist vollständig… auf den ersten Blick scheint es, als ob Ihre Entwickler alles wissen müssten, um einen Kostenvoranschlag zu erstellen, aber wie sieht eine Produktseite aus? Aber wie sieht eine Produktseite aus? In welchem Format sollen die Suchergebnisse erscheinen? Wenn Sie Ihren Entwicklern nicht die Antworten geben, die sie für eine genaue Schätzung benötigen, könnten Sie später eine teure Überraschung erleben.
- Oder nehmen wir an, Sie wollen eine mobile App zum Einstellen von Bildern entwickeln – das kann doch jeder, oder? Aber es macht einen großen Unterschied, ob Sie die Bilder auf dem Handy des Nutzers oder auf einem Server hosten wollen.
- Oder Sie haben bereits eine Website oder App, die Sie optimieren möchten: ein paar neue Funktionen hinzufügen, die Benutzeroberfläche aktualisieren usw. Wundern Sie sich nicht, wenn Ihr neues Entwicklungsteam fragt, welche Technologien bei der Entwicklung verwendet wurden, oder wenn es Login-Daten benötigt. Wenn Sie keine Antworten auf diese Fragen haben, wird Ihr Projekt nicht vorankommen.
- Oder nehmen wir an, Sie möchten eine neue Anwendung entwickeln, die einer bestehenden ähnelt. Sie könnten erwarten, dass es einfach wäre, auf Beispiele zu verweisen und Ihrem Entwicklungsteam zu sagen: „Ich möchte so etwas haben“, aber Sie können sich wahrscheinlich denken, dass das nicht so einfach ist. Sie müssen genau angeben, wodurch sich Ihre App von den anderen unterscheidet, und diese Unterschiede werden sich auf den endgültigen Kostenvoranschlag auswirken, selbst wenn es sich nur um eine zusätzliche Seite oder ein zusätzliches Menü handelt.
- Oder nehmen wir an, Sie möchten eine Art von Social-Media-Integration in Ihr Produkt integrieren, wie es viele Apps und Websites heutzutage tun. Das müssen Sie Ihren Entwicklern von vornherein klar machen. Und wenn Sie die Möglichkeit haben möchten, sich über Twitter oder Facebook anzumelden und dort auch Beiträge zu veröffentlichen, ist das ein weiterer Punkt für den Kostenvoranschlag.
Wenn Sie Feeds, Aktualisierungen, Diagramme oder Nachrichten auf bestimmten Seiten oder Oberflächen anzeigen möchten, müssen Ihre Entwickler wissen, woher die angezeigten Daten stammen sollen oder welche Benutzer/Administratoren usw. in der Lage sein sollen, sie zu erstellen.
Es ist kein Geheimnis, dass Entwickler auf einem völlig anderen Spielfeld agieren, wenn sie die Anforderungen ihrer Kunden berücksichtigen. Wenn Sie sagen: „Ich möchte, dass meine Nutzer mich über meine Website kontaktieren können“, hören sie „Kontaktformular, Absenden, Mailserver, Validierung“ – für den technisch nicht Versierten klingt das fast wie eine Fremdsprache, nicht wahr? Aus diesem Grund sprechen Sie nicht direkt mit den Entwicklern, sondern kommunizieren mit ihnen in der Regel über Business-Analysten und, ja, über Ihre Spezifikation. Betrachten Sie die Spezifikation als einen Stein von Rosetta, der es Entwicklern und Kunden ermöglicht, sich gegenseitig zu verstehen.
Schließlich ist es wichtig, die Anwendungsfälle für Ihr Produkt zu beschreiben: Wer wird es nutzen, welche Funktion wird es für sie haben, was erwarten die Nutzer davon usw. Wenn Ihr Entwicklungsteam ein solides Bild davon hat, wer Ihr Produkt nutzen soll und warum, ist es wahrscheinlicher, dass es mit Ihnen auf derselben Seite steht und weniger von Ihrer Vision abweicht.
Arten von Anforderungen
Brainstorming-Notizen
Dies ist der erste Entwurf der Spezifikation, in der Regel in Form von kurzen Notizen und Schnittstellenskizzen. Es handelt sich dabei um eine grobe, allgemeine Beschreibung der Idee in ihrer embryonalen Form, bevor die meisten Details ausgearbeitet sind.
Beispiel-basierte Anforderungen
Diese Anforderungen bestehen aus Links oder anderen Beispielen, die ähnliche Anwendungen oder Produkte wie das zu entwickelnde Produkt zeigen.
Geschäftliche Anforderungen
Dies sind allgemeine Anforderungen, die das Konzept und den Zweck der Anwendung sowie ihre allgemeine Funktionalität beschreiben, ohne auf technische Details einzugehen.
Funktionale Anforderungen
Hierbei handelt es sich um technische Anforderungen auf niedriger Ebene, die für die Entwickler das absolute Minimum darstellen, um Schätzungen vornehmen und mit der Entwicklung beginnen zu können.
Anwendungsfälle
Um den zukünftigen Nutzer der App besser zu verstehen, ist es für Entwickler und Architekten wichtig, die wichtigsten Nutzungsszenarien der App zu kennen, die von verschiedenen Nutzertypen ausgeführt werden. Es gibt keine festen Regeln dafür, wie detailliert diese Anforderungen sein sollten, aber je mehr Informationen Sie hier bereitstellen, desto besser wird das Endprodukt sein.
Warum ist das so wichtig?
Um den Zeit- und Kostenaufwand für die Entwicklung eines Projekts abschätzen zu können, müssen Sie die Anforderungen formalisieren, d. h. in eine Spezifikation umsetzen. Dieser Prozess ist zwar oft mühsam und zeitaufwändig, aber er ist unerlässlich, um sicherzustellen, dass die Beschreibung Ihres Projekts – egal wie abstrakt sie ist – in etwas umgewandelt wird, das Ihr Anbieter versteht und mit dem er genau das entwickeln kann, was Sie wollen, ohne dass es zu Fehlern oder Missverständnissen kommt.
Der erste Schritt beim Verfassen einer Spezifikation besteht darin, die grundlegenden Komponenten Ihres Projekts zu bestimmen, für die Sie Kostenvoranschläge benötigen. Eine typische Liste von Komponenten für einen Online-Shop sieht zum Beispiel so aus:
- Registrierung/Login/Benutzerkonto;
- Einkaufswagen;
- Produktkategorien;
- Produktseite;
- Zahlungssystem(e);
- Verwaltungsbereich.
Der nächste Schritt besteht darin, die Details der einzelnen Komponenten zu beschreiben. Angenommen, Sie möchten, dass neue Benutzer nach der Registrierung einen Gutscheincode erhalten, oder Sie möchten, dass die Kategorienliste animiert wird – das sind Dinge, die in Ihrer Spezifikation enthalten sein müssen. Es ist auch hilfreich, wenn Sie Wireframes (d. h. Beispiel-Layouts) der Seiten auf Ihrer Website oder der Bildschirme auf Ihrer App bereitstellen, damit die Entwickler eine bessere Vorstellung davon haben, welche Elemente Sie wünschen und wie sie angeordnet werden sollen.
So sieht ein Wireframe aus.
Wenn Sie Ihr Konzept in Form einer Spezifikation formulieren, erhalten Sie eine klarere Vorstellung davon, was Sie wollen. Die Aufteilung Ihres Projekts in Komponenten hilft Ihnen zu verstehen, welche Elemente Sie in Ihrer ersten Version unbedingt benötigen und welche bis später warten können. In vielen Fällen ist es einfach sinnvoller, nur mit der Kernfunktionalität zu beginnen und zusätzliche Funktionen nach und nach hinzuzufügen. So könnten Sie beispielsweise Ihren Online-Shop ohne die Funktion starten, mit der neue Benutzer Gutscheine erhalten, und diese erst einige Monate später als Bonus für Ihre Kunden einführen. Auf diese Weise können Sie Ihr Budget besser ausnutzen und die Kundenbindung verbessern – eine Win-Win-Situation, wenn es je eine gab!
Die Spezifikation der Softwareentwicklung ist entscheidend für die Interaktion mit
Ihrem Entwicklungsteam und die Behebung von Problemen. Wenn etwas in Ihrem Produkt nicht implementiert wurde, liefert Ihre Spezifikation einen eindeutigen Beweis.
Nicht-technische Beschreibung
Beschreiben Sie den Zweck des Projekts und wer seine Endnutzer sein sollen. Beschreiben Sie auch, wie sich Ihr Projekt von ähnlichen Projekten unterscheidet, falls vorhanden.
Komponenten von Drittanbietern
Beschreiben Sie alle Komponenten von Drittanbietern, die Sie in Ihr Produkt integrieren möchten, z. B. soziale Medien, Analysefunktionen von Drittanbietern, Karten usw.
Design / Wireframe / Beschreibung der Seiten/Bildschirme
Ihre Entwickler benötigen klare Beschreibungen aller Komponenten, die in Ihr Projekt einfließen sollen. Je mehr Informationen Sie zur Verfügung stellen, desto genauer wird der Kostenvoranschlag sein, den Sie erhalten. Sie sollten Informationen über jede Schnittstelle bereitstellen, die Ihr Produkt haben soll. Wenn Ihr Produkt mehrere Formulare/Seiten/Bildschirme desselben Typs haben wird, müssen Sie diese nicht einzeln beschreiben, sondern nur angeben, wie viele es geben soll. Schnittstellen mit tatsächlicher Funktionalität (Formulare, Rechner usw.) müssen ausführlicher beschrieben werden als Formulare mit rein statischem Inhalt (z. B. „Über uns“). Zusätzlich zu den Entwürfen und Beschreibungen sollten Sie auch erklären, wie die Elemente miteinander interagieren sollen – die „Geschäftslogik“ hinter Ihrem Produkt.
Technologien
Informieren Sie das Entwicklungsteam über alle Technologien, die Sie verwenden möchten (oder nicht verwenden möchten).
Beschreibung bestehender Komponenten
Wenn Sie ein bestehendes Produkt haben, das Sie in irgendeiner Weise ändern möchten (z. B. Umgestaltung, zusätzliche Funktionen usw.), benötigt Ihr Entwicklungsteam alle Informationen, die Sie ihm zur Verfügung stellen können: Technologien, Dokumentation, Quellcode, alles.
Schnelle Fragen und Antworten
Warum muss ich eine Spezifikation vorlegen?
Je detaillierter Sie Ihr Projekt beschreiben, desto geringer ist die Wahrscheinlichkeit, dass Ihr Entwicklungsteam bei seiner Schätzung etwas unter- oder überschätzt. Für alles, was in Ihrer Spezifikation unklar ist, müssen Sie später möglicherweise Zeit und Geld aufwenden, entweder um zu klären, was Sie wollten, oder um Probleme zu lösen, die anfangs nicht offensichtlich waren. Wenn Sie von Anfang an klare Anforderungen haben, können Sie mehr Zeit und Geld für Ihr Projekt aufwenden und müssen sich weniger mit Details herumschlagen. Wenn Sie jedoch technisch nicht so versiert sind oder eine Expertenmeinung einholen möchten, müssen Sie möglicherweise mehr Geld für einen IT-Berater ausgeben, um sicherzustellen, dass Ihre Anforderungen nicht nur klar, sondern auch angemessen sind.
Aber was ist, wenn ich noch nicht alle Details kenne?
Das ist kein Problem! Teilen Sie Ihrem Anbieter einfach alles mit, was Sie über die Anforderungen wissen. Business-Analysten können auch mit minimalen Anforderungen umgehen, und Berater werden Ihnen alle Fragen stellen, die nötig sind, um die Lücken zu füllen. Je weniger Details Sie zu Beginn haben, desto länger dauert der Prozess, aber das Endergebnis ist dasselbe: ein detaillierter Kostenvoranschlag mit einem klaren Budget und Zeitplan. Wenn Ihr Projekt jedoch ziemlich groß ist und die Zeit knapp ist, können Sie ein Team beauftragen, das mit minimalen Anforderungen an die Arbeit beginnen kann.
Warum sollte man ein Projekt nicht ohne eine Spezifikation durchführen?
Wenn Sie die Entwicklung nur mit einer allgemeinen Skizze Ihres Produkts beginnen, ohne die Details zu klären, stehen die Chancen gut, dass das fertige Produkt nur wenig Ähnlichkeit mit Ihrem Konzept haben wird: Ihr Entwicklungsteam kann Ihre Gedanken nicht lesen; es kann sich nur an das halten, was Sie in der Spezifikation niedergeschrieben haben, und alles, was Sie nicht in der Spezifikation niedergeschrieben haben, kann es auf seine eigene Weise interpretieren. Noch schlimmer ist, dass Sie nicht beweisen können, dass sie nicht die von Ihnen gewünschte Anwendung entwickelt haben, weil Sie Ihre Anforderungen nicht im Detail niedergeschrieben haben.
Was ist das absolute Minimum, das meine Spezifikation enthalten sollte?
Zumindest muss Ihre Spezifikation die grundlegenden Anforderungen an Ihr Produkt enthalten, wie z. B:
- Beschreibungen/Designs aller Formulare/Seiten/Bildschirme;
- Bevorzugte/erforderliche Dienste/Bibliotheken von Drittanbietern (z.B. REST, Google Apps, PayPal, etc.);
- Detaillierte Beschreibungen der gesamten Geschäftslogik: Formeln, Diagramme, Funktionen usw.
(Beachten Sie, dass „Geschäftslogik“ nicht unbedingt etwas mit „Geschäft“ zu tun hat; die Gewinnbedingungen eines Spiels beispielsweise zählen zur „Geschäftslogik“)
Unsere Erfahrung
DER PROZESS
Wir wissen, wie wichtig eine detaillierte Spezifikation ist – aber wir wissen auch, dass es für unsere Kunden nicht immer einfach ist, eine solche Spezifikation selbst zu erstellen. Deshalb haben wir Spezialisten in unserem Unternehmen, die sich hervorragend mit der Erstellung von Spezifikationen auskennen. Wir helfen Ihnen gerne dabei, Ihr Projekt zu formalisieren und eine angemessene Dokumentation zu erstellen. Wir nehmen die Erstellung von Spezifikationen sehr ernst, um sicherzustellen, dass unsere Kunden immer einen möglichst genauen Kostenvoranschlag erhalten.
Wir können mit verschiedenen Arten von Anforderungen arbeiten:
- Brainstorming-Notizen;
- Beispielbasierte Anforderungen;
- Geschäftliche Anforderungen;
- Funktionale Anforderungen;
- Anwendungsfälle.
Wenn in den Anforderungen irgendwelche Informationen fehlen, schicken wir dem Kunden eine Liste mit Fragen zur Klärung. Wir versuchen, nichts Wichtiges zu übersehen, aber wir wissen auch, dass niemand 60 Seiten technische Beschreibung verdauen möchte, besonders nicht in der frühen Phase der Projektplanung. Deshalb versuchen wir, die Spezifikationen kurz und in leicht verständlicher, nicht-technischer Sprache zu verfassen. Außerdem schicken wir alle Spezifikationen vor Beginn der Arbeit zur Genehmigung an den Kunden.
Das heißt aber nicht, dass wir technische Diskussionen gänzlich vermeiden: Wir können unseren Kunden auch Vorschläge für die optimale Umsetzung bestimmter Funktionen unterbreiten oder die Verwendung bestimmter Technologien empfehlen.
Der Prozess sieht in der Regel wie folgt aus:
- Der Kunde versorgt uns mit allen Informationen über das Projekt;
- Wir stellen Fragen zu Funktionen und Komponenten, die den Kostenvoranschlag beeinflussen könnten;
- Wenn keine Spezifikation vorliegt, erstellen wir mit Zustimmung des Kunden eine solche;
- Wir erstellen den endgültigen Kostenvoranschlag.
Kontakt aufnehmen
Benötigen Sie Hilfe bei Produktanforderungen und -spezifikationen? Die Business-Analysten von Redwerk haben viel Erfahrung in diesem Bereich für alle Arten von Projekten, und wir stellen immer sicher, dass Ihre Produktspezifikation genau das ist, was Sie bauen wollen.
Kontaktieren Sie uns jetzt für eine kostenlose Anforderungsanalyse!
Projekte, die wir durchgeführt haben
Hören Sie von unserem Kunden
«Als wir auf eine Hardware mit einem undokumentierten Protokoll zugreifen mussten, haben wir uns an Redwerk gewandt, und sie haben es geschafft. Als wir eine umfangreiche Webanwendung benötigten, haben wir uns wieder an Redwerk gewandt, und sie haben es geschafft. Als wir intime Kenntnisse über verschiedene Betriebssysteme brauchten, gingen wir zu Redwerk, und sie haben es wieder geschafft. Das ist sehr beruhigend. Was glauben Sie, an wen wir uns bei unserem nächsten anspruchsvollen Projekt wenden werden?» — Darius Popa, Inhaber von DigitAIR
Über Redwerk
Redwerk ist ein Offshore-Softwareentwicklungsunternehmen mit einer beeindruckenden Erfahrung in der Bereitstellung von ausgelagerten Softwareentwicklungsdienstleistungen weltweit für Unternehmen verschiedener Branchen und Größen, wie Startups & Innovation, E-Government, Geschäftsautomatisierung, Gesundheitswesen, E-Commerce, Medien & Unterhaltung, Data Mining, Spieleentwicklung. Das Team von engagierten Outsourcing-Entwicklern bietet eine breite Palette von Web-, Mobile- und Desktop-App-Entwicklung sowie Code-Review-Services. Redwerk verfügt über Experten mit echter praktischer Erfahrung in den Bereichen Produktentwicklung, UI/UX-Design, Qualitätssicherung und Software-Wartung, was eine absolute Qualität des Ergebnisses garantiert.