Wie wirken sich enge Zeitpläne und Planungsdruck auf die Gesamtbetriebskosten und die Lieferzeit aus?

9

Der Vater eines Freundes, der Software-Engineering-Manager ist, sagte nachdrücklich: "Die Hauptursache für Planungsüberschreitungen ist Planungsdruck."

Wo steht die Forschung? Ist ein mäßiger Planungsdruck belebend oder ist der von mir erwähnte Manager richtig oder falsch, oder geht es darum, "je mehr Planungsdruck Sie haben, desto länger die Lieferzeit und desto mehr Gesamtbetriebskosten?" Ist es eines dieser Dinge, bei denen Software-Engineering im Idealfall ohne Planungsdruck funktionieren würde, wir aber praktisch mit Einschränkungen realer Situationen arbeiten müssen?

Alle Links zur Software-Engineering-Literatur sind willkommen.

Christos Hayward
quelle
Was bedeutet TCO in diesem Zusammenhang?
Andres F.
Ich gehe davon aus, dass TCO für Total Cost of Ownership steht . Ist das richtig?
Thomas Owens
@ThomasOwens Also habe ich geraten, aber macht es im Zusammenhang mit Projektplänen und Budgets Sinn? Ich dachte, TCO beziehe sich auf das Eigentum an einem Produkt, nicht auf die Entwicklung.
Andres F.
@AndresF. Mein Verständnis ist, dass es umfassend ist - Design, Entwicklung, Versand, Wartung und Upgrades. Aber ich bin kein Experte (oder habe sogar messbare Erfahrung) in der finanziellen Seite der Dinge.
Thomas Owens
@ThomasOwens Nach diesem Link aus Wikipedia zu urteilen, ist das nicht der Eindruck, den ich bekomme. Entwicklung wird definitiv nicht erwähnt (Suche durchführen!), Auch wenn es sich um Technologie- und Softwareprodukte handelt (und damit verbundene Probleme wie Bereitstellung und Wartung). TCO bezieht sich auf das Eigentum , es steht sogar im Namen! Mein Verständnis ist , dass TCO ist eine Überlegung bei der Wahl , welches Produkt zu kaufen , nicht das Produkt zu bauen .
Andres F.

Antworten:

5

Die Hauptursache für Planungsüberschreitungen ist der Planungsdruck.

Ich bin nicht einverstanden. Die Hauptursache für Planungsüberschreitungen ist ein Zeitplan, der die Realität nicht widerspiegelt und zu optimistisch ist. Die menschliche Natur schreibt vor, dass ein gewisser Planungsdruck eine absolute Notwendigkeit ist. Nur ein paar der Probleme, die ohne einen gewissen Planungsdruck auftreten, sind interessante Probleme und "das Beste ist der Feind des Guten". Wir Techniker würden es weitaus vorziehen, an den Problemen zu arbeiten, die uns interessieren, anstatt an dem Problem, das gelöst werden muss, um das Produkt aus der Tür zu bekommen. Nehmen Sie Fristen weg (auch bekannt als Zeitplandruck) und wir werden an diesen interessanten Problemen arbeiten, zum Nachteil des Produkts.

Ein weiteres Problem ist, dass das Produkt "gut genug" sein muss. Es muss nicht perfekt sein. Ingenieure und Wissenschaftler sehen die vereinfachenden Annahmen, die unter bestimmten Umständen nicht ganz gültig sind. Grafikdesigner sehen Aliasing-Probleme, die für alle anderen unsichtbar sind. Programmierer sehen Warzen in ihren Architekturen, die keinen Einfluss auf das Produktverhalten haben. "Das Beste ist der Feind des Guten", was bedeutet, dass wir manchmal mit solchen Problemen leben müssen, die nicht wirklich Probleme sind.

Mangelnder Planungsdruck führt zu einem Produkt mit sehr hohen Betriebskosten. Was zu Überschreitungen führt, sind schlechte Zeitpläne. Dies kann in verschiedenen Formen erfolgen. Unterschätzen Sie den Aufwand, indem Sie Abhängigkeiten nicht berücksichtigen und einem bereits verspäteten Projekt Personen hinzufügen. Nur um ein paar zu nennen.

David Hammen
quelle
+1 Außerdem spiegelt die Planung von "Druck" manchmal - wenn auch nicht immer - echte geschäftliche Bedenken wider. Keine Möglichkeit, das zu vermeiden. "Wann immer es fertig ist" ist für viele Projekte kein akzeptables Fälligkeitsdatum. Wenn alles, was als Zieldatum versprochen werden kann, "wann immer" ist, besteht eine akzeptable Möglichkeit darin, das Projekt einfach abzubrechen.
Andres F.
Steve McConnell nennt "Übermäßig optimistische Zeitpläne" als einen der klassischen Fehler in der Softwareentwicklungspraxis und als eine Hauptursache für Projektprobleme. Dies wäre in erster Linie die Ursache für Planungsüberschreitungen. stevemcconnell.com/rdenum.htm
Nur Sie
2

Zeit, Qualität, Ressourcen und die Anzahl der Funktionen sind miteinander verbunden. Sie können drei beliebige Probleme beheben und die letzte als Ausgabe Ihres Planungsprozesses abrufen.

Die Art und Weise, wie Ihre Frage formuliert ist, impliziert, dass die Zeit Ihre Variable ist und die anderen drei (die Qualität, die Ressourcen und die Anzahl der Funktionen) alle festgelegt sind. Die Frage kann davon profitieren, die Perspektive ein wenig zu ändern, indem Sie die Zeit * festlegen und die Qualität schweben lassen.

Ihre Frage lautet nun: "Beeinflussen zeitliche Einschränkungen die Qualität negativ?" Die Antwort auf diese Frage ist ein klares "Ja": Untersuchungen bestätigen, dass Menschen unter Druck auf mathematische Probleme ** schlechter abschneiden , die sie zuvor noch nicht ausgiebig geübt haben (dh fünfzig Mal oder öfter versucht haben), sodass der Vater Ihres Freundes Recht hat.


* Ein Top-Manager in einem meiner vorherigen Unternehmen sagte immer, dass die Zeit ein Input für den Planungsprozess ist, nicht dessen Output. Er ließ jedoch die Anzahl der Merkmale schweben und bestand auf der einheitlich hohen Qualität der zu erbringenden Leistungen.

** Es gibt hier eine implizite Annahme, dass das Programmieren dem Rechnen ähnlich ist; Ich halte diese Annahme für fair.

dasblinkenlight
quelle
2

Je mehr Planungsdruck Sie haben, desto länger ist die Lieferzeit und desto mehr Gesamtbetriebskosten?

Nun, jede Planung, die vom Manager durchgeführt wird, ohne sie mit dem technischen Leiter zu besprechen, ist dafür anfällig. Es ist sehr offensichtlich, dass Planungen oder Schätzungen, die NICHT auf Fakten basieren, fehleranfällig sind .

Darüber hinaus bewegen sich Manager, die eine evidenzbasierte Planung vermeiden , auf den nächsten Misserfolg ihres Projekts zu. Es gibt eine Reihe von Studien zu diesem Thema, und die auf Metriken basierende Planung ist der richtige Weg.

Yusubov
quelle
2

Planung von rechts nach links.

Jemand im Management denkt immer, er sei Steve Jobs mit seiner berühmten Reality Distortion Zone. Bis jemand in der Produktentwicklung sie schult, haben nicht-technische Manager oft eine Ansicht über die Planung, die so ausgefeilt ist wie der frühe französische Film "Le voyage dans la lune" ("Eine Reise zum Mond") für die Raketenwissenschaft.

Das Problem gibt es schon eine Weile. Fred Brooks spricht im Mythical Man-Month über eine Schätzung ohne Darm . Barry Boehm spricht darüber in seinen Vorschlägen für einen Theory-W- Ansatz für das Management. In jüngerer Zeit hat Steve McConnell (Autor von Code Complete ) das Konzept der prinzipiellen Verhandlung in "Wie man einen unbeliebten Zeitplan verteidigt" in den Mittelpunkt gerückt .

Agile bringt den Umfang von Projekten an einen Ort, an dem er gut sichtbar ist. Das Agile Manifest fordert "Zusammenarbeit der Kunden bei Vertragsverhandlungen". Ich hoffe, es befähigt auch die Menschen, die zur Rechenschaft gezogen werden. Das Planungsspiel vermeidet, dass nicht-technische Stakeholder Entwickler zu Versprechungen zwingen, die sie vor langer Zeit gemacht haben und die von Änderungen der Anforderungen oder neuen Entdeckungen überschwemmt wurden.

Wenn Ihre Organisation Agilität ablehnt, gibt es hervorragende Methoden zur Kalibrierung von Schätzungen, um einen Zeitplan basierend auf dem erzielten Wert neu zu definieren . Ich denke nicht, dass der verdiente Wert bei einigen der wirklichen Probleme mit der Vorhersage einen großartigen Job macht, aber es kann helfen, Wahnvorstellungen über die Geschwindigkeit von Projekten und die Harping auf den Schätzungen, die wir als Fakten haben, zu zerstreuen.

Es gibt ein Sprichwort: Je früher Sie mit dem Codieren beginnen, desto länger dauert es. Der Zeitplandruck kann eine Änderung der Methodik erzwingen. Manchmal geht es vom Wasserfall zum "Code wie die Hölle". Dies kann sich negativ auf die Qualität auswirken, ganz zu schweigen von der Moral, wenn die Arbeitnehmer nicht ihr Bestes geben können und ihre Kollegen und zukünftigen Betreuer sie am schlechtesten und nicht am besten sehen. In einer solchen Umgebung kann ein Teil des Chaos durch Quellcodeverwaltung, tägliche Erstellung und Tests (oder kontinuierliche Integration und Komponententests), Codeüberprüfungen mithilfe eines erfahrenen und hochqualifizierten Teams kontrolliert werden, um der Versuchung zu widerstehen, spät Mitarbeiter hinzuzufügen Das Projekt und der alte Standby machen Überstunden.

In anderen Fällen kann die Änderung der Methodik von Wasserfall zu iterativem Inkremental erfolgen. Ich habe die Erfahrung gemacht, dass das Management Agile nur langsam angenommen hat. Aber nach einer Weile gab es ein neues Management, das Agile besser unterstützte. Zeitboxen kann wie Budgetierung sein - es kann uns zwingen, über die beste Nutzung einer begrenzten Ressource nachzudenken. Scrum hat zwei Zeitfelder - eines ist täglich für Feedback zwischen Teammitgliedern, das andere ist monatlich für den Sprint durch die Burndown-Liste.

Scrum-Diagramm - Creative Commons-Lizenz siehe

Creative Commons-Lizenz - siehe http://en.wikipedia.org/wiki/File:Scrum_process.svg

DeveloperDon
quelle
+1 für das Hinzufügen nicht nur einer Referenz, sondern mehrerer Referenzen!
Christos Hayward
1

Sie benötigen keine Software-Engineering-Literatur. Konzeptionelle Wahrscheinlichkeit und Statistik vom Undergrad sind alles, was Sie brauchen.

Eine Schätzung ist genau das, eine Schätzung. Es ist nicht genau, es ist nicht garantiert. Für jede Schätzung besteht eine gewisse Wahrscheinlichkeit, dass Sie sie unterschreiten oder auf die Nase schlagen, und eine gewisse Wahrscheinlichkeit, dass Sie sie überlaufen.

Wahrscheinlichkeit 101: p (unterlaufen oder genau treffen) + p (überlaufen) = 100%.

Ein auf einer Schätzung basierender Zeitplan weist genau dieselben Merkmale auf.

Sie können die Unsicherheit nicht vollständig beseitigen. Es wird IMMER eine gewisse Wahrscheinlichkeit eines Überlaufs geben. Es mag klein sein, die Wahrscheinlichkeit, dass der Iran Ihr Bürogebäude zerstört, aber es ist immer noch da. Das Beste, was Sie tun können, ist, ALLES zu betrachten und die Unsicherheit so weit wie möglich zu verringern. Sobald Sie dies getan haben, haben Sie, wenn Sie Glück haben, einen Zeitplan mit geringer Unsicherheit und einer Wahrscheinlichkeit von 50% auf jeder Seite.

Denken Sie jetzt darüber nach: Wenn Sie den Zeitplan einlesen, verringert sich die Wahrscheinlichkeit, dass Sie den Zeitplan unterschreiten oder genau treffen. Die Summe muss noch 100% betragen. Wohin geht diese Wahrscheinlichkeit? Antwort, es geht in die Überlaufwahrscheinlichkeit.

General Dynamics / Fort Worth Division hat dies auf die harte Tour gelernt. Sie machten ihre anfängliche Schätzung für die Entwicklung von F-16C / D und schickten sie die Nahrungskette hinauf. Jemand weiter oben hat willkürlich ein Jahr davon abgeschnitten und das an die Luftwaffe geschickt. Als direktes Ergebnis war GD / FW ein Jahr zu spät zum Flugtest und die Luftwaffe war NICHT glücklich. (Beachten Sie, dass "ein Jahr zu spät" dem überarbeiteten Zeitplan entsprach, was bedeutet, dass der ursprüngliche Zeitplan direkt auf das Ziel ausgerichtet war.)

John R. Strohm
quelle
beste Antwort bisher - Planung und Schätzung sind zwei völlig unterschiedliche Themen. Zu viele Menschen verstehen es nicht.
Mattnz
1

Ich denke, dass ein gewisser Druck in einem Projekt in Ordnung ist, weil es hilft, den Fokus aufrechtzuerhalten.

Wenn der Druck jedoch nicht realistisch ist oder wenn die Kommunikation zwischen Management und technischen Mitarbeitern nicht ordnungsgemäß funktioniert, besteht das Risiko, dass die Planung des Drucks zu schlechter Qualität und / oder verspäteter Lieferung führt.

Ein erfahrener Entwickler wird wissen, dass von ihm nicht erwartet wird, dass er die perfekte Lösung produziert, sondern eine Lösung, die gut genug ist . Die Schätzung eines solchen Entwicklers spiegelt also bereits sein Verständnis dafür wider, was für ein bestimmtes Projekt gut genug ist.

Es gibt viele Faktoren, die die Definition von gut genug beeinflussen.

Wie viele Monate dauert das Projekt beispielsweise? Wenn das Projekt ein Jahr dauert, können Sie zu Beginn des Projekts ziemlich schnell einen Prototyp dieses besonders schwierigen Moduls schreiben. Anschließend haben Sie mehrere Monate Zeit, um es als Nebenaktivität für die Entwicklung anderer, routinemäßigerer Module zu testen und zu debuggen. (Sie können dieses Modul über mehrere Monate reifen lassen, bis es gut genug ist, sodass Sie nicht von Anfang an versuchen müssen, es richtig zu machen.) Ich finde diese Strategie sehr effektiv, aber Sie brauchen einen Manager, der Ihnen vertraut und Sie lässt Halten Sie ein Projekt monatelang offen. Ein anderer (misstrauischer) Manager könnte Sie dazu drängen, das Modul so schnell wie möglich fertig zu stellen (unabhängig davon, ob Sie es später reparieren müssen und ob dieser Ansatz letztendlich insgesamt viel mehr Zeit kostet).

Ein weiteres Beispiel: Das Projekt bezieht sich auf ein Produkt mit nur einer Version. Dann können Sie versuchen, es schnell zu erledigen und sich auf umfangreiche Tests verlassen, um sicherzustellen, dass das Produkt wie erwartet funktioniert (schnell und schmutzig ist gut genug ). Wenn das Produkt jedoch zwei oder drei Versionen haben soll, sollten Sie einige Zeit mit dem Entwerfen verbringen, um ein umfangreiches Umschreiben des Codes für spätere Versionen zu vermeiden. (In diesem Fall ist schnell und schmutzig nicht gut genug, da die gesamte Entwicklungszeit über die drei Releases größer ist.)

Fazit: Ich denke, dass eine schlechte Kommunikation zwischen Management und technischen Mitarbeitern und das Fehlen eines gemeinsamen Verständnisses dessen, was für das jeweilige Projekt gut genug ist, zu übermäßigem Planungsdruck führen kann, was zu schlechter Qualität / verspäteter Lieferung führt.

Es ist nie genug Zeit, um es beim ersten Mal richtig zu machen, aber es ist immer genug Zeit, um es später zu beheben.

Giorgio
quelle
+1: "Es gibt nie genug Zeit, um es beim ersten Mal richtig zu machen, aber es gibt immer genug Zeit, um es später zu beheben." Bei dieser Frage ging es mir darum, ob es anfangs doppelt so lange dauert, um es richtig zu machen, plus mäßige Zeit, um Fehler zu beheben, und dass die Gesamtbetriebskosten wesentlich niedriger sind als bei einem Eiljob, der anfangs weniger als die Hälfte der Zeit in Anspruch nimmt und sich dann der Musik im Internet stellt Folgen einer schnellen Eile zunächst.
Christos Hayward
Wie ich bereits erwähnt habe, kann Ihr Produkt in Ordnung sein, wenn Sie nur eine Version und eine gute Testabteilung haben, auch wenn Sie Zeit beim Codieren sparen: Der Code ist möglicherweise unübersichtlich, aber gründliche Tests stellen sicher, dass er wie erwartet funktioniert. Wenn Sie jedoch nachfolgende Releases auf derselben Codebasis haben, müssen Sie möglicherweise einen Großteil des Codes für das zweite und dritte Release neu schreiben. Im letzteren Szenario können Sie über mehrere Releases hinweg Zeit sparen, indem Sie Ihren Code beim ersten Mal sorgfältiger gestalten.
Giorgio