iPhone Detected, site running in minimal mode.
Home     Tags/Archives     Tweets     About Kevin

Recently I was out with a collegue having a drink and the question came up as to the real meaty difference between management and leadership.  Here is my take-- not my own ideas by any means, but highly distilled from a number of thought leaders.
 
Management is defined by 1) Position and 2) Things you Do

Leadership is defined by 1) Influence and 2) Other Things you Do


Because influence is greatly dependent on other people it’s much easier to be a good manager because in theory you have more control.

Because influence is usually derived from the “Things you Do” as a manager, I believe it’s USUALLY true that a good leader will also be a good manager, but not necessarily the other way around.  The exception to this is that rare leader who lacks the POSITION, but still manages to gain influence and does all the right things.


Finally, I think you can boil down the difference to a matter of focus:

Good managers focus on doing things right.

Good leaders focus on doing the right things.


Well, my first paired programming experiements date back 3.5 years now.  I'm going to be blogging on a whole bunch of related stuff soon as far as tweaks to pair programming that I've personally found beneficial.  But before I get to that, I wanted to reprint a portion of an article that I wrote for the abuzz newsletter 1.5 years ago.  I found that everything I said back then has continued to hold true, and so here is is. The original title of the article was "Paired Programming Obstacles".

Purpose
The purpose of pair programming is to produce better solutions with better designs and code. This does not mean that someone looks over your shoulder and points out syntax errors (the compiler will usually do this for you). Instead make sure that the problem is clearly understood (in the same way), the coding approach makes sense, and that the code can be easily be understood by someone else looking at it later.

Distractions
While it may seem like pair programming would cause many distractions - well actually it does! However, distractions happen every day (email, web surfing, etc...). A distraction is anything that is more compelling than the work to be performed. The goal of the pair should be to really make the work as interesting to each other as possible thereby making it more compelling than all of the other would-be distractions surrounding us. Yes! Work CAN be interesting, compelling, interactive, and FUN!

Conversations, Controversies, and Arguments
Pair programming will fail without conversation. If both people are not very good at starting conversations you might be in trouble. Fortunately, the work to be done is usually sufficient to get things rolling. If not, remember that 95% of all conversations start by someone asking a question. Controversies are part (in my opinion the most interesting part) of pair development. However, remember that the goal is to produce the best code possible, not to be right. If someone is just trying to be right, then that is an argument, which should be avoided as they are unproductive. Usually a third party can be brought in to bring things back under control.

Skill Levels
A programming pair should always be at similar skill levels. When working with a much more experienced programmer you will tend to sit back, be quiet, and enjoy the ride. When working with a much less experienced programmer you will tend to push forward without getting your partner's input. Both of these tendencies are really the same problem from different perspectives - Ego. In the first case, you don't want to feel dumb by asking basic questions. In the second case, you don't think your partner could possibly help you. In both cases neither programmer is going to get much out of the experience, and the code won't be much better than if the experienced programmer did it themselves. Humility and better pair matching is the way to combat these natural tendencies.

Now What?
No grand conclusions from me this month. My hope is that someone out there will learn something from reading this - or disagree and teach me something. After all, that's the most rewarding part of pair programming from a participant's point of view - you can't help but learn.

 















RSS FeedBack to the HomepageMy Twitter FeedMy Stumbles

Tags

Hide Low Frequency Tags

Archives

Recent Posts