Junior developers and pair programming

Not all of us like doing pair programming with junior developers. It can be hard to explain some concepts that are obvious to you, your short-term productivity can suffer, they can be too irritating with their stupid questions and so on.

However, pair programming is one of the best ways to learn and teach and to spread knowledge among team members. After all, if you have to rely on that junior (or not-so-junior) developer, you want him to be as smart and competent as possible, don't you?

Here is a couple of tricks that help me make the process more efficient and less painful for me.

1) Be prepared. Take a look at the person you will be pairing with. What are his strengths and weaknesses? What does he need to learn to become a better developer?

During a pairing session, you may want to highlight certain development practices, problems and processes to help him grow professionally. You may even want to choose a specific task to work on together, a task that provides the necessary challenges.

2) Make a record of your session. Yes, a record, a screencast. The odds are there will be a lot of questions, in fact, so many of them that it might be hard to remember all the answers. Re-watching the record can be a better and a more convenient option for the junior than asking the questions again and again. Moreover, replaying the record can also do a lot of good for you - you may be able to notice your weaknesses and improve as a speaker, as a developer and even as a person.

The recorded sessions can be used by other people, too. Actually, it can be a great learning tool if you put some effort into it. (Keep the session short enough and be focused on a problem in question.).

There is a lot of screen-recording software - from commercial Camtasia to free CamStudio (and maybe a dozen or more other products). Choose the one you like.

I hope that these simple practices can come in handy. If you have other tips and tricks to share - you are welcome! :)


Popular posts from this blog

High-volume sampling: algorithms’ comparison

Spring Framework and Code Obscurity

Multi-threading skills - what do you mean by that?