Softwareentwickung ist im Grunde allein von der technischen Seite betrachtet kompliziert genug, doch es schweben immer mindestens zwei Fragen im Raum, welche mir bisher noch niemand genau beantworten konnte:
a) Wie lange wird es dauern, bis die Software fertiggestellt ist und fehlerfrei arbeitet?
b) Wieviel wird der Spaß kosten?
Viele Projektmanager, benutzten die Pi-Mal-Daumen Methode. Diese ist zwar meist verbunden mit einer genauen Spezifizierung und Analyse der Module, welche zu erstellen sind, aber ganz zum Schluß wird das Ergebnis mit dem Pi-Mal-Daumen-Faktor multipliziert, der zwischen 100% und 200% Prozent liegt. Nach Erfahrung des Projektleiters und natürlich der Größe des Projekts, der momentanen Konkurrenzsituation und der Art beziehungsweise dem Budget des Kunden, versteht sich.
Komplexere existierende Verfahren sind (für kleinere Projekte ) meist sehr zeitaufwändig. Doch dieser Einsatz ist erforderlich, um für größere Softwareprojekts die Dauer und die Kosten im Vorfeld berechnen oder zumindest schätzen zu können. Einige der gängigen Verfahren sind in der nachfolgenden Tabelle kurz beschrieben.
Fachliche Anforderungen, Erfahrungswerte unter Berücksichtigung fest definierter Einflussfaktoren
Messwerte
große Projekte
groß
sehr genau
Algorithmische Schätzverfahren
COCOMO2
Entwicklungsaufwand wird durch die Anzahl der Lines of Code (LOC) ermittelt. Der Basisaufwand wird mit Kostenfaktoren multipliziert.
Messwerte
große Projekte
groß
genau
Algorithmische Schätzverfahren
Zumindest bei Cocomo2 und der Analogiemethode spielt die Größe eines Projektes – ausgedrückt in Lines of Code eine direkte oder indirekte Rolle.
Diese Metrik läßt sich für bestehende Projekte einfach ermitteln um für ähnliche Folgeprojekte eine Abschätzung der Größe zu treffen.
Ein interessantes Open-Source-Tool um dies zu bewerkstelligen ist statsvn.
Hierf muss sowohl java, als auch svn installiert sein. Eine Anleitung findet sich in der statsvn-wiki. Falls git benutzt wird, gibt es Möglichkeiten, die entprechenden Repositories zu exportieren und
später wieder in svn zu importieren.
Bei http://blog.blprnt.com/ können beeindruckende Visualisierungen der Verbreitungswege- und Dynamiken des H1N1-Virus betrachtet werden. Die Daten wurden aus Diensten wie Twitter und Facebook gewonnen und mittels Java, Twitter4J, MetaCarta und Processing aufbereitet.