Pair programming is the most difficult and important thing in all agile actions

In the beginning of this year, I transferred to a new project team. This team is doing agile transformation.  Team is trying to take many agile actions every day, Like TDD, refactoring, pair programming, etc.  Personally, I think pair programing is the most difficult thing in all agile actions, but it’s also most important one.

Why it’s most difficult.

"I am used to do coding by myself."

"I don’t like being watched or controlled when coding with peer."

People don’t like being told to do something; actually, it’s one of natural characteristic of human.

"I can handle it on time by myself; I don’t need your help."

"I think that it wastes much time by coding with peer."

In this case, most what we need is not the help from peer; actually, it’s the help for peer provide d by us. I will take efforts to help others, so what benefits I can get? If I cannot get any benefit, I would not do it.

That’s the common cases about pair programming on the above. You can find it’s nothing about coding. It’s about social psychology. the other agile actions are technical thing, we can easily get them by practice, that's why pair programing is most difficult.

For case 1:

  • Keep respecting each other from heart when pairing.
  • Don’t tell directly but suggest and discuss.
  • Tell him/her what benefit he/she can get before or when you suggest your solution.
  • Ask peer solution or opinion frequently and make discussion.

For case 2:

Firstly I believe people will like you if you provide help for him/her.  

Secondly, one people cannot finish all the jobs by himself/herself in the project team. What we need is not only profession people, but also effective team.

Why it’s most important.

Coding is not only typing.

Think deeply what we do when “coding”. We read code, break, google something, debug code, type some code, debug code, read code, break, type some code, debug code, break, ask help from someone, google something, type code, debug code …. That’s the “coding”.

So you can find coding is not only typing, actually, typing is small part in coding actions, all the others are thinking.

When doing pair programing, the major work is not typing, but thinking together. I often tell peer, let’s break a while because I know typing will not let us be tired, but thinking will do.

What benefits we can get by thinking together. Obviously, it’s better quality and efficient.

Pair programing is not only coding.

When we do pair programing, peers are always doing communication. As we known, the best communication way is face to face, So Knowledge is shared effectively and efficiently by pair programing. That’s the key point.

Other suggestion of pair programming

  • Be focus when pair thinking and be funny when pair typing.
  • Take breaks.
  • Switch typing frequently.
  • Don’t interrupt when peer is typing but watch for the next code refactoring by you.
  • 5 seconds rule. Interrupt or switch to you to type only if peer typing nothing in 5 seconds.

 

你可能感兴趣的:(programming)