如何以错误的方式进行结对编程
如何以错误的方式进行结对编程
原文:https://medium.com/hackernoon/how-to-do-pair-programming-wrong-dab72fd15bef
技巧和技术,以吮吸你的工作,并指责结对编程

A developer pointing out something to another developer at an upside down screen
- 第一部分: 结对编程
- 第二部分: 如何找到结对编程的最佳上下文
- 第三部分: 结对编程的威力在于执行力
- 第四部分:如何做对子编程错误方式
我已经写了结对编程的抽象定义、如何找到应用它的最佳环境和如何有效完成的技巧。
问题是结对编程依赖于一种思维模式,因此许多公司和团队注定会做错而不自知。他们讨厌它,对它大喊大叫,就像收到一个新的坏掉的玩具的孩子一样。这篇文章的目的是总结出用错误的方法进行结对编程的最有效的方法。
强行配对编程到了咽喉
团队中的每个人都应该被迫进行结对编程。最好是在预先确定的时间,此时管理层知道这是以较低的初始时间成本进行两人一组编程的最佳时间,如工作时间以外、午餐时间或其他人没有任何“更好”事情可做的时候。
要想做错,结对编程应该尽可能地强制进行,最好是在公司不需要付钱给任何人去做的时候
尽快控制和要求结果
结对编程承诺以更低的成本更快地编写软件。这里的关键是忘记特定于每个团队的加速,并严格测量两个开发人员完成任务所花费的时间。
管理层应该确保结对编程的开发人员在心理上能够理解公司需要结果,而且花的是公司的钱。这肯定会使他们的效率大大降低,因为他们将承受交付的压力,并迫使他们提供次优的结果,这将向管理层和所有相关的开发人员证实结对编程不起作用。
压力是假装你在鼓励某人更努力更快工作的最好方式
两个开发人员做一个人的工作
整个团队、公司及其所有子公司(包括合作伙伴)都应该清楚,结对编程实际上是两只猴子有偿打字,没有大脑活动做一只猴子的工作。因此,管理的其余部分应该非常小心,仅在必要时要求结对编程。这应该通过个人交流、电子邮件、Skype 或任何可用的交流媒介来表达清楚,最好是社交网络。
请记住,结对编程做错是不够的。每个人都需要分享公司的垃圾心态,并向世界揭露罪魁祸首是结对编程。一直都是。从来不是公司文化,因为公司文化总是完美的。
永远试着比你的同龄人更优秀
结对编程应该是一个机会,让开发人员展示他们在使用双方正在使用的语言的未知特性方面的技能。如果这两个人质疑这个没有任何明显好处的伟大特性,就说他们不理解这些基本概念是愚蠢的,并称赞他们能够向这个国家最好的开发者学习。
永远不要承认你的同事告诉你的有用信息。总是假装你一直都知道,只是在测试他们,看看他们是否会说出来,最好是他们的职位比你高。
总是假装你知道别人告诉你的任何有用的信息
告诉做什么,永远不要问它
总是告诉两人该做什么,不要接受建议。你应该是那个告诉该做什么的人。总是使用最复杂的解决方案来展示你对库、框架或语言语法的惊人了解。
如果两人质疑这种态度,告诉他们软件工程中的原则也适用于现实生活。你通过告诉做什么来应用的原则叫做告诉,不要问。
更喜欢和初学者配对
总是喜欢和新手配对,而不是和知道自己在做什么的人配对。如果可能的话,吓唬那些新手,让他们不知道你有多好,这样他们就可以在有机会接替你的工作之前离开公司。
与初学者配对的另一个好处是,对于他们问的任何问题,你都可以编造答案,他们永远不会知道答案是错的!永远不要建议你们两人在网上查找答案以确保万无一失,告诉他们你已经知道答案,因此寻找答案会让公司损失双倍的钱。告诉他们你们两个已经在做结对编程了,这是花了公司两倍的钱,寻找不必要的东西会更有害,可能会让两个人都被解雇。此外,告诉任何人都不应该相信他们在互联网上看到的一切。
假设不回答问题比提供错误答案更糟糕
不要泄露核心业务和技术信息
如果两人要求一个商业或技术信息,以一种抽象的方式给出,挖掘细节会花费太多时间。当你告诉他们怎么做时,请他们相信并和你一起学习,这样当他们再次遇到同样的问题时,他们就会知道答案,因为你帮助了他们。
取笑你的同龄人
当一个新手或者(最好是)一个有经验的开发人员出错时,最好是一笑置之。
如果你不得不解释某事两次,笑对你解释两次的事实,当有人向你解释某事时,你根本不需要解释(你总是在第一次解释时明白)。
把结对编程当作一件有趣的事情,取笑你的同伴试图正确地进行结对编程
假设每个人都想测试你
如果技术上比你强的人试图寻求帮助,假设他们试图测试你,这可能是危险的,因为他们可能会暴露你。找借口不要结对,而是在你做了很多修改后让他们检查你的代码。当你用很多错误的前提做了很多代码修改时,就很难重写了,因为代码审查的成本比在配对早期发现问题要大得多。此外,如果有人建议重新思考架构,你就有借口让经理们认为“代码正在工作”,因此他们将不得不接受你糟糕的架构,因为在技术上无能的人看来,要改变已经“工作”的东西需要做大量的工作。
拒绝任何架构或可维护性建议
不要接受来自任何同行的关于改进架构和可维护性的建议,除非这会使代码的最终结果破坏一些技术上无能的人(如管理层)可以看到的东西。
当你的搭档提出可维护性或架构改进的建议时,假设这只是他们的意见,并要求对公司真正重要的东西更加客观,这就是“工作代码”。
如果一个建议仅在技术上是可见的或可理解的,告诉管理层,提出改变的人是不称职的,因为他们正在编造建议以显得“聪明”,并且他们在这样做的同时使用了公司的时间和金钱。
“钱”“成本”“损失”是配对中间偶尔喊出来的很重要的词。当股东和管理层在旁边听的时候,我更愿意提出来。
做这件事的时候要特别小心,因为别人可能会同意你的同事的观点,这会削弱你对管理层的论点。解决这个问题的一个办法是和每个人做朋友,把意见分歧视为不可原谅的人身攻击和对信任的侵犯。
结论
这篇文章的题目是结对编程怎么做错。但是老实说,有了这些建议,你将会做很多事情,除了结对编程。
所有这些都与结对编程相去甚远,但可悲的是,有许多公司和团队坚持以类似的方式进行编程。幸运的是,它们注定会永远失败,很快就会退出市场。但是,如果你作为一个开发者继续与这些公司合作,而不开始寻找其他地方工作,他们将不会退出市场,并将在一个几乎垂死的状态中生存,以在未来的时间里培养这种有毒的心态。
为你自己和你的事业做一件更好的事情,远离这样想的人。