Aus verlässlicher Quelle habe ich die folgende Angelegenheit erfahren, die ich aus gewissen, nicht näher erläuterbaren Gründen im Blog festhalten möchte.
Ein größeres Unternehmen (bei dem mein Informant angestellt ist) muss regelmäßig gesetzlichen Prüf- und Dokumentationsaufgaben nachkommen. Ein (geübter) Mensch würde dafür mindestens einen Tag brauchen. Also liegt die Idee an eine Software nah, die die Routineanteile dieser Pflichten übernimmt. Dann könnte der Aufwand auf ein bis zwei Stunden reduziert werden.
In der Tat existiert dazu bereits seit zwanzig Jahren oder so eine derartige Software. Die wurde allerdings nie richtig angenommen, weil sie nicht wirklich funktioniert. Keine intuitive Eingabe, fehlerträchtig, häufige Abstürze, und dann sind alle bisher erhobenen Daten weg, etc.. Das GUI ist auch längst nicht mehr zeitgemäß. Die gesetzlichen Auflagen wurden seither erweitert, aber das Programm ist mittlerweile nicht mehr wartbar, da der wichtigste Entwickler inzwischen in Rente ist und seine Sourcen weder dokumentiert noch versioniert hat.
Also entschlossen sich die Verantwortlichen nach einigem Hin und Her vor ein paar Jahren, einer kleinen Softwarefirma als Subunternehmen den Auftrag zu geben, ein Programm dafür neu aufzusetzen. (Ich war damals auch im Gespräch, aber lehnte ab – zu verworrene Anforderungen und auch eine Nummer zu groß für einen Einzelkämpfer, zumal es mit meinem sonstigen Fachgebiet überhaupt keine Berührungspunkte gab.)
Das Projekt verzögerte sich noch, aber inzwischen hätte es eigentlich abgeschlossen sein sollen.
Nun wurde ein Prototyp vorgelegt, bei dem jetzt schon absehbar ist, dass er nicht funktionieren wird. Wichtige Konfigurationsmöglichkeiten fehlen.
Das Budget ist längst erschöpft. Momentan ist es offen, wie es weitergeht.
Mein Informant (der ein wichtiger Anwender ist, und auch andere Anwender einlernt und instruiert), ist verärgert, weil er überhaupt nicht in den Entwicklungsprozess eingebunden worden ist. Er hatte nie Einladungen zu Projekttreffen erhalten, und befürchtet jetzt, für das Scheitern mitverantwortlich gemacht zu werden.
Die alte Software funktioniert nicht richtig und ist nicht mehr auf dem aktuellen Stand.
Die neue Software funktioniert erst recht nicht.
Geld für eine Neuentwicklung ist nicht mehr vorgesehen.
So kann man ein wichtiges Projekt in den Sand setzen. Immerhin ein Beispiel, aus dem man lernen kann, wie man es nicht machen soll.
Wer beabsichtigt, ein Projekt outzusourcen, sollte wenigstens einen Festpreis vereinbaren, um zumindest einige Risiken zu vermeiden. Wer als Auftragnehmer zuversichtlich ist, das Projekt innerhalb eines vernünftigen Zeitrahmens erledigen zu können, sollte doch eigentlich kein Problem haben, dafür einen Festpreis zu veranschlagen.
Dafür gibt es ja Werkverträge, die, untermauert mit einem exakten Briefing, auch funktionieren. Ein schlechtes Briefing oder andauernde Änderungen machen einem Projekt das Leben schwer. Zum Schluss ist es nicht mehr durchführbar.
Der Fehler wird schon am Anfang gemacht.
So wurden aus 77 Mio€ für die Elbphilharmonie auch 800 (!) Mio€.
LikeLike
Im geschilderten Fall hat das nicht funktioniert.
In vielen Fällen funktioniert es nicht.
LikeLike
Weil kommerzielle Leute nicht gut mit technischen Leuten sprechen können ?
LikeLike
In diesem konkreten Fall kenne ich die Hintergründe zu wenig, um die Ursachen festzustellen.
Nach allem, was ich gehört habe, vermute ich, dass der ursprüngliche Hauptentwickler nicht wollte, dass seine SW ersetzt wird. Deshalb hat er da wohl einiges hintertrieben.
Die SW-Firma war, glaube ich, auch nicht sonderlich professionell und versiert.
LikeGefällt 1 Person
Festpreis funktioniert aber nur mit abgenommenem Lasten- und Pflichtenheft – erfahrungsgemäß ändern sich die Anforderungen ja im Laufe des Projekts signifikant (das nennt man dann agile ;))
LikeLike
Das stimmt. Trotzdem sollte man nach Spezifikation arbeiten.
Wenn sich Anforderungen im Nachhinein ändern, lässt sich der zusätzliche Aufwand natürlich separat in Rechnung stellen. Das ist dann eine Frage der Vereinbarung zwischen den Vertragspartnern.
Aber von vornherein einen Blankoscheck auszustellen, halte ich für verfehlt.
LikeLike
Für einen Festpreis muß man ja erstmal als AG wissen, was man will. Und was nicht. Und meist hapert es ja schon genau an dieser Stelle – wie soll man da als AN einen Festpreis machen?
FP habe ich anfangs auch mal gemacht, inzwischen nur noch nach Zeitaufwand, weil doch immer wieder Änderungen einfließen sollen (was ja auch soweit möglich ok ist). Aber das lass ich mir halt auch bezahlen.
Hättest du denn einen Festpreis gemacht, wärest du genommen worden? Und wie hättest du das kalkuliert?
LikeLike
Als ich noch Entwicklungsaufträge angenommen habe, habe ich mit dem potentiellen Auftraggeber vorher recht detailliert abgesprochen, was die Software genau machen soll.
Darauf basierend eine Aufwandabschätzung, die in einem Angebot mit Festpreis und Liefertermin mündete (angemessener Zeitpuffer eingeschlossen).
Dann habe ich die Spec geschrieben, in dem ich die Einzelheiten noch mal genau aufgedröselt habe. Sobald der Kunde sein OK dafür gab, habe ich mit der Implementierung begonnen (de facto eigentlich schon früher, aber auf eigenes Risiko).
Dieses Vorgehen hat im Prinzip immer funktioniert. Es besteht aber halt die Gefahr, dass irgendetwas unvorhergesehenes dazwischen kommt, das den Zeitplan durcheinanderbringt. Gerade als Einzelkämpfer hat man null Redundanz. Wenn man z.B. krank wird, lässt sich das nur schwer abfangen. Ein Quäntchen Glück gehört schon dazu.
LikeLike
Die Erfahrung zeigt, dass es hilft
a) vorher gut zu spezifizieren, auch wenn das manchmal mühsam ist
b) den Kunden in die Entwicklung mit einzubinden, dass es Betatester für Vorabversionen gibt
Wir geben meist einen Fixpreis mit einem Puffer von +- 20% an und kommunizieren frühzeitig, wenn der Aufwand aus dem Ruder läuft.
Ärgerlich ist es ja für alle Seiten, wenn das Geld weg und trotzdem keine Lösung da ist.
LikeGefällt 1 Person
Völlig richtig, idgie.
Inwieweit Prototypen oder Betaversionen ausgeliefert werden, hängt natürlich auch von Art und Umfang der Software ab.
LikeLike
Ja natürlich.
Ich habe schon an ganz grossen und auch ganz kleinen Projekten gearbeitet. Ganz grosse Teams vermeide ich inzwischen, wenns geht. Da koordiniert man mehr als man entwickelt.
Ohne Spezifikationen, die nicht bis zum Ende durchdacht sind, fällt man meist auf die Nase. Ich halt mich da an „erst denken, dann coden“
LikeGefällt 1 Person
Pingback: Einstige Tweets //2264 | breakpoint