Pairing: don’t have to always agree on the plan

So your pair is proposing a route or plan that you don't agree on. Am talking about a refactoring, a redesign or just the way to test drive the next feature. You have told him your reasons no to agree with him and there is no way to get to an agreement. It's perhaps frustrating because you believe his strategy will fail but he definitely wants to proceed that way. What do you do? Argue forever?

I don't think you have to always agree on the path you are going to walk. The important thing is that both understand the plan so that driver and navigator can help each other get there. In those situations I end up saying... I believe this approach is not the best and I would try out something else - something I explained already... but anyway, I'll help you with your idea, let's do it.

Several times my pairs have proven that they were right and the plan was effective. Some other times it wasn't a good idea, but we built a trustworthy relationship, a supportive one.

Enjoyed reading this post?
Subscribe to the RSS feed and have all new posts delivered straight to you.
  • http://asierba.net Asier

    You are quite right! I’ve seen myself in this situation where I would be arguing forever with my pair and never get anything done.. the more senior is the pair the more common.
    It helps to think that it is more important (as you said) to build a trustworthy relationship in the team than to get the job done in the best possible way. Or **you think** is the best possible way anyway.. 🙂

  • http://www.carlosble.com/ Carlos Ble

    Good to know there are more people with same experience, thanks for commenting 🙂

  • Pawel Duda

    The opposite of this approach is the so called – ping-pong refactoring. We’re not pairing because we can’t agree, I’ll do things my way, then you jump in and refactor/rewrite it your way, then I change it back to my approach. Good times 😉

  • http://www.carlosble.com/ Carlos Ble

    Do you ever reach to any interesting or useful form of code by practicing this way ? 🙂

  • Pawel Duda

    It means lots of waste, of course. I personally would rather “find a plan” (even if I suboptimal from my point view) and then try to be consistent. Pairing helps in raising questions. It makes the discussion about the plan actually happen and – instantaneously. It also happens without pairing, but it’s less likely. Of course finding a plan requires a few skills: reaching a compromise, being consistent about following it, being open to rediscuss it when circumstances have changed, being able to figure out they have changed. Without these skills, a refactoring ping-pong will most likely happen 😀

  • http://www.carlosble.com/ Carlos Ble

    Good point Pawel, thank you 🙂