Was sind die Warnsignale für das bevorstehende Schicksal, auf das bei einem Projekt geachtet werden muss? [geschlossen]


66

Die Arbeit an einem gescheiterten Projekt ist eines der wenigen Dinge, die die meisten Programmierer gemeinsam haben, unabhängig von der verwendeten Sprache, Branche oder Erfahrung.

Diese Projekte können großartige Lernerfahrungen und / oder seelenzerstörende Katastrophen sein und aus einer Vielzahl von Gründen auftreten:

  • Oberes Management Veränderung des Herzens
  • unterqualifiziertes / unterfinanziertes Team
  • Hervortreten eines überlegenen Konkurrenten während des Entwicklungszyklus
  • über / unter Management

Ist es möglich, frühzeitig zu erkennen, wann ein Projekt zum Scheitern verurteilt ist, wenn Sie an einigen dieser Projekte gearbeitet haben?

Für mich ist es ein großes Zeichen, dass eine harte und schnelle externe Frist mit Feature-Creep verbunden ist . Ich habe gesehen, dass Projekte, die gut geplant waren und pünktlich abliefen, fürchterlich von den Gleisen liefen, als die späten Feature-Anfragen auftauchten und zum endgültigen "Ergebnis" hinzugefügt wurden. Die Antragsteller dieser Anfragen erhielten den Spitznamen Columbo , da sie den Raum nur selten verließen, ohne nach "nur noch einer Sache" zu fragen.

Was sind die Warnsignale, auf die Sie achten, um die Alarmglocken des bevorstehenden Untergangs in Ihrem Kopf auszulösen?


Robert Glass schrieb "Universal Elixir und andere Computerprojekte, die fehlgeschlagen sind". Das 1977 veröffentlichte Buch bestand aus einer Sammlung von Kolumnen, die er zuvor geschrieben hatte, wobei sich jeder mit einem Projekt befasste, das gescheitert war, und nach den Gründen für das Scheitern suchte. Das Buch macht eine AUSGEZEICHNETE Liste von Warnzeichen.
John R. Strohm

Zwei Artikel - Project Pathology und (der überbordende) Chaos Report . Geben Sie Death March eine gute Lektüre, wenn Sie nach einem Buch sind.

Antworten:


70

Heroic Coding

Bis spät in die Nacht zu programmieren, lange zu arbeiten und viele Überstunden zu machen, sind ein sicheres Zeichen dafür, dass etwas schief gelaufen ist. Ich habe außerdem die Erfahrung gemacht, dass es immer schlimmer wird, wenn Sie jemanden zu einem späteren Zeitpunkt im Projekt arbeiten sehen. Er tut es vielleicht nur, um sein einziges Feature wieder im Zeitplan zu haben, und er könnte Erfolg haben. Eine solche Cowboy-Codierung ist jedoch fast immer das Ergebnis eines Planungsfehlers, das zwangsläufig bald mehr davon verursachen wird. Je früher im Projekt Sie es sehen, desto schlimmer wird es schließlich.


12
Die einzige Entschuldigung für das Ziehen eines All-Nighter besteht darin, ein SPEZIFISCHES Problem für eine SPEZIFISCHE unflexible Frist anzugehen. Vielleicht bin es nur ich, aber Code, den ich um drei Uhr morgens schreibe, wenn ich mürrisch und schlaflos bin, sieht im grausamen Tageslicht verdammt abscheulich aus.
BlairHippo

5
Nun, die andere Entschuldigung ist ein Student. Eine schlechte Projektplanung ist dann selbstverständlich. :)
Fishtoaster

20
Oh christus Hochschule. Ich erinnere mich, wie ich vor meinem Terminal saß, als die Sonne aufging *und &mehr oder weniger willkürlich vor die Variablen in meinem C ++ - Code schob , in der Hoffnung, dass das verdammte Ding anfangen würde zu funktionieren. Ich vermisse keinen College-Teil.
BlairHippo

2
Anfang dieses Jahres hatten wir ein Projekt wie dieses - ein Mann arbeitete regelmäßig bis 2 Uhr morgens und ich begann um 4 Uhr morgens. Wir haben den Job erledigt, trotz der lächerlichen Zeitpläne, die uns auferlegt wurden (wir hatten uns verpflichtet, bis zu einer gesetzlichen Frist fertig zu sein). Wir räumen immer noch auf und überarbeiten!
Chris Buckett

3
Ich werde hier mein Karma in Gefahr bringen und darauf hinweisen, dass "heroische Kodierung" ein Spätindikator ist. Projekte geraten in Schwierigkeiten, lange bevor sie die Phase erreichen, in der das "heroische Kodieren" beginnt. Es gibt in der Regel viele frühe Fehleranzeigen, die lange vor dem Beginn der Codierung auftauchen. Sie werden leider allzu oft ignoriert. Robert Glass hat ausführlich zu diesem Thema in "The Universal Elixir" und in anderen Büchern geschrieben. Ignoriere ihn auf deine Gefahr.
John R. Strohm

44

Wenn die Programmierer anfangen, das Argument zu gewinnen "Der Code ist schrecklich, wir müssen von vorne anfangen." bei jeder ausgereiften Anwendung.

Sie denken vielleicht, Sie können es besser aufbauen oder das Problem besser verstehen, aber Sie tun es wirklich nicht. Oh, und all diese hässlichen Flecken? Es handelt sich um Korrekturen für Probleme in der realen Welt, die Sie wahrscheinlich beim Neuschreiben erneut einführen werden.

Und eines Tages müssen Sie dem Projektmanager erklären, warum Sie nach 6 Monaten Arbeit fast 85% der Funktionen und 150% der Fehler in der Anwendung hatten, als Sie anfingen.


9
Ist das nicht nur eine Zusammenfassung des berüchtigten Neuschreibens von Netscape?
Jasarien


4
Ich stimme dir nicht zu. Es gibt bestimmte Gefahren beim Umschreiben (z. B. das zweite System-Syndrom), aber wenn Sie davon wissen, ist ein Umschreiben nicht gefährlicher als jedes andere Green-Field-Projekt.
Nikie

4
Manchmal müssen Sie amputieren und durch etwas ersetzen, das die App stärker, besser und intelligenter macht. Aber das Schlüsselwort ist amputiert, nicht töten und wieder auferstehen.
Erik Reppen

2
Dies mag weitgehend zutreffen, ist aber nicht unbedingt zutreffend. Ich habe ein solches Projekt vor ungefähr 9 Monaten durchlaufen, und es war ein Erfolg. Hat über die Hälfte der Zeit damit verbracht, Tests zu entwickeln, um zu beweisen, dass es korrekt ist und dass alte / neue Fehler nicht in die neue Version aufgenommen wurden, und hat in der Zwischenzeit eine Reihe neuer Fehler in der bestehenden gefunden. (Allerdings, nehme ich an, dies macht diese Antwort als Warnzeichen wahr )
Izkata

41

Ein neues Tool als Problemlöser.

Wenn Leute anfangen, ungewohnte Tools zu verwenden, macht es mir nichts aus, aber ich behalte es im Auge. Wenn sie anfangen, alle angekündigten Vorteile dieser Tools in den Zeitplan aufzunehmen, mache ich mir Sorgen. Lustige Beispiele:

  • Wir können einen Monat des Zeitplans kürzen, weil wir versuchen werden, eine objektorientierte Sprache zu verwenden (obwohl wir nur C-Entwickler haben).
  • Wir werden dieses neue Scrum-Ding ausprobieren, das alle unsere Prozessprobleme behebt!
  • Ich weiß, dass das Projekt zur Hälfte abgeschlossen ist, aber was ist, wenn wir ORMs auf etwas Neues umstellen?

Neue Technologien und Verfahren sind großartig, aber Sie können fast nie alle Vorteile nutzen.


3
Ich war einmal in einem Projekt mit zwei Gabeln aufgrund von zwei Schnittstellen - Desktop- und Handheld-Gadget. Zeitschätzungen beruhten auf der Vorstellung, dass wir diese glänzenden neuen "EJB" -Dinge verwenden könnten, um Modellschichtcode zwischen den beiden wiederzuverwenden. Leider war die Datenbank ein so schreckliches Nest für Ratten, dass alle Daten, die daraus gewonnen wurden, aus bestimmten, sorgfältig konstruierten SQL-Abfragen stammen mussten. Eine vollständige Besiedlung der Bohnen wäre ein zu brutaler Leistungseinbruch gewesen. Als sich herausstellte, dass (überraschend!) Die Desktop-Version mehr Daten benötigte als die Handheld-Version, lief die Timeline STRAIGHT zur Hölle.
BlairHippo

2
"Wunderbar! Jetzt, da wir das Unit-Testing-Framework gerettet haben, können wir die Zeit ab dieser überlangen QA-Phase verkürzen!"
Arkaaito

hahaha. Ausgezeichnet. +1 für das neue Tool löst alle meine Probleme.
quick_now

40

Für mich ist das größte Problem, und eines, das Sie sofort erkennen können, wenn das Geschäft schriftliche Anforderungen als Zeitverschwendung ansieht.

Also im Grunde genommen; Keine schriftlichen Anforderungen

Es ist der Todeskuss.


3
Oder schlimmer noch, schriftliche Anforderungen, die niemand liest. Tatsächlich war ich an Projekten beteiligt, in denen umfangreiche Anforderungen geschrieben und den Programmierern nie gezeigt wurden.
JohnFx

1
@Adolf Garlic - Schriftliche Anforderungen garantieren nicht, dass Sie pünktlich oder im Rahmen des Budgets sind. Sie werden jedoch niemals die Erwartungen erfüllen, wenn die Erwartungen nicht mitgeteilt werden, nicht alle Grauzonen festgenagelt sind und sich ständig ändern (Ihre mentalen Vorstellungen ändern sich) ).
John MacIntyre

5
Ich hatte einmal einen Business Analyst, der mir sagte, dass Anforderungen nicht benötigt wurden. Was macht eigentlich wieder ein Business Analyst? Oh ja, um Anforderungen zu schreiben! Wir würden Anforderungen bekommen, um diese Arbeit so zu machen, wie es hkjk.com tut.
HLGEM

1
Wenn Sie ein benutzerdefiniertes Produkt für einen einzelnen Kunden entwickeln, ist dies sicher. Aber wenn Sie die nächste Version von Powerpoint oder die nächste Version eines internen Softwaresystems schreiben, verstehe ich den Punkt nicht. Sie werden während der Entwicklung immer mehr über die Anforderungen erfahren (z. B. dass einige Anforderungen nicht nützlich und andere nicht realisierbar sind). Ich würde dieses Wissen lieber nutzen und die Anforderungen während der Entwicklung ändern, als ein minderwertiges Produkt herauszubringen.
Nikie

1
@nikie - Ich sage nicht, dass die Anforderungen statisch sein sollten und sich niemals ändern. Ich sage, Sie sollten es aufschreiben, um Missverständnissen vorzubeugen und zu verhindern, dass sich die Gedanken der Menschen im Laufe der Zeit ändern. Wenn sich die Anforderungen ändern sollten, ändern Sie sie, aber halten Sie die aktuellen Anforderungen schriftlich fest. Ist das sinnvoll?
John MacIntyre

33

Management-Verbindung trennen

Wenn die Verantwortlichen für Termine, Funktionen, Personal usw. von den Verantwortlichen für die Durchführung des Projekts getrennt werden. Dies kann dazu führen:

  • Feature Creep, wenn der Kunde mit jemandem spricht, der die Feature-Kosten nicht versteht
  • Mann-Monat-Syndrom, bei dem neue Entwickler spät genug in ein Projekt hineingeworfen werden, um eher eine Behinderung als eine Hilfe zu sein
  • Unrealistische Fristen, die von Personen erstellt werden, die sich mit den geschäftlichen Folgen von Fristenentscheidungen befassen müssen, aber nicht mit den Konsequenzen für die Umsetzung.
  • Produkte, die das Problem nicht lösen, wenn die Kommunikation zwischen Kunden und Entwicklern durch das Management in der Mitte behindert wird.
  • Schlechtes Risikomanagement, bei dem potenzielle Probleme zwischen Entwicklern und Management nicht früh genug kommuniziert werden.

Wenn es so aussieht, als wäre das Management nicht an dem Projekt interessiert, kommuniziert schlecht, hört nicht auf die Kunden oder hört nicht auf das Entwicklerteam, rennt auf die Hügel zu.


+1 für Ihren ersten Artikel. Ich war ein Kunde in dem von Ihnen erwähnten Szenario und es ist für alle schlecht (niemand möchte eine unerwartete Rechnung und niemand möchte einen Streit darüber, sie zu bezahlen).
Fearoffours

+1 Amen. Warst du dort, hast du das getan, ist es mir egal, wieder in dieser Position zu sein.
Evan Plaice

+1 für die Tatsache, dass ich mit all diesen Kugeln lebe (außer vielleicht der 4.).
AShelly,

Gute Antwort. Selbst wenn Sie sich nicht die Mühe gemacht hätten, dies zu erläutern, und einfach 'Management Disconnect' eingegeben hätten, wäre Ihre Antwort eine +10 wert gewesen.
Jim G.

25
  1. Wenn wichtige Entwickler gehen und das Management sich nicht darum kümmert

  2. Wenn wichtige Entwickler gehen und sich keiner der anderen Entwickler darum kümmert

Nummer eins steht normalerweise für Manager, die mit der Teamdynamik nicht vertraut sind (wer ist der "10x Super Star", wer sind die anständigen Programmierer und wie interagieren sie miteinander usw.).

Nummer zwei weist in der Regel auf ein starkes mangelndes Interesse der übrigen Entwickler hin.


24

Das erste Mal, dass jemand, normalerweise das Management, sagt: "Wir haben keine Zeit für ..."

Normalerweise vor etwas, für das wir keine Zeit haben, wie Dokumentationen oder Codeüberprüfungen (die statistisch mehr Fehler als alles andere finden und korrigieren, einschließlich aller Arten von Tests)


8
Haben Sie eine Referenz dafür? Es wäre großartig, Munition zu verwenden ...
Alex Feinman

1
Nennen Sie es "Mawgs erstes Gesetz des Software-Managements"
Mawg

1
@Alex Feinman: IIRC Code Complete enthält zahlreiche Verweise auf Statistiken wie diese.
Nikie

21

Lassen Sie den Kunden, das Marketing oder das Management einen Termin auswählen und versuchen Sie dann, nach einem imaginären Zeitplan zu arbeiten


Vielen Dank. Denken Sie immer daran, Sie können es schnell haben, billig oder arbeiten ... wählen Sie zwei
Mawg

21

Wenn das Management zu schwach ist, um das Geschäft abzulehnen.

Dies führt zu Terminen, die niemals eingehalten werden, was zu einem Mangel an Vertrauen in die IT-Abteilung führt, was dazu führt, dass Entwickler Hacks erstellen (dh auf die Datenbank zugreifen, die auf einem Computer von jemandem ausgeführt wird ... irgendwo), was zu einem Albtraum für die IT führt, wenn ' kritisches System 'muss migriert werden, was zu ...


Nichts macht das Scope-Creep noch schlimmer als "Konzessionsmerkmale", da der PM beim Einrichten der Meilensteintermine einen Fehler gemacht hat.
Evan Plaice

21

Das erste schlechte Zeichen, an das ich denken kann, ist, wenn das Management nicht bereit ist, schlechte Nachrichten an die Kette oder den Kunden weiterzugeben, in der Hoffnung, dass sie verschwinden - dh Management durch Wunschdenken. Ich kann mir nicht vorstellen, wie oft Entwickler bewiesen haben, dass sie die Frist Wochen oder Monate vorher nicht einhalten können, und dennoch möchte niemand dem Kunden davon erzählen. Ich habe selten einen Kunden gesehen, der keine Frist verlängerte, wenn es einen triftigen Grund gab, den Bedarf rechtzeitig zu erläutern. Ich habe oft einen verärgerten Kunden gesehen, als ihm am Tag der Frist mitgeteilt wurde, dass er nicht eingehalten werden würde und dass er auch nicht am nächsten Tag eingehalten werden würde, sondern erst zwei Monate später. An dieser Stelle hinterfragen sie zu Recht Ihre Prozesse - warum haben Sie das nicht früher gewusst?

Ein weiteres sicheres Anzeichen für ein Scheitern ist, dass neue Entwickler eher dem schwierigsten und kritischsten Teil des Prozesses zugewiesen werden als denjenigen, die das aktuelle System bereits verstehen. Beobachten Sie sie dann nicht genau, um festzustellen, ob die Arbeiten tatsächlich ordnungsgemäß abgeschlossen wurden oder ob sie Fragen haben (BIG BIG RED FLAG, wenn keine Fragen vorliegen). Neue Mitarbeiter müssen überwacht werden, bis Sie wissen, dass sie über die Fähigkeiten verfügen, die sie angeblich haben. Ich kann mich immer noch daran erinnern, wie ich einen schmerzhaften Sommer damit verbracht habe, die Arbeit eines neuen Mitarbeiters (bereits nach Ablauf der Frist) zu wiederholen, der einen kritischen Teil eines Projekts erhalten und allen mitgeteilt hat, dass monatelang alles in Ordnung ist, und dann eine Woche nach Ablauf der Frist ohne Vorankündigung gekündigt habe und nichts, was er tat, war brauchbar.

Ein weiteres sicheres Anzeichen für ein Scheitern ist, dass Entwickler an Teilen arbeiten, die davon abhängen, dass andere Dinge zuerst erledigt werden und diese Dinge nicht erledigt oder gar begonnen werden. Wenn das Management die Arbeit nicht in der richtigen Reihenfolge ausführen kann, gehen Sie die Rohre runter.

Natürlich ist es eines der häufigsten Anzeichen dafür, dass die Features schlecht werden, ohne die Deadline jedes Mal zurückzuschieben. Wenn Sie meinem Teller 20 Stunden Arbeit hinzufügen, wird die Frist um 20 Stunden verschoben. Wenn nicht, wird das Projekt garantiert scheitern.


Ja, die Nachrichten werden besser, je weiter es nach oben geht :)
Hans Westerbeek

18

Ein sicheres Zeichen, das ich in meiner Karriere gesehen habe, ist, dass das Management anfängt, über die Einbeziehung von mehr Körpern zu sprechen, um die Zeit im Zeitplan auszugleichen. Ich habe noch nie mehr Stellen in einer Projekthilfe gesehen.


6
Ich hatte einmal einen Manager, der einen Front-End-Webcoder in ein Projekt einbinden wollte (die richtige Entscheidung), aber weil jemand anderes im Projekt langfristig krank geworden war, wollte er einen Treffer in den Vertrag des neuen Mannes, den er nicht haben durfte krank werden.
Jon Hopkins

1
@ Jon - Das ist traurig ... lustig, aber sehr traurig!
Walter,

16

Wenn nicht-technische Manager darauf bestehen, technische Entscheidungen zu treffen, für die sie in keiner Weise qualifiziert sind. Große, große rote Flagge!


16

Das auffälligste Zeichen ist eine hohe Fluktuation. Wenn alle auf der Suche nach einem neuen Job sind, sollten Sie das wahrscheinlich auch tun.

Das andere offensichtliche Zeichen ist mangelnder Fortschritt. Wenn ein Jahr vergangen ist und Sie dem Ziel nicht näher zu sein scheinen, sind Sie zum Scheitern verurteilt. Dies ist insbesondere dann der Fall, wenn sich Anforderungen schneller ändern, als Sie sie implementieren können.


1
Die höchsten Fluktuationsraten waren bei zwei Projekten zu verzeichnen. Eines war ein stabiles Projekt, das weiter lief, und eines war ein bekanntes zum Scheitern verurteiltes Projekt bei einer Bank. Ich war noch nie so glücklich, arbeitslos zu sein wie diese beiden.
David Thornley


11

Du bist "zu 90% fertig", die Lieferung ist nächste Woche, aber es ist in Ordnung, denn alles, was du noch hast, ist "Testen".


2
Scheint sehr lustig, jetzt wo du es sagst. Ist mir allerdings passiert. War damals nicht lustig.

+1000 passiert, wo ich die ganze Zeit arbeite T_T
Songo

1
Es ist lustig, wie jeder Zeitplan Tests als letzten Schritt hat, als ob das Testen keine Fehler findet. Wenn nicht, warum sich mit dem Testen beschäftigen?
JohnFx

Keine Sorge, "der Kunde wird es für uns testen" :-(
Mawg

10
  • Jeder ist körperlich und geistig erschöpft
  • Kunden / Benutzer sind entweder über den Zeitrahmen oder über das, was sie sehen, eindeutig unzufrieden
  • Das ursprünglich schöne Design fühlt sich jetzt kompromittiert an
  • Sie haben sich damit abgefunden, mit einigen relativ schwerwiegenden Fehlern zu arbeiten, die Sie wirklich lieber beheben würden, die Sie aber nicht beheben können
  • Ihr verbleibender Stolz liegt eher in der Schifffahrt als in dem, was Sie versenden - näher an einer Überlebensmentalität als an professionellem Stolz
  • Das Team hat Angst, dass es bestimmte Dinge gibt, die nicht funktionieren, und ignoriert diese Abschnitte und hofft auf das Beste, weil es Angst davor hat, was dort drin sein könnte
  • Jeder ist davon überzeugt, dass er weit darüber hinaus gegangen ist (und sie haben Recht)
  • Menschen zeigen Anzeichen von Burnout (allgemeiner Pessimismus, Desinteresse, Wut)

(Entstanden aus Jim McCarthys Dynamics of Software Development ).


+1 für "Ihr verbleibender Stolz liegt im Versand und nicht in dem, was Sie versenden." Das ist so wahr (obwohl ich das nur in meinen Managern gesehen habe. Wir Entwickler wussten, was aus der Tür ging ... Füße zuerst)


9

Wenn der Projektplan eine einzige Iteration von Design, Entwicklung, Test und Bereitstellung vorsieht - den klassischen Wasserfall - für ein Projekt, das länger als einen Monat dauert, würde ich eine Meile laufen.

Sie müssen nicht vollständig agil sein, aber mit kurzen Entwicklungszyklen können Sie jedem (Kunden, Management und Entwicklern selbst) den Fortschritt demonstrieren und geänderte Anforderungen bewältigen, wenn dies unvermeidlich ist.


6
Es ist nichts falsch mit Wasserfall, wenn es richtig verwendet wird. Leider wird es nie richtig verwendet :)
Adolf Knoblauch

@adolf - Ich dachte an einen einzigen Durchgang durch den Wasserfall. Mehrere Mini-Wasserfälle sind wahrscheinlich in Ordnung.
ChrisF

Imo, Agile ist nur eine Reihe von Wasserfällen. Sehr wenige können Wasserfall richtig machen, ergo ..
Mawg

@mawg - Mein Punkt war, dass eine einzelne lange Iteration schlecht ist, während eine Reihe von kurzen Iterationen (wie auch immer sie verwaltet werden) besser ist.
ChrisF

1
Erinnert mich an ein Projekt zur Entwicklung elektronischer Dinge, bei dem keine Prototypen geplant waren ... Ein sicheres Zeichen für eine bevorstehende Katastrophe.
quick_now

9

Entwickler rennen wild auf der Strecke

Dies ist vorgekommen, wenn Sie feststellen, dass andere Entwickler (oder leider Sie) eine Komponente entwickelt haben, die erheblich vom Design abweicht, und dass dies erst in den System- / UAT-Tests berücksichtigt wird. Ich spreche nicht von Käfern; Ich spreche von signifikanten Systemkomponenten, denen Features fehlen oder deren Funktionalität nicht erfragt wurde, und die UAT niemals ohne signifikante Überarbeitung bestehen werden. Dieses Problem weist auf Folgendes hin:

  • Ihr Qualitätssystem ist kaputt. Warum hat der betreffende Entwickler das Problem in der Entwurfs- / Implementierungsphase nicht aufgegriffen? Wurde der Code nicht überprüft / inspiziert? Warum haben die Unit- und Integrationstests dies nicht aufgegriffen? Wenn es keine einheitlichen Tests für die Einheit / Integration gibt, sind Sie durchgeknallt.
  • Ihr Projektmanager / technischer Leiter hat keine Kontrolle über sein Entwicklungsteam. Wenn sie die Entwickler nicht dazu bringen können, das Erforderliche zu liefern, werden sie niemals in der Lage sein, eine vollständige Lösung zu liefern.

8

Wenn ein Schlüsselentwickler in einem Projekt seit Wochen keinen Code mehr eingecheckt hat und ein schwerwiegender Meilenstein bevorsteht.

Es war eine Auftragsarbeit, und die erfahreneren Entwickler und PMs beschlossen, sich zusammenzuschließen, um einen größeren Schnitt zu erzielen, sodass der andere Entwickler drei Wochen lang als Geisel für kritischen Code fungierte. Am Ende haben wir den inkompetenten PM gefeuert (der 6 Monate damit verbracht hatte, das Projekt auf einen Ruinenkurs zu setzen) und die Dinge mit dem Entwickler besprochen.

Es genügt zu sagen, dass der Rest des Projekts ein masochistischer Todesmarsch war, das Einfrieren der Spezifikationen verzögert wurde, der Kunde eine Reihe von Konzessionsmerkmalen erhielt, um die schreckliche Planung auszugleichen, mit der der PM das Projekt verlassen hatte, und die Qualität des Projekts litt rundum deswegen.

Der Premierminister hatte sogar den Mut, für CDR (Critical Design Review) nach unten zu fliegen, nur um die Besprechung mit dem Kunden zu beenden und einen zischenden Anfall zu bekommen. Als er verlangte, dass seine Reisekosten im Rahmen des Projekts bezahlt würden, wurde ihm höflich gesagt, er solle mit sich selbst verderben.

Ich kann mich leicht mit mindestens 5 der anderen hier gefundenen Antworten identifizieren, die das Projekt betrafen. Kurz gesagt, ich habe bei meinem ersten ernsthaften Programmierprojekt viele schwierige Lektionen gelernt.


8

Mein erstes Anzeichen war, als sie fragten, wie viele Überstunden wir jeweils für die nächsten zehn Wochen leisten würden, und den Angestellten einen Bonus für die geleistete Arbeit anboten, der auf dem Erfolg des Projekts und der Einhaltung der Fristen beruhte.

Andere wichtige Anzeichen, die ich gesehen habe: Die Definition der Anforderungen liegt über dem Zeitplan und das Enddatum wird nicht verschoben. Wir waren zurück, bevor wir überhaupt anfangen können. Sie haben sich die Zeit für das Design genommen, sodass wir zunächst kein Datenbankdesign und kein Site-Design vorgenommen haben. Wir hatten jedoch erwartet, dass dies pünktlich erfolgen würde, indem wir unter anderem Importe in Tabellen durchführen, die noch nicht entworfen und erstellt wurden.

Wenn Elemente auf dem kritischen Pfad gleichzeitig und nicht in der richtigen Reihenfolge ausgeführt werden. (Wenn ich das Tool X verwenden muss und Programmierer A gerade mit dem Erstellen beginnt, wird dies meine Aufgabe verzögern.)

Wenn Manager Code für Thanksgiving schreiben.

Wenn Sie E-Mails mit einem Datums- / Uhrzeitstempel nach 23 Uhr und vor 6 Uhr abrufen.

Wenn jede Frage zum Umgang mit Komplexität mit der gleichen Antwort beantwortet wird: "Mach dir darüber noch keine Sorgen."

Wenn sich die Anforderungen an dem Tag ändern, an dem Sie zur Qualitätssicherung gehen oder live gehen.

Wenn Sie anfangen, tägliche Besprechungen abzuhalten, die mehrere Stunden dauern, um Ihre mangelnden Fortschritte zu besprechen. Oh, das wäre, weil ich den ganzen Tag in Meetings bin. Tägliche 5-minütige Besprechung in Ordnung, tägliche Besprechung, die über eine Stunde dauert, nicht in Ordnung.

Wenn das Datenbankteam und das Anwendungsteam nicht miteinander sprechen.

Wenn der Kunde die versprochenen Informationen nicht rechtzeitig zur Verfügung stellen kann. Insbesondere, wenn es sich um Datenimportdateien handelt und Sie diese Daten in der Datenbank benötigen, um zu überprüfen, wie der Code funktioniert.

Wenn Sie erwägen, eine Ampel vor dem Büro eines Managers zu installieren, um Sie zu informieren, ob es sicher ist, sich an diesem Tag an ihn zu wenden.


2
Der Kicker in Ihrem ersten Absatz ist, dass, wenn das Management das tut, die Fristen wahrscheinlich bereits zum Scheitern verurteilt sind und die Boni unerreichbar sind.
David Thornley

1
@ David Thornley, yep das ist genau es.
HLGEM

6

Ich denke, es ist im Allgemeinen leicht, ein scheiterndes Projekt zu erkennen, wenn die Frist näher rückt. Wie Sie sagten, ist Feature-Creep in Kombination mit einer festgelegten Frist eine sichere Möglichkeit, ein Projekt zu beenden.

Der Schlüssel ist jedoch, ein scheiterndes Projekt rechtzeitig zu erkennen. Ich denke, das einzige wirkliche "Zeichen des Untergangs" in diesem Fall wäre ein völliges Fehlen der Definition von "Wann sind wir fertig?". Sofern wir dies nicht am Offset wissen, sind wir für den Ausfall IMO zum Scheitern verurteilt.


1
aka "definition of done", wie von IT und Business vereinbart
adolf

6

Ich war in den letzten fünf Jahren in drei Todesmärschen. Hier sind ein paar Dinge, die zu meinem Gefühl des bevorstehenden Untergangs beigetragen haben.

  • Das Unternehmen lässt Junior-Entwickler neue Funktionen entwerfen und entwickeln und beauftragt teurere Senior-Entwickler mit der Behebung ihrer Fehler.
  • Das Unternehmen lagert kritische Softwarekomponenten an Unternehmen aus der Dritten Welt aus, die nicht über die erforderliche Fachkompetenz verfügen.
  • Die Crunch-Time-Zyklen rücken so eng zusammen, dass die Gesundheit der Menschen in Mitleidenschaft gezogen wird.
  • Die Pillen, die Ihr Teamleiter einnimmt, um sich selbst zu betäuben und jede Nacht mit der Arbeit aufzuhören.
  • Der Kunde sendet Änderungsaufträge schneller, als Sie sie analysieren können.
  • Sie sollten in ein paar Wochen mehrere Jahre arbeiten, aber das Management weigert sich, ein Feature-Freeze durchzuführen.
  • Ihre Hardwarelieferanten haben eindeutig Probleme, ein funktionsfähiges Produkt termingerecht zu liefern, und die Entscheidungsträger in Ihrem Unternehmen werden keine Alternativen in Betracht ziehen.
  • Die Prototyp-Geräte, die Entwickler benötigen, damit sie die Chance haben, den wahrscheinlich unrealistischen Zeitplan einzuhalten, werden den Top-Managern weggenommen, damit sie sich wohl fühlen.
  • Woche eins: "Oh, Mist, der Code ist fehlerhaft. Alle haben aufgehört, neue Funktionen zu entwickeln und Fehler zu beheben." Woche zwei: "Oh, Mist, wir werden den Feature-Zeitplan nicht einhalten. Alle haben aufgehört, Fehler zu beheben und neue Features zu schreiben." Wiederholen Sie auf unbestimmte Zeit.
  • Die Entwicklung wird in einem Land durchgeführt und die Qualitätssicherung wird in einem anderen Land auf halbem Wege der Welt durchgeführt. Eine Roundtrip-Kommunikation über einen Fehler erfordert daher immer 24 Stunden, und mindestens eine der beteiligten Personen erörtert komplizierte technische Probleme in einer Sprache, die sie nicht beherrschen.

Ich würde dir eine Million für diesen letzten Punkt geben.
HLGEM

5

Für mich ist es der Moment, in dem diejenigen, die für den Funktionsumfang verantwortlich sind (auch bekannt als Manager, Produktbesitzer, Kunden ...), aufhören, sich um ihre Antworten zu kümmern oder sich hoffnungslos zu äußern. Fragen zu Funktionen stoßen auf Apathie und Entmutigung. Es ist klar, dass sie ihre Investition oder ihr Vertrauen in das Projekt verloren haben.

Dies geschah für mich, als ein Projekt, an dem ich beteiligt war, von der "oberen Führungsebene" getroffen wurde. Ich stellte Fragen, wie es funktionieren sollte, und plötzlich hatte niemand eine echte Meinung.

Etwas später wurde das Projekt abgebrochen und der ganze schöne Code, den ich geschrieben hatte, wurde verschrottet.


5

Paul Vick hat vor einigen Jahren einen hervorragenden Beitrag über Black-Hole-Projekte geschrieben . Ich denke, alle Ratschläge sind relevant. (Ich habe die Elemente und Zusammenfassungen der Länge nach bearbeitet.)

  • Absurd grandiose Ziele . Wie "die Art und Weise, wie Menschen mit Computern arbeiten, grundlegend überdenken".
  • Völlig unrealistische Fristen . Normalerweise liegt dies daran, dass sie glauben, dass sie die ursprüngliche Codebasis in sehr viel kürzerer Zeit als ursprünglich benötigt umschreiben können.
  • Unrealistische Überzeugungen zur Kompatibilität . Als ob Sie glauben, Sie könnten alle kleinen Macken ohne zusätzlichen Aufwand umschreiben und bewahren.
  • Immer "sechs Monate" von der Hauptfrist entfernt, die scheinbar nie eintrifft . Wenn es eintrifft, wird am Ende des Projekts ein weiterer Meilenstein hinzugefügt, um dies zu kompensieren.
  • Muss riesige Mengen an Ressourcen verbrauchen . Gewöhnlich durch Absaugen des Lebensbluts eines oder mehrerer etablierter Produkte.
  • Arbeiten Sie mit brandneuen Technologien, die sich noch nicht bewährt haben . Als solche können sie alle Skalierbarkeitsprobleme mit der neuen Technologie beseitigen.

4

Ich übersetze mental: "Alles ist in Ordnung. Wir müssen uns keine Sorgen machen." zu "Wir sind alle beschissen", jedes Mal, wenn ich es von der Geschäftsleitung sagen höre. Man hört normalerweise, wie Manager es in nicht verwandten Besprechungen nebenbei einwerfen ("Oh, übrigens, alles läuft gut. Es gibt keinen Grund zur Sorge!"), Aber es ist eine noch größere rote Fahne, wenn eine Besprechung speziell dazu aufgerufen wird.

Ich habe noch keinen Manager gehört, der etwas in diese Richtung gesagt hat, und es hat sich nicht als Lüge herausgestellt.


Lolx! So wahr; das Treffen "Sie haben vielleicht Rumo (u) rs ..." gehört.
Mawg

4

Ein paar Punkte aus einem toten Projekt, an dem ich beteiligt war:

  • Das Management verdoppelt das Team, um schneller fertig zu werden.
  • Die Entwickler "vergraben" Fehler, um die Fristen einzuhalten, und obwohl dies offensichtlich ist, wird es bei der Codeüberprüfung ignoriert.

3

Wenn das Management das Projekt gleichzeitig in verschiedene Richtungen zieht und der Wagen stehen bleibt.

Ich war einmal an einem Projekt beteiligt, das von zwei Leuten geleitet wurde. Entweder haben sie nicht miteinander geredet oder jeder hat ein Ego zu lösen, aber sie haben unsere Arbeit ungefähr jede Woche in die entgegengesetzte Richtung befohlen. Es dauerte nicht lange, bis klar wurde, dass es nie ein Ergebnis geben wird. Gerne hat meine Teilnahme nur ein paar Monate gedauert.


LOL, ich habe so eine Manpower-Studie durchgeführt, obwohl es noch schlimmer war, als die beiden Hauptdarsteller versuchten, eine Affäre mit derselben Frau zu haben. Wenn Bill ja sagte, dann sagte Bob nein und umgekehrt, das schlimmste Projekt, an dem ich je gearbeitet habe. Ich bat um eine Neuzuweisung.
HLGEM

3

Lesen Sie diesen kurzen Artikel: Wenn IT-Projekte richtig laufen .

Wenn eines der im Artikel genannten Elemente fehlt, sollten die Alarmglocken läuten:

Stellen Sie also sicher, dass Ihr Projekt über Folgendes verfügt, wenn nicht, sollten Sie besorgt sein:

(um den obigen Artikel zu zitieren :)

  1. "Erstens basieren sie auf einer klaren Vision dessen, was erreicht werden soll."

  2. "Das zweite Merkmal betrifft die Unterstützung und das Engagement der verschiedenen Beteiligten im gesamten Unternehmen, insbesondere der Geschäftsleitung."

  3. "Drittens geht es um ein Verständnis der zu lösenden Probleme."

  4. "Das letzte gemeinsame Merkmal ist, dass ausreichende Ressourcen und Fähigkeiten zur Verfügung gestellt wurden."


Großartiger Artikel! Ich mag den Ansatz "wenn die Dinge gut laufen".
User8865

3

Statistisch gesehen ist der Start eines Softwareprojekts ein gutes Zeichen dafür, dass es scheitern wird, wie es eine überwältigende Mehrheit von ihnen tut ...


1
Ich denke, das ist eine Startstatistik, nicht unbedingt eine allgemeine Softwareprojektstatistik.
Erik Reppen

2
Hier ist eine Referenz, die zufällig gegoogelt wurde, was darauf hindeutet, dass sie nicht auf Start-ups beschränkt ist. Sehen Sie sich auch Mr. McConnels exzellente Rapid Development für weitere Juwelen zu diesem Thema an.
Nitsan Wakart
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.