Talk About Quality

Tom Harris

Making Software Better

leave a comment »

Everyone wants better software. And for decades, everyone has put forth ideas on how to make it happen.

Sometimes a good way to sharpen thinking on a subject is to take a brief time-out and consider a parallel field.

I can’t help but choose a field where the state of the art, and the state of the practice, are also sufficient to have changed our lives, but still fall far short on safety and security.

Consider driving.

Process vs. Practice

The road is the process. Roads are important. I wouldn’t drive without them. But nobody would claim that driving is happening without cars.

Driving cars is the practice.

Further, cars still don’t drive themselves. People drive cars.


Process training is studying the traffic laws and signs booklet and taking the written test.

Practice training is going out with a driving instructor and driving with his/her guidance.


Examinations: Ok for the process. Insufficient and misleading for the practice.

Passing the driving test neither makes people better drivers nor proves that they are sufficiently good drivers.

Insufficient: All it manages to show is that under certain heroic conditions, the driver can perform — one time — passably well.

Misleading: Gives everyone the idea that passing the driving test is the “clean bill of health” for all future driving by that driver.


Peer Review

Driving on the same roads with other drivers does not improve any given driver’s skills, nor the average skill. Generally it reduces the average towards the lowest value.

Pair Programming

Sharing the driving with a friend on a trip does not improve either driver’s skills either. At best, prevents accidents, by sharing the driving hours or buying the friend coffee.

Trends in Driving Performance Improvement

(Try to categorize as process or practice improvement. Or as exit-testing, exams, or coaching. Or proactive, preventive, or corrective.)

– Restricting youth driving to daylight hours
– Raising the driving age
– Raising the drinking age
– Requiring youth to take 28 or more driving lessons
– Lowering the maximum speed limit
– Speed cameras
– Higher fines
– Improving the roads
– Improving the cars (ABS, airbags, rearview mirrors on both sides, upper rear stop light)
– Requiring all new immigrants to take a refresher course
– Requiring all new immigrants to take 1 or 2 lessons and a driving test
– Requiring youth to drive with parents (or is that requiring the parent to drive with youth?) for the first N months (where trend is increasing N)
– Advertising campaigns promoting that it’s desirable to give the car keys to someone else and take a taxi home if s/he drank too much
– Other trends I didn’t think of …

Which are best? Why?


Back to software development. Seeking better software, better ways to develop software. And ever-improving developers too.

Software Improvement

What are the analogous improvement ideas? Which would be most effective? Why?


Written by Tom Harris

June 5, 2006 at 11:37 am

Posted in Quality Improvement

Tagged with

Leave a Reply

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

You are commenting using your 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