the fine line

A while back, I made an off-the-cuff remark on a software development mailing list… I said that most software hovers near the line between barely works and almost works. I’d like to expand on that a bit.

Much has been made about the sorry state of software quality, and smart professionals wonder why so much software just plain sucks. This question is often answered by the idea that Technology X (whatever X is) will finally result in improved software quality – whether it’s object-oriented programming, agile development, Ruby on Rails, whatever. But honestly, I don’t think software will ever get significantly above that almost/barely line.

Why? Because advances in computing power and software development tools have allowed software to become more complex. And given more resources, developers (and their customers) will choose complexity over quality. They will choose more feature and new capabilities over stability and elegance. It’s easier to let a software project degenerate into a Big Ball of Mud and then rewrite it from scratch in a few years than it is to design quality from the start.

And the complexity of modern software is amazing by the standards of, say, ten or twenty years ago.  Imagine, say, convenient libraries for handling virtually any kind of graphics file over a standardized connection protocol.  That would have been wizardry in the 1980s, but it’s something kids can knock off in Javascript today.  And did I mention the native multithreading support?  A lot of complexity gets hidden.

Occasionally, a lucky bit of software will reach its complexity limits without being obsoleted by something cooler, and then can be refined for quality.   A lot of Unix shell tools are like that, and the Open Source versions are quite lovely.  But when do we reach that limit of functionality and start going for quality, finally?  And will it happen to really large systems, like operating systems, languages, or web browsers?

And will it matter?  Ultimately, most software is designed to solve relatively small, unique problems, and is subject to the whole quality limit.

Bah.  I need to finish this for now and rewrite later.


0 Responses to “the fine line”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: