Ich habe eine Idee zur Steigerung der Produktivität in einem Unternehmen gelesen. Es ging so:
Haben Sie einen bestimmten Fonds, das wird ein Bonus sein. Sagen wir 100.000 Dollar. Für jeden gefundenen konkreten Fehler erhalten die Tester 5 bis 15 US-Dollar. Was am Ende des Monats / Jahres noch übrig ist, geht an die Entwickler.
Theoretisch scheint es eine wunderbare Idee zu sein, obwohl ich nicht sicher bin, wie gut es in der Praxis funktionieren wird . Die offensichtliche Folge davon ist, dass es den Antagonismus zwischen Entwicklern und Testern fördert. Das Bug-Geschäft wird zu einem Nullsummenspiel.
Ist der Antagonismus eine schlechte Sache? Wie wird sich dies auf die Produktivität und vor allem auf das Unternehmen auswirken? Persönliche Erfahrungen werden sehr geschätzt.
(Ich erschrecke, wenn ich solche "Motivationsschemata" lese.)
Vielleicht definiert der Autor dieser Idee "Produktivität" anders als ich es tun würde.
Das Ziel der meisten Unternehmen, die Software herstellen, ist es, Geld zu verdienen und vielleicht den Geldbetrag zu maximieren, den sie verdienen. Das Ziel eines Bug-Bounty-Systems ist weniger klar und hat sicherlich nichts mit Produktivität zu tun. Es würde viel Zeit aufgewendet werden, um Bonusgeld zu erhalten, und wenig Zeit würde darauf verwendet werden, die Software zu versenden (so verdient das Unternehmen Geld).
Stellen Sie sich ein Unternehmen mit einem Entwickler und einem Tester vor
Wenn Sie der Entwickler wären, wäre es Ihre optimale Strategie, dem Tester die gesamte Software vorzuenthalten, bis überhaupt keine Fehler mehr vorhanden sind oder bis der Tester keine Zeit mehr hat, einen zu finden
Ich habe in einem Unternehmen gearbeitet, das Entwickler eher mit Lob als mit Geld belohnte, und genau diese Strategie verfolgte ein Entwickler. Builds wurden alle 2 Wochen für die Qualitätssicherung freigegeben. Und jeden zweiten Freitag hatten wir ein Full-Team-Meeting, bei dem die Anzahl der Fehler im aktuellen Build bekannt gegeben wurde. Wenn ein Entwickler jemals keine Fehler hatte, wurde dieser Entwickler für seine großartige Arbeit ausgezeichnet und gelobt.
Ein Entwickler hat beschlossen, das System zu spielen. Sie hielt den Build (immer mit vernünftigen Ausreden) bis kurz vor dem wöchentlichen Treffen. Sie veröffentlichte dann den Build, der Fehlerzählungsbericht wurde ausgeführt und "magisch" hatte sie pünktlich zum Meeting eine Fehleranzahl von Null.
Während sie eine gute Entwicklerin war, war ihr Code keiner besser als die meisten anderen. Ihre Klugheit bestand darin, das System zu ihrem Vorteil zu manipulieren.
Ich arbeite derzeit in einem Geschäft, das Entwickler für die Anzahl der Fehler bestraft, die ihrer Arbeit während eines Projekts zugeschrieben werden. Es wird erwartet, dass sie ihre Fehleranzahl gegenüber dem Vorjahr "verbessern". Dies ist Teil ihrer MBOs und Teil ihrer jährlichen Bonusauszahlung.
Es ist nicht überraschend, dass sie lange gebraucht haben, um den ersten testbaren Build für die Qualitätssicherung zu erstellen. Und sie baten die Qualitätssicherung, viel Zeit mit Tests in der Entwicklungsumgebung zu verbringen (wo keine Fehlerberichte geschrieben werden können). Sie haben jede Chance erhalten, weniger Fehler im Berichtssystem zu erzeugen und damit ihren Bonus zu maximieren.
Der Produktmanager hat sogar beschlossen, viele Fehlerberichte in "Erweiterungsanforderungen" zu ändern, um keine Auswirkungen zu haben Entwickler-MBOs. Sein Argument war: "Nun, die Entwickler haben diese Funktion noch nicht vollständig entwickelt, also werden sie sie verbessern, wenn sie Zeit haben."
Wenn ich "durch den Fehler" bezahlt würde, könnte ich eine Menge finden Fehler ganz leicht, egal wie gut der Entwickler ist. (Ich mache diese Arbeit seit fast 30 Jahren). Ich würde mich anfangs auf die niedrig hängenden Früchte konzentrieren und alles überspringen, was überhaupt zeitaufwändig war. Meine Fehlerberichte wären minimal und nicht sehr hilfreich - im Grunde genommen alles, was nötig war, um den Fehlerbericht in das System einzugeben und das Geld zu bekommen.
Das Ergebnis wären viele oberflächliche Fehlerberichte, die "gerade greifbar genug" waren, und die Software würde unweigerlich einige wichtige kritische Fehler aufweisen. Ich kann mir nicht vorstellen, dass das System jemals ausgeliefert wird.
Die Entwickler würden ihre ganze Zeit und Aufmerksamkeit auf neuen Code konzentrieren. Es wäre absolut kein finanzieller Vorteil, bereits gefundene Fehler zu beheben. Und sie würden einen Anreiz erhalten, winzige, unbedeutende Veröffentlichungen zu produzieren. Wenn sie eine Veröffentlichung produzieren, die nur eine einzige Zeile perfekten Codes enthält, erhalten sie einen Bonus von 100.000 US-Dollar! Warum überhaupt knifflige Funktionen hinzufügen?
Beide Teams stritten sich vehement über jeden einzelnen Fehlerbericht und ob es sich wirklich um einen "greifbaren" Fehler handelte oder nicht. (Das ist ein schöner und unscharfer Begriff. Ich würde gerne hören, wie ein Team versucht, ihn konkret zu definieren.) Diese Art von Argumenten bilden nicht die Grundlage für alles, was ich Produktivität nennen würde.
Und weder Tester noch Entwickler würden Zeit für etwas anderes aufwenden. Keine Besprechungen, keine Dokumentation, keine Kundenbetreuung, keine Hilfe für andere, keine Vorbereitung für den Versand. Hey, wenn es wichtig wäre, wäre Geld damit verbunden, oder?
Und dieser letzte Teil ist bedeutsam. Für Wissensarbeiter ist es ein großer Nachteil, häufig Geldprämien an Aufgaben zu knüpfen, die sie für wichtig halten. Wenn Sie die Arten von Funktionsstörungen, die durch diese Art von Anreizsystemen entstehen können, besser verstehen möchten, empfehlen wir Ihnen dringend, Messen und Verwalten der Leistung in Organisationen von Robert D. Austin zu lesen.
Kurz gesagt, das ist eine schreckliche Idee.
Die meisten guten Softwareunternehmen erkennen die Torheit eines solchen Plans und versuchen, sich von solchen Systemen fernzuhalten. Die meisten Softwareunternehmen verstehen, dass die Freigabe von Software ohne Fehler kein realistisches Ziel ist und dass es wichtiger ist, Software rechtzeitig freizugeben.