如果需要结对编程,我应该接受工作吗?[关闭]


28

给我提供了一份有趣的工作,但是对我来说有一个很大的警告:他们使用结对编程。

我讨厌结​​对编程的想法,但我可能不适合这样做:我喜欢经常停顿,我不想看到有人编程(我会不断戳一下结对以自己编写代码),我必须全力以赴控制我正在使用的机器,我喜欢听音乐,基本上我不喜欢被别人束缚。我什至不是一个社交人。

但是,我从来没有真正使用过真正的结对编程(短时间几次来帮助别人或一起解决一个复杂的任务)……所以结对编程真的那么糟糕吗?考虑到我的态度,我应该拒绝工作还是应该离开目前的工作去尝试?


对于那些问这个问题的人:我正在寻找一个使用正式设计和开发的工作,因为我讨厌我目前在“野外编码”的工作。该公司对我的技术资料非常感兴趣,因此即使我指定我从未从事结对编程工作,他们仍然坚持认为我可能会不喜欢它(除了是一个不友好的独来独往的程序员,我不喜欢并相信配对编程)。


8
好吧,您个人甚至都不喜欢它,所以我认为除非您想尝试一下旧的大学,否则您不应该这样做。
保罗·内森

1
我发现总对编程和独奏编程之间是一个折衷方案。您可以获得第二只眼睛的好处,但又有一半的时间可以呼吸。
克里斯(Chris

当您不
熟悉

4
@Lorenzo,您最终决定了什么,结果如何?
Benjol 2011年

5
@Benjol:我已经尝试了几个星期(同时我能够将我现有的工作保持待命状态),然后我意识到我真的很讨厌结对编程,所以我回到了以前的工作。
Wizard79 2011年

Answers:


16

根据您在此处的各种评论,您似乎对该主题具有与自己相似的观点/性格。我已经经历了“结对编程”。而且我当然不会加入需要我咬蝎子的公司。:)

我建议的是:随便吃。

如果公司强迫您进行结对编程,并且您知道自己不想这样做,请不要加入。

如果他们有机会向您证明您可以比他们目前的任何两个开发人员加起来更快地完成更好的工作,请继续进行验证。

不过,在您决定确定之前,我当然同意您要求与那里的现有开发人员交谈,并以他们为人的感觉的建议。(我可能会建议对于任何新工作,无论使用哪种方法。)


30

猜猜是什么- 最初没有人喜欢结对编程

当我第一次尝试结对编程时,我反对这个想法,并且我有很多与您相似的异议。我不喜欢看别人的编码,我喜欢听音乐,我觉得自己会更快一些,我不想停下来不断解释自己,等等等等。

然后我尝试了。你猜怎么着? 它仍然很烂。我们遇到了各种各样的问题-我想和另一个人工作不同的时间,我们有不同的键盘设置和快捷方式,我们的办公桌在结对编程等方面效果不佳。

这持续了大约一周。在那一周内,我们为一个分布式应用程序重写了整个旧式登录系统。我们必须学习一些非常困难的线程问题如何工作,弄清楚远程接收器是如何工作的,更改成千上万的旧代码以与我们的新登录模块一起工作,并且几乎要做一些我必须要做的最忙碌的编码我的事业。这一个星期后,我们部署了它..和一切只是工作没有一个错误没有一个

那时我发现这对编程可能有些废话。我们开始做更多的配对编程。我们甚至开始强迫每个人成对工作。它震撼了。 与过去两年相比,我在一个月的学习中可能会学到更多。其他问题并没有消失。有时,您会被不喜欢的一对卡住。会发生的。有时您会很难找到重叠的工作时间。有时,您可能只想自己工作。但是结对编程的优点实在令人难以置信。

从那时起,我一直尽力进行尽可能多的配对编程。这只是最好的学习方式。该公司强迫所有人进行结对编程吗?我在哪里注册? 在我看来,他们确实很受启发,您将处于一个非常紧张的工作环境中。太棒了

话虽如此,请确保对经常旋转。您不想几个月后就被困在与其他开发人员的开发中,您会全神贯注。毕竟,我们都是人类。另外,请检查这是否已经持续了一段时间。如果不是,那不是世界末日,但如果这是公认的做法,那就是巨大的绿灯。

相信我,您想为这样的公司工作。


5
我建议,只有当他愿意了解自己实际上并不像他认为的那样擅长编程时,OP才会在这样的公司中获得成功,然后开始想学习如何变得更好。
dash-tom-bang 2010年

5
他们基本上告诉我您的确切故事。那里的人都非常支持我,我承认这种编码方式可以帮助您提高技能。但这让我发疯。我不能忍受“个人自由”和“生活空间”的所有限制(选择时间,听音乐,键盘配置,IDE中的配色方案等),所以几周后我放弃了。
Wizard79 2011年

6
“经过一周的部署,我们成功部署了它。并且一切都正常了。没有一个bug。没有一个。”:在使用成对编程和不使用成对编程之间,我在bug数量上并没有明显的区别。与您的同事讨论要点,然后自己编写代码可能同样有效。配对编程不是万灵丹。
Giorgio 2014年

我最近与团队中的另一位高级开发人员一起使用结对编程完成了我的第一个项目。我们相当平均地分享了复杂任务的试点和共同试点,并且我们彼此都学到了一些东西。我们为平凡,平凡或“样板”任务做了拆分。
Dib

2
“猜猜是什么-最初没有人喜欢结对编程。”:猜猜是-连续两年我不喜欢它。我离开了那家公司,在我的新公司/团队中,没有人愿意做结对编程,我们都很高兴,而且生产力更高。以我的经验,结对编程仅适合培训初学者,进行微观管理或无法独自工作的人员。
Giorgio

18

结对编程是一个很棒的工具!它可能更有效-两个头脑比一个头脑更好-并且是学习新技术的好方法。当然,还有其他好处。但是,如果您不购买它,那么您将一无所获。考虑到您的态度,听起来您根本无法适应,这很可能浪费时间。看起来您已经下定决心,甚至无法尝试。


7
两个头的价格也要贵一倍,这是很大的缺点=)但这关系到公司而不是您
Thomas Bonini 2010年

7
-1对编程很棒吗?这是我一生中最糟糕的事情!
精灵

4
结对编程应用于困难的任务。那是您节省金钱和时间的时候。否则,这是一种浪费。我也喜欢
乔·菲利普斯

3
我认为它也应该用作“绿角”的指导工具,以帮助他们,直到他们摆脱现实世界的编码。
Muad'Dib 2010年

3
@Kop:我不同意。结对编程的目的恰恰是两个头共同创造出比相同的两个头各自更好的软件,同时开始同样昂贵。(当然,如果您没有达到那个目标,那是不值得的)。
塞尔吉奥·阿科斯塔

10

让我们从另一个观点来看:鉴于您的易感性,您可能会对雇主造成伤害。他们当然不想雇用“讨厌”他们开发实践之一的人。在如此紧密的协作环境下,您是否告知他们您的观点?如果没有,那么您可能会歪曲自己。

作为一名雇主,我会很沮丧地聘请一个知道他们进来的人,他们对我们已经采用的开发实践不满意。这是使每个参与人员感到不满和沮丧的秘诀。


编辑 鉴于他们了解您的来历(并且如您在评论中所述,愿意接受您),为什么不与公​​司中的一些开发人员讨论您的感受?他们有可能解决您对PP的任何担忧或偏见。对于他们来说,知道您对这个想法并不十分热衷也很重要,因为您将全职与他们合作。

它还将使您有机会了解与您紧密合作的人员的一些知识。

如果每个人都参与其中,我肯定会出于此处答案中提到的相同原因而提倡PP。您对所写内容负有直接责任;对代码的另一组关注可能会发现您可能会错过的缺陷或麻烦点;您可以很好地了解别人对编码的看法(并提供自己的经验);并且最终结果通常比您预期的要好得多。

感谢您对PP的偏见;有时候我只想坐在计算机旁解决问题,PP感到沮丧(我也是一个内向的人,这意味着PP会让我一天结束时感到筋疲力尽)一直在那里。这就是说,根据我的经验,结果可以说明一切,而我对定期进行的工作更友好。


我和雇主讨论了这个问题,他们要求我尝试一下。
Wizard79

2
@Lorenzo,太棒了。准确地向雇主表示自己的身份非常重要,如果他们愿意让您尝试一下,那就需要考虑一下。
bedwyr 2010年

这就是为什么我还没有拒绝这份工作的原因,但是将当前的工作留给我可能不会喜欢的事情会吓到我很多...
Wizard79 2011年

8

我尝试了结对编程并讨厌它。我完全同意您对此表示的所有怀疑和关切。我因此辞职。

我的个人建议始终反对结成对,鉴于您的态度,我强烈建议您不要尝试。


4
+1代表诚实。:)确实不适合所有人。
dash-tom-bang 2010年

2
@向导:有些人喜欢结对编程,我不喜欢。我更喜欢事先讨论代码的结构,然后进行编码,然后进行代码审查。这在我和我的同事之间设置了筛选器,以便我们仅交换相关信息。
乔治

1
@Wizard:我发现在结对编程中,您讨论了太多无关紧要的细节:有很多杂音会减慢您的思路,使您的工作效率降低。其他人发现它令人兴奋,并且喜欢他们得到的无结构但持续的反馈。有人说我是个人主义者,我反对您可以像一个足球队一样占据整个运动场,而不是四处奔波,就像一个团队一样工作,仍然保持结构化。无论如何,我认为这与每个程序员的工作方式有关,并非所有程序员都以相同的方式工作。
Giorgio 2014年

5

我讨厌结​​对编程的想法

...

我从未真正从事结对编程

您必须先阐明这一点。

您不能说不喜欢就不喜欢。我真的不喜欢番茄酱,直到我真正尝过为止。


2
番茄酱只是没有香料的番茄汤,或者是没有糖和醋的番茄酱。:)
greyfade

5
我从没有尝试过,但是我知道结对编程的想法和概念并且不喜欢它。您不必真的被蝎子咬了就知道自己不会喜欢它!
Wizard79

1
你怎么知道?您可能会喜欢被蝎子咬伤!;)
Peter Boughton 2010年

我确定大家都理解了该消息

2
Pierre,理解和同意之间有区别,只是因为您错误地推断了番茄酱的口味并不意味着Lorenzo在Pair Programming中也做同样的事情。:P当然,他可能是,它可能是只到他与他感觉他的方式做工作的人,但它肯定能够确定这还没有真正经历“真”结对编程的情况。
彼得·布顿

5

您听起来好像绝对不愿意进行结对编程,但是您提出问题的事实会让我相信您对此持开放态度。

为什么不与雇主见面,让他知道您的感受。如果他们仍然认为您是他们想要的候选人,那么您可以建议进行为期2周的试用(或在任何时间段内工作),以查看您的初始感觉是否有效。如果雇主拒绝了,这听起来并不像您真的希望这份工作开始,所以损失不大。如果雇主同意,那么您将至少明确地知道下一份工作的一种方式。


1
是的,但是问题是我在一家意大利最大的公司里有一份全职长期工作,所以即使当前的工作糟透了,我也不会把这份工作“留给尝试”……
Wizard79 2010年

3
不,我也不想这样做。
Walter

4

最近,我去了一对编程代码撤退。我不在工作中使用它,它是一个很新的东西。从某种意义上说,我就像您一样,喜欢控制自己的机器。几位经常结对编程的程序员一直在强调,结对编程可显着提高一个人的编码技能,因为您会得到不断的反馈,您的代码将受到一致的检查,并且您不太可能编写骇人的代码。我同意这样的事实,对于以前从未进行过配对编程的人来说,这是一个重大变化。但是,除非您尝试较长时间,否则很难对此事发表强烈的意见。


2
当我必须帮助同事,或者甚至要在他旁边呆几分钟时,我必须保持
闭嘴

@Lorenzo,所以您可以接受批评但不接受批评吗?
dash-tom-bang 2010年

@ dash-tom-bang:实际上我只是完全避免批评,否则我会批评每一行代码……
Wizard79 2010年

2
如果屈服于批评会大大改善代码,则应给予批评。如果您的批评的建议没有产生积极的影响,那么您应该弄清楚为什么自己被迫提出这些建议。
dash-tom-bang 2010年

3

我有点病。我讨厌任何人触摸我的鼠标和键盘的想法。我讨厌触摸别人的鼠标和键盘的想法。我绕着办公大楼走了很长一段路,而不是穿过庭院去自助餐厅,这样我就不必碰任何门把手了。

另一方面,我喜欢成对编程的概念。我可能会学到一些有趣的东西。或者我可能会指示。无论哪种方式,这都是一个很好的体验。

我的建议(对我自己):远距离进行配对编程。使用Office Live Meeting并共享您的屏幕。杜德留在他的办公桌旁,我留在我的办公桌上。


为什么不带自己的鼠标和键盘呢?还是将两个连接在一起?
Alex Feinman 2010年

1
@Alex,可能。但是我通常觉得整个工作区都被污染了。不要问我为什么。如果您能解释精神错乱,那不是疯了。
安东尼·佩格拉姆

3
USB电缆较长吗?:)
Alex Feinman 2010年

1
但这仍然需要两个人不断同步,这是我真的不喜欢的东西。
Wizard79

2

您有什么办法可以独立进行一些配对编程,以便对此有所了解?似乎有些人喜欢结对编程,而有些人则不喜欢,并且在从事使用结对编程的工作之前,您确实希望拥有可以做的感觉。

或者,您可以与招聘经理或职位相似的人交谈,然后再进行讨论。它们可能用于非成对编程器。他们可能与对结对编程持否定态度的人有经验。告诉经理您为什么对结对编程感到不舒服,但要强调您没有经验并且对这项工作非常感兴趣。

目前,您处于与公司的最佳谈判位置:他们已经提供了,但您尚未接受。该公司对雇用您有兴趣,并且仅因为您需要先与该公司中的某个人交谈而辞职的可能性很小。


0

如果您已经知道该技术,那么您会讨厌它。但是,如果您不了解该技术,则可以通过PP学习。如果您不知道并且不执行PP,那么您将坐在那里而不做任何事情。

最糟糕的情况是,如果双方都知道这件事,那么它就会变成一场比赛或小便大赛。


2
好的,您好oregon111,您尝试回答问题是很高兴的,但是您选择了一个不好的标签来回答问题:[jobs]标签通常包含很多尚未解决的不好的问题。与其尝试用特定的标签回答长期未解决的问题,不如考虑查看最新出现的问题并查看可以回答的问题。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.