Sollte Geld als Motivation an Tester und Entwickler gezahlt werden, um Fehler zu entdecken und zu produzieren?

Ich habe eine Idee zur Steigerung der Produktivität in einem Unternehmen gelesen. Es ging so:

Haben Sie einen bestimmten Fonds, der ein Bonus sein wird. Sagen Sie 100.000 Dollar. Für jeden gefundenen konkreten Fehler erhalten die Tester 5 bis 15 US-Dollar. Was am Ende des Monats/Jahres übrig bleibt, 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-Business wird zum Nullsummenspiel.

Ist der Antagonismus etwas Schlechtes? Wie wird es sich auf die Produktivität und vor allem auf die Organisation auswirken? Persönliche Erfahrung wird sehr geschätzt.

PS: Ich bin in keiner Führungsposition (noch am College), obwohl ich Pläne für ein paar Software-Startups habe, wenn ich meinen Abschluss habe.

Die Kernidee dabei ist, dass es besser ist, ein Team in den Wettbewerb zu stellen als zu kooperieren. Und nein, selbst wenn Sie die praktischen Probleme mit diesem Plan ignorieren, ist das ein Rezept zum Scheitern.
Das motiviert beide Teams, härter zu arbeiten. Sie werden dafür belohnt, dass sie ihre Arbeit besser machen.
@TobiAlafin siehe das Video, das ich in meiner Antwort verlinkt habe, warum es sie überhaupt nicht motiviert. Geld allein ist ein schrecklicher Motivator, ungeachtet dessen, was viele Leute denken.
Vielleicht für den ersten Lauf, dann sitze ich da und weiß, dass mein Kollege einen massiven Bonus bekommen hat und ich nicht, obwohl wir gleich hart gearbeitet haben, das wird meiner Moral nicht gut tun
Ich habe die Frage positiv bewertet, weil es ein wirklich wichtiges Konzept ist, es richtig zu machen. Aber nehmen Sie bitte den Rat all dieser Helfer an, die viele unterschiedliche Erfahrungen und Hintergründe haben und die sich alle einig sind, dass dies eine Idee mit VIELEN schädlichen Nebenwirkungen ist, die weitaus negativere Auswirkungen haben könnte als alles Gute, das kommen könnte davon.
Bug ist eine Bestimmung. Sie denken, dass sich Software auf eine bestimmte „falsche“ Weise verhält und dass dies wichtig für das Geschäft ist. In Wirklichkeit kann sich herausstellen, dass das, was Sie denken, falsch oder in Ordnung ist, weil die geschäftlichen Anforderungen nicht beeinträchtigt werden. Es ist ein langer Weg, beides zu beweisen, und wenn es um Geld geht, wird es Grabenkämpfe geben. Die Entwicklung neuer Funktionen wird aus Angst stagnieren. A- und A+-Leute werden in Kürze abreisen.
Daily WTF hat eine ausgezeichnete Geschichte über etwas Ähnliches und Sie können sehen, was passiert ist: The Defect Black Market
Diese Frage zeigt gewissermaßen die Grenzen des Ultra-Wettbewerbsdenkens auf.
Aaahhh die Gamifizierung von Entwicklung und Debugging! Spiele irgendetwas und die Leute werden anfangen, es zu spielen, es zu manipulieren, es zu betrügen, es zu hacken, es zu schlagen, ...
@FixedPoint und QA/Entwickler sind in der Regel GUT bei Spielen. Normalerweise besser als die Manager, die die Regeln für die Spiele machen ...
Welche Motivation haben Programmierer, die Fehler zu beheben? Sobald der Fehler als Fehler markiert wurde, ist es sicherer, ihn NICHT zu beheben - wir werden keinen neuen Fehler einführen, und Geld ist sowieso verloren.
Warum in aller Welt eine Nullsummenlösung verwenden? Finden Sie zumindest eine Lösung mit positiver Summe (Punkte für Software, die die Client-Validierung bestanden hat). Auf dieser Grundlage können Sie dann darüber nachdenken, wie Sie die Vorteile sinnvoll verteilen können.
Ich habe mich entschieden, die Antworten zu akzeptieren, die ich gesehen habe, und ich habe dies als eine Idee fallen gelassen, die ich in Zukunft verwenden werde. Eriks Video hat mich überzeugt.
Obligatorische Dilbert-Referenz: dilbert.com/strip/1995-11-13
Genau dieses Szenario ist in der Geschichte passiert (ich kann mich nicht erinnern, wo), aber einfacher gesagt, wo Entwickler für jeden Fehler bezahlt wurden, den sie zerquetschen. Dies hat zu Entwicklern geführt, die eine riesige Menge an "Bugs" produziert und behoben haben.
Anstelle von Geld, wie wäre es mit etwas Dummem und Trivialem wie Cupcakes?
Was ist mit der Situation, in der ein Entwickler einen Fehler findet und behebt, dieser aber trotzdem in Jira oder Bugzilla landet, damit die QA weiß, dass er getestet werden muss? Diese Idee ist zu schwarz und weiß und zu „wir gegen sie“.
Funktionieren Cupcakes überhaupt?
Meiner Erfahrung nach würden Cupcakes deutlich besser funktionieren, wenn die Idee überhaupt funktionieren würde. Dies liegt daran, dass es einen freundlichen Comp fördert, bei dem eine Seite es der anderen unter die Nase reiben kann, ohne schrecklich schreckliche Menschen zu sein. Es hätte das Potenzial, eher wie ein Freundschaftsturnier zu laufen als, sagen wir, die Hungerspiele. Stichwort Potenzial. Wenn Sie vorhaben, Manager zu werden, müssen Sie unbedingt den Unterschied lernen.
@Jeff: Cupcakes haben auch Probleme, besonders wenn das Testteam viele Fehler findet. Beginnender Diabetes, arterielle Verstopfungen, schlechte Knie (oh, wie ich von schlechten Knien weiß!) usw., bla. Tu es nicht! Schicken Sie mir einfach die Cupcakes und ich kümmere mich darum. Es ist zu deinem Besten... :-)
Klassischer Dilbert . Ja, das stimmt - ich schreibe mir einen Mini-Van!
@BobJarvis huh, ich habe nie so darüber nachgedacht. Wir versenden jetzt Cupcakes im Wert von 100.000 $ an Sie. Aber im Ernst, ich war in Teams, die etwas Ähnliches gemacht haben (es waren tatsächlich einzelne Teammitglieder, die den anderen Team-Donuts kauften, wenn sie besser waren als wir). Es funktionierte wirklich gut, bis wir anfingen, auf Zucker zu ODen ...
google.com/search?q=dilbert+write+me+a+minivan wenn Ihre Idee genau aus einem Dilbert-Cartoon stammt…
Wenn Sie mir dieses System anvertrauen, würde ich persönlich einen Wettpool eröffnen, wer auf dem Parkplatz kämpfen würde und wie bald. Das ist so ziemlich der dümmste Plan, von dem ich je gehört habe.
Es ist ein Rezept für eine Katastrophe. Die einzige Situation, in der ich sehen kann, dass es vielleicht funktioniert, ist eine, in der die Spezifikationen zu 100 % geschrieben sind, zu 100 % aktualisiert werden, wenn auch nur die kleinste Designänderung beschlossen wird, und zu 100 % verwendbar sind, um mit Sicherheit zu bestimmen, wie das erwartete Verhalten des Codes ist unterschiedlichen Kontexten. Wenn die Situation nicht so ist (und normalerweise ist sie es nicht), werden Sie sich jetzt ständige Argumente darüber ansehen, ob es sich um einen Fehler handelt oder nicht. Oder anders ausgedrückt: Jetzt haben Tester ein (finanzielles!) Interesse daran, dass Entwickler Fehler machen, und Entwickler haben ein Interesse daran, dass Tester Fehler übersehen.
Bonus für das Produzieren von Fehlern? ABONNIEREN!!!
Der neue Titel „Bonus für das Produzieren von Fehlern“ ergibt keinen wirklichen Sinn.
Lol. Ich bin nicht derjenige, der es geändert hat.

Antworten (11)

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 Sie 100.000 Dollar. Für jeden gefundenen konkreten Fehler erhalten die Tester 5 bis 15 US-Dollar. Was am Ende des Monats/Jahres übrig bleibt, 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-Business wird zum Nullsummenspiel.

Ist der Antagonismus etwas Schlechtes? Wie wird es sich auf die Produktivität und vor allem auf die Organisation auswirken? Persönliche Erfahrung wird sehr geschätzt.

(Ich zucke zusammen, wenn ich solche „Motivationsschemata“ lese.)

Vielleicht definiert der Autor dieser Idee „Produktivität“ anders als ich.

Das Ziel der meisten Unternehmen, die Software produzieren, 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 darauf verwendet, Bonusgeld zu erhalten, und wenig Zeit würde darauf verwendet, die Software zu versenden (womit das Unternehmen Geld verdient).

Stellen Sie sich ein Unternehmen mit einem Entwickler und einem Tester vor.

Wenn Sie der Entwickler wären, wäre Ihre optimale Strategie, die gesamte Software vor dem Tester zurückzuhalten, bis überhaupt keine Fehler mehr vorhanden sind oder bis der Zeitplan für den Tester keine Zeit mehr hat, welche zu finden.

Ich habe in einem Unternehmen gearbeitet, das Entwickler eher mit Lob als mit Geld belohnt hat, und das war genau die Strategie, die von einem Entwickler angewendet wurde. Builds wurden alle 2 Wochen an die QA freigegeben. Und jeden zweiten Freitag hatten wir ein Teammeeting, bei dem die Anzahl der Fehler im aktuellen Build bekannt gegeben wurde. Wenn ein Entwickler jemals null Fehler hatte, wurde dieser Entwickler herausgegriffen und für seine großartige Arbeit gelobt.

Ein Entwickler beschloss, das System zu spielen. Sie würde den Bau (immer mit vernünftigen Ausreden) bis kurz vor dem wöchentlichen Treffen aufheben. Dann veröffentlichte sie den Build, der Bericht über die Anzahl der Fehler wurde ausgeführt, und „magischerweise“ hatte sie gerade rechtzeitig für das Meeting eine Fehleranzahl von null.

Obwohl sie eine gute Entwicklerin war, war ihr Code nicht besser als die meisten anderen. Ihre Klugheit bestand darin, das System zu ihrem Vorteil zu manipulieren.

Ich arbeite derzeit in einem Shop, der Entwickler für die Anzahl der Fehler bestraft, die ihrer Arbeit während eines Projekts zugeschrieben werden. Es wird erwartet, dass sie ihre Fehlerzahl gegenüber dem Vorjahr "verbessern". Dies ist Teil ihrer MBOs und Teil dessen, was in ihre jährliche Bonusauszahlung einfließt.

Es überrascht nicht, dass sie lange gebraucht haben, um den ersten testbaren Build für die QA zu erstellen. Und sie baten darum, dass die QA viel Zeit mit dem Testen in der Entwicklungsumgebung verbringt (wo keine Fehlerberichte geschrieben werden können). Sie haben alle Chancen, weniger Fehler im Meldesystem zu produzieren und somit ihren Bonus zu maximieren.

Der Produktmanager hat sogar beschlossen, viele Fehlerberichte in „Verbesserungsanfragen“ umzuwandeln, um Entwickler-MBOs nicht zu beeinträchtigen. 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 ziemlich leicht eine Menge Fehler finden, egal wie gut der Entwickler ist. (Ich mache diese Arbeit seit fast 30 Jahren). Ich würde mich zunächst 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 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" seien, und die Software würde unweigerlich mit einigen großen kritischen Fehlern zurückbleiben. Ich kann mir nicht vorstellen, dass das System jemals ausgeliefert wird.

Die Entwickler würden ihre ganze Zeit und Aufmerksamkeit auf neuen Code richten. Es würde absolut keinen finanziellen Vorteil bringen, 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 $! Warum überhaupt knifflige Funktionen hinzufügen?

Beide Teams stritten sich vehement über jeden einzelnen Fehlerbericht und darüber, 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 bereitet nicht die Bühne für etwas, das ich Produktivität nennen würde.

Und weder Tester noch Entwickler würden Zeit für etwas anderes aufwenden. Keine Besprechungen, keine Dokumentation, kein Kundensupport, keine Hilfe für andere, keine Vorbereitung für den Versand. Hey, wenn es wichtig wäre, wäre Bargeld damit verbunden, oder?

Und dieser letzte Teil ist bedeutsam. Für Wissensarbeiter ist es oft ein großer Hemmschuh, Geldprämien an Aufgaben zu knüpfen, die sie für wichtig halten. Wenn Sie ein besseres Verständnis der Arten von Funktionsstörungen wünschen, die durch diese Art von Anreizsystemen entstehen können, empfehle ich Ihnen dringend, „ Measuring and Managing Performance in Organizations“ von Robert D. Austin zu lesen.

Kurz gesagt, das ist eine schreckliche Idee.

Die meisten guten Softwarefirmen erkennen die Torheit eines solchen Plans und versuchen, sich von dieser Art von System fernzuhalten. Die meisten Softwareunternehmen verstehen, dass die Veröffentlichung von Software ohne Fehler kein realistisches Ziel ist und dass es wichtiger ist, Software zeitnah zu veröffentlichen.

„Verbesserungswünsche“ ist hier ein guter Punkt – wenn Sie als Entwickler für jeden Fehler Geld von meinem Gehalt abziehen, liegt es in meinem Interesse, mit Händen und Füßen über die Spezifikation zu streiten: „In der Geschichte wurde nie das Feld „Geburtsdatum“ erwähnt kann nicht in der Zukunft liegen. Das ist kein Fehler, das ist eine zusätzliche Geschichte." Sie belohnen Entwickler nicht nur dafür, langsamer zu arbeiten und weniger hilfreich für das QA-Team zu sein, sondern regen sie auch dazu an, den gesunden Menschenverstand zu ignorieren und alles, was vom Product Owner/Analyst dokumentiert ist, bis zum N-ten Grad zu benötigen.
Zusätzlich zu all dem kann ich mir vorstellen, dass es vor dem Büro der Entwickler eine Hängestange für jeden geben würde, der es wagt, alten Code umzugestalten und die Codebasis in einem kompletten Durcheinander zu hinterlassen, denn „Wenn es nicht fehlerhaft ist, versuchen Sie es nicht einmal berühre es!"
"Ein Entwickler entschied sich, das System zu spielen." - Protestieren über "Golem-Arbeit" oder einfach nur so richtig ins Lob? Wie auch immer, ich denke, sie ist ein Genie und würde gerne einen Weg finden, sie dazu zu bewegen, auf meiner Seite zu sein.
Während das im OP beschriebene Setup in der Tat ziemlich schrecklich ist, kann ein tatsächliches, richtiges Bug-Bounty in Ordnung sein. Die Einrichtung eines kontradiktorischen Wettbewerbs zwischen Entwicklung und QA ist jedoch kein richtiges Bug-Bounty. Ein besserer Weg, dies zu tun, besteht darin, Ihren QA-Testern einfach einen Bonus für jeden Fehler zu gewähren, den sie finden. Und vielleicht auch Ihre Entwickler für jeden gemeldeten Fehler, den sie beheben.
@aroth - Ich werde mir heute Nachmittag einen neuen Minivan schreiben! dilbert.com/strip/1995-11-13 (achten Sie darauf, wofür Sie bezahlen - Sie werden nicht das bekommen, was Sie vielleicht erwarten)
@WorkerDrone - Fair genug. Obwohl „sei vorsichtig, dass du keine korrupten/unethischen Entwickler einstellst“ eine ebenso plausible Interpretation zu sein scheint.
Ich denke, @aroth war mit seinen Bemerkungen genau richtig. Obwohl das OP mit seinem Setup wahrscheinlich nicht gut abschneiden würde, könnte dies besser eingerahmt werden. Sogar die Kommentare zu diesem Beitrag könnten mit einem einfachen Rahmen leicht herausgenommen werden (z. B. dass nur größere/kritische Fehler Prämien erhalten, nur bereits vorhandene Fehler und es nicht zu einem Wettbewerb zwischen Entwicklern und Testern wird).
Das Geburtsdatum kann in der Zukunft liegen. Der offensichtliche Fall, wenn das Geburtsdatum geschätzt wird, könnte es 8 Monate in der Zukunft liegen. Der weniger offensichtliche Fall, wenn die Mutter genau zur richtigen Zeit die Datumsgrenze überschreitet, kann das Geburtsdatum (das ist das aktuelle Datum zum Zeitpunkt und am Ort der Geburt des Babys) "nächster Tag" sein „Nach dem Überschreiten der Datumsgrenze. Oder einfacher, kurz nach Mitternacht in einer Zeitzone zu gebären und dann in einer anderen Zeitzone am Vortag kurz vor Mitternacht zu gebären.

Es scheint eine schreckliche Idee zu sein. Hier sind ein paar Dinge, die passieren werden, zusätzlich dazu, dass Ihre Entwickler und Tester anfangen, sich und Sie selbst dafür zu hassen, dass Sie dies eingeführt haben:

  • Jeder wird sich auf niedrig hängende Früchte konzentrieren. Das bedeutet, dass die Qualitätssicherung damit beginnt, alle möglichen Dinge zu melden, die eigentlich in Ordnung sind, aber als „fehlerhaft“ ausgelegt werden könnten, in der Hoffnung, dafür bezahlt zu werden, während die Entwickler ihre ganze Arbeit darauf konzentrieren werden, sicherzustellen, dass es keine offensichtlichen Fehler gibt, und viel weniger auf die Erstellung sicher, dass es keine komplexen, strukturellen Fehler gibt.
  • Einige Leute werden sich zusammenschließen und ein Entwickler wird absichtlich eine Menge Fehler einführen, sie dann an eine bestimmte QA schicken, um sie zu "finden", und dann das Geld teilen.
  • Einige Ihrer Mitarbeiter werden beleidigt sein, weil Sie denken, dass sie ihren Job nur schätzen, wenn sie dafür einen Bonus bekommen. Sie werden wahrscheinlich weniger hart arbeiten und deswegen mehr Müll produzieren.
  • Die Kommunikation zwischen den Teammitgliedern wird aufgrund des erhöhten Antagonismus zusammenbrechen. Es ist jetzt tatsächlich ein Pluspunkt für die Entwickler, der Qualitätssicherung nicht dabei zu helfen, ihre Arbeit besser zu machen, denn alle Fehler, die unbemerkt in die Produktion gelangen, bedeuten, dass sie mehr bezahlt werden.
  • Entwickler werden sich gegenseitig nicht mögen, weil jeder Fehler, den ein Entwickler einführt, sie alle Geld kosten wird.

Das ist nur aus der Spitze meines Kopfes. Versuchen Sie niemals, Programmierer und QAs mit Geld zu motivieren, es endet nur schrecklich. Ihre Jobs basieren auf intrinsischer Motivation.

Schauen Sie sich bitte auch diesen animierten TED-Vortrag über Antrieb und Motivation an, da er viel besser erklärt, warum jede Einrichtung, bei der es darum geht, kluge Leute mit Geld zu motivieren, schrecklich scheitern wird:

https://www.youtube.com/watch?v=u6XAPnuFjJc

+1 Ich denke, es ist auch erwähnenswert, dass Sie in einem Markt für Entwickler tätig sind und mit anderen Firmen konkurrieren. Die negativen Externalitäten dieses Vorschlags werden zu einer Situation führen, in der die guten Entwickler gehen und die Zitronen übrig bleiben. QA wird erfreut sein, da die Änderung in der Zusammensetzung der Qualität der Software-Ingenieure zu größeren Prämien für sie im Rahmen dieses Programms führen wird. Das ist eine der destruktivsten Ideen, die mir begegnet sind.
+1 Dies wird wahrscheinlich zu Feindseligkeiten im Team führen, die sogar über das Tech-Team und die Qualitätssicherung hinausgehen könnten. Entwickler werden sich darüber streiten, wer einen Fehler eingeführt hat und ob es sich überhaupt um einen Fehler handelt oder möglicherweise um das Ergebnis einer schlecht geschriebenen Spezifikation, eines schlechten Designs usw.
Ich habe mir das Video angesehen (das Netzwerk war schlecht, also hat es eine Weile gedauert). Ich war total davon überzeugt. Es genügt zu sagen, dass es eine andere Frage inspiriert hat.
Das geheime Argument ist sehr real. Ich habe über einen Fall gelesen, in dem Entwickler Testern einige coole Schlupflöcher und Vorbehalte serviert haben, sie haben die Boni aufgeteilt. Ich denke, das Schema wurde entdeckt, weil sie zu oft zu groß wurden, dh super versteckte Fehler auftauchten und mit verdächtigen Raten entdeckt wurden.
„QAs werden anfangen, alle möglichen Dinge zu melden, die eigentlich in Ordnung sind, aber als ‚fehlerhaft‘ ausgelegt werden könnten.“ Die QA-Mitarbeiter, bei denen ich arbeite, tun dies sowieso. Die Hälfte der „Bugs“, die die QAs in meinem Projekt öffnen, sind Designratschläge („Setzen Sie einen Ladespinner auf diese Seite“), Grammatikkorrekturen (die normalerweise falsch sind) und Dinge, die wie beabsichtigt funktionieren, aber nicht den Erwartungen der QA entsprechen. Ein paar Mal haben wir deswegen möglicherweise Weltuntergangsfehler fast übersehen. Wenn sie dafür bezahlte Prämien bekämen, würden sie uns mit falschen Müllwanzen überfluten.
@JoeStrazzere Es fehlt ein Schritt. Das QA-Team wird auch von den Leuten befreit, die Qualität über Belohnung stellen. Die verbleibenden QA-Mitglieder werden mit der Situation zufrieden sein, da sie mehr niedrig hängende Früchte erhalten, was mehr Geld für sie bedeutet.
@Torisuda: Obwohl es bedauerlich ist, dass die QA-Leute in Bezug auf Grammatikprobleme falsch liegen, würde ich Fehler (Rechtschreibung, Grammatik usw.) im UI-Text sicherlich als Qualitätsprobleme betrachten, die irgendwann im QA-Prozess abgefangen werden müssen.
Hier ist eine möglicherweise wahre Anekdote über diese Art von Situation: thedailywtf.com/articles/The-Defect-Black-Market
@Torisuda, QA interpretiert die Anforderung anders als die Entwickler, was ein klares Zeichen dafür ist, dass die Anforderung falsch ist. Es bedeutet jedoch immer, dass die Personen, die die Anforderung entwickelt haben, konsultiert werden müssen, welche die richtige Interpretation ist, und dann hängen die ergriffenen Maßnahmen von dieser Antwort ab. Dies ist ein gültiger Fehler, der gemeldet werden sollte, und sollte auch niemals entlassen werden, das ist der richtige Weg. Ich habe gesehen, dass viele Projekte gerettet wurden, weil diese Diskrepanz in dem, was gemeint war, angesprochen wurde und QA tatsächlich richtig war, was die Anforderung bedeutete. Ich bin immer dankbar, wenn QA diese Art von Fehlern aufwirft.
@HLGEM: Es ist schön, wenn die Qualitätssicherung es erkennt, aber es ist viel besser, wenn es genug Kommunikation gibt, damit die Entwickler es erkennen, bevor sie es bauen :)
Ja, ich stimme zu, dass viele, wenn nicht die meisten Entwickler während des Entwerfens mehr mit den Benutzern/Stakeholdern/BAs sprechen und diese Art von Fehlinterpretationen vermeiden müssen, aber ich habe allzu viele gesehen, die die Anforderung für bare Münze nehmen und niemals angemessen oder sogar offensichtlich fragen , Fragen. Außerdem besteht ein Teil des Grundes für QA darin, dass jemand mit einer anderen Perspektive betrachtet, wie die Dinge gemacht wurden. Aus diesem Grund ist es eine schlechte Idee, Entwickler ihre eigene Qualitätssicherung durchführen zu lassen. Genau diese Dinge wird der Entwickler nie finden, weil er weiß, was seiner Meinung nach die Anforderung ist.
@HLGEM Wir lagern an eine QA-Firma im Ausland aus, daher fehlt den QA-Mitarbeitern viel Domänenwissen und Kontext. Aus diesem Grund ist ihre Interpretation selten richtig, obwohl es mir manchmal hilft, die Anforderung selbst besser zu verstehen, wenn ich sie ihnen erkläre.
@Torisuda Als du deinen ersten Kommentar abgegeben hast, war das das erste, worüber ich mich gewundert habe. Aus den Zeiten, in denen ich es ausprobiert habe, bin ich zu dem Schluss gekommen, dass es sich nicht lohnt, eine Qualitätssicherung im Ausland zu haben. Es ist wirklich etwas, was Sie im Haus haben sollten.
Oder Sie könnten versuchen, ihnen das Domänenwissen zur Verfügung zu stellen. Das haben wir mit unserer QA im Ausland gemacht. Wir haben das Geld ausgegeben, um ein paar ihrer älteren Leute für ein paar Monate hierher zu bringen, um zu lernen. Das zahlte sich enorm aus.
Ja, zumindest sollten sie über ausgezeichnete Domänenkenntnisse verfügen. Und ein gutes Verständnis der Muttersprache der App. Ohne sie können Sie kein guter QA sein.
@Erik Aus meiner Erfahrung stimme ich zu, dass es viel besser wäre, eine interne Qualitätssicherung zu haben. Leider war dies ein System, das schon lange vor meinem Beginn existierte und wahrscheinlich noch lange nach meiner Abreise bestehen wird. Sie haben anständige Englischkenntnisse, aber es gibt dialektale Unterschiede, die einige Verwirrung stiften, und ihre Domänenkenntnisse sind anständig, weisen aber Lücken auf, die nicht leicht zu beheben sind, da sie im Ausland sind.
@HLGEM Das ist eine gute Idee. Ich glaube nicht, dass unser Unternehmen die Ressourcen dafür hat, aber es ist etwas, das ich versuchen könnte zu präsentieren. Auch ein paar Video-Chats mit Schlüsselpersonen könnten helfen.

Das macht genauso viel Sinn, wie wenn die Besatzung eines Schiffes in Teams aufgeteilt wird, diejenigen, die den Antrieb übernehmen, und diejenigen, die navigieren, die auf demselben Schiff in einem Rennen gegeneinander antreten.

Ich weigere mich, eine antagonistische Beziehung zu meinen Testern zu haben. Ich schätze sie. Sie machen mich zu einem besseren Programmierer.

Ich respektiere auch die Kreativität, die ihre Arbeit von ihnen verlangt. Deshalb halte ich Geld hier für den falschen Motivator. Studien haben gezeigt , dass Bargeldanreize die Menschen tatsächlich messbar verlangsamen, es sei denn, ein Job ist praktisch sinnlos.

Kreative Arbeit wird nicht am besten durch Geld motiviert. Seine besten Motivatoren sind:

Autonomie – der Wunsch, unser eigenes Leben zu lenken
Beherrschung – der Drang, besser zu werden oder Fähigkeiten
und Ziele zu entwickeln – die Notwendigkeit, das, was wir tun, aus Gründen zu tun, die größer sind als wir selbst

Das ist richtig, Entscheidungen, Möglichkeiten zur Verbesserung und Teamarbeit würden besser funktionieren als Geld.

QA ist ein kreativer Job. Die Aufgabe besteht wirklich darin, an das zu denken, woran die Entwickler nicht gedacht haben. Aus diesem Grund sollte QA automatisiert werden. Einmal an einen Test gedacht, sollte er nicht wie ein Broadway-Stück immer wieder „aufgeführt“ werden. Es sollte automatisiert werden, damit die QA aufhören kann, darüber nachzudenken, und über den nächsten Test nachdenken kann. QA sollte mit Ihren talentiertesten Entwicklern besetzt sein. Weil sie versuchen, Ihr anderes Entwicklerteam zu übertreffen.

Manche glauben das nicht. Einige halten QA für eine Müllhalde für weniger talentierte Entwickler. Wenn Sie das getan haben, sind Ihre Prioritäten rückwärts gerichtet. Fordern Sie Ihre besten Entwickler heraus, Ihre Tests zu modernisieren, und stellen Sie sicher, dass die Leute wissen, dass Sie bei der Qualitätssicherung am besten sind.

Wenn dieses Geld immer noch ein Loch in Ihre Tasche brennt, verwenden Sie es für Schulungen oder, wenn nötig, Abfindungspakete.

Wir machen hier keine sinnlose Arbeit.

Haben Sie einen bestimmten Fonds, das wird ein Bonus sein. Sagen Sie 100.000 Dollar. Für jeden gefundenen konkreten Fehler erhalten die Tester 5 bis 15 US-Dollar. Was am Ende des Monats/Jahres übrig bleibt, geht an die Entwickler.

Das ist schrecklich. Aus all den Gründen in den anderen Antworten und für die Tatsache, dass es diesen sehr einfachen Test nicht besteht:

  • Was ist, wenn alle Ihre Mitarbeiter großartig sind und keine Fehler gefunden werden?

    Die Produktion funktioniert einwandfrei und das Geld geht komplett an die DEVS

  • Was ist, wenn alle Ihre Mitarbeiter Mist sind?

    Die Produktion ist wegen der Bugs einfach niedergebrannt, aber hey, wen interessiert das, das Geld geht an die DEVS.

Selbst wenn Geld ein Motivator in unserem Geschäft wäre, wäre dies schrecklich falsch.

Nehmen Sie das Geld und stellen Sie jemanden ein, der wirklich gut darin ist, Spezifikationen zu schreiben und Projekte mit überschaubaren Fristen zu planen. Sowohl DEV als auch QA werden viel glücklicher sein, als Geld sie jemals machen könnte.

Guter Punkt, um alternative Verwendungen für 100.000-Dollar-Fonds vorzuschlagen. Es gibt wahrscheinlich ein paar andere Verwendungsmöglichkeiten für so viel Geld, um ein Team von Entwicklern und QAs produktiver zu machen. Obwohl ich denke, dass es vom Thema abweichen würde, sie mit einem Brainstorming zu beginnen.
"Die Produktion ist wegen der Bugs einfach niedergebrannt, aber hey, wen interessiert das, das Geld geht an die DEVS." - Theoretisch ist dies der Anreiz für QA, es besser zu machen, weil sie dafür bezahlt werden, dass die Produktion nicht niedergebrannt wird.

Es mag apokryphisch sein, aber mir wurde in den 1980er Jahren ein ähnliches Beispiel gegeben, als ich das „Gesetz der unbeabsichtigten Folgen“ als Teil eines BPR-Kurses behandelte.

Das Beispiel betraf eine Fabrikproduktionslinie, bei der die Qualitätskontrollabteilung durch die Anzahl der Ausschussware motiviert wurde. Die Produktionsabteilung erhielt einen ähnlichen Anreiz, je nachdem, wie wenig Ausschuss sie produzierte.

Der Nettoeffekt war, dass die Qualitätskontrolle mehr Produkte als zuvor zurückwies und die Produktion länger dauerte, um „perfekte“ Artikel herzustellen, sodass die Gesamtleistung zurückging, während die Kosten aufgrund der Anreizzahlungen stiegen. Qualität war unbeeinflusst.

Es funktioniert schlecht. Ich habe es nicht mit Entwicklern und Testern gesehen. Aber das Justizministerium in Neuseeland belohnte an einem Punkt regelmäßige Gefängniswärter für jeden Häftling, den sie verletzten. Es ging von einem Verstoß in einer schlechten Woche bis zu 6 Verstößen an einem Tag bei einigen Häftlingen, die deswegen im Gefängnis landeten. Schließlich wurde ein Wärter verletzt.

Ich bezweifle, dass es so weit gehen würde, da es nicht die gleiche Menge und weniger flüchtige Leute sind (glaube ich), aber es züchtet böses Blut zwischen den Gruppen, die aufgrund ihrer Rollen bereits uneins sind.

Ich habe keine Ahnung, was es bedeutet, einen Häftling zu verletzen.
Ich vermute, „gegen einen Häftling verstoßen“ bedeutet „offiziell festhalten, dass ein Häftling gegen eine Regel verstoßen hat“.
@emory Mein Verständnis ist, dass es sich um eine offizielle Zuschreibung handelte und wenn ein Häftling 3 innerhalb seiner Haftstrafe erhielt, wurde er verhaftet, zurück vor Gericht gebracht und erneut zu einer Gefängnisstrafe verurteilt.

Andere Antworten haben bereits ausreichend erklärt, dass Ihre Idee ein schlechtes TM ist. Ich werde das also nicht weiter wiederholen und stattdessen erwähnen, was Sie ändern müssten, um die Idee zu verbessern.

Sie versuchen, Geld an das anzuheften, was letztendlich eine Zahl auf einem Papier ist. Diese Nummer bringt kein Geld. Erschwerend kommt hinzu, dass die Anzahl, die Sie verwenden möchten, meist zufällig ist: Ein Produkt, das nie Fehler hatte, hat plötzlich 50, alles Tippfehler in der Dokumentation. Ein Fehler, der die Hervorhebungsfarbe von 200 Gegenständen durcheinander bringt, wird zu 200 Fehlern. Sobald Sie einige Leute bitten, die Zahl auf magische Weise nach oben zu bringen, ist diese Zahl eine völlig nutzlose imaginäre Zahl. Und obendrein verschwenden Sie Zehntausende von Dollar an Löhnen mit absolut sinnlosen Meetings, bei denen die Leute streiten, was ein Fehler ist und was nicht.

Wenn Sie Boni oder andere Belohnungen an Zahlen auf einem Papier anhängen möchten, müssen diese Zahlen direkt mit dem tatsächlich vom Unternehmen verdienten Geld verknüpft sein - ein gängiges Beispiel ist die Verknüpfung von Boni mit dem Gewinn in einem Handelsunternehmen.

Wie in den „Cupcake“-Kommentaren unter Ihrer Frage angedeutet wurde, können einige Formen der Gamifizierung funktionieren. Wie wäre es mit der Vergabe einer Trophäe für den „Best Bug“, der in einem bestimmten Zeitraum gefunden wurde, vergeben durch die Stimmen beider Teams zusammen ?

In einer gesunden Entwicklungsumgebung gibt es zwischen Testern und Entwicklern eine gemeinsame „Ehrfurcht“ vor Menschen (normalerweise den Testern), die diese lästigen Fehler finden, die nur unter bestimmten Bedingungen reproduziert werden können, vor diesem sporadischen Fehler, der Sie seit Monaten belästigt, vor irgendetwas sehr einfach, dass ein Entwickler übersehen hat usw. *

Die Trophäe sollte etwas ganz Einfaches sein, denn es geht nicht um den inneren Wert: ein kleines Schild, ein Cupcake, eine Tafel Schokolade.

* Im letzten Beispiel geht es nicht darum, einen Fehler zu finden, sondern einen Fehler zu verursachen. In diesem Fall bedeutet der Preis freundlichen Spott. Dafür braucht man eine Kultur, in der die Kollegen erkennen, dass jeder Fehler macht.

Ich denke, das Ergebnis wäre nachteilig. Beides widerspricht dem gesunden Menschenverstand beim Entwickeln und Testen.
Null gefundene Fehler bedeuten nicht, dass die Software gut ist. Es könnte zu komplex zum Testen sein oder die QA könnte einige Tests überspringen. Selbst null gefundene Fehler, ein umfangreicher Testprozess und eine hervorragende Codequalität bedeuten nicht, dass das Produkt gut ist. Wenn die Anforderungen durcheinander gebracht wurden, kann die Software für den Kunden schrecklich sein.

Gegen dieses System zu spielen, könnte extrem einfach sein.
Für Entwickler: späte Builds. Für Tester: Konzentration auf triviale Bugs.
Bei späten Builds ist ein frühes Testen unmöglich. Wenig Zeit zum Testen und Freude über viele Bugs? Tester konzentrieren sich auf triviale Fehler, wie falsch geschriebene Bezeichnungen oder einige unkritische Fälle.
Wenn Sie wissen möchten, ob das Produkt gut ist, fragen Sie einfach Ihren Kunden.

Um es kurz zu machen. Entwickler und Tester arbeiten am selben Boot - Ihrem Unternehmen.

Es ist leicht, Entwickler für einen von ihnen produzierten Fehler zu kritisieren, aber es ist schwer, sie für Fehler zu belohnen, die sie nicht produziert haben.

Wenn der Fehler es bis zum endgültigen Build geschafft hat und der Kunde ihn gemeldet hat, wer war schuld? Entwickler für das Schreiben des Fehlers oder Tester dafür, dass er ihn nicht gefunden hat?

Dies führt standardmäßig zu Spannungen zwischen Entwicklern und Testern. Ihre Idee bringt zusätzliche Spannung zwischen die beiden. Das willst du wirklich nicht.

Wenn Sie einen freundlichen Arbeitsbereich haben und das Einfangen von Fehlern belohnen möchten, teilen Sie das Budget fair auf, erstellen Sie eine Liste von Entwicklern und für jeden Fehler soll der Entwickler 1 $ an die Bank zahlen. Organisieren Sie die Weihnachtsfeier und nutzen Sie die Bank, um das ganze Team zu belohnen. Sorgen Sie dafür, dass es mehr Spaß macht als Belohnung/Bestrafung und dass es niemand (zu) ernst nimmt. Belohnen Sie sowohl die „Schlechtsten“ als auch die „Besten“ unter den Entwicklern und Testern.

Ehrlich gesagt erscheint der Anreiz bestenfalls nutzlos und schlimmstenfalls schädlich. Wenn Sie ein engagiertes QA-Team haben, haben Sie bereits Mittel zur Verfügung gestellt, um Fehler zu finden, da dies ein großer Teil ihrer Stellenbeschreibung sein wird. Es wird nicht viel zusätzlichen Antagonismus zwischen den beiden geben, da es mehr in Richtung der Politik selbst geben wird. Wenn Sie sich wirklich Sorgen um das Problem machen, um Geld auf Ihre derzeitigen Mitarbeiter mit angehängten Bedingungen zu werfen, wäre es besser, jemanden dort einzustellen, wo Sie ihn brauchen, entweder in der QA oder in der Entwicklung.

Wo dies wirklich schief gehen könnte, ist, dass Sie auf der Entwicklerseite einen Rückgang der Veröffentlichungen sehen werden, weil Sie befürchten, dass sie aufgrund neuer Fehler weniger bezahlt werden, und auf der QA-Seite könnten Sie viel längere Überprüfungsphasen sehen, weil Tester welche wollen Zulage. Ich sage nicht, dass dies passieren wird, sondern dass es eine Möglichkeit ist.

Niemand möchte Fehler in seinem Endprodukt haben, aber die werden passieren. Als Manager gibt es viel bessere Möglichkeiten, um sicherzustellen, dass weniger Fehler im Code vorhanden sind, z. B. realistische Ziele und Zeitpläne zu haben und Erleichterungen für eine bessere Entwicklung wie Codeüberprüfungen zu ermöglichen.

Aber sie werden nicht weniger bezahlt. Ich ziehe ihr vereinbartes Gehalt nicht ab. Ich gebe ihnen einen Bonus basierend darauf, wie viele Fehler in ihrem Code fehlten. Wenn längere Überprüfungszeiträume eine etwas bessere Qualität bedeuten, warum nicht. Es sollte jedoch einen von der Richtlinie vorgeschriebenen Zeitrahmen für die Überprüfung geben.
@TobiAlafin: Sie werden weniger bezahlt, als wenn keine Fehler gefunden würden. Es liegt in der Natur des Menschen, dies als Verlust zu betrachten.