Der Kunde möchte in erster Linie eine zuverlässige Software, vielleicht toleriert er noch ein paar Fehlerchen, aber
- zuverlässig
und
robust
muss sie sein!
- Dann muss sie meist schnell fertig sein
— zumindest möchte der Kunde den Tag der Fertigstellung wissen.
- Dann muss sie, die Software, so benutzungsfreundlich wie möglich sein.
- Und der Preis muss stimmen!
Bis dann die Software endlich fertig ist, ist der Kunde vielleicht auf eine andere Betriebssoftware umgestiegen, und
Sie
als Entwickler müssen das ganze
Software−Paket,
sofern man es als Paket betrachten kann,
auf die andere Betriebssoftware
anpassen.
Falls der Kunde mit der Software nun endlich mehr oder weniger zufrieden arbeitet,
fällt ihm noch dies und jenes ein, was er noch dazu haben möchte!
Dann sind vielleicht
nur Sie
als einziger Entwickler dieser jungen, neuen Software, auch der Einzige, der diese Software vielleicht erweitern kann.
:−(
Die Hauptfrage ist doch:
- Kann der Kunde mit seiner neuen Software wirklich zufrieden sein?
Wenn die Software
„hint' und vorne”
nicht funktionieren sollte und keine Besserung in Aussicht ist,
müssen Sie als Entwickler schmerzhafte Vertragsstrafen über sich ergehen lassen,
zudem fühlt sich der Kunde um sein Geld betrogen.
Womit wir schon beim nächsten Problem wären: die
Entwicklungskosten
bezüglich der
Aufwandsschätzung.
Software−Engineering
bringt Ansätze zur Lösung vieler Probleme,
aber auch Strukturierungsansätze damit gar nicht erst neue Probleme bzw. Katastrophen entstehen.