Enwicklungskosten

Diese Seite soll ihnen als "Nicht Entwickler" die Gründe aufzeigen, warum eine Eigenentwicklung komplexer Programme aber auch kleiner überschaubarer Skripte oft länger dauert und entsprechend teurer wird. Auf der MSXFAQ finden Sie viele kleine Scripte, die den Eindruck erwecken, dass Programmieren ganz schnell geht und eine Lösung in einigen Stunden oder wenigen Tagen umgesetzt werden kann. Dass dem nicht so ist, erkennen Sie spätestens bei der Höhe eines Angebots oder dem geschätzten Aufwand in Tagen. Warum ist Entwicklung dann immer so teuer bzw. auf jeden Fall teurer als zuerst vermutet

Proof of Concept

Die meisten Entwicklungen von "Tools" starten mit einem konkreten Problem, welches zu lösen ist. Wenn sich der Entwickler und Auftraggeber schon fachlich verstehen, kann der Entwickler sehr schnell mal "prüfen", ob es prinzipiell eine realisierbare Möglichkeit gibt.

Der Entwurf wird in einzelne Komponenten zerlegt um die kritischen Teile zu entdecken. Sehr oft wird jemand dann schon den ein oder anderen Teil experimentell programmieren. Wer z.B. noch nicht mit dem Active Directory gearbeitet hat, wird eben mal schnell mit einem kleinen Codefragment einen Benutzer anlegen, ändern, löschen oder suchen. Im Bereich Exchange wird man z.B. einfach mal schnell per MAPI eine bestimmte Mail im Postfach lesen wollen.

So was bezeichne ich als "Proof of Concept", d.h. ein Code, der die kleines Einheit einer Aufgabenstellung umsetzt. Meist enthält dieser Code aber noch keine Fehlerbehandlung, Konfigurationsmöglichkeit oder GUI. Er dient einfach dazu, Unsicherheiten zu beseitigen.

Auf diesem Level sind sehr viele Beispiele der MSXFAQ unter Programmieren mit Exchange und Franks Tools. Einige davon sind aber schon weiter. Nur was kommt denn nun noch alles dazu, bis aus einem Codeschnipsel eine Lösung wird ?

Was noch dazu gehört !

Es kann ganz schön erschrecken, wenn ein erster Testcode nach einigen Stunden schon vorzeigbar ist, aber dann doch noch einige Tage oder gar Wochen ins Land ziehen, bis das Bauwerk vollendet ist. Hier ein paar Stichpunkte:

Vielleicht geben ihnen all diese Punkte einen Einblick, dass es ein langer Weg von einem Beispielskript bis zu eine Lösung für einen Kunden oder sogar zu einem Produkt für den Markt ist. Als Ergänzung finden Sie hier eine kleine Übersicht für eine eigene Abschätzung bzw. zur Weiterentwicklung für ihr eigenes Projekt.

Zeitschätzung

Die Planung von Softwareprojekten ist oft durch Fehleinschätzungen der verschiedenen Tätigkeiten und dem damit verbundenen Aufwand verbunden. So werden sehr häufig die Themen “Test“, „Dokumentation“ aber auch Randbereich wie Planung und Vertrieb unterschätzt.

Diese Ausführungen können natürlich kein Ersatz für professionelle Beschreibungen von Entwicklungsmodellen sein. Suchen Sie im Internet oder Buchhandel einfach mal nach Begriffen wie Wasserfallmodell, V-Modell (bei öffentlichen Auftraggebern oft verwendet) und "Rational Unified Prozess"

Gerade Entwickler unterliegen oft dem Versuch im Kopf schon den Code zu entwerfen und schnell eine große Aufwandschätzung abzugeben, die um Welten unter dem späteren realen Aufwand liegt. Der Kern einer Lösung kann vielleicht ein 1-2 Tagen tatsächlich durchdacht und codiert werden, aber bis die komplette Lösung einen brauchbaren Stand erreicht hat, sind noch viele weiteren Tage erforderlich. Folgende Tabelle könnte ein erster Anhaltspunkt sein.

Aufwand Tätigkeitsbereich
10% Analyse und Design
10% Projektmanagement
50% Implementierung/Codierung
15% Test
5% Systemkonfiguration
10% Dokumentation

Die Tabelle ist nicht als zeitlicher Ablauf zu verstehen. Eine genauere Einschätzung erhalten Sie, wenn Sie die verschiedenen Tätigkeiten wirklich einmal komplett Aufschlüsseln, mit Aufwänden und vor allem auch mit Personen versehen.

Die nachfolgend aufgeführten Tätigkeiten erheben nicht den Anspruch einer Vollständigkeit und sind auch nicht in jedem Fall erforderlich. Welche Tätigkeiten Sie mit Personen und Aufwänden zu versehen haben, hängt stark von dem jeweiligen Projekt und der Gesamtgröße ab. Ganze Firmen, Produkte, Diplom und Doktorarbeitenarbeiten beschäftigen sich mit diesem Thema.

 Auch hier eine Mustertabelle, wie so etwas aussehen könnte.

Top Thema Aufwand Person
Organisation
  Meetings    
  Zeiterfassung    
  Ansprechbar sein    
Produktplanung
  Aufnehmen von Anforderungen und wünschen    
  Erstellen von Meilensteinen    
  Bestimmen von Prioritäten    
  Pflichtenheft    
  Marktbeobachtung    
  Änderungen von Schnittstellen zu anderen (Fremd-)Produkten    
Dokumentation
  Installationsdokumentation    
  Handbuch für Anwender    
  Handbuch für Administratoren    
  Knowledgebase pflegen/entwickeln    
Entwicklung
  Modularisierung    
  Objektmodell    
  Codieren    
  Entfehlern    
  Codedokumentation    
Design
  Programmoberfläche    
  Icons, Farben, Stylesheets    
  Menustrukturen    
Qualitätssicherung
  Entwickeln von Testfällen    
  Durchführen der Test (Bedienung, Installation, Update)    
Support/Training
  Betreuung der Produktanwender    
  Betreuung bei Installation/Update    
  Training    
  Fehlersuche    
Vertrieb und Marketing
  Produktdatenblätter und Internetpräsenz    
  Messen, Preislisten    
  Aufbau Partnernetz und Vertriebsstrukturen    

Sie können solche eine Tabelle natürlich zu einmaligen Bestimmung der Gesamtkosten nutzen. Sie können aber den Aufwand auch einfach in "Stunden  pro Zeiteinheit" angeben und damit eine Art Ressourcenplanung während eines Entwicklungszyklus machen. Sehr oft werden Sie nämlich feststellen, dass Sie einfach zu bestimmten Zeiten "zu wenig Personal" haben. Hinzu kommt. dass die Phasen bei Projekten nicht "gleichverteilt" sind. Am Anfang überwiegt sicher die Projektplanung. Dann folgt ein Schwerpunkt beim Codieren und Testen. Die Anwenderschulungen und Handbücher werden dann eher gegen Ende erstellt, während die Projektsteuerung und Dokumentation die ganze Zeit entsprechende Ressourcen bedarf.

Sie sehen also, dass neben dem kleinen Baustein "Codierung" sehr viele andere Aspekte mit zu berücksichtigen sind.

Keywords:Programmieren Kosten Teuer