Wie schätze ich die Kosten für die Ausführung eines abgeschlossenen Softwareprojekts?

Ich habe ein laufendes Softwareentwicklungsprojekt kurz vor dem Abschluss. Meine Frage ist, wie ich das notwendige Budget abschätzen kann, um die fertige Software zu betreiben (run), weiterzuentwickeln, beispielsweise durch technologischen Fortschritt (Wachstum) und die Implementierung neuer Funktionen (Innovation).

Gibt es eine gemeinsame Aufteilung zwischen diesen Aspekten, die ich auf meine wiederkehrenden Kosten anwenden kann? Oder auf welchen Faktoren in meinem Unternehmen/der Software könnte eine Budgetaufteilung basieren?

Antworten (4)

Es variiert je nach Art des Projekts. Nach meiner Erfahrung können Sie wiederkehrende Kosten wie Hosting berücksichtigen, aber das ist alles. Normalerweise berechne ich ein Wartungspaket, das einen festgelegten Betrag für Entwicklungstage enthält. Wenn Sie im Voraus wissen, welche Art von Funktionen Sie wahrscheinlich zum Projekt hinzufügen werden, können Sie diese auch schätzen oder einen Prozentsatz der bereits erfolgten Entwicklung berücksichtigen.

TL; DR

Es gibt keine Wunderwaffe und keine allgemeingültige Formel. Sie müssen auf der Grundlage dokumentierter Annahmen schätzen.

Dokumentieren Sie Ihre Annahmen

Alle Schätzungen basieren auf Annahmen. Daher besteht die übliche Methodik darin, Ihre aktuellen Kosten und Ihre dokumentierten Annahmen in eine Phase nach der Lieferung zu projizieren. Zum Beispiel:

  1. Ihre aktuelle Fehlerquote beträgt 12 %, was Ihr Projekt 15 Arbeitsstunden pro Woche kostet. Sie könnten davon ausgehen, dass diese Rate unverändert bleibt, oder Sie könnten davon ausgehen, dass sie aufgrund einiger projektspezifischer Informationen höher oder niedriger sein wird.
  2. Ihre Server-Betriebskosten in der Entwicklung betragen 250 $/Monat für einen Server, und Sie können davon ausgehen, dass Sie basierend auf Ihren Kapazitätsplanungsschätzungen fünf Server in der Produktion haben werden.
  3. Ihr aktuelles Projekt hat ein Budget von 2 Millionen US-Dollar. Sie könnten davon ausgehen, dass kleinere Funktionen für die Hälfte hinzugefügt werden können oder dass Version 2.0 das Doppelte kostet.
  4. Ihre Arbeitskosten für die Verwaltung der Entwicklungsversion betragen 5.000 $/Monat für Personal, plus weitere 2.000 $/Monat für Lizenzkosten. Sie könnten davon ausgehen, dass sich diese Kosten besser als linear skalieren lassen, und sich dafür entscheiden, unternehmensweite Supportkosten von 10.000 USD/Monat zu veranschlagen.

Schätzungen sind keine Garantien

Die genauen Details, wie Sie zu Ihrer Schätzung kommen, spielen keine Rolle. Auf die Methodik kommt es an. Der Punkt ist, dass Sie:

  • Dokumentieren Sie Ihre Annahmen.
  • Geben Sie eine quantifizierbare Schätzung basierend auf Ihren Annahmen und einigen Plug-in-Werten an.
  • Sie stellen High-End- und Low-End-Schätzungen oder eine einzelne Schätzung mit einem Konfidenzintervall bereit.
  • Sie machen deutlich, dass es sich um Schätzungen handelt, die auf den dokumentierten Annahmen beruhen, und nicht um Geld-zurück-Garantien.

Ihre Annahmen und Ihre Plug-in-Werte werden sicherlich aufgrund einer Reihe von Faktoren stark variieren. Aus diesem Grund werden sie eher als Schätzungen, Projektionen oder Prognosen als als unfehlbare Vorhersagen bezeichnet.

Bei jedem Softwareprojekt fallen nur wenige Kosten an. Es kommt auf die Ressourcen an. Welche Ressourcen werden benötigt, um dieses Projekt abzuschließen? Zu den verschiedenen Arten von Ressourcen können gehören:

  • Talent (Zeit)
  • Hosting-Kosten (Diese können variabel sein. Sie benötigen eine technische Person, die Ihnen bei der Vorhersage hilft.
  • Support-Tools - Private Repositorys, API-Dienste usw.

Eine ungefähre Schätzung sollte diese unterschiedlichen potenziellen Kosten berücksichtigen. Sie sollten auch überlegen, welche Ressourcen bereits vorhanden sind.

Ein gutes Team sollte die Zeit gut einschätzen.

Hier ist eine wichtige Formel, die es zu beachten gilt:

Total Cost = (time * wages) + variable costs + fixed costs

Hoffentlich hilft das. Lassen Sie mich wissen, wenn Sie Fragen haben, damit ich die Antwort erweitern kann.

Aus Ihrer Frage geht hervor, dass Sie an Live Operations- oder Produktentwicklungsprojekten arbeiten.

Das heißt, Sie identifizieren die technologische Entwicklung und planen die Aktualisierung Ihrer S/W. Oder Sie finden neue Funktionen basierend auf Nutzungsanalysen und studieren und aktualisieren die Funktion.

Auf Makroebene wird dies als Programmverwaltung betrachtet.

Beim Programmmanagement geht es darum, mehrere Projekte parallel/kaskadenartig auszuführen, um kleinere Ziele zu erreichen, und sie in das Hauptprodukt zu integrieren, um einen definierten Erfolg zu erzielen.

Da die Updates des Hauptprodukts als Projekte betrachtet werden, sollte es keine separate Methode geben, um solche Funktionen zu kalkulieren. Es sollte idealerweise Ihrer vorherigen Methode folgen.