Why Pair Programming?

by Jason Cox on July 19, 2010

Pair programming is the process of two people working on one development task on one computer at the same time.

How could two people coding on only one thing help make more progress? You would assume that you would accomplish more work by having each developer work on independent sections of the code. However, there is a reason pair programming is used by rapid development processes such as Extreme Programming. The goal of pair programming is to improve code quality without slowing down the project.

Focus

Pair programming keeps developers focused on the task at hand and adds a level of accountability. For example, the navigator would be upset if the driver keeps checking their email and vice versa.

When two people are sitting at a computer ready to work, nothing else really distracts you. You will find that you don’t really want to do anything but work hard.

This has a dramatic effect on the amount of hours you can continuously work. With out all the context switching and distractions, coding is much less exhausting.

Flow

In a blog post on zenhabits.net, Everett Bogue discusses how to create a state of flow by separating the processes of researching and planning from implementing.

Flow is a state of being able to work effortlessly on something challenging. By doing all research before starting on something, you can increase the amount you get done in a short amount of time. Continuously switching contexts back and forth only inhibits code implementation.

When it comes to pair programming, the navigator handles all the research for the driver. This allows the driver to effortlessly write code. Since researching and coding happen at the same time, the time it takes for completing one task is decreased. As long as the tasks are chosen strategically, progress on the project will be significantly impacted.

Fun

Finally, my favorite feature of pair programming is that it’s just fun.

There is no getting lost in a cubicle farm. There is no isolation or banging your head on a keyboard alone. You are working with someone right next to you. You will likely have a lot in common with this person, as they are a colleague on your team that you may be working with for many years.

Even when you get stuck it isn’t an issue, because you have two minds working together. When it is break time, you can sit and chat without having to go and find someone else taking a break. Spending hours coding becomes easy when you are enjoying yourself and don’t feel lost or overwhelmed.

{ 1 comment }

Getting Into Open Source

by Jason Cox on June 11, 2010

Joining open source projects can be great for your career.

By contributing to publicly visible projects, you are automatically creating an online portfolio. If you only work on traditional projects, it’s likely that all your contributions will be locked away in a vault. College professors do not want class project solutions posted online since other students could use your solution to cheat. Work done for a company is often proprietary, and posting is simply not an option. Sure, it’s possible that your product could be featured on a company website or other visible location, but it’s difficult to point to your exact contributions.
[click to continue…]

{ 1 comment }