Code Cowboy im Team

15

Wie gehen Sie mit einem Teammitglied um, das Ihnen übergeordnet ist und immer auf die Projekte anderer Leute zugreift und diese über Nacht oder über das Wochenende erledigt? Sie scheint 80 Stunden in der Woche zu arbeiten, unabhängig davon, ob ein Notfall vorliegt oder nicht, und es ist etwas schwierig vorherzusagen, welchen Teil Ihrer Aufgabenliste sie als Nächstes streiken wird. Manchmal werden Tage Ihrer Arbeit verschwendet, weil Sie am Montagmorgen einen Check-in finden, der das Projekt abschließt, an dem Sie die meiste Zeit der Vorwoche gearbeitet haben.

An Leute, die nach der Qualität fragen: Normalerweise ist es recht gut, aber: Es gibt auch eine Menge Umgestaltungen des Codes, einschließlich des Codes, der anderen Teammitgliedern gehört, ohne Rücksicht auf die Testabdeckung, mit den offensichtlichen Ergebnissen.

MK01
quelle
51
Wie wäre es, wenn Sie mir ihre Daten geben und ich werde sehen, was ich tun kann, um meine Firma dazu zu bringen, sie abzuwerben.
Kevin D
7
@ MK01, Howabout so etwas wie "Wir lieben die Beiträge, die Sie geleistet haben, aber wir möchten Möglichkeiten diskutieren, wie wir die Arbeit klar segmentieren können. Wenn wir Ihre Codierung mit der des restlichen Teams nutzen können, sind wir es kann dies wahrscheinlich noch schneller erledigen als wir es jetzt sind. " Ein großer Schlüssel ist der folgende: Sie soll das Gefühl haben, diejenige zu sein, die auf die Idee gekommen ist.
Riwalk
7
Entspanne dich und warte, bis sie ausbrennen.
Steven Evers
9
Sieht so aus, als könnten Sie am Montagmorgen SO Zeit einplanen.
JeffO
3
Was Sie uns nicht gesagt haben, ist die Qualität ihres Codes. Verhindert sie, dass andere Menschen Lösungen von gleicher, größerer oder geringerer Qualität finden?
David Thornley

Antworten:

17

Dies ist wahrscheinlich teilweise ein Transparenzproblem. Sie wird wahrscheinlich nicht versuchen, Ihre Zeit zu verschwenden. Ich würde mit dem Management darüber sprechen, die Aufgaben, an denen die Leute arbeiten, klarer zu machen, damit sie leichter erkennen kann, dass jemand bereits Zeit in diese Aufgabe investiert hat und sehen kann, welche Aufgaben nicht beansprucht werden, und sich stattdessen auf diese konzentrieren.

Ich würde sie nicht direkt damit konfrontieren. Ich würde mit Ihrem Vorgesetzten sprechen, damit ein Prozess eingeleitet werden kann. Während das Problem wahrscheinlich am deutlichsten bei ihr zu sehen ist, möchte ich wetten, dass es andere Teamkollegen gibt, die das Gleiche in geringerem Umfang tun (aus Versehen mit Projekten beginnen, an denen bereits jemand anderes arbeitet). Ich denke, Ihr Manager ist in der besten Position, um diesen neuen Prozess zu leiten, obwohl Sie ihm wahrscheinlich einige Ideen für die Arbeit geben sollten. Wenn die Arbeit mit Ihrem Manager nicht funktioniert, sollten Sie direkt mit ihr sprechen - aber ich würde mit dem Manager beginnen.

Unser Team hat sich mit diesem Problem befasst, indem es Haftnotizen mit allen erforderlichen Arbeiten an einer weißen Tafel anbrachte. Jedes Teammitglied hatte ein Etikett mit seinem Namen und verschob den Notizzettel, an dem es arbeitete, in die Spalte "In Bearbeitung" und beschriftete ihn mit seinem Namen. Wenn eine andere Person bei dieser Aufgabe helfen wollte, wurde von ihr erwartet, dass sie sie mit der Person bespricht und verhandelt, die die Aufgabe beansprucht hatte. Ein ähnliches System kann bei Ihren Problemen sehr hilfreich sein.

Ethel Evans
quelle
17

Vorausgesetzt, sie ist wirklich effizient und "Alleskönner" ...

Umarme ihren Stil. Entfessle sie. Und - isoliere sie.

Ebenfalls...

Seien Sie explizit bei den Verantwortlichkeiten, die Sie anvertrauen.
Stellen Sie sicher, dass Ihr Team von ihr lernt (z. B. funktioniert die Paarprogrammierung hervorragend).
Gehen Sie nicht "all-in" - testen Sie sie und stellen Sie sicher, dass Sie einen Backup-Plan haben, falls sich die Situation verschlechtert.

Das Schlimmste, was Sie tun können, ist, ihre Motivation zu vermasseln.


Das erzähle ich aus eigener Erfahrung. Ich bin vielleicht nicht so effizient, wie ich es gerne hätte, aber ich kann mit Sicherheit von der Benutzeroberfläche bis zur Ausdauer weiterkommen und ich übe mit Sicherheit das Codieren von Cowboys (was sicherlich ein zweischneidiges Schwert ist).

Ich bin alleine in ein ziemlich hoffnungsloses Projekt geraten (ich habe die Dinge noch lustiger gemacht - ich habe vorgeschlagen, alles neu zu schreiben und akzeptiere das), die Dinge laufen gut und ich liebe es. Es gibt niemanden, der für Fehler verantwortlich ist, außer mir. Es ist niemand zu jammern , wenn ich mich entscheide spontan Refactoring ein bisschen von allem.

Eigentlich - diese Freiheit ist wie nur eine Sache, warum ich immer noch hier arbeite.

Arnis Lapsa
quelle
9

Ich denke, es gibt schlimmere Probleme. Die Arbeit, die Sie (oder andere in Ihrem Team) leisten, sollte eine Rolle spielen, und es scheint, dass die Ergebnisse ihrer Arbeit einen Beitrag, den eine Person zum Team geleistet hat, effektiv eliminieren.

Ich vermute, dass sie den Einfluss, den sie auf das Team hat, nicht bemerkt. Die Beiträge, die sie leistet, geben ihr wahrscheinlich das Gefühl, für das Team wertvoll zu sein.

Die Lösung (IMHO): konfrontieren Sie sie direkt. Seien Sie natürlich diplomatisch und schätzen Sie die Beiträge und Opfer, die sie erbringt.

Aber es liegt in ihrer Verantwortung, sich auf eine Weise zu verhalten, die ihre Mitarbeiter nicht entfremdet - Junior oder auf andere Weise. Und jeder im Team verdient das Gefühl, dass seine Bemühungen sinnvoll sind - warum sollte jemand jeden Tag zur Arbeit gehen wollen, wenn seine Anwesenheit bedeutungslos war?

Tim Claason
quelle
Sie wissen, nachdem Sie sich das Profil von OP auf SO / SE angesehen haben. Ich muss auf die andere Seite der Medaille schauen. Wenn es der Senior war, der dies absichtlich oder unbeabsichtigt getan hat. Es ist definitiv schlecht aus Gründen, die Tim erwähnte. Auch aufgrund des Grundgedankens, die Junioren nicht wachsen / sich entwickeln zu lassen. Nur wenn die Junioren besser genug werden, um Sie zu ersetzen, kann die Show auch ohne Ihre Anwesenheit fortgesetzt werden. Also +1
Aditya P
9

Überlegen Sie, ob Sie ihr viel mehr Arbeit geben soll, damit sie nicht nach Ihrer suchen muss!


quelle
6

Ist es möglich, dass sie "einspringt und fertig wird", weil sich der Rest des Teams zu langsam bewegt oder weil der Chef sie darum gebeten hat?

Wie viel davon ist ärgerlich, umgangen zu werden, und wie viel ist es, einfach von einem produktiveren (nicht unbedingt besseren) Programmierer "gezeigt" zu werden?

Steven A. Lowe
quelle
4

Weiß sie, dass andere Leute das nerven? Ich würde vorschlagen, sie taktvoll anzusprechen und zu sagen, dass Sie es vorziehen, Ihre Projekte abzuschließen. Wenn dies nicht funktioniert oder es Ihnen unangenehm ist, mit einer älteren Person darüber zu sprechen, ist dies ein Fall für das Management. Wenn Sie Projekte nicht abschließen, weil sie es ist, könnte es so aussehen, als würden Sie nachlassen, wenn der Manager die Situation nicht kennt.

Schauen Sie auch, wie andere gesagt haben, wie sie arbeitet, um sich selbst zu verbessern. Sehen Sie sich ihre Checkins an, um zu sehen, wie sie Ihr Problem gelöst hat - vielleicht war es eine clevere Lösung, an die Sie nicht gedacht hätten. Denken Sie daran, dass erfahrene Entwickler die Codebasis viel besser kennen als Sie. Dinge, die für sie trivial erscheinen, können für neuere Entwickler tatsächlich schwierig zu entdecken sein.

Michael K
quelle
7
Jeder, der 80-Stunden-Wochen bevorzugt im Programmieren arbeitet, wird wahrscheinlich ein bisschen weniger soziale Fähigkeiten haben.
David Thornley
4

Wie gehen Sie mit einem Teammitglied um, das Ihnen übergeordnet ist und immer auf die Projekte anderer Leute zugreift und diese über Nacht oder über das Wochenende erledigt?

Arbeite schneller?

Sie scheint 80 Stunden in der Woche zu arbeiten, unabhängig davon, ob ein Notfall vorliegt oder nicht, und es ist etwas schwierig vorherzusagen, welchen Teil Ihrer Aufgabenliste sie als Nächstes streiken wird.

Per Definition ist es nicht erledigt, wenn es auf Ihrer ToDo-Liste steht. Wenn sie es vervollständigt, streichen Sie es von Ihrer ToDo-Liste.

Manchmal werden Tage Ihrer Arbeit verschwendet, weil Sie am Montagmorgen einen Check-in finden, der das Projekt abschließt, an dem Sie die meiste Zeit der Vorwoche gearbeitet haben.

Das nennt man normalerweise Teamwork - wenn dir die Richtung, in die sie gegangen ist, nicht gefällt, was ist das Problem?

An Leute, die nach der Qualität fragen: Normalerweise ist es recht gut, aber: Es gibt auch eine Menge Umgestaltungen des Codes, einschließlich des Codes, der anderen Teammitgliedern gehört, ohne Rücksicht auf die Testabdeckung, mit den offensichtlichen Ergebnissen.

"Owned" und Code passen nicht zusammen. Wenn Sie Probleme haben, mitzuhalten, bitten Sie sie, es Ihnen zu erklären. Bitten Sie sie, Sie zu betreuen, denn es klingt, als wäre sie ziemlich produktiv. Nutzen Sie die Beziehung und arbeiten Sie zusammen.

Was die Testabdeckung angeht, wenn dies in Ihrer Organisation ein Standard ist, wenden Sie sich an Ihren Lead / Manager. Schnelle, aber miese Arbeit nützt niemandem. Wenn sie 10x produktiver ist als Sie, erledigen Sie möglicherweise die grunzende Arbeit des Aufräumens nach ihr. Wenn das der Fall ist, investieren Sie noch stärker in eine Beziehung mit ihr.

Mark Brackett
quelle
Sie klingt wie das ideale Teammitglied ... Sie macht deutlich, woran sie gearbeitet hat / fertig ist, sie hilft jedem Mitglied des Teams, etc.
Augury
3
  • Lerne von ihr und versuche, deine Arbeitsgeschwindigkeit zu verbessern.
  • Möglicherweise ist Ihre Arbeit in Verzug.
  • Aufgrund der Erwartungen des Managements von ihr als Seniorin ist möglicherweise mehr hinter den Kulissen oder über Ihrem Wissen los.
  • Sie könnten denken, Sie hätte vielleicht nichts Besseres zu tun. Oft ist dies unwahrscheinlich.
  • Möglicherweise sind Sie sich eines Notfalls nicht bewusst.
  • Dies kann ein Hinweis auf Ihre Leistung sein, entweder vom Management oder vom Senior.

Wie auch immer, es ist das Beste, was Sie anfangen, sich selbst zuerst zu bewerten. Da Ihre Bemühungen, mit ihr " umzugehen ", möglicherweise nicht gut mit dem Management zusammenarbeiten.

Aditya P
quelle
3

Ihre Befriedigung liegt eindeutig darin, Probleme zu lösen und die Heldin zu sein - was in Ordnung ist, aber Sie müssen (und zwar ihre Teamleiterin, aber Sie in der Zwischenzeit) einen Weg finden, dies zu nutzen.

Die wichtigsten Dinge springen mir auf:

  • Sie hat das Talent, die Arbeit schneller zu erledigen als andere (Sie haben nichts damit zu tun, dass ihr Code schlecht ist)

Also mach es dir zu Nutze. Bieten Sie ihr in Ihrem nächsten Projekt vorab etwas Arbeit an. Auf diese Weise wissen Sie, was sie vorhat. Wenn ihre Befriedigung von der Lösung von Problemen herrührt, ist sie wahrscheinlich genauso glücklich, wenn Sie es ihr anbieten, als ob sie es im Hintergrund tut.

Vielleicht sollte man es besser machen, es formalisieren, wenn ein Team Arbeit auf die Beine stellt, die für jeden zu haben ist, der zusätzliche Dinge tun möchte - auf diese Weise ist das Element des Diebstahls verschwunden und jeder gewinnt.

Stephen Bailey
quelle
1
Wenn Sie die DeMarco-Bücher lesen, werden Sie feststellen, dass zwischen der Menge, die gute und nicht so gute Entwickler produzieren können, ein Verhältnis von etwa 10: 1 besteht. Das Letzte, was Sie tun möchten, ist, den Ausreißer zu lähmen, der mehr erreicht als andere. Sie müssen diese Energie nutzen und dorthin lenken, wo sie am besten hilft.
quick_now
2

Starten Sie das Team mit der Paarprogrammierung.

Zunächst einmal ist die Paarprogrammierung anstrengend, besonders für introvertierte Entwickler, die gerne das ganze Wochenende alleine arbeiten. Ihre Wochenenden werden für die Entspannung wertvoll, wie sie sein sollten.

Zweitens wird sie ihr Wissen weitergeben (solange noch mehr unerfahrene Entwickler fahren) und so ihre erstaunlichen Fähigkeiten auf den Rest des Teams übertragen.

Drittens reduziert sie das massive Risiko, das sie derzeit für Sie trägt, sodass mehr als ein Teammitglied weiß, was sie weiß.

Viertens wird sie - und der Rest des Teams - eine bessere Vorstellung davon haben, woran gearbeitet wird. Wenn Sie dies mit der Fertigstellung ganzer Funktionen im Team kombinieren, wird weniger gearbeitet und es besteht weniger Wahrscheinlichkeit, dass die Arbeit vor dem Einchecken dupliziert wird.

Fünftens wird sie lernen, als Teil einer Mannschaft zu spielen . Es ist durchaus möglich, dass die Demotivation, die sie verursacht, zusammen mit der Verdoppelung der Arbeit anderer Teammitglieder mehr kostet, als sie produziert. Produktivität! = Effektivität.

Sechstens steigt die Codequalität normalerweise, wenn Entwicklerpaare verwendet werden. Ein schöner Nebeneffekt.

Lunivore
quelle
1

Weiß sie, was die Leute arbeiten und wie sie vorankommen? Könnte das Management ihr Anweisungen geben, damit sie nicht die Arbeit anderer Personen dupliziert? Ich wäre versucht, ein 1: 1-Gespräch vorzuschlagen, bevor ich das Management einsetze, da sie vielleicht nur eine Arbeitssüchtige ist, die die Richtung einschlagen könnte, zu wissen, welche Dinge wichtig sein könnten, die andere nicht tun, was für sie sehr nützlich sein könnte tun.

Betrachten Sie Ihre verschwendete Arbeit aus anderen Perspektiven. Was konnten Sie aus dem, was Sie getan haben, lernen? Welche Teile hast du nicht gemacht und wie hat sie sie gemacht? Denken Sie nicht, dass all das Blut, der Schweiß und die Tränen umsonst sind, nur weil jemand anderes die Ehre dafür hat, etwas erledigt zu haben.

JB King
quelle
0

Der Cowboy scheint begeistert zu sein. Ich würde mich an das Management wenden, damit sie ihr eine Menge Arbeit geben und euch eure eigenen Sachen machen lassen kann. Vielleicht können Sie jedoch ein oder zwei Dinge vom Cowboy lernen. Ich sage nicht, dass 80-Stunden-Arbeitswochen die Norm sein sollten (dies ist offensichtlich übertrieben), aber es ist in einem großen Unternehmensumfeld ganz normal, zusätzliche Stunden in die Arbeit zu investieren.

Brian
quelle
5
Lange Programmierstunden sind auf lange Sicht in der Regel kontraproduktiv.
David Thornley
@ David: Nicht, wenn Sie jeden zweiten Freitag vergeben werden :)
Brian
2
@ 0A0D: Das ist Gleitzeit, nicht "zusätzliche Arbeitsstunden"
Carson63000
3
@OAOD: Jeder Laden, in dem regelmäßig unkompensierte Überstunden geleistet werden, ist ein Schweißladen.
Bit-Twiddler
@bit-twiddler: Noch nie was von Angestellten gehört?
Brian