Analyse des Auftrags und der Preisgestaltung bei der Entwicklung von Softwareprojekten
9. September 2024Es kommt häufig vor, dass mir ein potenzieller Kunde ein Dokument schickt und von mir erwartet, dass ich auf dieser Grundlage einen Kostenvoranschlag erstelle. Ich habe in Unternehmen gesehen, dass einige Verkäufer wahrscheinlich die Würfel rollen lassen und dem Anfragenden irgendeinen Betrag nennen, um den potenziellen Kunden glücklich zu machen. Ich mache aber nur qualifizierte Kostenvoranschläge, und dafür muss man genügend Hintergrundwissen haben und sich über andere Dinge Gedanken machen... Ich habe nirgendwo ein klar beschriebenes Verfahren gefunden, wie man eine gute Analyse durchführt und keine Preise für ein Projekt festlegt. Daher werde ich in diesem Artikel Informationen darüber weitergeben, wie ich eine Analyse und eine Preiskalkulation durchführe.
Zunächst müssen wir uns darüber im Klaren sein, worüber wir hier sprechen. Es geht darum, wie man ein Softwareprojekt, das kundenspezifisch entwickelt wird, kompetent einschätzen kann. Es geht nicht um den Verkauf einer fertigen Sache/Software wie beim Verkauf von Raupen/Telefonen/Lizenzschlüsseln.
Preisgestaltung
Die Bewertungen für Gebäude zum Beispiel sind sehr gut. Vorausgesetzt natürlich, dass sich der Markt nicht ändert und damit auch die Preise für Material und Arbeit. Wenn Sie zum Beispiel eine Zentralheizung bestellen, können Sie sehr genau nachdem Sie das Haus besichtigt und vermessen haben, um die Menge des benötigten Materials zu bestimmen (dies ist die Analyse des benötigten Materials) und eine erfahrene Person wird auf der Grundlage früherer Erfahrungen bei der Durchführung eines ähnlichen Projekts den Preis schätzen, der in erster Linie auf den Preislisten der Materialien und der benötigten Zeit beruht. Bei einer solchen Schätzung werden ein gewisses Risiko und ein gewisser Gewinn hinzugerechnet, und als Ergebnis wird dem Antragsteller ein Kostenvoranschlag unterbreitet.
Sonderentwicklung
Bei der kundenspezifischen Softwareentwicklung ist jedes Projekt anders, auch wenn es gleich oder sogar ähnlich ist,
kann man eine Lösung von der Stange oder eine vorgefertigte Basis verwenden.
Ein typisches Beispiel sind Eshops. Man nimmt eine vorgefertigte Lösung, modifiziert die Einstellungen, ändert das Aussehen und programmiert sie neu.
kleinere Funktionen.
Oder man mietet einen eshop als Service, bei dem man die gleichen Funktionen wie andere hat.
Allerdings kann nichts angepasst werden.
Maßgeschneidert ist heute die optimale Art, die Projektentwicklung zu managen:
Agile Entwicklung, bei der Kostenschätzungen nicht einmal angesprochen werden müssen
oder indikativ sind.
Im Falle einer Festpreisanfrage müssen Sie jedoch eine Schätzung abgeben.
Schätzungen, ob zu Preis, Zeit oder Komplexität, können in der agilen Entwicklung nützlich sein.
Typischerweise, wenn Sie ein großes Projekt entwickeln, von dem der zukünftige Betrieb des Unternehmens abhängt, oder eine indikative Schätzung für die Implementierung einiger wichtiger kritischer Funktionen in der Anwendung.
Schritte einer fundierten Schätzung
Jemand macht wahrscheinlich Kostenschätzungen aus einer Kristallkugel. Eine qualifizierte Preisschätzung lässt sich jedoch besser machen, es erfordert nur etwas Arbeit. Befolgen Sie einfach ein paar Schritte. Gleichzeitig stellen diese Schritte sicher, dass das Endprodukt den Bedürfnissen des Kunden entspricht.
Je größer das Projekt ist, desto komplexer wird es und desto größer ist die Wahrscheinlichkeit und das Ausmaß des Risikos, dass etwas etwas falsch eingeschätzt wird, etwas falsch gemacht wird oder sogar etwas vergessen wird. Und bei einem größeren Projekt sind auch die Anpassungen größer, um es zu Ende zu bringen oder es richtig zu machen. Daher steigt mit einem größeren Projekt die Notwendigkeit einer ersten Analyse grundsätzlich an und sie muss auch detaillierter und sorgfältiger durchgeführt werden.
Eine Liste von Schritten, die unternommen werden müssen, um Informationen zu liefern, die den Auftrag klar spezifizieren:
- Anforderungserhebung und -analyse
- Aufstellen und Dokumentieren der Anforderungen
- Erstellung der technischen Spezifikation
- Überprüfung und Freigabe
Anforderungserhebung und -analyse
Treffen Sie sich mit dem Kunden und besprechen Sie seine Bedürfnisse. Finden Sie heraus, welche Probleme er lösen will, was seine Ziele und Erwartungen sind. In dieser Phase ist es wichtig, viele Fragen zu stellen, um den Kontext und die Gründe für die Erstellung der Anwendung zu verstehen.
Wenn es sich um ein größeres Projekt handelt, an dem mehrere Parteien beteiligt sind, kann es sinnvoll sein, eine Gruppensitzung abzuhalten, in der alle Beteiligten ihre Bedürfnisse und Ideen äußern können. Neben den Managern sollte auch ein normaler Mitarbeiter des Unternehmens teilnehmen, der mit der Tätigkeit persönlich vertraut ist, und damit häufig die Person, die die Funktionen der Anwendung nutzen wird.
Analysieren Sie bestehende Lösungen im Unternehmen und auf dem Markt.
Wenn bereits ein System vorhanden ist, das durch die neue Anwendung ersetzt oder ergänzt werden soll,
Analysieren Sie dessen Funktionalität und ermitteln Sie Probleme oder verbesserungswürdige Bereiche.
Untersuchen Sie, ob es ähnliche Anwendungen auf dem Markt gibt und welche Funktionen oder Merkmale für Ihr Projekt geeignet sein könnten.
Nutzen Sie Ihr Projekt.
Vielleicht stellen Sie sogar fest, dass eine Anwendung mit der gewünschten Funktionalität bereits existiert und es nicht nötig ist, Ressourcen (Geld, Zeit) zu verschwenden für
eine neue Lösung von Grund auf zu implementieren,
Aber es ist möglich, eine bestehende Lösung zu übernehmen und sie für Ihre speziellen Bedürfnisse zu modifizieren.
Auf diese Weise lassen sich erhebliche Kosten einsparen, die Anlaufzeit verkürzen und die mit der Entwicklung maßgeschneiderter Software verbundenen Risiken verringern.
Analyse ist eine wissenschaftliche Methode, die auf der Zerlegung eines Ganzen in elementare Teile beruht, eine Methode
zur Untersuchung komplexerer Sachverhalte durch Auflösung in einfachere, grundlegende Einheiten.
Ziel der Analyse ist es, die wesentlichen und notwendigen Eigenschaften der elementaren Teile des Ganzen zu erkennen, ihr
ihr Wesen und ihre Gesetzmäßigkeiten zu erkennen. Die Analyse ist auch eine Interpretationsmethode, wenn wir die einzelnen
Phänomene trennt und sie isoliert betrachtet.
(Das Gegenstück zur Analyse ist die Synthese. Die Synthese führt zur Schaffung neuer Ganzheiten.)
Das Ergebnis der Analyse in Informationssystemen ist vor allem ein Verständnis der Logik.
Und damit die Gewinnung erster Annahmen für die Implementierung eines Systems oder die Optimierung eines bestehenden Systems.
Finden Sie die kritischen Punkte!
Kritische Punkte in einem Projekt sind Schlüsselmomente, in denen schwerwiegende Probleme auftreten können oder in denen es entscheidend ist, wie sich das Projekt entwickeln wird. Sie zu identifizieren und zu managen, erhöht den Erfolg des Projekts.
Erstellen Sie einen Zeitplan für das Projekt und ermitteln Sie die wichtigsten Termine (z. B. Abschluss einer Phase, Genehmigung des Kunden).
Analysieren Sie die Abhängigkeiten zwischen den Aufgaben. Jede Aufgabe kann von anderen Aufgaben abhängig sein. Wenn eine Aufgabe in Verzug gerät, kann dies Auswirkungen auf das gesamte Projekt haben.
Verwenden Sie ein Gantt-Diagramm oder die Critical Path Method (CPM), um zu visualisieren, wie die verschiedenen Aktivitäten miteinander verbunden sind und welche davon eine minimale Flexibilität bei den Fristen haben.
Anforderungsentwicklung und Dokumentation
Funktionale Anforderungen
Definieren Sie, was die Anwendung tun soll - das heißt, ihre Funktionen.
Dazu können bestimmte Operationen gehören, die der Benutzer durchführen kann,
z.B. "Benutzer kann sich mit E-Mail und Passwort anmelden", "System benachrichtigt automatisch über anstehende Ereignisse"
usw.
TIPP: Schreiben Sie auch die Funktionen auf, die nicht in der App enthalten sein werden, damit klar ist, was die App nicht tun wird.
Schreiben Sie Funktionen auf, die Sie in der Zukunft hinzufügen möchten,
denn so können wir die Entwicklung leiten und die App so vorbereiten, dass diese Funktionen später leicht hinzugefügt werden können.
Funktionen.
Funktionale Anforderungen
Ermitteln Sie die Anforderungen an Leistung, Sicherheit, Benutzerfreundlichkeit, Skalierbarkeit, Wartung usw. Diese Anforderungen konzentrieren sich nicht auf bestimmte Funktionen, sondern darauf, wie die Anwendung funktionieren soll.
Anforderungen priorisieren
Setzen Sie in Zusammenarbeit mit dem Kunden Prioritäten für jede Anforderung. So können Sie feststellen, welche Funktionen in der ersten Phase umgesetzt werden müssen und welche bei der Entwicklungsplanung warten können.
TIPP: Erstellen Sie eine Gruppe von Anforderungen, die ein Muss für die erste sinnvolle Version der Anwendung sind. Geben Sie diese Version der Anwendung an die
in die Produktion zum Einsatz. Fügen Sie dann schrittweise weitere Funktionen hinzu.
Dies ist das Ende der tav-Implementierung. Minimal Value Product (MVP), das den Vorteil hat, dass Sie schnell auf Ihre
Anwendung und Sie können Ihre ersten Kunden akquirieren.
Erstellung eines technischen Briefings
Da die Sprache des Benutzers und Kunden eine andere ist als die des Entwicklers eines Informationssystems, ist es eine gute Idee, ein Glossar zu erstellen und jeden unbekannten Begriff aufzuschreiben. In der Regel handelt es sich dabei um Wörter aus dem Bereich der Programmierung oder aus dem Firmenjargon.
Projekteinführung und -beschreibung
Beginnen Sie das Dokument mit einer einfachen Zusammenfassung, was die Anwendung tun soll und welche Probleme sie lösen soll.
Spezifikation der Funktionalität
Beschreiben Sie jede funktionale Anforderung im Detail, einschließlich der Nutzungsszenarien (Use Cases), Flussdiagramme, User Stories, etc.
Systemarchitektur
Entwerfen Sie, wie das System strukturiert sein wird. Dies kann das Datenbankdesign, die API Schnittstelle, Anwendungsmodule, und wie die verschiedenen Komponenten zusammenarbeiten werden.
Um (Plot-)Klassen, DB-Strukturen und Usecases zu schreiben, verwendet man idealerweise die UML. Auf diese Weise können Sie die Dokumente zur Anwendungsentwicklung effizienter erstellen, bearbeiten und lesen.
Technologiestapel
Wählen Sie die Technologien und Werkzeuge aus, die verwendet werden sollen - Programmiersprachen, Frameworks, Datenbanken, Server usw. Achten Sie bei der Auswahl der Technologien auf deren Eignung für die jeweilige Aufgabe. Oft ist die Anzahl der verfügbaren von Entwicklern, die mit der Technologie vertraut sind.
Testen Sie die Technologien und APIs, die Sie zum ersten Mal verwenden, damit Sie wissen, was Sie erwarten können und ob sie überhaupt brauchbar sind. Auf diese Weise müssen Sie nicht ins Ungewisse gehen und aus dem Ungewissen heraus Vermutungen anstellen. Das wird Sie auch auf die Entwicklungs-/Testumgebung vorbereiten.
Sicherheitsanforderungen
Bestimmen Sie, wie Sicherheitsfragen gehandhabt werden sollen, einschließlich Authentifizierung, Autorisierung, Verschlüsselung usw. Wenn Sie diese nicht angeben, können Sie nicht erwarten, dass sie in nennenswertem Umfang berücksichtigt werden.
Testing
Legen Sie fest, wie die Anwendung getestet werden soll - welche Arten von Tests werden durchgeführt (Unit, Integration, Benutzer), wer sie durchführt und wie die Abnahmekriterien aussehen. Wer wird vom Kunden bestätigen, dass die Funktionalität korrekt geliefert wurde.
Entwicklungsplan
Schließlich erstellen Sie einen Zeitplan für die Entwicklung mit Meilensteinen, die schrittweise erreicht werden sollen. Auch ein Plan zur Behandlung von Risiko- und Änderungsmanagement.
Überprüfung und Genehmigung
Legen Sie dem Kunden einen technischen Auftrag zur Überprüfung vor. Gehen Sie alle wichtigen Punkte mit ihm durch und stellen Sie sicher, dass er alles versteht und mit allem einverstanden ist. Holen Sie Feedback ein und nehmen Sie bei Bedarf Anpassungen vor. Es ist wichtig, dass der Kunde mit den ToR einverstanden ist, bevor die Entwicklung beginnt. Sobald alles vereinbart ist, lassen Sie den Kunden die ToR formell genehmigen. So wird sichergestellt, dass beide Parteien über klar definierte Erwartungen haben.
Warum eine Analyse und ein technisches Briefing durchführen?
Diese systematische und strukturierte Vorgehensweise hilft, Missverständnisse zu minimieren und sicherzustellen, dass die Anwendungsentwicklung planmäßig und in Übereinstimmung mit den Anforderungen des Kunden verläuft. Sowohl der Anbieter als auch der Kunde können sich darauf verlassen, dass alles so läuft, wie sie es erwarten.
Für die Analyse bezahlen?
Es kommt häufig vor, dass der Anfragende erwartet, dass die Analyse und das Angebot kostenlos sind.
Und jemand nimmt eine solche Anfrage an, erhält dann aber ein Angebot, das durch nichts belegt ist.
Nachdem der Anfragende dann zum Kunden geworden ist, ist der Kunde überrascht, wenn er das Ergebnis später zu einem höheren Preis erhält und
manchmal bekommt er etwas, das nicht seinen Erwartungen entspricht.
Eine gute Analyse und eine gute technische Spezifikation gewährleisten auch die Kontrolle über den gesamten Entwicklungsprozess und tragen so zum Erfolg des Projekts bei.
Deshalb sollte der Antragsteller für die Analyse bezahlen.
Die Bezahlung der Analyse hat viele weitere Vorteile...
Die Bezahlung einer Auftragsanalyse ist für den Kunden aus diesen Gründen von Vorteil:
- Klare Definition der Ziele und Anforderungen.
- Risiko- und Kostenminimierung.
- Genaue Kosten- und Zeitschätzungen.
- Qualitätssicherung.
- Vermeidung von Missverständnissen.
- Bessere Entscheidungsfindung.
- Flexibilität und Anpassung.
- Basis für zukünftige Entwicklung.
Klare Definition der Ziele und Anforderungen
Die Analyse der Aufgabenstellung hilft dem Kunden, genau zu formulieren, was er von der Anwendung erwartet. Oft haben die Kunden eine allgemeine Vorstellung davon, was sie wollen, aber keine detaillierte Spezifikation. Die Analyse hilft dabei, diese Vorstellung zu konkretisieren und sicherzustellen, dass das Endprodukt tatsächlich den Bedürfnissen des Kunden entspricht.
Risiko- und Kostenminimierung
Die Investition in eine gründliche Analyse zu Beginn eines Projekts kann auf lange Sicht Geld sparen. Ohne sorgfältige Analyse können während der Entwicklung unerwartete Probleme auftreten oder es müssen größere Änderungen vorgenommen werden, die das Projekt kostspielig machen und das Projekt verzögern.
Genaue Kosten- und Zeitschätzungen
Durch eine detaillierte Analyse lassen sich die Entwicklungskosten und der Zeitrahmen abschätzen. Dies hilft dem Kunden bei der Planung Budget zu planen und realistische Termine für den Projektabschluss zu erwarten. Ohne diese Analyse sind die Schätzungen sehr ungenau, was zu Unzufriedenheit auf beiden Seiten führt.
Qualitätssicherung
Ein technisches Briefing, das auf der Grundlage einer gründlichen Analyse erstellt wird, gibt dem Entwicklungsteam klare Richtlinien und Spezifikationen an die Hand, was zu einem qualitativ hochwertigeren Endprodukt führt. Wenn die Entwickler über genaue und detaillierte Informationen verfügen, können sie sich besser auf die Implementierung konzentrieren, was die Zahl der Fehler und Mängel verringert.
Vermeidung von Missverständnissen
Die detaillierte Analyse und die anschließenden technischen Spezifikationen dienen als Referenz für das gesamte Projekt. So wird sichergestellt, dass beide Parteien - der Kunde und das Entwicklungsteam - eine klare und konsistente Vorstellung davon haben, was erstellt werden soll. Dies reduziert das Risiko von Missverständnissen und späteren Konflikten.
Bessere Entscheidungsfindung
Während des Analyseprozesses tauchen oft Fragen und Ideen auf, an die der Kunde zunächst nicht gedacht hat. Dies führt dann zu einer besseren (zeitnahen) Entscheidungsfindung und Optimierung der Anwendungsfunktionalitäten. Der Kunde kann dann wertvolle Erkenntnisse darüber gewinnen, welche Funktionen für ihn die richtigen sind und welcher technologische Ansatz am besten geeignet ist.
Flexibilität und Anpassung
Wenn sich die Anforderungen während der Analyse ändern oder neue Bedürfnisse entdeckt werden, ist es einfacher, in diesem Stadium Anpassungen vorzunehmen, als während der eigentlichen Entwicklung. Die Analyse ermöglicht es, flexibler auf Änderungen zu reagieren, was für den Kunden von Vorteil ist.
Grundlage für die zukünftige Entwicklung
Eine gut durchgeführte Analyse und technische Spezifikation dient als Dokumentation, die auch in Zukunft genutzt werden kann. Wenn
der Kunde beschließt, die Anwendung weiterzuentwickeln oder zu erweitern, hat er eine solide Grundlage, auf der er aufbauen kann.
auf dem er aufbauen kann.
Die technische Spezifikation kann und mit diesen umfassenden Informationen kann die Umsetzung bei einem anderen Anbieter beantragt werden.
Lieferung und Inbetriebnahme des fertigen Projektes
Wenn Sie das Projekt auf Technologien, die Sie kennen und ausprobiert haben, aufbauen, die unbekannten Technologien und API im Vorfeld durchdacht haben, die kritischen Punkte im Projekt durchdacht haben, die größten Risiken eliminiert haben, haben Sie gute Chancen, dass das Projekt gut ausgeht.
Vereinbaren Sie im Vorfeld, wo die Anwendung betrieben werden soll und ob Sie die Anwendung anschließend überwachen und pflegen wollen.
der Anwendung.
Nach dem Start des Projekts führen Sie idealerweise eine Post-Implementierungs-Analyse durch.
Vervollständigen und aktualisieren Sie die Dokumentation!
Artikel zu einem ähnlichen Thema
Newsletter
Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben
News-Abonnement.
+