Home » Uncategorized

Slow programming: A new approach to software development

19 April 2007 No Comment

System development is just too manic these days.

In a previous post I talked about my technical woes with Ning — a browser freeze problem. One Ning user replied that Ning has a host of Javascript errors depending on the browser being used, and this really slows things down. Fortunately, the Ning help department seems quite interested in helping to resolve the problem.

I think there is a problem with the Web 2.0 culture that leads to these problems. In order for a site to be considered Web 2.0, it seems it must have been built in 30 days and maintained on short release cycles. There is a Web 2.0 mythology about how you can use some new process like Ruby-on-Rails or whatever for lightning speed development. This sounds attractive to some. Get started fast and change it on the fly! Sounds great at a convention or at boardroom tables. Sigh.

I agree that it is often wasteful to try to design an entire cathedral, but one can plan a good house with a little patience and reflection. If you take the time to plan, the rest is just keystrokes. What has been said of writing is also true of programming: if you think clearly, the coding comes easy.

Maybe you’ve heard of Extreme Programming (XP)? XP brings a principled approach to software development in the face of rapid change. It is a respectable approach if you must deal with requirements that change by the hour.

But maybe we need to introduce a new approach to programming. We can call it Slow Programming. (Yes it is inspired by the Slow Movement, and by my recent involvement with the Slow Library Movement.) Slow Programming would feature a careful design process by a fairly small number of people who know the business well; these same people would be closely involved with the actual system development. In this model, it would be okay for developers to sit on their hands for awhile or go play ball while design problems get sorted out, instead of having them code like bananas just so they are doing something. We abandon multi-tasking in favour of uni-tasking. With this approach, software development is the craft that drew so many to it in the first place.

Related:
Why I Do Not Support Short Release Cycles
Oracle exec hits out at ‘patch’ mentality

==============================================

Update May 16, 2007: Looks like someone created a Slow Programming entry in Wikipedia. It features a link to this post, along with a very nice summary of the concept: “The Slow Programming movement is part of the Slow movement. It is a software development philosophy that emphasises careful design, quality code and software testing. It strives to avoid Kludges, buggy code, and overly quick release cycles.” Looks like the idea is catching on.

Post to Twitter

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.