R_eQuiEm hat geschrieben: ↑23.01.2020 15:28
Korrekt. Also schießen sie sich ins eigene Knie. Jetzt ist die Frage woran liegt das? Ist Crunch zu einem gewissen Grad gar nicht zu verhindern? Oder ist das Management eines fast jeden großen Entwicklerstudios meist unfähig?
Ich arbeite selbst in der Softwareentwicklung und Crunch gibts da überall, nicht nur in der Spieleentwicklung.
Das ganze ist ein Prinzipproblem. Es muss irgendwelche Deadlines geben (egal ob das jetzt Release oder für ein Update oder einfach nur Milestones für bestimmte Features sind), die braucht das Management einfach. Ohne solche Deadlines würde man nie "fertig" werden. Der Knackpunkt ist den Termin der Deadline und der gewünschten Features abzustimmen. Wenns gut läuft ist das synchronisiert, dann passt die verfügbare Zeit bis zur Deadline und der Arbeitsaufwand für die Features zusammen. Das tritt aber so praktisch nie ein.
Softwareentwicklung ist etwas komplexer als z.B. Mauern. Beim Mauern kann man relativ einfach ermitteln, das man 100 Steine pro Minute schafft und der Architekt genau ausrechnen, das 1Mio Steine benötigt werden, daraus kann man sehr genau ausrechnen, wanns denn fertig sein wird. Bei der Softwareentwicklung stößt man aber dauernd auf Probleme. Die Steine passen hier und da nicht und der Architekt ändert während schon gemauert wird laufend den Bauplan und dem Manager fällt ein, das man zum Haus ja auch noch eine Garage braucht. Das das zeitlich nicht passt, wissen die auch. Dafür lässt man halt (erstmal) die Terrasse weg. Kurz darauf merkt man dann aber, das man ohne die Terasse auch den Swimmingpool nicht umsetzen kann, der ist aber selbstverständlich unverzichtbar....
Am Ende hast du dann eine Deadline und ein Featureset, das halt gehalten werden "MUSS".
Es ist jetzt so eine generelle Managementkrankheit, das wenn der Termin verschoben werden würde, dann kann man ja auch noch dieses und jenes Feature reinpacken, man hat ja jetzt doch wieder mehr Zeit. Die Verlängerung reduziert den Crunch also nur zum Teil (manchmal auch gar nicht). Und wenn irgendwas mal eine Woche früher schon fertig sein sollte, dann wird der Termin ja auch nicht zurückgelegt, sondern dann hat man ja noch eine Woche Zeit irgendwas einzubauen, das eigentlich nicht geplant war. Das das dann aber auch wieder Testing und Bugfixing braucht, wird meist "vergessen". Also baut man mit nur einer Woche Zeit etwas ein, für das man eine Woche Entwicklung veranschlagt hat. Am Donnerstag merkt man dann, das man ja auch noch Testen und Bugfixen muss. Das schafft man dann aber nicht mehr in der regulären Arbeitszeit, das muss dann also am Wochenende passieren.
Dabei gilt auch, das Testing und Bugfixing grundsätzlich nie fertig wird. Du kannst in einem bestimmten Zeitraum nur so und so viele Bugs fixen. Und du kannst beim Testing unmöglich vorher abschätzen, wann, ob oder wie schwerwiegende Fehler gefunden werden. Es kann sein, das man erst 2 Tage vor Release einen Gamebreaking-Bug findet und wenn der kompliziert ist, kann man das ggf. einfach nicht in 2 Tagen "regulärer Arbeitszeit" fixen. Was machst du jetzt? Crunch? Termin verschieben? Mit schwerwiegendem Bug releasen?
Aus Softwareentwicklersicht kann man einen Termin also nicht halten können, weils schlicht und einfach nicht auf den Punkt planbar ist. Da könnte man bestenfalls ein ungefähres Datum angeben, der Rest ist dann halt "wenns fertig ist". Aber erklär das mal nem Manager. Und dann landet man wieder in der oben beschriebenen Spirale.
Ich bin aktuell auch schon wieder in der dritten Verlängerung. Und es fällt dem PM in der Phase ein, wir müssen etwas ändern, das schon die ganze Zeit funktioniert, aber man halt jetzt gemerkt hat, das man es doch anders haben will (WILL, nicht UNBEDINGT BRAUCHT!). Wie kann man sich da dann auch noch wundern, wenn die Termine nicht klappen...
Fazit, wenn Häuser so gebaut werden würden, wie man Software macht, würde da kein Mensch einziehen, weil das fertige Haus wegen Fehlplanung einsturzgefährdet wäre.
https://pbs.twimg.com/media/A8ZfAk0CAAEpTcY.png