Wie demonstrieren Sie die Leistung in Paired-Programming-Umgebungen?

15

Vor kurzem sind bei meiner Arbeit Leistungsbeurteilungen aufgetaucht, und ich wurde in eine interessante Position gebracht. Unser Team führt eine Menge Paarprogrammierungen durch, bei denen die Fähigkeitsunterschiede zwischen Teammitgliedern tendenziell gemittelt werden (insbesondere, wenn wir Paare drehen). Im Allgemeinen sehen Sie bei Leistungsüberprüfungen die geleistete Arbeit und zeigen, was Sie erreicht haben und wie Sie die Erwartungen übertroffen haben, um eine Gehaltserhöhung oder andere Vorteile auszuhandeln.

Wie demonstrieren (oder messen) Sie die individuelle Leistung in einer solchen Umgebung?

NT3RP
quelle
1
Ich würde nachverfolgen, woran ich persönlich gearbeitet habe. Wenn ich ein Problem lösen würde, würde ich es nur nach einem Gespräch mit meinem Kollegen würdigen.
Ramhound
Ich kenne die Antwort nicht ... und ich weiß, dass es an einigen Arbeitsplätzen potenzielle Probleme gibt, wenn ein Mitglied des Paares versucht, alles zu würdigen. Sobald das zweite Mitglied versucht, nur ein paar Dinge ehrlich zu würdigen, könnte es verdächtig werden, da es wahrscheinlich nicht möglich ist, dass beide Mitglieder die volle Anerkennung für die Leistungen des Paares verdienen.
FrustratedWithFormsDesigner

Antworten:

13

Nehmen Sie den Wert, den Sie der Paarprogrammierung beigemessen haben, in die Leistungsbeurteilung auf. Haben Sie dem anderen Programmierer geholfen, nützliche Dinge zu lernen? (Und umgekehrt, haben Sie auf seinen / ihren weisen Rat gehört und gut zusammengearbeitet?)

Eine Leistungsbeurteilung sollte kein Wettbewerb sein, sondern eine Coaching-Bewertung in Bezug auf Ihre persönlichen Ziele (die vermutlich im Einklang mit den Unternehmenszielen stehen und zu Beginn des Jahres vereinbart wurden; ansonsten ist sie nur willkürlich).

Steven A. Lowe
quelle
3
+1, aber es ist wahrscheinlich schwierig, eine "Coaching-Bewertung in Bezug auf Ihre persönlichen Ziele" zu erstellen, wenn Ihre nächste Gehaltserhöhung von der Leistungsbeurteilung abhängt (wie der Tag "Gehalt" impliziert).
Nikie
1
@nikie: An vielen Orten, an denen ich früher gearbeitet habe, wurden zu Beginn des Jahres persönliche Ziele besprochen, und die Leistungsüberprüfung wurde Ende des Jahres in Bezug auf diese Ziele durchgeführt. An vielen anderen Orten, an denen ich einmal gearbeitet habe, wurden Leistungsbeurteilungen ohne Ihre Eingabe durchgeführt. An einigen Orten, an denen ich einmal gearbeitet habe, wurden wiederholt Leistungsbeurteilungen versprochen, aber nie durchgeführt. Sofort wurde mir gesagt, ich solle meine eigenen Unterlagen für die Leistungsüberprüfung ausfüllen, weil das Management zu beschäftigt war!
Steven A. Lowe
2

Es wäre schwierig, einen Leistungsvorteil gegenüber dem anderen wissenschaftlich eindeutig nachzuweisen.

Ihre Hypothese lautet, dass die Paarprogrammierung die Entwicklerleistung erhöht und die Qualität verbessert. Ihr Test besteht darin, einem Paar eine Reihe von Anforderungen zuzuweisen, die auf eine bestimmte Architektur beschränkt sind, und diese implementieren zu lassen.

In diesem Fall haben Sie die Kontrolle darüber, dass Sie dieselben Anforderungen an einen einzelnen Entwickler mit gleichem Ansehen, Können und Erfahrung stellen (wie dies von seinen Kollegen objektiv beurteilt wird) und innerhalb derselben Architektur eingeschränkt sind.

Um Ihre Hypothese der Zeitleistung zu überprüfen, müssen die Programmiererpaare ihre Arbeit in weniger als der Hälfte der Zeit als Kontrolle beenden. Um Ihre Hypothese zur Qualität zu überprüfen, müssen Sie das Experimentpaar und den Kontrollcode von einem objektiven Dritten überprüfen lassen und eine objektive QS-Gruppe die Ergebnisse beider Gruppen testen lassen, ohne ihnen mitzuteilen, welches Team was produziert hat. Die Paar-Programmiergruppe muss besseren Code und weniger Fehler aufweisen.

Es ist kein perfektes Experiment, aber ich wäre fasziniert zu hören, wenn jemand etwas Ähnliches versucht hätte.

Abgesehen davon kann ich jedoch nicht nachvollziehen, wie Sie tatsächlich beweisen können, dass Pair Programming einem einzelnen Programmierer in einer bestimmten Funktion überlegen ist.

maple_shaft
quelle
Interessantes Experiment, aber ich möchte nicht die individuelle Leistung mit der Paarprogrammierung vergleichen. Ich frage in einer Pair-Programming-Umgebung, wie Sie die Auswirkungen einer Person messen.
NT3RP
1
Vielleicht ist es dann in Ihrem Fall nur eine schlechte Metrik? Wenn das Unternehmen hauptsächlich Pair-Programmierung einsetzt, wird die Fähigkeit, die Auswirkung eines bestimmten Programmierers genau zu bestimmen, aus Sicht des Managers erheblich beeinträchtigt. Ich kann sehen, wie schwierig eine jährliche Leistungsbeurteilung sein kann, die fair durchgeführt wird.
maple_shaft
Ich stimme zu, dass es wahrscheinlich eine schlechte Metrik ist, aber leider müssen wir damit leben :)
NT3RP
2

Rufen Sie in Ihren Leistungsmetriken separat Folgendes auf: 1) individuelles Wachstum und Entwicklung, 2) Mentoring und Peer-Support. Ermöglichen Sie jedem Mitarbeiter, sich selbst zu bewerten und das Feedback seines Lead einzubeziehen. Wenn es in Ihrer Unternehmenskultur Sinn macht, ziehen Sie Peer Reviews oder Testimonials in Betracht.

Wenn dies richtig gemacht wird, wird der Mitarbeiter belohnt, der den höchsten Bildungswert aus einer Paarung erzielt, und der Mitarbeiter, der ihn dabei unterstützt, seine Kenntnisse und Erfahrungen auf den neuesten Stand zu bringen, wird für den Transfer von Wissen und Erfahrung belohnt. Menschen, die sich irgendwo in der Mitte befinden (neue Bereiche erlernen, anstatt nur von Junior zu Senior zu wechseln), werden für beide Enden der Gleichung anerkannt.

In der Praxis ist die Bewertung der individuellen Leistung im besten Fall schwierig. Es ist ziemlich schwer, es zu tun, ohne ein Gefühl des Grolls oder der Konkurrenz zu erzeugen. Wenn Sie jedoch den individuellen Beitrag zum Team bewerten und sowohl das Lernen als auch das Lehren schätzen, besteht eine gewisse Chance, dass es mit etwas weniger Reibung funktioniert.

JasonTrue
quelle
2

Wechseln die Paare häufig? In diesem Fall können Sie anonyme Bewertungen verwenden, um eine Anzeige zu erstellen. Wenn beispielsweise Person A angibt, dass B 60% der Arbeit geleistet hat, Person C angibt, dass Person B 30% der Arbeit geleistet hat, und Person D angibt, dass Person B 90% der Arbeit geleistet hat, können Sie dies auf Person B übertragen 60% der Arbeit. Wenn die Arbeit, die Person B in seinen Paaren geleistet hat, einen relativen Faktor von 100 Punkten hat, dann hat Person B Arbeit im Wert von 60 Punkten geleistet!

Dies ist jedoch nicht (annähernd) perfekt. Die Leute geben sich wahrscheinlich mehr Anerkennung als die andere Person, daher müssen Sie dies möglicherweise bei der Berechnung berücksichtigen. Dies könnte auch zu einer Umgebung führen, in der die Paare einander verdächtig sind. Die Berechnung kann auch von jemandem verschoben werden, der die Person, mit der er arbeitet, nicht mag, usw.

Casey Patton
quelle
1

Ich sage, wenn zwei von uns zusammengearbeitet haben, um X zu erstellen, bekommen wir beide Anerkennung dafür, dass wir es fertiggestellt und bereitgestellt haben. Möglicherweise liegt ein Problem vor, wenn ein Teil eines Paares überhaupt nicht funktioniert hat. In diesem Fall sollte der Manager die ganze Zeit darüber informiert sein und dieses Feedback beim Ausfüllen seines Kommentars zur Leistungsbeurteilung verwenden.

HLGEM
quelle
1

Sie befinden sich genau in der Situation, die mein Lehrer uns Schülern in unserem Lehrplan zur Spieleentwicklung vermittelt. Wir werden gepaart (2, 3 oder 4 Personen, abhängig von der Klassengröße und der Projektgröße) und am Ende werden wir aufgefordert, jedes einzelne Teammitglied und uns selbst in Bezug auf das Projekt und die geleistete Arbeit zu bewerten die Projekte der anderen Teams als Ganzes. Auf Basis dieser Bewertungen wird eine Note formuliert.

Während der Teambildung platzierte der Lehrer absichtlich einen starken Programmierer und einen schwachen Programmierer in der Hoffnung, dass sie sich gegenseitig abarbeiten und / oder helfen würden, aber 99% der Zeit würde der schwache Programmierer vorbeigehen und sehr wenig Arbeit für niemanden tun oder haben Keine Ahnung, was sie tun. (Da dies die fortgeschrittenen Kurse sind, ist es sehr frustrierend.)

Die Bewertungen sollen privat sein, aber sagen wir mal, es gibt ein paar Leute, mit denen sich jeder weigert, mehr zu arbeiten.

Casey
quelle
1

Paarprogrammierung bedeutet, dass eine Person überlegt, was und wie etwas getan werden soll, und die andere Person spielt einen Codieraffen. Dann wechseln sie irgendwann (man langweilt sich, wird müde usw.). Es ist gut, weil beide bei ihren Aktivitäten nicht unterbrochen werden.

Einige Leute betrachten es auch als "die Codeüberprüfung auf Steroiden". Sie erhalten überprüften Code, was eine höhere Qualität bedeuten sollte.

BЈовић
quelle
1

Gute Frage. Wichtig ist nicht nur, was Sie beitragen, sondern auch, wie Ihre Kollegen Ihren Beitrag sehen. Bitten Sie sie um ihr offenes Feedback, denn dieses Feedback hilft Ihnen dabei, ein besseres "was auch immer" zu sein . Im Ernst, es ist wichtig, dass Ihre Kollegen Ihren Beitrag verstehen und ihn nur verstehen, wenn sie während des Pairings mit Ihnen eine Menge lernen. Viel Spaß beim Programmieren, Teilen und Lernen, damit Sie gut verdienen.

Karthiks
quelle
0

Der Nachteil der Paarprogrammierung besteht darin, dass die erfahrenere Programmiererproduktivität kurz- bis mittelfristig auf die am wenigsten erfahrene Programmiererproduktivität beschränkt ist. Langfristig wird die Erfahrung und Produktivität im Nachwuchsentwickler gesteigert.

umlcat
quelle