Soll ich einen Job annehmen, wenn eine Paarprogrammierung erforderlich ist? [geschlossen]

28

Mir wurde ein interessanter Job angeboten, aber es gibt eine große Einschränkung für mich: Sie verwenden Paarprogrammierung.

Ich hasse die Idee der Paarprogrammierung und bin wahrscheinlich nicht dafür geeignet: Ich mache gerne häufige Pausen, ich hasse es, jemanden beim Programmieren zu sehen (ich würde das Paar ständig wegstoßen, um mich selbst zu codieren), ich muss voll und ganz sein Kontrolle über die Maschine, an der ich arbeite, ich höre gerne Musik und im Grunde mag ich es nicht, an jemanden gebunden zu sein. Ich bin nicht einmal eine soziale Person.

Ich habe jedoch noch nie mit echter Paarprogrammierung gearbeitet (außer ein paar Mal für kurze Zeit, um jemand anderem zu helfen oder eine komplexe Aufgabe zusammen zu lösen) ... also ist die Paarprogrammierung wirklich so schlecht? Und sollte ich angesichts meiner Einstellung den Job ablehnen oder meinen jetzigen verlassen und es versuchen?


Für Leute, die danach fragten: Ich suche einen Job, bei dem formales Design und Entwicklung zum Einsatz kommen, da ich meinen aktuellen Job hasse, bei dem wir "in freier Wildbahn codieren". Das Unternehmen ist sehr an meinem technischen Profil interessiert, so dass sie darauf bestanden, selbst wenn ich spezifizierte, dass ich nie mit Pair Programming gearbeitet habe und es mir wahrscheinlich nicht gefallen würde (abgesehen davon, dass ich ein nicht kontaktfreudiger Einzelgänger bin, mag und glaube ich nicht genau das Konzept von Paar-Programmierung).

Wizard79
quelle
8
Nun, Sie persönlich klingen nicht einmal ein bisschen scharf darauf, und ich denke, Sie sollten es nicht tun, es sei denn, Sie möchten es auf dem alten College versuchen.
Paul Nathan
1
Ich finde, ein Kompromiss zwischen totaler Paarprogrammierung und Solo-Programmierung ist eine nette Mischung. Sie erhalten den Vorteil eines zweiten Satzes von Augen, aber auch etwas Platz und Raum, um die andere Hälfte der Zeit zu atmen.
Chris
Es ist nützlich, wenn Sie neu in dieser Programmiersprache sind ... Sie können sofort Hilfe bekommen. Sie müssen nicht warten, bis ppl antwortet. Auf SO: P
GoodSp33d
4
@Lorenzo, was hast du am Ende entschieden und wie ist es ausgegangen?
Benjol
5
@Benjol: Ich habe es ein paar Wochen lang versucht (in der Zwischenzeit konnte ich meinen bestehenden Job im Standby-Modus halten) und dann festgestellt, dass ich Pair-Programmierung wirklich hasse, und bin zu meinem alten Job zurückgekehrt.
Wizard79

Antworten:

16

Aufgrund Ihrer verschiedenen Kommentare hier scheinen Sie eine ähnliche Einstellung zu diesem Thema zu haben wie ich. Und ich habe "Pair Programming" erlebt. Und ich würde mit Sicherheit keiner Firma beitreten, bei der ich einen Skorpion beißen musste. :)

Was ich empfehlen würde ist: Gehen Sie mit Ihrem Bauch.

Wenn das Unternehmen Sie zwingen würde, Pair Programming durchzuführen, und Sie wissen, dass Sie nicht möchten, treten Sie nicht bei.

Wenn sie Ihnen die Gelegenheit geben, zu zeigen, dass Sie schneller bessere Arbeit leisten können als zwei ihrer derzeitigen Entwickler zusammen, beweisen Sie dies.

Bevor Sie sich jedoch endgültig entscheiden, würde ich mit Sicherheit der Empfehlung zustimmen, mit den dortigen Entwicklern zu sprechen und ein Gefühl für sie als Menschen zu bekommen. (Ich würde das wahrscheinlich für jeden neuen Job empfehlen, unabhängig von den verwendeten Methoden.)

Peter Boughton
quelle
30

Weißt du was ? Zuerst mag niemand das Programmieren von Paaren .

Als ich das erste Mal Pair Programming ausprobierte, war ich gegen die Idee und hatte viele ähnliche Einwände wie Sie. Ich mag es nicht, jemand anderem beim Codieren zuzusehen, ich höre gerne Musik, ich habe das Gefühl, ich arbeite schneller alleine, ich möchte nicht aufhören und mich ständig erklären, usw. usw. usw.

Dann habe ich es versucht. Und rate was? Es saugte immer noch . Wir hatten alle möglichen Probleme - ich wollte andere Stunden als der andere Mann arbeiten, wir hatten andere Tastatureinstellungen und Tastenkürzel, unsere Schreibtische funktionierten nicht sehr gut für die Programmierung von Paaren usw. usw.

Das dauerte ungefähr eine Woche. In dieser Woche haben wir das gesamte alte Anmeldesystem für eine verteilte Anwendung umgeschrieben. Wir mussten lernen, wie einige ernsthaft schwierige Threading-Probleme funktionieren, herausfinden, wie Remoting-Senken funktionieren, Tonnen und Tonnen von Legacy-Code ändern, um mit unserem neuen Login-Modul zu funktionieren, und so ziemlich die hektischste Codierung ausführen, die ich zu tun hatte meine Karriere. Nach einer Woche haben wir es bereitgestellt ... und alles hat einfach funktioniert . Kein einziger Bug . Nicht einer .

In diesem Moment dachte ich mir, dass dieses Programmierquatschpaar etwas enthalten könnte. Wir haben angefangen, mehr Pair-Programmierung zu machen. Wir haben sogar angefangen, alle zu zwingen, paarweise zu arbeiten. Es hat gerockt. Wahrscheinlich habe ich in einem Monat mehr dazu gelernt als in den letzten zwei Jahren . Die anderen Probleme gingen nicht weg. Manchmal stecken Sie mit einem Paar fest, das Sie nicht mögen. Es wird passieren. Manchmal haben Sie Schwierigkeiten, überlappende Arbeitszeiten zu finden. Manchmal möchten Sie einfach alleine arbeiten. Aber die Vorteile der Paarprogrammierung sind einfach unglaublich.

Seitdem habe ich immer versucht, so viele Paare wie möglich zu programmieren. Es ist einfach die beste Art zu lernen. Diese Firma zwingt alle, Pair-Programmierung zu machen? Wo melde ich mich an? Es scheint mir, dass sie wirklich erleuchtet sind und Sie sich in einem wirklich intensiven Arbeitsumfeld befinden. Genial.

Stellen Sie jedoch sicher, dass die Paare häufig gedreht werden. Sie möchten nicht monatelang mit einem anderen Entwickler zusammenarbeiten - das wird Ihnen schwer fallen. Schließlich sind wir alle Menschen. Vergewissern Sie sich auch, dass dies seit einiger Zeit üblich ist. Wenn nicht, ist es nicht das Ende der Welt, aber wenn es eine akzeptierte Praxis ist, ist es ein massives grünes Licht.

Vertrauen Sie mir, Sie wollen für so ein Unternehmen arbeiten.

Jaco Pretorius
quelle
5
Ich würde vorschlagen, dass der OP in einem Unternehmen wie diesem nur dann erfolgreich sein wird, wenn er lernt, dass er nicht so gut programmiert, wie er glaubt, und dann zu dem Wunsch kommt, zu lernen, wie man besser wird.
Dash-Tom-Bang
5
Sie erzählten mir im Grunde die gleiche genaue Geschichte. Die Leute dort haben uns sehr unterstützt und ich erkenne an, dass das Codieren auf diese Weise rockt - und Ihre Fähigkeiten verbessert. Aber das hat mich verrückt gemacht. Ich konnte nicht mit allen Einschränkungen meiner "persönlichen Freiheit" und meines "Lebensraums" leben (Auswahl des Timings, Musikhören, Tastaturkonfiguration, Farbschema in der IDE usw.), also gebe ich nach einigen Wochen auf.
Wizard79
6
"Nach einer Woche haben wir es bereitgestellt ... und alles hat einfach funktioniert. Kein einziger Fehler. Kein einziger.": Ich habe keinen signifikanten Unterschied in der Anzahl der Fehler zwischen der Verwendung der Paarprogrammierung und der Nichtverwendung festgestellt. Das Besprechen der wesentlichen Punkte mit Ihren Kollegen und das anschließende eigene Codieren können ebenso effektiv sein. Pair-Programmierung ist keine Wunderwaffe.
Giorgio
Ich habe kürzlich mein erstes Projekt mit Pair Programming mit einem erfahreneren Entwickler im Team abgeschlossen. Wir haben die Pilotierung und Kopilotierung komplexer Aufgaben ziemlich gleichmäßig verteilt und beide ein paar Dinge voneinander gelernt. Wir haben uns für triviale, weltliche oder "Boiler-Plate" -Aufgaben getrennt.
Dib
2
"Ratet mal, niemand mag zuerst Pair Programming.": Ratet mal, ich mochte es nicht, nachdem ich es zwei Jahre hintereinander gemacht hatte. Ich habe diese Firma verlassen und in meiner neuen Firma / meinem neuen Team möchte niemand Pair Programming machen und wir sind alle sehr glücklich und viel produktiver. Nach meiner Erfahrung eignet sich Pair Programming nur zum Trainieren von Anfängern, für Mikromanagement oder für Personen, die nicht in der Lage sind, selbstständig zu arbeiten.
Giorgio
18

Pair Programming ist ein großartiges Werkzeug! Es kann viel effizienter sein - zwei Köpfe sind besser als einer - und eine großartige Möglichkeit, neue Techniken zu erlernen. Natürlich gibt es auch andere Vorteile. Aber wenn Sie sich nicht dafür interessieren, werden Sie nichts davon haben. In Anbetracht Ihrer Einstellung klingt es so, als würden Sie überhaupt nicht hineinpassen und es wäre wahrscheinlich eine Zeitverschwendung. Es sieht so aus, als ob Sie sich bereits entschieden haben, bevor Sie es überhaupt versuchen.

Muad'Dib
quelle
7
Zwei Köpfe sind auch doppelt so teuer, und das ist der große Nachteil =) Aber das betrifft die Firma nicht Sie
Thomas Bonini
7
-1 Ist die Paarprogrammierung großartig? Es ist das Schlimmste, was jemals in meinem Berufsleben passiert ist!
Wizard
4
Die Paarprogrammierung sollte bei schwierigen Aufgaben eingesetzt werden. Dann sparen Sie Zeit und Geld. Ansonsten ist es eine Art Verschwendung. Ich mag es aber.
Joe Phillips
3
Ich denke, es sollte auch als Mentoring-Tool für "Greenhorns" verwendet werden, um ihnen zu helfen, bis sie den Dreh und Angelpunkt für echte Codierungen bekommen.
Muad'Dib,
3
@Kop: Ich bin anderer Meinung. Das Ziel der Paarprogrammierung besteht genau darin, dass zwei Köpfe zusammen eine bessere Software ergeben als dieselben zwei Köpfe für sich, während sie genauso teuer anfangen. (Das heißt natürlich, wenn Sie dieses Ziel nicht erreichen, lohnt es sich nicht).
Sergio Acosta
10

Schauen wir uns das aus einer anderen Perspektive an: Angesichts Ihrer Veranlagung tun Sie dem Arbeitgeber wahrscheinlich einen schlechten Dienst. Sie wollen auf keinen Fall jemanden einstellen, der eine ihrer Entwicklungspraktiken "hasst". Haben Sie sie über Ihre Perspektive in einem so engen Umfeld informiert? Wenn nicht, können Sie sich selbst falsch darstellen.

Als Arbeitgeber wäre ich ziemlich frustriert, jemanden einzustellen, der wusste, dass er mit den von uns eingeführten Entwicklungspraktiken nicht zufrieden ist. Es ist ein Rezept für Unzufriedenheit und Frustration für alle Beteiligten.


Bearbeiten Wenn sie verstehen, woher Sie kommen (und bereit sind, Sie zu übernehmen, wie Sie in Ihrem Kommentar erwähnt haben), warum nicht mit einigen Entwicklern im Unternehmen darüber diskutieren, wie Sie sich fühlen? Es ist möglich, dass sie in der Lage sind, Ihre Bedenken oder Vorurteile gegen PP auszuräumen. Für sie ist es auch wichtig zu wissen, dass Sie nicht sonderlich begeistert von der Idee sind, da Sie ganztägig mit ihnen zusammenarbeiten.

Es gibt Ihnen auch die Möglichkeit, etwas über die Menschen zu lernen, mit denen Sie so eng zusammenarbeiten.

Wenn jeder an Bord ist, würde ich mich aus den gleichen Gründen, die in den Antworten hier genannt werden, für PP einsetzen. Sie haben sofort die Verantwortung für das, was Sie schreiben. Ein anderer Satz von Augen auf Ihrem Code wird wahrscheinlich Fehler oder Problemstellen aufdecken, die Sie sonst übersehen könnten. Sie lernen die Perspektive eines anderen in Bezug auf das Codieren sehr gut kennen (und können Ihre eigenen Erfahrungen einbringen). und das Endergebnis ist sehr oft viel besser als Sie erwarten würden.

Ich schätze Ihre Voreingenommenheit gegenüber PP. Manchmal möchte ich nicht mehr als an einem Computer sitzen, der wegen eines Problems herumwirbelt, und PP wird frustrierend (ich bin auch introvertiert, was bedeutet, dass PP mich am Ende des Tages ein bisschen ausgelaugter fühlt), weil jemand ist immer da. Trotzdem sprechen die Ergebnisse meiner Erfahrung nach für sich und ich bin regelmäßiger damit einverstanden.

Bettwyr
quelle
Ich habe mit dem Arbeitgeber darüber gesprochen und sie haben mich gebeten, es zu versuchen.
Wizard79
2
@Lorenzo, fantastisch. Es ist so wichtig, sich gegenüber einem Arbeitgeber genau darzustellen, und wenn er bereit ist, es zu versuchen, dann ist es etwas zu beachten.
Bedwyr
Aus diesem Grund habe ich den Job nicht bereits abgelehnt, aber das Verlassen des aktuellen Jobs für etwas, das mir wahrscheinlich nicht gefällt, macht mir große Angst ...
Wizard79
8

Ich habe Pair Programming ausprobiert und es gehasst. Ich teile fast alle Zweifel und Bedenken, die Sie dagegen geäußert haben. Genau aus diesem Grund bin ich zurückgetreten.

Mein persönlicher Rat ist immer gegen ein Paar, und angesichts Ihrer Einstellung rate ich Ihnen nachdrücklich, es nicht einmal auszuprobieren.

Magier
quelle
4
+1 für Ehrlichkeit. :) Es ist nicht jedermanns Sache.
Dash-Tom-Bang
2
@Wizard: Manche Leute mögen Pair Programming, ich nicht. Ich bevorzuge es, die Struktur des Codes im Voraus zu besprechen, dann das Codieren und dann eine Codeüberprüfung durchzuführen. Dadurch wird ein Filter zwischen mir und meinen Kollegen erstellt, sodass wir nur relevante Informationen austauschen.
Giorgio
1
@Wizard: Ich finde, dass Sie bei der Paarprogrammierung zu viele unbedeutende Details besprechen: Es gibt viele Geräusche, die Ihren Gedankengang verlangsamen und Sie weniger effizient machen. Andere Menschen finden es anregend und mögen das unstrukturierte, aber kontinuierliche Feedback, das sie erhalten. Einige Leute sagen, ich bin ein Individualist, ich protestiere dagegen, dass man als Team arbeiten und trotzdem strukturiert sein kann, so wie eine Fußballmannschaft den ganzen Spielplatz besetzt, anstatt alles dorthin zu bringen, wo der Ball ist. Wie auch immer, ich denke, es ist eine Frage der Arbeitsweise jedes Programmierers und nicht aller Programmierer.
Giorgio
5

Ich hasse die Idee der Paarprogrammierung

...

Ich habe eigentlich nie mit Pair Programming gearbeitet

Das müssen Sie zuerst klären.

Sie können nicht sagen, dass Sie etwas nicht mögen, ohne es zu versuchen. Ich persönlich mochte Tomatensauce nicht, bis ich sie tatsächlich probiert hatte.


quelle
2
Tomatensauce ist nur Tomatensuppe ohne Gewürze ... oder Ketchup ohne Zucker und Essig. :)
greyfade
5
Ich habe es nie ausprobiert, aber ich kenne die Idee und das Konzept der Paarprogrammierung und mag es nicht. Du musst nicht unbedingt von einem Skorpion gebissen werden, um zu wissen, dass es dir nicht gefällt!
Wizard79
1
Wie kannst du das Wissen? Sie könnten Liebe von einem Skorpion gebissen zu werden! ;)
Peter Boughton
Ich bin mir sicher, dass Sie alle die Nachricht verstanden haben
2
Pierre, es gibt einen Unterschied zwischen Verständnis und Übereinstimmung, und nur weil Sie falsch extrapoliert haben, wie Tomatensauce schmeckt, bedeutet das nicht, dass Lorenzo das Gleiche mit Pair Programming tut. : P Sicher, es mag sein, dass es nur an den Leuten liegt, mit denen er zusammenarbeitet, die er so empfindet, aber es ist sicherlich möglich zu bestimmen, ob dies der Fall ist, ohne tatsächlich eine "echte" Paarprogrammierung zu erfahren.
Peter Boughton
5

Du klingst so, als wärst du definitiv nicht aufgeregt, Pair Programming zu machen, aber die Tatsache, dass du die Frage gestellt hast, lässt mich glauben, dass du offen dafür bist.

Warum nicht mit dem Arbeitgeber in Kontakt treten und ihn wissen lassen, wie Sie sich fühlen. Wenn sie immer noch glauben, dass Sie der Kandidat sind, den sie möchten, können Sie eine zweiwöchige Testversion (oder einen beliebigen Zeitraum) vorschlagen, um zu prüfen, ob Ihr anfängliches Gefühl gültig ist oder nicht. Wenn der Arbeitgeber ablehnt, hört es sich nicht so an, als ob Sie wirklich wollten, dass der Job anfängt. Es ist also kein großer Verlust. Wenn der Arbeitgeber einverstanden ist, wissen Sie zumindest definitiv die eine oder andere Art und Weise für den nächsten Job.

Walter
quelle
1
Ja, aber das Problem ist, dass ich eine feste Vollzeitstelle in der größten italienischen Firma habe, sodass ich diese Stelle nicht "nur zum Ausprobieren"
aufgeben
3
Nein, das würde ich auch nicht wollen.
Walter
4

Ich habe vor kurzem ein Paar-Programmiercode-Retreat besucht. Ich benutze es nicht bei der Arbeit und bin sehr neu darin. Ich bin wie Sie in dem Sinne, dass ich gerne die Kontrolle über meine eigene Maschine habe. Einige Programmierer, die viel paarweise programmieren, betonten immer wieder, dass die Paarprogrammierung die eigenen Codierungsfähigkeiten erheblich verbessert, da Sie ständiges Feedback erhalten, Ihr Code ständig überprüft wird und Sie mit geringerer Wahrscheinlichkeit Hacky-Code schreiben. Ich stimme der Tatsache zu, dass dies eine bedeutende Änderung für jemanden ist, der noch nie zuvor ein Pairing durchgeführt hat. Es ist jedoch schwierig, eine klare Meinung zu dieser Angelegenheit zu haben, wenn Sie es nicht über einen längeren Zeitraum hinweg versuchen.

ysolik
quelle
2
Wenn ich einem Mitarbeiter helfen oder sogar ein paar Minuten bei ihm bleiben muss, muss ich den Mund halten, sonst würde ich jede einzelne Codezeile kritisieren ...
Wizard79
@Lorenzo, bist du in Ordnung, wenn du Kritik abgibst, sie aber nicht erhältst?
Dash-Tom-Bang
@ Dash-Tom-Bang: Eigentlich vermeide ich Kritik, sonst würde ich jede Codezeile kritisieren ...
Wizard79
2
Wenn es wesentlich besser wäre, sich Ihrer Kritik zu unterwerfen, sollten Sie sie geben. Wenn sich die Vorschläge Ihrer Kritik nicht positiv auswirken, sollten Sie herausfinden, warum Sie gezwungen sind, sie zu machen.
Dash-Tom-Bang
3

Ich bin etwas keimfeindlich. Ich hasse die Idee, dass jemand meine Maus und Tastatur berührt. Ich hasse die Idee, die Maus und die Tastatur eines anderen zu berühren. Ich gehe den weiten Weg um den Bürokomplex herum, anstatt durch den Innenhof zur Cafeteria zu gelangen, damit ich keine Türgriffe anfassen muss.

Andererseits mag ich das Konzept der paarweisen Programmierung. Ich könnte etwas Interessantes lernen. Oder ich könnte anweisen. In jedem Fall wäre es eine gute Erfahrung.

Mein Vorschlag (für mich): Paarprogrammierung aus der Ferne. Verwenden Sie Office Live Meeting und geben Sie Ihren Bildschirm frei. Dude bleibt an seinem Schreibtisch, ich bleibe bei meinem.

Anthony Pegram
quelle
Warum bringen Sie nicht einfach Ihre eigene Maus und Tastatur mit? Oder lassen Sie zwei an die gleiche Maschine angeschlossen?
Alex Feinman
1
@ Alex, möglicherweise. Generell habe ich jedoch das Gefühl, dass der gesamte Arbeitsbereich kontaminiert ist. Frag mich nicht warum. Wenn Sie Wahnsinn erklären könnten, wäre es nicht verrückt.
Anthony Pegram
3
Reaaaaaly lange USB-Kabel? :)
Alex Feinman
1
Das setzt aber immer noch voraus, dass zwei Personen ständig synchron sind, was mir wirklich nicht gefällt.
Wizard79
2

Gibt es eine Möglichkeit, ein paar Programme unabhängig voneinander zu programmieren, um ein besseres Gefühl dafür zu bekommen? Es scheint Leute zu geben, die das Programmieren von Paaren mögen, und Leute, die dies nicht tun. Bevor Sie sich zu einem Job begeben, der das Programmieren von Paaren verwendet, möchten Sie wirklich das Gefühl haben, dass Sie es tun können.

Alternativ können Sie mit dem Einstellungsmanager oder mit jemandem in einer ähnlichen Position sprechen und dies besprechen. Sie können für einen Nicht-Paar-Programmierer verwendet werden. Möglicherweise haben sie Erfahrung mit Personen, die sich in Bezug auf die Paarprogrammierung negativ fühlen. Sagen Sie dem Manager, warum Sie sich mit Pair Programming nicht wohl fühlen, betonen Sie jedoch, dass Sie keine Erfahrung haben und sehr interessiert an dem Job sind.

Im Moment befinden Sie sich in der bestmöglichen Verhandlungsposition mit dem Unternehmen: Es wurde angeboten, und Sie haben dies noch nicht akzeptiert. Das Unternehmen hat ein Interesse daran, Sie einzustellen, und es ist sehr unwahrscheinlich, dass Sie fallen gelassen werden, nur weil Sie zuerst mit jemandem im Unternehmen sprechen müssen.

David Thornley
quelle
0

Wenn Sie die Technologie bereits kennen, werden Sie sie hassen. Aber wenn Sie die Technologie nicht kennen, werden Sie sie von PP lernen. Wenn du es nicht weißt und kein PP machst, dann wirst du einfach da sitzen und nichts erledigen.

Der schlimmste Fall ist, wenn beide Parteien es wissen und es sich in ein Rennen oder einen Pisswettbewerb verwandelt.

oregon111
quelle
2
Hallo oregon111, es ist großartig, dass Sie versuchen, Fragen zu beantworten, aber Sie haben ein schlechtes Tag ausgewählt, um Fragen zu beantworten: Das Tag [jobs] enthält im Allgemeinen viele schlechte Fragen, die wir zum Abschluss noch nicht beantwortet haben. Anstatt zu versuchen, lange tote Fragen in einem bestimmten Tag zu beantworten, sollten Sie sich die neuesten Fragen ansehen und herausfinden, welche von denen Sie beantworten können.