Kent Beck: software health

Thursday 18 August 2005

I recently listened to Kent Beck speaking on Developer Testing. It’s an interesting and entertaining talk. Kent is passionate and articulate about developers doing testing.

I thought his most interesting point was about “software health”, which he contrasted with software quality. He defined quality roughly as how many bugs were in the software at a given point in time. Health is defined as how well the software will respond to stress, for example, changes in the environment, changes in the team, changes in the requirements, changes in the code, and so on.

I remember hearing a description of [a typical release process], and someone likened it to Jello. You’ve got this software, and it’s like Jello and people are making changes, and it’s shaking and it’s shaking, and you think you’re getting close, but the software’s still shaking, and then it stops shaking just for a second, and that’s when you ship it.

That’s why I’m not interested in quality, I’m interested in health. Healthy software is not like Jello, it doesn’t have that sense of “Oh boy, is today gonna be the day in which there aren’t any bugs in my software?”

I didn’t agree with everything he said (I don’t think that offshoring is driven by accountability rather than cost, for example), but this guy’s on the right track.


"Don't shake the Jello" comes from Jim McCarthy relating his experiences in delivering Visual C++. While it seems odd for an XP team of 5 or 6 people to worry about this kind of stability, McCarthy was talking about a much different world. The current release of Visual Studio is rumoured to have 50 people on the installer team. On a team that size, even if everyone is doing everything right, there's a whole lotta shakin' going on.

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
Comment text is Markdown.