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?
teamwork
bug-report
MK_Dev
quelle
quelle
Antworten:
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 , ... .
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.
quelle
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.
quelle
root cause
Fehler meldet, ist wahrscheinlich nicht die Person, die versucht, nach 36 Stunden Code-Schreiben in dieser Woche einen Fehler in Ihrem eigenen Code zu finden.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.
quelle
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.
quelle
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:
Richtig:
quelle
Ändern Sie "Person zu beschuldigen" in "Person zu loben"
Die Hauptperson, die die Fehler behebt, trägt ihren Namen.
quelle
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?
quelle
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 . "
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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).
quelle
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. "
quelle
Aus Gründen der Verantwortlichkeit möchte ich kein
person to blame
Feld, ich möchte einPerson who knows the code
Feld oder einperson who can fix
Feld, 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.
quelle
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 ?!
quelle
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)
quelle
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!
quelle
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.
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
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.
quelle
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.
quelle
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:
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.)
quelle
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.
quelle
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.
quelle
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.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).
quelle
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.
quelle
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.
quelle