Are developers who always pair less productive when they work alone?
We have a small development team and when a team member is out does the quality and amount of work getting done decrease? Our team is use to pairing all day everyday.
Are developers who always pair less productive when they work alone?
We have a small development team and when a team member is out does the quality and amount of work getting done decrease? Our team is use to pairing all day everyday.
Add comment viewed 317 times Latest activity over 1 year ago
Well... I would say YES it decreases for at least two reasons:
First of all people in pairs are more focused on the job. No mail checking, news reading, etc.
We (developers) sometimes tend to pursue some imaginary problems, or simply we try to over-engineer some solutions, while the our pair mate can cut it down just by saying "wow, and why do we need that monster?".
Of course it does not always have to be the case. And usually a few days of absence won't make a project collapse. We get used to rhythms of working so a pairing developer would need to be left alone for some longer period to actually fall back into some bad habits and distractions.
We often will have an "odd man out" on the team from day to day due to sickness, schedules, etc. The way we handle it is to identify tasks that are "single trackable" based on a risk assessment of the feature being poorly or incorrectly implemented. Things like HTML changes or the like are low risk and therefore single trackable, while new subsystems are high risk and would require a pair. Additionally, code reviews for single tracked items undergo more scrutiny and review implementation details whereas code review of pair items is often more to catch obvious errors and deviations from team coding standards.
As to distractions, our team works in an open team room where everyone is aware of everyone else's doings so distractions are kept to a minimum by the team as a whole.
In my experience, pair programming is good for some things and bad for others.
Design is (should be?) a creative process where you really explore your ideas. With pair programming a design can sometimes be a hybrid of two ideas which is less satisfying than either on its own. Pair programming in my experience tends to be a bit less exploratory than programming on one's own. It doesn't necessarily need to be but it often is.
On the other hand pair programming is amazing for thinking through difficult application areas, making sure that business requirements are well understood, avoiding programming traps, and uncovering faulty assumptions. In other words, when writing tricky, intricate code. You can cheat a little bit with the "7 things, plus or minus 2" rule by having two heads. In my estimation it's also the best way to bring new developers up to speed on a project they are unfamiliar with. In either of these activities a pair is much more effective than two developers working alone.
As with so many things, it really depends on the programmer. I have found that some programmers actually need a little alone time to recharge the batteries. Now they may be slightly less productive during the individual time than during the pairing time, but they will also probably start to lose the productivity in a pairing situation if they don't get that time.
Is lunch enough time to recharge? The team seems to like working together all day and have successful sprints. I just think they get too use to working as a team and days that consist of working alone are less productive. So you think there should be a limit on the amount of time spent pairing everyday?