Ward Number

If you've practiced PairProgramming with WardCunningham, you have a WardNumber of 1. If you have paired with someone who has paired with Ward, you have a WardNumber of 2, and so on.

Or, more rigorously:

David West's paper (http://www.xpuniverse.com/2001/pdfs/Method01.pdf) inspired the WardNumber, borrowing from the ErdosNumber (from the Mathematician PaulErdos). It was first encountered at XpUniverse 2001.


For WardNumber of 1 and WardNumber of 2 people, be sure to check out WardOne, the conference for you.


So what is the WardNumber of someone who has never practiced PairProgramming?

The usual algorithm is this: Set each node to an initial value of +infinity, and then set the root node to 0. Repeatedly sweep through, setting each node to 1 plus the minimum of its neighbors. If nothing changed: stop. This takes as many sweeps as the longest path in the component containing the root node (namely, Ward), plus one. With a little extra bookkeeping you can avoid the extra sweep.

In practice you can't use a true +inf, so compromises are made. You can set the initial value to -1, NULL, NIL, MAX_INT, or other options. Each has its effect on the code. The cleanest code results from using an initial value of MAX_INT as an approximation to +inf.

Anyone not then connected to Ward via a PairProgramming path gets left with this initial value. Examining the algorithm suggests that this value should be +inf. This meshes nicely with the usual mathematical definition that the minimum of the empty set of numbers is +inf, just as the sum of the empty set of numbers is 0 - the initial value to which other values are added. In computing, a term that can't be computed is often preset to NULL, but the code is less clean.

So by this analysis, the WardNumber of someone who has never practiced PairProgramming, or who has no PairProgramming path back to Ward, is +inf.


So what is the WardNumber of someone who has never practiced PairProgramming?

Null I would say such a person does not have a Ward number. Presumably, this is what is meant by saying 'null'. In a computer IMPLEMENTATION, one might well choose to give some value so that a compiler can cope with it without the programmer having to always incorporate code to deal with this case. Such a value might be NULL, INFINITY, MAX_INT, or NAN in a programming language which has one or more of these concepts. However, neither the definition of a Ward number nor the question refers to how one might represent it in a computer implemantation. The correct answer, it seems to me, is, as I said above, that such a person does not have a Ward number. If, on the other hand, you want an answer to the QUITE DIFFERENT question 'how would one represent such a person's Ward number in a computer implementation', then there are many different possibilities, and it is futile to argue as though there were one CORRECT answer. -- MichaelDavis



Is there an entrepreneurial opportunity here? I would stick my neck out and offer my programming services to anyone wishing to acquire instant WardNumber 2 status... but then again, such an ostentatious act would probably reveal the fact that a WardNumber of 1 doesn't necessarily correlate to a presumed level of talent or genius. -- MichaelLeach


Ward is smart and a good programmer, but this WardNumber stuff is bordering on hero worship. I'm sure that Ward likes to be appreciated as much as the next guy, but this is just a little creepy. -- JimHollcraft

I agree. I'd put a stop to it except that I really do like programming with a lot of different people. I programmed a tv with a fella at oopsla just so we could say we'd programmed together. Do you suppose we should study the graph of people who have authored wiki pages together? -- WardCunningham

The concept started as an incentive to PairPromiscuously at an XP conference, not as ego boost. See IncreasingYourWardRating.


What number do you get when you fix Ward's code?

You should know better than that. CodeOwnership is not that good an idea, so surely someone as experienced as WardCunningham would avoid it just like the hero-worship he is stuck with on this page? -- SteveHolden


"Creepy-schmeepy. All in good fun..." This is where we proclaim our WardNumbers:


JeffMcKenna has quipped that there are now so many people with a WardNumber of 1 that, if you want to impress, you have to specify the date of your one-ness. And Jeff seems to have everyone beat.


As a counterpart to the WardNumber, a pointless centrist numbering scheme for wikis.

So the OusfgWiki? has a wiki number of 1, and the OxfordMathsWiki? has a wiki number of 2. A better example would be that MeatballWiki and WhyClublet have wiki numbers of 1, but I don't know of any children of theirs.

Note that this is different to the WardNumber in that it's more hierarchical, and less about the distance through a graph.


See WardNumberInManyProgrammingLanguages

See also: SmallWorld, SixDegreesOfKevinBacon, ErdosNumber, KiboNumber, IncreasingYourWardRating

EditText of this page (last edited June 1, 2008) or FindPage with title or text search