James Shore on Software Quality

Quality is one of those ineffable abstractions. Ask ten people, “What is good design?” Get twenty answers. But Jim Shore’s answer is actually worth something.

A good software design minimizes the time required to create, modify, and maintain the software while achieving acceptable run-time performance.

This definition has some pretty obvious, radical, and cool implications. Quality depends on what changes you’re making to the software and who is making them. How much time you’ll have to spend maintaining the code is more important than how much time you spend coding it in the first place. And all of this means you can’t plan ahead for design quality!

This may be a surprising conclusion, but it’s absolutely correct. I also agree 100% with Jim Shore on his universal design truths and on asking “Why?” and understanding context.

One more note: Good designs can degrade with age. Great designs take quality to the next level and actually improve over time. “Impossible!” you say? Well, it’s not impossible. I’ve actually seen it happen. But that’s another story.

-TimK

Share this post:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Add to favorites
  • email
  • FriendFeed
  • HelloTxt
  • Kirtsy
  • LinkedIn
  • MySpace
  • Reddit
  • StumbleUpon
  • Twitter

Did you enjoy this post? Why not leave a comment below and continue the conversation, or subscribe to my feed and get articles like this delivered automatically to your feed reader.

Want to republish this article on your blog or website? In the spirit of the Internet age, you have permission to do so! Just (1) reproduce the article in full, (2) note that it was authored by J. Timothy King, and (3) include a link back to this website.

Comments

No comments yet.

Leave a comment

(required)

(required)