Es gibt einen Witz wie diesen:
1. Ein Programmierer schreibt Code, von dem er glaubt, dass er fehlerfrei ist.
2. Der Softwaretest findet 20 Fehler.
3. Der Programmierer behebt 10 Fehler und sagt dem Testteam, dass die anderen 10 keine Fehler sind.
4. Das Testteam stellt fest, dass 5 der Fehlerbehebungen überhaupt nicht funktionieren, und entdeckt gleichzeitig 15 neue Fehler.
5. Wiederholen Sie die Schritte 3 und 4 dreimal.
6. Aufgrund von Marktdruck und um den ursprünglich festgelegten, allzu optimistischen Veröffentlichungsplan einzuhalten, kam das Produkt schließlich auf den Markt.
7. Benutzer finden 137 neue Fehler.
8. Der Programmierer, der den Projektbonus bereits kassiert hat, ist nirgends zu finden.
9. Das neu gebildete Projektteam behebt fast alle 137 Bugs, findet dann aber 456 neue Bugs.
10. Der ursprüngliche Programmierer schickt eine Postkarte aus Fidschi an das Testteam, das unter unbezahlten Löhnen leidet. Das gesamte Testteam tritt geschlossen zurück.
11. Das Unternehmen wird von einem Konkurrenten feindlich übernommen. Zum Zeitpunkt der Übernahme enthält die endgültige Version der Software 783 Bugs.
12. Ein neuer CEO tritt sein Amt an. Das Unternehmen stellt einen neuen Programmierer ein, um die Software neu zu schreiben.
13. Der Programmierer schreibt Code, von dem er glaubt, dass er fehlerfrei ist.

Wenn Sie mich fragen, wenn ein solches Unternehmen wirklich existiert, wäre es ein schlechter Dienst an den Menschen, nicht bankrottzugehen.
Dieser Witz beginnt mit einem Programmierer, endet mit einem Programmierer und gibt den Programmierern von Anfang bis Ende die Schuld. Aber was ich sagen will, ist, dass dies voll und ganz das Versagen der Manager ist – während des gesamten Prozesses ist überhaupt keine Managementarbeit zu erkennen. Solche Manager sind nicht nur unwissend und inkompetent, sondern auch schamlos – sie schieben die Verantwortung für ihr eigenes Versagen auf die Programmierer.
1. Was befähigt den Programmierer zu beweisen, dass sein Code keine Bugs hat? Gibt es Testfälle? Gibt es Code-Reviews? Das Management fehlt in dieser Phase.
2. Wurde nach dem Finden von Bugs durch Tests irgendein Bug-Management betrieben? Gab es eine Nachverfolgung? Das Management fehlt in dieser Phase.
3. Was beweist, dass der Programmierer diese 10 Bugs tatsächlich behoben hat? Und warum sind die anderen 10 keine Bugs? Wird der Bewertungsstandard für Bugs nach dem Gutdünken des Programmierers festgelegt? Das Management fehlt in dieser Phase.
4. Wurde jemand für die 5 Bugfixes zur Verantwortung gezogen, die nicht funktioniert haben? Das Hinzufügen neuer Bugs ist während des Änderungsprozesses unvermeidlich, aber mit einem effektiven Unit-Testing-Mechanismus könnte diese Situation stark reduziert werden. Das Management fehlt in dieser Phase.
5. Iteration ist normal, aber die Probleme divergieren statt zu konvergieren, was zeigt, dass es keine effektive Managementkontrolle gibt. Das Management ist in dieser Phase abwesend.
6. Sowohl der übermäßig optimistische Zeitplan als auch die unmögliche Frist belegen die Unwissenheit und Inkompetenz des Managers. Das Produkt unter solchen Umständen zwangsweise herauszubringen, ist nichts anderes als "die Unwissenden sind furchtlos."
7. Das ist unverantwortlich gegenüber den Nutzern, und der Manager trägt die größte Verantwortung.
8. Dass unter solchen Umständen Projektboni ausgezahlt werden können, zeigt nur, dass dieser Manager nicht gewöhnlich dumm ist.
9. In der Managementarbeit gibt es keinerlei Verbesserung, und die Probleme verharren in einem Zustand divergierender Iteration. Das Management ist nach wie vor nicht vorhanden.
10. Das Vorenthalten der Löhne der Testabteilung spiegelt die Vernachlässigung des Qualitätsmanagements durch den Manager und die völlige Unkenntnis des Personalmanagements wider.
11. Zwei Worte für das übernommene Unternehmen: selbst schuld. Zwei Worte für den Erwerber: blind.
12. Es ist klar, dass sich der neue Manager und der ursprüngliche Manager nichts nehmen—keiner erkennt die Wurzel des Problems. Aber andererseits: Nur ein solcher Manager würde die Entscheidung treffen, diese Art von Unternehmen zu übernehmen.
13. Die Wiederholung der Geschichte ist unvermeidlich.
Für ein normales Unternehmen oder Projekt muss sein Betrieb in einem Aufwärtszyklus verlaufen. Die Arbeit, die einen solchen Betrieb gewährleistet, ist das Management. Und der Hauptinhalt des Managements ist die Kontrolle, einschließlich der Kontrolle des Tempos des Zyklus—weder zu schnell noch zu langsam; der Kontrolle der Entwicklungsrichtung—nur aufwärts, niemals abwärts; und der Kontrolle der Stabilität des Betriebs—keine dramatischen Höhen und Tiefen, kein Zusammenkommen und Auseinandergehen aus einer Laune heraus.
Und nichts davon ist in diesem Beispiel zu sehen.
Im Beispiel in diesem Witz wird alles von der Entwicklungsarbeit getrieben, was zuallererst ein Richtungsfehler ist. Ein Produkt dient den Nutzern, also sollte es natürlich von den Nutzern und dem Markt getrieben werden, und der Schwerpunkt der Arbeit sollte letztlich in Kombination mit den eigenen Fähigkeiten festgelegt werden. Dieser Fehler spiegelt wider, dass der Manager nicht besonders gut versteht, was er managt, sodass er nur den Programmierern ausgeliefert sein kann, die es besser verstehen – und tatsächlich verstehen sie außer Technologie nicht viel mehr.
Wenn ein Manager nicht versteht, was er managt, kann er es nicht gut managen.
Das steht außer Zweifel, doch die heimische Softwarebranche scheint es durchweg nicht glauben zu wollen. Eine der am tiefsten verwurzelten Lügen in der chinesischen Softwareindustrie lautet: Ein Manager muss nur Management verstehen, nicht Technologie.
Tatsächlich wird dies von jenen unwissenden, inkompetenten und schamlosen Managern einfach erfunden, um Geld zu ergaunern. Wer das glaubt, wird unweigerlich den Preis in Geld zahlen.
Zweitens das Qualitätsmanagement. Der grundlegende gesunde Menschenverstand im Qualitätsmanagement sagt uns, dass vor dem Ende jedes Zyklus die wichtigste Aufgabe darin besteht, zusammenzufassen und zu verbessern. Nur so können wir sicherstellen, dass sich der zyklische Ablauf aufwärtsentwickelt, statt außer Kontrolle zu geraten und sich abwärtszuentwickeln. Nur mit effektivem Qualitätsmanagement können wir sicherstellen, dass der Iterationsprozess konvergiert und letztlich sein Ziel erreicht. Aber in diesem Beispiel fehlt dieser Teil eindeutig – obwohl es eine Testabteilung gibt, ist ihre Rolle lediglich die Qualitätsprüfungsphase des Qualitätsmanagements; der Managementteil fehlt weiterhin.
Dann wäre da noch das Personalmanagement. Softwareentwicklung ist arbeitsintensive Arbeit; obwohl sie geistige Arbeit ist, heißt das gleichermaßen, dass der menschliche Faktor darin eine entscheidende Stellung einnimmt. Im Beispiel erhielt der Programmierer, der die Fehlerbehebung nicht zu Ende brachte, den Projektbonus, während den ebenso hart arbeitenden Testern der Lohn vorenthalten wurde. Dies zeigt nicht nur das mangelnde Verständnis des Managers für ihre Arbeit und seine Missachtung des Qualitätsmanagements, sondern auch, dass er völlig unfähig ist, Menschen zu führen. Das ist ein Akt des Teammords – ein Team zu ermorden ist weitaus einfacher, als eines aufzubauen.
Schließlich machte dieser gescheiterte Manager aus seiner Erfahrung diesen Witz, ließ alle sehen, wie übel ihm von den Programmierern mitgespielt wurde, und dämonisierte Programmierer als eine Gruppe von Lügnern. Doch jeder, der auch nur ein wenig Managementwissen hat, kann bei einer einfachen Analyse erkennen, dass allein die Unwissenheit und Inkompetenz dieser Person zu seiner aktuellen Situation geführt haben, und sein Verhalten, die Schuld auf andere abzuwälzen, zeigt zusätzlich seine Schamlosigkeit. Wenn Manager in hohen Positionen sogar die Verantwortung abschieben, die sie tragen sollten, wofür sind sie dann noch kompetent?
Quelle: http://blog.csdn.net/raptor/article/details/727299