Two Heads Are Often Better Than One

翻译 2015年07月11日 07:25:13

Two Heads Are Often Better Than One

Adrian Wible

PROGRAMMING REQUIRES DEEP THOUGHT, and deep thought requires soli- tude. So goes the programmer stereotype.
This “lone wolf ” approach to programming has been giving way to a more col- laborative approach, which, I would argue, improves quality, productivity, and job satisfaction for programmers. This approach has developers working more closely with one another and also with nondevelopers—business and systems analysts, quality assurance professionals, and users.
What does this mean for developers? Being the expert technologist is no longer sufficient. You must become effective at working with others.
Collaboration is not about asking and answering questions or sitting in meet- ings. It’s about rolling up your sleeves with someone else to jointly attack work.
I’m a big fan of pair programming. You might call this “extreme collaboration.” As a developer, my skills grow when I pair. If I am weaker than my pairing partner in the domain or technology, I clearly learn from his or her experience. When I am stronger in some aspect, I learn more about what I know and don’t know by having to explain myself. Invariably, we both bring something to the table and learn from each other.
When pairing, we each bring our collective programming experiences— domain as well as technical—to the problem at hand and can bring unique insight and experience into writing software effectively and efficiently. Even in cases of extreme imbalance in domain or technical knowledge, the more experienced participant invariably learns something from the other—perhaps a new keyboard shortcut, or exposure to a new tool or library. For the less- experienced member of the pair, this is a great way to get up to speed.
170 97 Things Every Programmer Should Know

Pair programming is popular with, though not exclusive to, proponents of agile software development. Some who object to pairing ask, “Why should I pay two programmers to do the work of one?” My response is that, indeed, you should not. I argue that pairing increases quality, understanding of the domain and technology, and techniques (like IDE tricks), and mitigates the impact of lottery risk (one of your expert developers wins the lottery and quits the next day).
What is the long-term value of learning a new keyboard shortcut? How do we measure the overall quality improvement to the product resulting from pairing? How do we measure the impact of your partner not letting you pursue a dead- end approach to solving a difficult problem? One study cites an increase of 40% in effectiveness and speed.* What is the value of mitigating your “lottery risk”? Most of these gains are difficult to measure.
Who should pair with whom? If you’re new to the team, it’s important to find a team member who is knowledgeable. Just as important, find someone who has good interpersonal and coaching skills. If you don’t have much domain experience, pair with a team member who is an expert in the domain.
If you are not convinced, experiment: collaborate with your colleagues. Pair on an interesting, gnarly problem. See how it feels. Try it a few times.

Two Heads Are Often Better than One

Programming requires deep thought, and deep thought requires solitude. So goes the programmer stereo...
  • hellominix
  • hellominix
  • 2013年04月04日 09:21
  • 240

Two is better than one

  • niho
  • niho
  • 2014年10月16日 10:19
  • 278

Proverb Feeling -- Two heads are always better then one

---Two heads are always better then one.  More contact with other colleagues. Pay attention to the...
  • chudegao
  • chudegao
  • 2012年03月27日 14:18
  • 242

我心中理解的:Done is better than perfect

Done is better than perfect(比完美更好的是完成)是FaceBook创始人扎克伯格从创业初期,这些标语就贴在Facebook的办公室,作为行动准则,激励员工。...
  • yeqing_steven
  • yeqing_steven
  • 2017年08月18日 11:43
  • 495

Charles Dickens

IDickens is one of those writers who are well worth stealing. Even the burial of his body in Westmin...
  • lililingling1985
  • lililingling1985
  • 2006年09月11日 01:40
  • 1734


 《Python之禅》的翻译和解释 本文最初发表于恋花蝶的博客(,如蒙转载,敬请何留全文完整,并连本声明一起转载。凡是用过 Python的...
  • lanphaday
  • lanphaday
  • 2008年03月05日 21:14
  • 35404

"Done is better than perfect"——不要过分追求完美,即刻开始就是最好的开始

“Done is better than perfect”的意思是“比完美更重要的是完成”。 习惯于给自己订立非常高的标准,追求完美,最好的结果是心生挫败感,最糟糕的结果是完全放弃了目标。你完全可以给...
  • v_xchen_v
  • v_xchen_v
  • 2017年05月02日 14:02
  • 678


  • xE8551CCB
  • xE8551CCB
  • 2016年08月11日 16:28
  • 555

POJ 3783 ——Balls 【DP】

Balls Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 878   Accepted:...
  • AcIsFun
  • AcIsFun
  • 2016年05月18日 21:37
  • 108

One of the two will be used. Which one is undefined.

报错提示objc[8446]: Class CalendarModel is implemented in both /System/Library/Frameworks/EventKitUI.fra...
  • Baby_come_here
  • Baby_come_here
  • 2016年11月18日 14:41
  • 2093
您举报文章:Two Heads Are Often Better Than One