Mein Chef hat beschlossen, jedem Fehlerbericht ein Feld "Schuldige Person" hinzuzufügen. Wie kann ich ihn davon überzeugen, dass es eine schlechte Idee ist?

695

In einem der letzten "WTF" -Züge entschied mein Chef, dass das Hinzufügen eines "Person To Blame" -Felds zu unserer Bug-Tracking-Vorlage die Rechenschaftspflicht erhöht (obwohl wir bereits eine Möglichkeit haben, Fehler mit Features / Storys zu verknüpfen). Meine Argumente, dass dies die Moral senkt, den Fingerzeig erhöht und fehlende / missverstandene Funktionen, die als Fehler gemeldet wurden, nicht berücksichtigt, sind ungehört geblieben.

Was sind andere starke Argumente gegen diese Praxis, die ich verwenden kann? Gibt es eine Schrift zu diesem Thema, die ich mit dem Team und dem Chef teilen kann?

MK_Dev
quelle
79
Hey Leute, ich bin der "Boss", der das WTF-Feld eingeführt hat. Deshalb habe ich unserem Bug-Tracking-System das Feld "Peson to Blame" hinzugefügt: news.ycombinator.com/item?id=4179298
Jason
98
"Hätte ich es politisch korrekter nennen können, damit das Gefühl nicht verletzt wird? Sicher. Aber was macht das für einen Spaß? Es ging darum, das Bewusstsein für die Anzahl der Produktionsfehler nach jeder Veröffentlichung zu schärfen. Warum also nicht eine kleine Dosis hineinwerfen?" Es ist klar, dass der Zweck des Feldes und letztendlich der Zweck der Metrik nicht darin besteht, die Ursache des Fehlers zu lokalisieren Die Metrik erinnert jeden Entwickler daran, jeden Tag besser zu werden. " --- Ich denke, all diese "Gründe" sind von Natur aus falsch.
Ulty4life
31
@Jason Anstatt Jira-Felder zu erfinden, sollten Sie einen oder zwei Tester einstellen . Übrigens, in Ihrem Fall hat das Grundursachenfeld (egal wie Sie es nennen) für mich eine geringe Bedeutung, da Sie die Verbindung zwischen der Abwesenheit von Testern und der Zunahme von Produktionsfehlern bereits geschürt haben .
gnat
68
@ Jason Der Fehler ist im Code, nicht in einem Entwickler. Sie müssen eine der Personen sein, die der Meinung sind, dass Codeüberprüfungen für die Überprüfung von Entwicklern gedacht sind, nicht für Code.
Danny Varod
81
Ihr Chef ist der "Schuldige", geben Sie seinen Namen immer ein und sehen Sie, wie es ihm gefällt;)
dukeofgaming

Antworten:

676

Sagen Sie sie , dass dies nur ein dilettantischer Name für die Root Cause Feld von Profis verwendet (wenn issue tracker nicht dedizierten Bereich hat, kann man Kommentare für diese Verwendung).

Web durchsucht nach so etwas wie Software - Fehler Ursachenanalyse , gibt es viele Ressourcen , um diese Argumentation zu rechtfertigen , 1 , 2 , 3 , 4 , ... .


... eine Grundursache für einen Defekt ist nicht immer ein einzelner Entwickler (worauf es in diesem Bereich ankommt) ...

Das ist genau der Grund, warum "Grundursache" professionell ist, während "Schuldige" amateurhaft ist. Persönliche Verantwortung ist großartig, aber es gibt Fälle, in denen sie einfach "außerhalb" des Entwicklerteams liegt.

Sagen Sie Ihrem Chef, wenn nur ein einziger Entwickler die Schuld trägt. Das Grundursachenfeld wird dies definitiv abdecken ( "Codierungsfehler von Bob in Commit 1234, von Jim in Review 567 verpasst" ). Der Punkt , der mit der Begriff Ursache ist Fälle so zu decken, zusammen mit Fällen, die aus dem Rahmen des Dev - Teams gehen.

Wenn der Fehler beispielsweise durch fehlerhafte Hardware verursacht wurde (die Schuld liegt bei jemandem außerhalb des Teams, das ihn gekauft und getestet hat), kann dies im Feld "Grundursache" behoben werden, während "einzelner Entwickler schuld" einfach kaputt geht der Ablauf der Problemverfolgung .

Gleiches gilt für andere Fehler, die von Personen außerhalb des Entwicklerteams verursacht wurden - Fehler, Änderungen der Anforderungen und Managemententscheidungen. Wenn sich das Management entscheidet, keine Investitionen in Disaster Recovery-Hardware zu tätigen, macht es keinen Sinn, nur einen einzigen Entwickler für einen Stromausfall im Rechenzentrum zu beschuldigen.

Mücke
quelle
13
Das ist ein guter Punkt. Eine Hauptursache für einen Fehler ist jedoch nicht immer ein einzelner Entwickler (worauf es in diesem Bereich ankommt). Die Identifizierung eines einzelnen Entwicklers, der für einen Defekt verantwortlich ist, schadet daher mehr als es nützt, IMO.
MK_Dev
326
+1 für die Umleitung der Idee des Chefs in etwas produktiveres (immer einfacher, einen Kampf auf diese Weise zu gewinnen)
benzado
16
"Root Cause" deckt auch (hoffentlich die Mehrheit!) Fälle ab, in denen keine einzelne Person die Schuld trägt, z. B. "Softwarefehler des Anbieters", "API-Dokumentationsfehler", "Höheres Volumen als erwartet".
James Anderson
29
Toll. Sogar Ihr Beispiel für eine einzelne verantwortliche Person zeigt zwei Personen, was die Dummheit der Übung perfekt veranschaulicht.
Urs Reupke
15
Vergessen Sie nicht, dass "beitragende Ursachen" ebenfalls nützlich sein könnten, da sie häufig leichter zu beheben sind. Wenn "Grundursache" beispielsweise "Codierungsfehler in Festschreiben 5678" und "Mitwirkende Ursache" "Festschreiben 5678 wurde nicht überprüft, weil Anforderungen zu spät kamen" war, können Sie nicht alle Codierungsfehler vermeiden, aber Sie können strenger sein Verzögerung der Lieferung bei der nächsten Bestellung.
Jan Hudec
272

Ein weiteres mögliches Ergebnis für eine solche Richtlinie ist, dass Personen keinen Fehler melden, wenn sie glauben, dass sie die "schuldige Person" sind, sodass die Anzahl der vom Team gemeldeten Fehler tatsächlich verringert wird.

Laurent Parenteau
quelle
300
Nun, der Chef wird sich freuen! Es wird weniger Fehlerberichte, und deshalb sein, die Qualität muss hoch gegangen ist.
nicodemus13
5
Der Chef hat wahrscheinlich eine leistungsabhängige Bezahlung und ein wichtiger Leistungsindikator ist die Anzahl der gemeldeten Fehler. Hoffentlich teilt er / sie den Bonus Ende des Jahres an das Entwicklerteam.
Matt Wilko
54
Aus Erfahrung ist dies kein "wahrscheinliches" Ergebnis, es ist 100% ig sicher, dass dies passieren wird, da Entwickler kluge Köpfe sind. Was Sie auch sehen werden, ist eine massive Zunahme der Zeit, die Sie damit verbracht haben, mit Testern heftig darüber zu streiten, dass ihre "Bugs" keine Bugs sind.
Joris Timmermans
Die Person, die den root causeFehler meldet, ist wahrscheinlich nicht die Person, die versucht, nach 36 Stunden Code-Schreiben in dieser Woche einen Fehler in Ihrem eigenen Code zu finden.
Malachi
141

Das Hauptargument, das ich dagegen verwenden würde, ist zu fragen, welches Problem er zu lösen versucht. Es gibt mit ziemlicher Sicherheit bessere Möglichkeiten, das gleiche Problem zu lösen.

Zum einen gibt es wirklich immer nur eine Person, die die Schuld trägt? Wenn ja, machen Sie etwas anderes falsch. Ein guter Prozess erfordert eine gewisse Arbeit von einem Analysten, einem Programmierer, einem Prüfer und einem Tester, bevor er zur Produktion gelangt. Wenn Sie nicht alle diese Schritte ausführen, ist dies möglicherweise die Lösung für das Problem, das Ihr Chef zu lösen versucht. Wenn ja, wer ist dann schuld? Es könnte keiner von ihnen sein, es könnte Legacy-Code sein, der schuld ist.

Es ist nicht gut, wenn Leute sich auf den Rücken beißen und mit den Fingern zeigen und versuchen, eine schwarze Markierung zu vermeiden, die nicht verschwindet, wenn sie erst einmal gesetzt ist. Es löst nichts. Sehr wenige Leute sind böswillig fahrlässig. Sie müssen eine richtige Retrospektive machen , um zu sehen, was schief gelaufen ist und was Sie tun können, um sicherzustellen, dass es nicht wieder schief geht.

Anhand dessen können Sie klar erkennen, ob eine Person regelmäßig Schuld hat und ob dies ein anderes Problem darstellt.

Der Trick, einen Manager daran zu hindern, Verantwortlichkeit zu schaffen, besteht darin , sie frei anzubieten , aber auf eine Weise, die für Sie tatsächlich Sinn macht.

pdr
quelle
5
Ein wirklich guter Prozess vermeidet, dass der Analytiker und der Programmierer zwei verschiedene Personen sind - meine Erfahrungen mit Analytikern, die nicht programmieren können, und Programmierern, die nicht analysieren können, waren wirklich schlecht. Trotzdem +1 für deine Antwort.
Doc Brown
@DocBrown naja meine erfahrungen mit analyst und dem programmierer, zwei verschiedene personen zu sein, waren bisher eher positiv. Obwohl es in meinem Fall eher Analysten waren, die die Programmlogik verstehen, und Programmierer, die an der Analyse teilnehmen können :)
gnat
@gnat: Wenn Sie den Analysten als einen der Programmierer in Ihrem Team haben, können Sie Ihre Entwicklungsgeschwindigkeit und -qualität um eine Größenordnung verbessern.
Doc Brown
3
Mit diesem Buch finden Sie die
richtigen
2
Der Link für "Frei anbieten" ist defekt.
Tom Fobear
79

In diesem Bereich gibt es mindestens drei Probleme.

Die erste ist, dass es nicht gut ist, Menschen die Schuld zu geben. Okay. Aber vielleicht interessiert ihn die Moral nicht und er möchte schlechte Entwickler entlassen. Schwer zu widerlegen.

Das zweite ist, dass es schwierig sein wird, dieses Feld richtig hinzubekommen, und es wird ziemlich viel Zeit kosten. Es ist komplexer als nur herauszufinden, wer den fehlerhaften Code geschrieben hat. Und alle potenziellen Informationen, die schwer herauszufinden sind, können mit Sandsäcken betrogen werden. Aber vielleicht ist er bereit, diese Kosten zu bezahlen und die Informationen zu prüfen. Fein.

Das grundlegendere Problem ist, dass dieses Feld keine gute Messgröße sein wird, um Maßnahmen zu ergreifen. Sicher, er wird eine gute Rangliste haben, deren Code die meisten Fehler verursacht. Aber raten Sie mal, wer auf dieser Liste ganz oben steht. Wahrscheinlich der Firmengründer oder vielleicht ein Top-Entwickler, der eine sehr niedrige Fehlerrate hat, aber so produktiv ist, dass er einen überproportionalen Teil des Codes schreibt. Also wird er entweder seinen besten Entwickler feuern oder ihn so sehr verlangsamen, dass er nicht mehr sein bester Entwickler ist. Und der Typ, der monatlich eine Codezeile schreibt - vorzugsweise Kommentare -, wird wahrscheinlich für seine geringen Fehlerzahlen belohnt.

Noch ein Software-Metrik-Fehler.

ptyx
quelle
16
Ich bin überrascht, dass niemand sonst die Tatsache erwähnt hat, dass die Analyse des Verlaufs eines Fehlers bei den Versuchen, Schuldzuweisungen vorzunehmen, eine enorme Zeitverschwendung sein wird. Wenn keine anderen Argumente stimmen, sollte das so sein.
ein CVn
Ihr behebt also Fehler, ohne den Verlauf und die Ursache herauszufinden? An diesem Punkt beheben Sie Symptome und ignorieren möglicherweise legitime Kernprobleme. Wenn es sich tatsächlich um ein Problem mit einer Person handelt, ist es hilfreich zu wissen, warum die Person den Fehler gemacht hat, damit er behoben werden kann. Wenn es sich um eine fehlerhafte Hardware handelt, kann diese gegen eine stabilere ausgetauscht werden.
Jordan
Mir geht es gut, wenn ich Einzelpersonen beschuldige / lobe. Aber es sollte sehr sorgfältig gemacht werden, da es leicht zu schlimmeren Problemen kommen kann, als es das ursprüngliche Problem war. Das Feld "Täter" scheint kein "sehr vorsichtiger" Ansatz zu sein.
Ptyx
68

Die Hauptursache für einen aufgedeckten Defekt ist niemals eine einzelne Person. Vollkommen gewissenhafte Menschen werden Fehler machen, und ein Prozess, der erwartet, dass sie unfehlbar sind, ist unvernünftig. Wenn Sie Änderungen an Produktionssystemen vor der Bereitstellung weder manuell noch durch automatisierte Tests überprüfen, sind Fehler unvermeidlich.

Falsch:

Bob vergaß die Eingabe zu überprüfen und das Programm stürzte ab und teilte durch Null.

Richtig:

Code, der durch einen Fehler zum Teilen durch Null anfällig ist, wurde vor der Bereitstellung nicht erkannt. Es wurden neue Testfälle hinzugefügt, um die ordnungsgemäße Behandlung ungültiger Eingaben zu überprüfen. Code wurde korrigiert und alle neuen Testfälle bestehen.

Kevin Cline
quelle
6
Noch besser: Codierungsrichtlinien / -standards und Checklisten für die Codeüberprüfung wurden aktualisiert, um zu verhindern, dass dies erneut geschieht.
Oddthinking
Was ist, wenn Fehler unvermeidlich sind? Was ist falsch daran, jemandem die Schuld zu geben? Ich denke, Ihre Option "Falsch:" ist klarer als Ihre Option "Richtig:". Der falsche ist wirklich einfach. Das "Richtige" ist wortreich.
Adam Bruss
3
@Adam: geht meine Antwort nicht direkt auf Ihre genaue Frage ein "Was ist falsch daran, jemandem die Schuld zu geben ...?"
Kevin Cline
54

Ändern Sie "Person zu beschuldigen" in "Person zu loben"

Die Hauptperson, die die Fehler behebt, trägt ihren Namen.

Dunkle Nacht
quelle
9
Ich glaube nicht, dass dies die Frage beantwortet. Es ist ein gutes Gefühl, liefert aber keine Argumente gegen ein solches Feld.
Bryan Oakley
21
Außerdem weißt du, dass einer Hunderte von Bugs "versehentlich" einführt und sie dann alle behebt, in der Hoffnung, dass ein Idiot-Manager dumm genug ist, zu glauben, er sei der beste Bugs-Fixer ...
MGOwen,
Sehr oft möchten Sie wissen, wer den Code geschrieben hat und wer am besten qualifiziert ist, ihn zu reparieren, wenn ein Fehler auftritt. Ein Teil der Gegenreaktion von "Schuldiger" ist, dass impliziert wird, dass jemand beschuldigt wird.
Muz
49

Einfache Antwort.

Das Feld "Schuld" wird nur für Sündenböcke und Fingerzeig verwendet, die Moral wird sinken, das Teamvertrauen wird zerstört und alle werden versuchen, Wege zu finden, um zu beweisen, dass etwas nicht ihre Schuld ist, anstatt es zu reparieren. Die Leute sind auch eher geneigt, über Fehler zu schweigen, anstatt sie zu melden, weil sie nicht möchten, dass ein Kollege in Schwierigkeiten gerät. Es ist völlig kontraproduktiv.

Was ist wichtiger, jemanden für einen ehrlichen Fehler zu opfern oder das Problem so schnell wie möglich zu beheben?

Ihr Chef scheint zu glauben, dass Käfer ein Zeichen von Faulheit oder Schlamperei sind. Sie sind nicht. Sie sind eine Tatsache des Lebens. Wie viele Patches veröffentlicht Microsoft in einem Jahr?

GordonM
quelle
8
+1, eine Kultur der Schuld führt immer zu einer Kultur des
Schweigens
45

Wenn Sie ein wenig zivilen Ungehorsam gegenüberstehen, lassen Sie das Team zustimmen, für jeden Fehler eine Liste aller Entwickler in diesem Feld zu erstellen. Wenn das nicht passt, schreibe "I'm Spartacus!" stattdessen. Der Punkt ist natürlich, dass Sie alle für alle Fehler verantwortlich sind, und Sie sind nicht glücklich darüber, auf die Person hinweisen zu müssen, die einen Fehler verursacht hat.

Eine andere Option: mitspielen. Tun Sie nichts Besonderes - arbeiten Sie nur gut und füllen Sie das Feld einige Monate lang so genau wie möglich aus. Erklären Sie dann dem Chef, dass die Zuweisung von Schuld für jeden Fehler alle im Team unglücklich und unbehaglich macht. Sagen Sie ihm, dass Sie alle das Gefühl haben, dass der Zusammenhang zwischen den verursachten Fehlern und allem anderen (Geschicklichkeit, Anstrengung, Vernunft) gering ist. (Es hilft, wenn Sie Zahlen eingeben können, die zeigen, dass es wirklich keine Korrelation gibt.)

Ziviler Ungehorsam der Gandhianer: Schreiben Sie Ihren Namen in jedes Feld (es sei denn, andere Entwickler treten auf und schreiben ihren Namen für ihre Fehler) und geben Sie jedem Fehler die Schuld, ob es Ihr Fehler ist oder nicht. Nichts wird dieses Feld oder die Idee, jemandem die Schuld zu geben, nutzloser machen als dies. Wenn Ihr Chef fragt, warum Sie auf jedem Gebiet heißen, können Sie erklären, "weil ich nicht glaube, dass Entwicklung ein Schuldspiel ist, wenn Sie wirklich Menschen brauchen, die Schuld und Kreuzigung geben, dann kreuzigen Sie mich für alles und lassen Sie mein Team friedlich arbeiten . "

Caleb
quelle
15
Ich würde für den ersten Absatz stimmen, aber der zweite scheint mir fraglich. Meiner Erfahrung nach sind die Leute, die Ideen wie ein Schuldfeld vorschlagen, nicht die Leute, die sich Sorgen darüber machen, dass sie sich unwohl fühlen.
GordonM
@ GordonM Es hängt wirklich von der Persönlichkeit des Chefs ab. Ein Nonsens-Leid-Narren-Typ mag den Spartacus-Ansatz vielleicht nicht gut finden, ist aber immer noch bereit zuzugeben, dass das Feld mehr Probleme als Nutzen schafft. Wenn das OP und das Team zeigen, dass sie den Chef genug respektieren, um seine Idee auszuprobieren, respektiert er sie möglicherweise genug, um zuzuhören, wenn sie ihm später mitteilen, dass dies nicht hilfreich erscheint. Darüber hinaus weiß er möglicherweise etwas, was der OP nicht weiß, wie zum Beispiel, dass er zwei Verlierer von einem anderen Team erbt und in der Lage sein möchte, einige Kennzahlen zu sammeln.
Caleb
3
Darüber hinaus wird das Team immer noch leiden. Alles nur um zu beweisen, dass der Boss falsch lag?
Oleg V. Volkov
29
Ich würde immer den Namen des Managers dort setzen. "In jeder Organisation sinkt die Arbeit nach unten, während die Verantwortung nach oben geht."
David Schmitt
3
@ David: Sowohl Creme als auch Schaum schwimmen nach oben. Womit beschäftigen Sie sich in Ihrer Organisation?
Donal Fellows
32

Ich hatte einmal einen Chef, der ein ähnliches System implementierte, und obwohl es nicht programmiert war (es war Printdesign für eine Tageszeitung), waren das Konzept und die angemessene Reaktion identisch.

Was sie tat, war, dass sie jedem Designer ein Set farbiger Aufkleber gab, anstatt unserem Papierkram ein Feld mit der Aufschrift "Person zu beschuldigen" hinzuzufügen. Jeder Designer erhielt einen andersfarbigen Aufkleber und wurde angewiesen, dass für jedes bearbeitete oder sogar berührte Design der Aufkleber dem Papierkram des jeweiligen Designs hinzugefügt werden muss.

Das erklärte Ziel des Chefs für "the sticker initiative" war es, die Ursache für alle Fehler unserer Abteilung zu ermitteln (Papierfehler, falsche Ablage, fehlerhafte Kopie, im Wesentlichen das Druckäquivalent von Fehlern).

Was wir getan haben, war, jedem der anderen Designer ein Viertel unserer Aufkleber zu geben, damit jeder alle Farben hatte, und anstatt nur unsere Farbe auf jedes Design zu setzen, haben wir alle vier Farben der Designer gesetzt.

Schreiben Sie nicht einfach Ihren Namen in das Feld [Schuld], sondern tragen Sie den Namen aller Personen in das Team / Projekt ein und achten Sie darauf, dass das gesamte Team dasselbe tut.

Wir haben gegen ihre orwellsche Zickigkeit zusammengearbeitet, und als Ergebnis haben wir uns gegenseitig Fehler aufgefangen und miteinander darüber geredet und hatten letztendlich eine signifikante Reduzierung der Fehler. Sie war eine hervorragende Managerin, und anstatt zu erkennen, dass ihre Initiative uns vereinte und die Produktivität steigerte, bekam sie alle Schmerzen und löste das Aufklebersystem auf, erklärte es für gescheitert und tadelte uns alle förmlich.

fünftestei8ht
quelle
1
Ihre war eine lustige Geschichte und beantwortet fast die Frage. Sie können den Ton und die Aussprache anpassen, um eine bessere Lesbarkeit zu erzielen. Andernfalls werden Sie immer wieder herabgestimmt. (Ich habe Ihre Antwort
positiv
20

Es wird damit enden, dass er seinen produktivsten Programmierer bestraft. Wahrscheinlich sind ein oder zwei Personen die besten Mitarbeiter, die an den meisten Projekten gearbeitet haben. Wenn Sie in einer 10-köpfigen Abteilung einen Codierer haben, der nur eine Quelle der Ausgabe ist und 60% des Schnittstellencodes geschrieben hat, dann sind 60% der Fehler in seinem Code.

Erklären Sie, dass dieses System den Eindruck erweckt, dass die Person, die den meisten Code schreibt, der schlechteste Programmierer ist, und die Person, die den wenigsten Code schreibt, der beste Programmierer.

Rechnung B
quelle
20

Das klingt sehr ähnlich, als Scott Adams auf die gescheiterte Weisheit einer Bug Bounty hinwies, als der Spitzhaarige Boss in Dilbert. Wally kündigte an, dass er hingehen und ihm einen neuen Mini Van schreiben werde.

Dilbert-Comic vom 13.11.1995 aus dem offiziellen Dilbert-Comic-Archiv.

Ich erinnere mich einmal an das Snow-Skiing, als jemand darauf hinwies, dass "nicht fallen" nicht das Zeichen eines guten Skifahrers sei, sondern oft das Zeichen einesjenigen, der nichts versucht (oder überhaupt nicht Ski fährt).

Fehler können durch schlechte Programmierung und schlechtes Design in den Code eingefügt werden. Sie können aber auch die Folge des Schreibens vieler schwieriger Codes sein. Menschen, die die meisten Bugs produzieren, werden von schlechten Entwicklern genauso oft als hochproduktiv eingestuft.

Es hört sich so an, als wäre Ihr Chef von der Anzahl der Mängel frustriert. Haben die Leute in Ihrer Gruppe eine Leidenschaft für Qualität? Das Erstellen eines "Was" -Felds für die Ursache anstelle eines "Wer" -Felds könnte produktiver sein. Beispiel: Anforderungsänderung, Konstruktionsfehler, Implementierungsfehler usw. Auch dies schlägt fehl, es sei denn, es gibt eine Nebengruppe zur Verbesserung der Qualität des Produkts.

Mark Hancock
quelle
19

Vielleicht sollten Sie es als "Wer ist in der besten Position, um den Fehler zu beheben?" Ein Teil von mir fühlt auch, dass du es kaputt gemacht hast, dass du es repariert hast. Es sollte eine gewisse Rechenschaftspflicht geben.

Ich bin nicht einverstanden, eine Art Punktzahl zu halten. Einige Leute verursachen mehr Fehler, weil sie an komplexeren Teilen des Codes arbeiten. Wenn Codezeilen keine nützliche Metrik sind, bezweifle ich, dass Fehler pro Codezeile besser sind. Code wird niemals eingecheckt.

Irgendwann sollte ein Manager wissen, wer seine Arbeit macht und wer nicht, und wer es besser macht, weil der Rest des Teams es tut.

JeffO
quelle
19

Es ist seltsam, dass dies zuvor noch niemand erwähnt hat: Das Hinzufügen einer solchen Funktion zum Bug-Tracker würde die Mitarbeiter motivieren , das System zu testen .

Dies ist ein häufiges Problem bei Ansätzen wie dem, was die Frage unter anderen ähnlichen Vorstellungen darstellte (Bezahlen nach Anzahl der Codezeilen, Bezahlen nach Anzahl der Fehler). Dies wird viele dazu ermutigen, sich auf eine gute Punktzahl zu konzentrieren, anstatt Probleme im Zusammenhang mit der Software, an der sie arbeiten, zu lösen.

Der Versuch, einen Fehlerbericht mit einer Formulierung einzureichen, um die eigene Schuld zu mindern, und ihn jemand anderem aufzuerlegen, kann dazu führen, dass Entwickler die Ursache des Problems missverstehen (oder die Arbeit einem anderen Entwickler übergeben wird, der diesen Abschnitt nicht kennt) Ein Code, der so gut ist wie derjenige, der am meisten daran gearbeitet hat und der die Hauptursache für den Fehler war. Dies führt zu mehr Zeit und Aufwand, um das Problem zu beheben.

vsz
quelle
18

Ihre eigentliche Frage war, wie Sie die Unternehmenskultur ändern können, bevor Sie das Unternehmen verlassen, indem Sie Ihren Chef davon überzeugen, dass es eine schlechte Idee ist, eine Person für die Meldung von Fehlern verantwortlich zu machen. Aber wenn er die Kultur ändert, muss er natürlich wirklich verstehen, warum dies eine schlechte Idee ist.

Dies ist eine große Aufgabe. Neben dem Problem der Gesichtsrettung nach einer Änderung seiner Meinung gibt es das Grundproblem, dass Menschen, die über Lösungen nachdenken, die in erster Linie die individuelle Schuld tragen, in dieser Denkweise normalerweise ziemlich angesiedelt sind.

Sie haben gefragt, ob Sie zu diesem Thema schreiben möchten , und Peopleware fällt Ihnen ein . Es genießt hohes Ansehen und spricht allgemein darüber, wie man Menschen, die kreative Arbeit leisten, an schwer messbaren Arbeitsergebnissen verwaltet. Das Problem ist, dass Sie es nicht viel lesen, Ihr Chef müsste es lesen und zumindest einiges davon glauben.

Seltsamerweise gehört das Problem, da es hier mehr um Menschen als um Fehlerberichte geht, möglicherweise eher zum Arbeitsplatz als zu Programmierern. Da der Erfolg von Softwareprojekten in der Regel stark auf die soziale Interaktion des Menschen zurückzuführen ist, geht es bei den realen Antworten häufig hauptsächlich um Dinge, die über Software hinausgehen.

Mein einziger, halb ernster Vorschlag ist, zu sagen (oder einen Mitarbeiter davon zu überzeugen, zu sagen, da Sie gehen wollen), dass Sie bereit sind, die volle Verantwortung für den Erfolg des Projekts zu übernehmen, und Ihr Name sollte immer im Feld stehen Selbst wenn jemand anderes den Fehler direkt begangen hat, haben Sie die Verantwortung dafür übernommen, dass jeder im Team Qualitätsarbeit leistet.

Es ist natürlich Unsinn, wie könnte man das jemals unterstützen, aber einige Leute (besonders Leute, die große Schuldgefühle haben) essen dieses Zeug wirklich auf. Ronald Reagan übernahm jedes Mal öffentlich die persönliche Verantwortung, wenn ein Mitglied seiner Regierung in einen Skandal verwickelt war (und es gab auch einige), und dies funktionierte politisch jedes Mal ziemlich gut. Das Beste für Sie ist, dass die Verantwortung im Allgemeinen keine tatsächlichen Konsequenzen hat. Sie glauben lediglich, Sie seien ein aufrechter Typ, der die Verantwortung übernimmt.

Oder vielleicht geht es nicht so runter. Für mich macht das überhaupt keinen Sinn, daher ist es für mich schwierig vorherzusagen, wann es funktionieren wird, aber ich habe miterlebt, wie es funktioniert, als es anscheinend nichts zu tun hatte (am Arbeitsplatz, nicht nur am Beispiel von Reagan).

bA
quelle
+1 für den Vorschlag, positiv zu erklären, wie man Information Worker verwaltet, anstatt nur diese eine Idee anzugreifen.
Oddthinking
14

Es ist lächerlich, Fehler zu begehen, und jede Strategie, die festgelegt wurde, um die Schuld an menschlichen Fehlern zu geben, ist äußerst unprofessionell.

Zumindest wäre eine "verantwortliche Partei", die beauftragt ist, die Verantwortung zu übernehmen und das Problem zu "beheben" oder einen Plan zu entwickeln, um ähnliche Ereignisse nachzuverfolgen und / oder zu verhindern, gut. Manchmal ist die Lösung nichts anderes als zusätzliches Training. Ich habe für eine Reihe von Unternehmen gearbeitet, in denen es Teil Ihrer Stellenbeschreibung war, eine Ausbildung zum "Unternehmen bezahlt / Unternehmenszeit" zu erhalten. Ein Ort baute sogar ein ganzes "Trainingszentrum", das die örtliche Hochschule gelegentlich für ihre Kurse in Industrietechnologien "ausleiht".

Ich habe in den letzten 20 Jahren in einer Fertigungsumgebung gearbeitet, in der Programmierfehler nicht nur Fehler verursachen, sondern Dinge physisch zerstören und / oder schlimmer noch, Menschen verletzt werden. Eine Konstante in jedem Bereich der Fertigung, die stark ist, ist jedoch, dass unter keinen Umständen jemand schuld ist. Weil es schlicht und einfach ein Defekt im System ist - kein Defekt in den Menschen. Betrachten Sie es so - die Verwendung der Rechtschreibprüfung - ein hochwirksames Werkzeug für diejenigen, die im Bereich der Textvirtuosität weniger Glück haben oder vielleicht nur ein wenig überarbeitet sind ... aber keinesfalls eine Methode der Schuldzuweisung oder Rechenschaftspflicht.

Eine Arbeitsumgebung, egal welcher Art oder zu welchem ​​Zweck, ist ein System. Ein System aus einzelnen Komponenten, das, wenn es richtig abgestimmt ist, in völliger Harmonie funktioniert - oder wie es scheint.

Leseempfehlung Ihres Chefs: Die 7 Gewohnheiten hochwirksamer Menschen

Es hört sich so an, als könnte er ein bisschen Demut gebrauchen, wenn nicht einen Realitäts-Check. Er ist genauso ein Teil des Teams wie alle anderen, und das muss er erkennen - oder es wird einfach nicht funktionieren, und am Ende wird er die Tasche trotzdem in der Hand halten.

Vorgeschlagene Lektüre und / oder Recherche von Ihrer Seite:

Schauen Sie in 5 warum Analyse, Ursachenanalyse ... alles, was Sie in die Lage versetzt, eine Lösung und kein Problem anzubieten . Und Ihre Uneinigkeit mit Ihrem Chef ist genau das, ein Problem, keine Lösung. Bieten Sie ihm etwas Besseres an, etwas, das Sinn macht, und seien Sie sogar bereit, ihm zu erlauben, die Idee zu würdigen.

Im Moment scheint es nicht so, als ob er bereit ist, irgendetwas zu reparieren, weil er nicht genau weiß, was kaputt ist, wenn überhaupt etwas kaputt ist - abgesehen von seiner "Ich bin der Boss" -Mentalität.

Viel Glück! Ich hoffe, Sie schaffen es auf eine Weise, die gerade in diesen Zeiten für alle akzeptabel ist.

EDIT: Persönlich, aus eigener Erfahrung ... "Mach weiter, gib mir die Schuld. Natürlich werde ich das Problem beheben und, wenn es wieder passiert, wer wird da sein, um den Tag zu retten? Ja, Sie habe es erraten ... ich mit einem breiten Grinsen. "

Tahwos
quelle
"Sie sind besser in der Lage, eine Lösung anzubieten, kein Problem." - Ja, das ist der Hauptpunkt dieses Beitrags. Ich hatte nicht erwartet, dass es so explodieren würde.
MK_Dev
Am Ende wird es entweder ein Teamerfolg oder ein Teamversagen sein - und egal, wie die Vorgehensweise (einschließlich des Schuldspiels) sein mag, es wird nicht funktionieren oder es wird sogar bewiesen, dass es eine schlechte Idee ist, wenn dies nicht befolgt wird Früchte tragen oder scheitern. Mit anderen Worten, die Alternative zur Meuterei könnte in der Tat darin bestehen, den Plan Ihres Chefs mit aktiver Beteiligung aller auf den neuesten Stand zu bringen - hin zur unvermeidlichen Erfassung von harten Daten, um für oder gegen die Fortsetzung dieses Weges zu wiegen der Vernunft.
Tahwos
10

Aus Gründen der Verantwortlichkeit möchte ich kein person to blameFeld, ich möchte ein Person who knows the codeFeld oder ein person who can fixFeld, damit ich weiß, wohin ich das Support-Ticket senden soll.

Dies würde den Prozess der Behebung des Fehlers selbst beschleunigen und Rechenschaftspflicht schaffen, ähnlich wie zwei Fliegen mit einer Klappe schlagen. Ich würde ihn persönlich darauf ansprechen und ihn entscheiden lassen, ob dies dazu beitragen würde, die Moral und die Rechenschaftspflicht zu erhöhen, ohne dass sich jemand gescheitert fühlt. Extreme Tests erkennen nicht alle Fehler, sonst würde es keine Fehlerberichte geben.

Malachi
quelle
9

Sagen Sie ihm, "Schuld" ist negativ. Ändern Sie es in "Person zum Reparieren", dann ist es zumindest positiv gerahmt, und derselbe Job wird noch erledigt. Wie können Menschen arbeiten, wenn sie "beschuldigt" werden ?!

José
quelle
2
Sie können nicht "eine Person reparieren" ...
SandRock
1
Wir haben das Feld "Person zum Reparieren". Es ist nicht genug
MK_Dev
9

Wenn mein Chef das tun würde, würde Folgendes genau in dieser Reihenfolge passieren:

1) Ich würde sofort anfangen, nach einem neuen Job zu suchen.

2) Jedes Mal, wenn ein Fehler mit einer schuldigen Person gemeldet wird, erscheint dort der Name meines Chefs und ein Kommentar, warum ein schlechter Prozess im Team dafür verantwortlich ist. Und CC das zu seinem Chef (vorzugsweise in einer Charge). Haben Sie Unit-Tests? Wenn nicht, bedeutet dies, dass der Entwicklungsprozess unterbrochen ist, also der Fehler. Haben Sie konstante automatisierte Integrationstests mit allen externen Systemen? Dann ist der Entwicklungsprozess unterbrochen, also der Bug. Haben Sie die Möglichkeit, jede Umgebung in der Produktion per Skript identisch zu machen, um menschliches Versagen zu verhindern? Dann ist der Entwicklungsprozess unterbrochen, also der Bug. Ist ein Entwickler schrecklich? Dann ist das Einstellungskriterium schlecht, also die Schuld des Chefs. Machen alle Entwickler dumme Fehler wegen mangelnder Ruhe, weil sie 12 Stunden am Tag arbeiten? Dann ist der Entwicklungsprozess unterbrochen.

Als Randnotiz: Jeder gute Entwicklungsmanager weiß, was ich oben geschrieben habe. Und Agile-Strategien sollen den Chef oder seine Vorgesetzten darauf hinweisen, warum Entwickler langsamer werden: Wir verbringen 50% unserer Zeit damit, Fehler zu beheben. Schauen wir uns Strategien an, um sie zu reduzieren, damit wir 40% der Zeit damit verbringen können, Fehler zu beheben, und dieses Problem dann erneut auf 30% bringen. usw.

Leider klingt es so, als hätten Sie aufgrund des Feldes keinen guten Manager. Also schlage ich vor, (1) zu tun und es nicht dem Manager vorzulegen (außer bei Ihrem Exit-Interview)

Dmitriy Likhten
quelle
8

Es sieht so aus, als ob Ihr Chef kein tiefes Verständnis für Software hat und es vielleicht auch nicht vorhat. Er hat also eine andere Sprache, eine andere Kultur.

Einen Job wegen eines Problems wie dieses zu kündigen, bevor man überhaupt nach einer Lösung sucht, ist nur ein Quitter. Aufhören heißt aufhören. Kündigen Sie nicht, bis er sicherstellt, dass Sie sich nie verstehen können. Um sicherzugehen, sollten Sie es zuerst versuchen.

Da er unsere Sprache nicht kennt und der Chef ist, würde der erste Schritt darin bestehen, mit ihm in seiner Sprache zu sprechen. Was meine ich mit Sprache? Lassen Sie uns gemeinsam überlegen:

Wir Software-Leute, die meisten von uns lieben unsere Arbeit, wir haben eine tiefe Verbindung zu dem, was wir tun. Sonst funktioniert es nicht und man kann nicht lange in diesem Geschäft weitermachen, ohne es zu lieben oder vollständig zu sein ... man füllt die Lücken ...

Er sieht die Dinge jedoch ganz anders. Während die meisten von uns bei jedem Fehlerbericht aufgeregt sind, die Sache besser zu machen (nein, auch wenn es manchmal wirklich sehr stressig ist, wir lieben Probleme, gib es einfach zu!), Sieht er es als Misserfolg, als Maß des Seins an erfolglos. Als erstes sollte er verstehen wollen, dass Bugs gut sind. Bugs bringt Kunden dazu, das Unternehmen zu lieben. (Dies ist nun seine Sprache.) Wenn ein Kunde einen Fehler meldet oder wenn wir selbst einen Fehler finden, nachdem er behoben wurde, ist er viel besser als die Situation, in der er niemals aufgetreten ist. Bugs schaffen Kundenbindung (ich meine es ernst!), Bugs sind eine gute Ausrede für die Kommunikation zwischen dem Verbraucher und dem Hersteller der Software.

Um den Gewinn von Fehlern zu steigern, sollten Sie anbieten, Fehlerberichte noch offener zu machen. Bei jedem Fehlerbericht und seiner schnellen, sauberen und guten Lösung spüren und sehen die Kunden, dass "Wow, diese Jungs sind großartig! Sie arbeiten wirklich hart. Schauen Sie sich die Dinge an, die sie lösen. Wir waren uns nicht einmal bewusst, dass Software so komplex ist Ding!" bla bla und bla ...

Machen Sie Ihren Schritt, sprechen Sie in seiner Sprache. Fehler sind für ein Softwareunternehmen großartig, kein Problem. Sie machen uns ihren Lebensunterhalt.

Aus Gründen der Teamethik, der Effizienz oder für jede Art von Gespräch, die Sie führen würden, könnte dies anders funktionieren, als Sie es beabsichtigt hatten. Wenn Sie aufhören möchten, denkt er: "Aha, meine Lösung hat vom ersten Tag an funktioniert! Schlechte Links sind bereits von selbst weggefallen, bevor sie aufgedeckt werden!" Er glaubt an seine Idee, die bösen Jungs in der Firma zu finden, und es ist sehr schwierig, ihn anders zu überzeugen. Vor allem, wenn Sie einer dieser bösen Jungs sein könnten!

Konzentrieren Sie sich also auf sein eigentliches Problem: Bugs. Zeigen Sie ihm, dass Fehler sehr nützlich sein können. Eine Beziehung ist ohne Probleme langweilig. Alles, was dich nicht umbringt, macht dich stärker. Jeder Fehler ist eine großartige Gelegenheit, die Sie nutzen können, um die Kundenzufriedenheit zu steigern.

Dies ist nur eine Sache, die Sie sagen können. Denken Sie über seine Bedenken nach und Sie werden viele andere Dinge finden, die Sie zu Ihrer Liste hinzufügen können. Der GOLDENE SCHLÜSSEL soll eine Alternative bieten, anstatt mit seiner Idee zu kämpfen!

Hasanyasin
quelle
5
Nicht der Downvoter, aber die Frage besagte ausdrücklich, dass mehrere Versuche unternommen wurden, den Chef davon zu überzeugen, dass es sich um eine schlechte Idee handelte. Daher war der zweite Absatz Ihrer Antwort nicht angemessen.
Larry Coleman
8
Ich bin nicht der Meinung, dass es eine blöde Sache ist, einen Job zu kündigen, wenn das Unternehmen Dinge tut. Es ist nicht Ihr Problem, das Unternehmen zu reparieren. Wenn mein Austritt die eigene Logik des Chefs in seinen Augen bestätigt, ist das sein Problem; es war nicht mehr meins, als ich aus der Tür trat.
Nate CK
Ich versuche lieber, alles zu lösen, was ich kann. Wenn ich in einer solchen Situation kündige, wird die Firma zumindest von mir ohne Lösung gelassen. Wenn ich etwas einfach reparieren kann, anstatt von vorne anzufangen, bevorzuge ich den Versuch, etwas zu reparieren. Für mich dreht sich in dieser konkreten Situation alles um die Berechnung des Unterschieds zwischen Aufwand, Zeit und Stress / psychologischen Investitionen, wie auch um das Ergebnis, das ich erreichen kann ... Vielen Dank für Ihren Kommentar. Es ist schön, dass wir alle unterschiedliche Weltanschauungen haben :)
hasanyasin
Wenn ich aufhören wollte, würde dieser Beitrag natürlich nicht existieren. Mit diesem Sprichwort, @hasanyasin, vielen Dank für die post-interessante Perspektive. Der Chef ist jedoch ein Techniker / Software-Entwickler, was dieses Problem nur noch problematischer macht.
MK_Dev
@ Hasanyasin Über Bug's Güte - Es ist ausgezeichnet! Ich bin traurig, dass ich nicht zwei Gegenstimmen abgeben kann! Ich werde es auch selbst benutzen!
Gangnus
8

Wenn du Agile machst und es so klingt, als ob du aus dem Kommentar zu den Features / Stories stammst. Die Person, die die Schuld trägt , ist die QS-Person, die den Fehler durchgelassen hat, oder der Product Owner / Kunde, der die Funktion / Story als vollständig mit dem darin enthaltenen Fehler akzeptiert hat.

Ich habe damals einen Schriftsatz gemacht, hier ist meine Einstellung dazu.

Dies ist, als würde man einen Schriftsetzer für Rechtschreibfehler und andere Dinge verantwortlich machen, die ein Korrektor hätte finden sollen, aber übersehen hat. Der Schriftsetzer hat die Rechtschreibfehler gemacht, aber der Korrekturleser hat sie übersehen. Daher ist es der Korrekturleser, der für den Druckfehler verantwortlich ist, und nicht die Person, die den Fehler gemacht hat.

In einer agilen Umgebung liegt es in der Verantwortung der QA-Personen, Fehler (Bugs) abzufangen, und es liegt in der Verantwortung des Produktbesitzers, Dinge, die nicht korrekt sind, nicht zu akzeptieren. Dies sind zwei Ebenen von Korrekturlesern, die die Entwickler von Dingen, die veröffentlicht werden, isolieren sollen. Nur so kann etwas in einer agilen Umgebung als Fehler eingestuft werden .


quelle
3
Um die Sache noch schlimmer zu machen, sind Entwickler jetzt auch Qualitätssicherer. Ich weiß ...
MK_Dev
Was für eine verstörende Einstellung.
pdr
1
Das gesamte Team ist "die Person, die die Schuld trägt". Agile Werte Team über Einzelpersonen und es ist das gesamte Team, das die Anwendung entwickelt, so dass jeder Fehler das Problem des gesamten Teams ist. Denken Sie an die Situation, in der ein Build auf einem CI-Server fehlschlägt. Das gesamte Team sollte aufhören zu arbeiten und prüfen, was getan werden muss. Zumindest sollte es so sein!
Sgoettschkes
@Sgoettschkes theoretisch stimme ich Ihnen zu 100% zu, das gesamte Team ist verantwortlich für das Produkt, das produziert wird. Wenn Sie jedoch versuchen, eine bestimmte Person herauszusuchen, sind die Personen, die die Arbeit überprüfen, eher dafür verantwortlich, dass sie durchgelassen wird.
7

Ich denke, Ihr Manager versucht, ein Problem mit der falschen Lösung zu lösen. Ich denke, vielleicht gibt es ein Problem, dass zu viele Fehler veröffentlicht werden und Ihr Manager möchte, dass die Entwickler mehr Verantwortung und Verantwortung für den Code übernehmen, den sie schreiben.

Die Verwendung von testgetriebener Entwicklung und die Einrichtung eines Servers für kontinuierliche Integration (wie Jenkins ) wird zur Lösung dieses Problems beitragen, ohne das "Schuldspiel" einzuführen. Ein Continuous Integration Server ist dafür wichtig, da eine E-Mail an das Team gesendet wird, wenn jemand Code festschreibt, der den Build "abbricht". Da dieser Code nicht für eine Produktionsumgebung freigegeben wurde, ist diese Art von Schuld proaktiver und ermutigender (und macht Spaß!).

Das Ergebnis ist, dass Entwickler mehr Eigenverantwortung übernehmen, sich sicherer fühlen und weniger Fehler im Produktionscode auftreten.

Andrew
quelle
Ich stimme Ihrer ersten Aussage zu 100% zu. Das waren so ziemlich meine Worte, als ich über das Thema sprach.
MK_Dev
7

Weisen Sie darauf hin, dass, wenn ein Fehler einer einzelnen Person dazu führt, dass ein Fehler in der Produktion auftritt, etwas an Ihrer Methodik oder Ihrer allgemeinen Art, Software zu entwickeln, nicht stimmt. Weisen Sie darauf hin, dass es in der Verantwortung des gesamten Teams liegt, zu verhindern, dass Fehler in die Produktion gelangen.

Wenn Sie eines dieser beiden Argumente verwenden, versuchen Sie, Ihren Chef davon zu überzeugen, dass es irreführend ist, das Feld "wen Sie beschuldigen müssen" als Einzelauswahlfeld zu verwenden. und deshalb ist es notwendig, sicherzustellen, dass das Feld "wen zu beschuldigen" ein Mehrfachauswahlfeld ist. Sobald Sie dies erreicht haben, stellen Sie sicher, dass für jeden Fehler der Name eines jeden in das Feld eingetragen ist. Ihr Chef wird irgendwann feststellen, dass jegliche Berichterstattung auf dem Feld zwecklos ist.

Dawood ibn Kareem
quelle
6

Um dem Chef Anerkennung zu verschaffen, ist das Konzept der "Schuldzuweisung" bereits in Tools wie SVN integriert , und eine angemessene Verwendung der Daten kann für Entwickler hilfreich sein, um beim Debuggen herauszufinden, mit wem man sprechen kann, z. B .: http: / /www.codinghorror.com/blog/2007/11/who-wrote-this-crap.html

Obwohl ich der obigen Antwort von gnat zustimme, dass ein Grundursachenfeld eine gute Sache ist, ist dies nicht die gleiche Information und "denormalisiert" das Feld, um manchmal die vorherigen Entwicklernamen für die betroffene Quelle zuzuweisen und manchmal eine zu haben Technische Beschreibung (zB "nicht auf 10000 Benutzer skaliert") wird nur das Wasser trüben. Ich würde befürworten eine für die Aufbewahrung Root CauseFeld klar eine technische Beschreibung (z. B. lassen Sie Details wie "IndexOutOfRange Exception when fooData = 999" erfassen, auch wenn ein Programmiererfehler vorliegt). Dies kann möglicherweise ein nützliches Feedback liefern, wenn es in großen Mengen überprüft wird, und es können einige Korrekturmaßnahmen ergriffen werden Beheben ganzer Problemklassen bei Änderungen der Architektur oder des Frameworks (z. B. Verbesserung benutzerdefinierter Containerklassen, Ausnahmebehandlung auf oberster Ebene)

Das Hinzufügen eines Felds " Person to Blame" kann jedoch eine sehr schlechte und destruktive Nachricht an ein Softwareteam senden, das vom Management herausgegriffen und einzelne Entwickler bestraft werden soll, die am häufigsten gegen Code verstoßen. Ich vermute, Manager ist der Meinung, dass diese öffentliche Prüfung dazu führen wird, dass Entwickler vorsichtiger und selbstregulierender vorgehen, um nicht auf diese "Wall of Shame" aufmerksam zu werden, und versteht nicht, warum Entwickler sich dadurch bedroht fühlen, insbesondere wenn sie hinzugefügt werden generisch zu jedem Fehlerbericht.

Die Probleme beim Hinzufügen als Fehlerfeld / potenzielle Metrik lassen sich leicht auflisten:

  1. Fehler sind sehr unterschiedlich schwer zu beheben und eine einfache Statistik über die Anzahl der Fehler / Entwickler wird dies nicht widerspiegeln.
  2. Entwickler sind in der Fähigkeit "" "" "" "" "" "" sehr variabel
  3. Viele Softwaresysteme enthalten Komponenten, die überarbeitet werden müssen. Die Überarbeitung älterer Komponenten (insbesondere, wenn die ältere Basis über keine oder nur eingeschränkte Testmöglichkeiten für Einheiten verfügt) führt jedoch zunächst zu Fehlern. Es ist wahrscheinlich, dass Entwickler von dieser "guten" Aktivität abgehalten werden, wenn mit der Erzeugung neuer Fehler ein Stigma / eine Angst verbunden ist (auch wenn diese trivial zu lösen sind und das Endergebnis eine wesentliche Verbesserung des Systems darstellt).
  4. Tester können eine sehr variable Anzahl von Fehlern im Zusammenhang mit dem gleichen Problem melden, was zu einer stark verzerrten Fehleranzahl / Entwickler führt, es sei denn, es wird eine detailliertere Analyse durchgeführt.

Das ist nur die Spitze des Eisbergs. Kombinieren Sie diese mit dem Fingerzeig dessen, wer welches API-Verhalten erwartet hat, falsch erwarteten Testergebnissen und Problemen mit falschen / fehlenden Anforderungen "früher in der Kette" Ziel ist es, die Moral zu schädigen und einen Massenexodus zu verursachen.)

Zurück zum Standpunkt des Chefs ist es in Ordnung, dass er / sie herausfinden möchte, ob es Entwickler gibt, die wiederholt Code brechen, und versucht, etwas (hoffentlich konstruktives) dagegen zu unternehmen. Der Versuch, diese Informationen durch Hinzufügen eines Felds zu Fehlerberichten abzurufen, liefert aus den oben aufgeführten Gründen keine aussagekräftigen Informationen. Nach meiner Erfahrung können diese Informationen dadurch erlernt werden, dass Sie mit dem Team verbunden sind, an den meisten Teambesprechungen teilnehmen, (sorgfältig) Informationen integrieren, die in gelegentlichen Einzelbesprechungen mit Teammitgliedern erlernt wurden, und sich mit den Subsystemen in vertraut machen den Code (auch wenn sie keinen Code lesen können.)

Holtavolt
quelle
6

Lass es einfach gehen. Ihr Chef wird auf eigene Faust feststellen, dass dies ein Problem verursacht, wenn dies der Fall ist.

Seien wir stumpf, Sie haben eine Meinung und er auch. Er ist Ihr Manager und seine Meinung ist diejenige, die gewinnt.

Ja, Sie können wegen dieser Angelegenheit in den Krieg ziehen, aber ist es das wirklich wert? Ich bezweifle, dass es mehr als 3 Monate dauert, bevor es nicht mehr verwendet wird.

Wenn Sie dies jedoch aktiv sabotieren oder darüber schreien, wird nur politisches Kapital verbraucht, das gespart wird, um nach einer zusätzlichen Auszeit, einer nächsten Gehaltserhöhung, einer Beförderung oder einer wirklich kritischen Designentscheidung zu fragen.

In dem Moment, in dem es wirklich darauf ankommt, möchte man nicht, dass sich der Chef daran erinnert, dass Sie die Person waren, die seine Idee für "Schuldige" aktiv sabotiert hat.

Respektieren Sie das Büro, auch wenn Sie die Entscheidung nicht respektieren.

Sparen Sie Stress und Ärger bei Entscheidungen, die viel länger dauern werden.

Klopfen
quelle
+1 für eine vernünftige Lösung (obwohl ich eine eigene Antwort hinzugefügt habe) :-)
Homer6
2
Diese Art von Menschen nehmen Höflichkeit und Sensibilität für Schwäche. Das nächste Mal wird er mit etwas viel Schlimmerem kommen. Und wird noch weniger gespannt sein, Meinungen zu hören. Sogar jetzt sagt er, dass es Spaß macht, Menschen zu verletzen. Wenn Sie mit solchen Leuten zusammenarbeiten, müssen Sie auch Sadist oder Masochist werden.
Gangnus
5

Sagen Sie Ihrem Chef, dass die Entwicklung in einem Team soziale Fähigkeiten erfordert. Er könnte sogar nicken.

Aber das Problem ist, dass dies etwas ist, mit dem Entwickler extrem schlecht umgehen können. Das Hinzufügen von Tools, die darauf hindeuten, dass Schuldzuweisungen wichtiger sind als eine ordnungsgemäße Problemanalyse, ist kontraproduktiv.

Stattdessen brauchen Sie Anreize, um soziale Kompetenzen zu verbessern, und die Kommunikationsinfrastruktur, über die Sie verfügen, sollte dies unterstützen. Zum Beispiel positiv prägen: Nennen Sie eine Person, die für ein Ticket verantwortlich ist und sich darum kümmert.

Beginnen Sie auch mit Codeüberprüfungen, damit Sie voneinander lernen können. Das erspart später die Schuld.

hakre
quelle
Erinnern Sie ihn daran, dass er in den meisten Fällen der Schuldige sein kann. Zeitdruck, Teammitglied, verwaltete Prioritäten, ausgewählte / genehmigte Tools ...
BillThor
Oh man, ich kenne Entwickler. Sie suchen oft nach der Ursache von jemand anderem. Und sie sind nicht schüchtern zu argumentieren. Ich würde sagen, Entwickler müssen sich aktiv darum bemühen, ihre sozialen Fähigkeiten und ihre Rechenschaftspflicht zu verbessern. Das Schuldfeld kann nur ein Symptom sein, dass im Entwicklungsprozess etwas schief läuft. Ich wette, die Entwickler tragen die Verantwortung für dieses Problem. Der Manager hat auch, sieht aus wie die Käfer über ihren Köpfen wachsen. Deshalb sollten sie besser analysieren, warum die Fehlerrate sie aus der fokussierten Entwicklung verdrängt hat.
Hakre
4
-1 für den Hinweis darauf developer == no social skills. Die beiden haben nichts miteinander zu tun. Sie können gut in einem oder beiden sein und schlecht in einem oder beiden, und es gibt keine Verbindung.
Daenyth
@ Daenyth: Es war als Provokation gedacht, so schön, dass ich sehe, dass du provoziert wirst. Sicher, diese Zusammenhänge sind natürlich nicht wahr, und es ist dumm, das zu sagen (Vorurteile). Oft haben Entwickler jedoch keine sozialen Fähigkeiten. Vor allem diejenigen, die in einem Unternehmen arbeiten, das so geführt wird, wie es von OP beschrieben wurde, würde ich annehmen.
Hakre
@hakre: Wenn es der Fall ist, in dem er arbeitet, dann nur, weil die geschickteren das Unternehmen aufgrund des Managements verlassen haben
Daenyth
2

Mailen Sie ihm diese SO Frage. Wenn er offen für Vernunft ist, bieten die Kommentare hier eine Überprüfung seiner Vernunft. Wenn er nicht vernünftig ist, werden Sie ihn wahrscheinlich nicht mit sinnvollen Gründen überzeugen. Außerdem kann er die Gründe außerhalb eines Gesprächs lesen (was manchmal überzeugender sein kann, weil die Motivation, in der Hitze eines Gesprächs "richtig zu liegen", wegfällt).

Sie könnten auch versuchen, es umzudrehen. Das Feld könnte "mögliche Schritte sein, um das Auftreten eines ähnlichen Fehlers zu vermeiden", oder etwas kürzeres in diesem Sinne. Dann könnten Sie Lösungen bündeln und darüber abstimmen, welche implementiert werden sollen, um Ihren Arbeitsplatz zu verbessern. Möglicherweise ist ein lösungsorientierter Ansatz produktiver und wird wahrscheinlich besser angenommen (vorausgesetzt, die Überprüfung der Vorschläge wird tatsächlich weiterverfolgt).

Homer6
quelle
1

Ich sehe hier zwei Möglichkeiten: Er möchte Menschen bestrafen können, die Fehler machen, oder er hat es einfach nicht durchdacht. Lassen Sie ihn wissen, dass die Wahrnehmung für alle sein wird, dass er diejenigen bestrafen will, die Fehler machen. Fragen Sie ihn, ob das die Kultur ist, die er fördern möchte.

Mein Chef entschied, dass das Hinzufügen eines Felds "Person To Blame" zu unserer Bug-Tracking-Vorlage die Rechenschaftspflicht erhöht

Meiner Erfahrung nach wollen Führungskräfte, wenn sie "die Menschen rechenschaftspflichtiger machen" wollen, in der Lage sein, die Strafe für ein Versagen zu fordern. Ob es darum geht, schlechte Darsteller zu entlassen oder sie einfach in der jährlichen Gehaltsüberprüfung hängen zu lassen ("Entschuldigung, Bob, Sie haben 17 Bugs als Ihre Schuld gemeldet, und das ist mehr als die Grenze von 15"), es ist eine Bestrafung.

Er wird wahrscheinlich sagen "Oh, nein, das wollen wir nicht", also fragen Sie ihn, wie diese Daten verwendet werden. Erinnern Sie ihn daran, dass Sie einer Datenbank keine Datenpunkte hinzufügen, es sei denn, Sie werden sie verwenden. Möchte er entweder nach einem bestimmten Kriterium auswählen ("Alle offenen Fehler im Report Creator-Subsystem anzeigen"), damit Sie an Dingen arbeiten können, oder in der Lage sein, aggregierte Daten abzurufen ("Welches Subsystem hat die meisten Fehler gehabt")? Bugs "), damit Sie eine Post-Mortem-Analyse durchführen können. Stellt er sich eine Art Tragebrett vor, an dem Menschen öffentlich gedemütigt werden können?

Was hat er also vor? Will er in der Lage sein zu sagen "Zeig mir alle Bugs, die Bobs Schuld sind?" Warum? Oder will er sagen können "Zeig mir, wer die meiste Zeit Schuld hat?" Warum? Der erste ist nicht aussagekräftig und der zweite ist nur strafend. Oder die dritte Option ist, dass er keinen wirklichen Grund hat.

Ich gebe zu, es besteht die Möglichkeit, dass er diejenigen Programmierer im Team sucht, die Hilfe bei der Verbesserung ihrer Fähigkeiten benötigen. In diesem Fall gibt es bessere Möglichkeiten, diese Informationen zu erfassen, die keine Kultur des Fingerzeigens schaffen.

Andy Lester
quelle
-3

Ich glaube, der wichtigste Aspekt ist, wie offen die Kommunikation im Team gegenüber dem "Chef" und umgekehrt ist. Aus Sicht des Managements ist das Zeigen mit dem Finger jedoch nie gut. Wenn einer Ihrer Entwickler mehrmals auf dasselbe Problem stößt, ist es möglicherweise an der Zeit, einzugreifen und ihm dabei zu helfen, dieses sich wiederholende Problem zu lösen (z. B. testet John nicht ordnungsgemäß) der Code: 3 Produktionsfehler in den letzten 3 Monaten, lassen Sie uns ihm eine Checkliste geben, damit er sich erinnert, wie sein Code sein soll und wie er ihn testen soll).

Aus entwicklungspolitischer Sicht ist 'Tadeln' bereits in ein Mainstream-Tool wie SVN integriert, daher sehe ich keinen Schaden darin, "John, bitte repariere den Mist, den du geschrieben hast" und schreibe einen Namen daneben es. JIRA enthält auch den Namen einer Person, wenn Sie einen Fehler melden (das Feld ist jedoch nicht wirklich für die Person bestimmt, die dafür verantwortlich ist, es ist so ziemlich so, dass es jemand repariert).

Hier ist die Sache, die, wie viele bereits erwähnt haben, im Fehlerfall eine gemeinsame Verantwortung trägt: vom Entwickler über die Tester bis hin zur Qualitätssicherung und den Managern. Wenn Ihr Chef irgendwann einen verärgerten Kunden über das Telefon mit Dingen wie " Es tut mir so leid, John hat das nie richtig getestet " behandelt, dann würde ich definitiv nach einem anderen Job suchen. Ein guter Chef sollte sagen: "Wir kümmern uns darum." Keine Namen, keine Fingerzeig, nur Lösungen.

Auch hier geht es meiner Meinung nach nur um Kommunikation. Vielleicht möchte Ihr Chef nur sehen, wer Probleme im Entwicklerteam hat oder welche Probleme das Team hat (vielleicht für Trainingseinheiten?), Aber ich glaube nicht, dass Sie genau herausfinden werden, was hinter seinen Problemen steckt Entscheidung (oder besser gesagt, wir Poster / Leser), es sei denn, Sie sprechen mit Ihrem Chef und Ihrem gesamten Team.

Osvaldo Mercado
quelle