Cathederalization

I am archiving older pieces I have written on other sites, making this the definitive home for all my work. This is one of several I am porting over from my GameDev.Net user journal. Enjoy!

The Daily Irritation

When installing software for Windows (using MSI, of course), notice how you're presented with a license and then asked whether you accept? The problem is that you need a radio box to indicate acceptance, and then you have to click Next to submit your choice! What, you mean I could actually continue the install if I didn't accept the license? No? Then why not re-label the Prev and Next buttons to Don't Accept and Accept and have me only need to click once?!

Somebody needs to write/make a UI Clue-by-4 and bash random developers with it.


On Cathederalizing

The title of this missive is derived from Eric Raymond's seminal essay, The Cathedral and the Bazaar, and is a codification of off-the-cuff remarks I made yesterday in #gamedev. The term itself was ventured by bodisiw, so shout out to him for that bit of witticism.

Raymond identifies an opposition between the "cathedral" model of software development, as observed in traditional software development corporations, and the "bazaar" model, as typified by open source development. He argues that the bazaar is not only as effective as the cathedral, but often more effective for various reasons. Read his essay for the details.

Many aspiring independents take this - not necessarily directly, as many of them haven't read the actual article, but through the attitudes and perceptions it has given birth to - as evidence that anarchic development works. What rot. An analysis of successful open source projects - and they are comparatively few - reveals that they display many elements of the supposedly inferior cathedral model. In fact, it would appear that in order for organic development efforts to succeed, they have to "cathederalize."

They have to have ownership policies (Linus "owns" Linux, and has delegated ownership of various portions of the kernels to other kernel hackers such as Alan Cox). They have to have check-in and integration policies, including regression and backprogagation test suites (submitted code is peer reviewed, then hand-integrated by a maintainer). Their first release to the general public has to demonstrate functionality - you can't just dump a blob of code and expect participation (see Netscape's initial release of Mozilla). A corollary to the preceeding is that you need a relatively small, focused group to author (or, in the case of opening up previously proprietary code, clean up) the initial release. See Blender for an example of open source release of proprietary code done right.

The truth is that open source is not a panacea, and internet-based collaboration is hard. In fact, if and when I put together my own game production studio, I will only hire locally. And I mean "hire." As in paid. I'm not going to start a studio until I have, at the least, an apartment in which to house the development effort and enough money set aside (and coming in) to pay reasonable salaries for the time and effort committment I expect of my employees. That doesn't mean I'm waiting until I get rich; it simply means I may start small - one or two employees - and grow the business. I'm hoping to get this started within the next three years, and I'm hoping to build and grow a few other businesses in parallel.

But I digress.

Cathederalize. Approach this with a definite plan, with structure and with preparation. Good luck!


Next update: Reflections on promotion drawn from all media spheres. With case studies!