Braintree有自己的软件开发方法。感觉特别有影响的一个是结对编程方面。很多人在讨论结对编程时,通常会关注结对对代码质量和开发效率的影响。这种观点认为:结对成本是单个开发人员的两倍,但如果他们可以在X%的时间内交付代码,而错误数量和技术债务则分别为单个开发人员的Y%和Z%,那么结对可能有意义,结合衡量X、Y和Z的价值观。虽然这个说法是正确的,但它忽略了我们结对的最重要原因:结对有助于共同构建伟大的公司文化,是让新开发人员跟上速度的好方法,并提供了一种在开发团队之间共享知识的好方法。无论哪种情况,实施结对编程都会在短期内增加少量成本,但从长远来看,会带来巨大的好处。结对意味着合作,这是公司文化的核心。配对是一种社交体验:每天8小时与另一位开发人员密切联系。这就是说,如果你和配对的人不能有效沟通,不能一起研究工作中出现的问题,不能愉快相处,那你就悲剧了。这就是为什么Braintree在其面试过程中将沟通技巧和文化契合度与技术技能放在一起的原因:我们不想雇用不能配对的人!招聘流程是企业文化的基石:如果没有合适的优秀人才,就不可能创造一个充满活力和协作的环境。通过在雇用开发人员时强调文化契合度和沟通技巧,可以尽早传达协作立场。另外,这里有一定程度的自我选择:如果开发人员不想结对工作,他们可能不适合布伦特里这样的文化。短期成本也与此有关。如果我们决定不雇用有技能但不能与我们合作的人,我们基本上是在放弃短期的生产力收益,以保护长期的企业文化。配对加速开发新手在与他人配对时,您不仅可以看到他们如何编写代码,还可以看到您的配对伙伴如何处理整个开发过程:发现需要更改的内容、编写测试、阅读源代码、查找文件、配置您的开发环境,等等。您还可以知道他们使用了哪些工具以及如何有效地使用它们。初级开发人员绝对可以从中获益良多。更重要的是,轮到自己操作时,还能得到前辈的持续反馈。这是我自己的经历——当时我刚加入Braintree,只有大约一年的专业开发经验,大学里也没学过多少计算机科学。但在这里工作三个月后,我的工作流程完全改变了。从长远来看,高级开发人员也会受益:这已经是老生常谈的话题了,但您可以在教学中真正加深理解。也就是说,将初级和高级开发人员配对也有短期成本和长期收益。一对高级开发人员肯定会比一对初级和高级开发人员进步得更快,尤其是在高级开发人员熟悉的代码库上工作时。但是,与新员工结对可以帮助新员工快速入门。结对将知识转移置于开发过程的中心除基本的编程技能外,开发人员还需要大量信息才能有效运作。这些信息包括领域知识、基本代码知识、公司惯例意识、检查实践等。任何值得认真对待的开发方法都需要有一种在团队中传播知识的好方法。结对使共享成为必然。提问不再是打扰的障碍——与配对伙伴的持续沟通是正常工作流程的一部分。此外,还有数百个开发技巧可以从自学小伙伴那里学到:命令行快捷键、vim技巧、vim和tmux结合的方法等等,等等,数不胜数。配对持久战布伦特里的开发风格非常注重长远考虑。测试驱动开发;编写的代码比机智更强调可维护性和可读性;尽可能缓慢地彻底发展。结对是开发工作的一部分:它提供了一种为开发团队提供小额日常投资的方式。我们这样做的部分原因是我们编写的支付处理软件为我们的客户提供关键任务服务。还因为我们相信,从长远来看,这些做法会带来丰厚的回报。如果您对以上观点有共鸣,欢迎发表您的看法。
