7 September 2017

Downsides of Pair Programming

  • Stifles creativity, innovation, experimentation, learning, and exploration
  • Dependency on another (lunch/tea/holiday/bathroom breaks, start and end times)
  • What do you do when your pairing partner has to leave early to pick kids up from school?
  • More talk less code (talking out loud how many other people in office do that normally?)
  • Lack of code ownership
  • Loss of confidence - again dependency on another
  • Higher risk of developer turnover and burnout
  • The other developer can slow you down
  • Limits out of the box thinking
  • Annoying if developer has to be questioned about everything
  • Internal management politics plays into pair programming
  • Lack of developer autonomy means less responsibility and focus
  • Sometimes neither pair programmer is able to solve the problem and need even more eyes (!?)
  • Doesn't work in areas like data science and big data where there is a lot of out of box thinking and exploration
  • Pair programming is an anti-pattern in agile workplace and doesn't make for a nimble programmer
  • Your promotion, bonus, and delivery is dependent on the performance of the other programmer
  • If senior programmer works with junior programmer invariably they wasting their time
  • If two programmers work together of same skill-level they wasting their time
  • Thinking out loud about everything can actually be counter-intuitive
  • It makes a programmer less productive and efficient overall in being responsive to the needs of business
  • The programmer (observer) that is watching the other programmer (driver) is likely to be half asleep part way through the day
  • Pair programming feels like working in a sweat shop
  • Conflicting egos and skills disparity
  • Lack of privacy
  • No Downtime
  • Looking over the shoulder feels weird and distracting
  • Increased burnout in workplace can be a health & safety risk
  • Can turn into a tutoring session and discussion rather than actually completing work
  • Pairing means you have to use the same developer tools, potentially tools you are less productive in
  • Can two people not work better towards same goal separately?
  • How difficult is it to communicate to the person next to you in your team without pairing all day?
  • How many people do you see in an office doing pairing work (Finance, Marketing, Reception, etc)?
  • With higher turnover and burnout risk means more time spent training and recruitment
  • If your pair programming partner leaves company, time will be taken up adapting to the new partner and pair dynamics in team
  • Can mean increased risk of redundancy if company or individual is not performing (have to let go of the pair rather than one programmer)
  • Do you think out loud about other things in life when you not programming (most people would call it weird)?