Sunday, January 30, 2011

The virtue of the bad idea

Scott Adams mentions the notion of "the bad version". (Search for the article on the Wall Street Journal web site. Look for "How to Tax the Rich".) The article's focus is on taxes, but the idea of the bad version is worth examining.
For example, if your character is stuck on an island, the bad version of his escape might involve monkeys crafting a helicopter out of palm fronds and coconuts. That story idea is obviously bad, but it might stimulate you to think in terms of other engineering solutions, or other monkey-related solutions.
After a bit of thought, I realized that this method is exactly how most software is developed, and it is the core value of agile development. Start with an idea and implement it. The idea isn't perfect, nor is the implementation. But the program does not stop there. (Well, I guess it can. You could decide that it was good enough and go home.)

Most folks (programmers, managers, testers, and even salespeople and users) want improvements to programs. Each has ideas for improvements.

The basis for improvement is the current version of the program. For people who do not know the entire program (and for large programs it is easy to know only a portion of its functions), the requirements for "version N+1" are often "do everything that version N does, plus these additional items". For shops using agile methods, this is easy since they have tests for all functions in version N. Shops using waterfall methods typically have a harder time, as they do not have a comprehensive set of documented requirements.

The big idea is to improve on your ideas. Start with something -- anything -- good or bad. Admit that the idea is not perfect. Get people thinking about improvements. Support them and create a process to implement the improvements.

Use the power of the bad version to generate ideas. Use the power of ideas for improvements. Use the power of multiple releases for better software.

No comments: