I'm so far behind on reading blogs that I no longer pretend to actively read them. That said, I was on Martin Woodward's blog today to check out his new site design and came across this post he wrote a couple of months ago on software estimation (Why Software Estimation is Hard).
Suduko is the closest analogy to computer programming that I can find for "normals" - i.e. people that don't code. This only really works if the person does Suduko puzzles, but my wife does so it works in our house. Suduko is a numeric analytical problem solving activity. While there are tricks and techniques to solving some puzzles, there is a significant challenge and difference to each one. Looking at the puzzle, it is hard to know if it is going to be hard or easy. You can get stuck down blind alleys and have to start all over. Also when you "get into the zone" you can often make surprising intuitive leaps that often defy verbal explanation afterwards. Finally, solving a hard Suduko puzzle quickly involves a fair degree of luck and depends on your state of mind at the time of trying the puzzle. There is a great amount of satisfaction to be gained from solving a Suduko puzzle along with a high degree of frustration when you cannot solve one - you know that it must be possible after all.
Equating Suduko puzzles to programming challenges is an interesting idea, and it makes it easier to explain the challenges of software estimation to those who don't write code, but who are familiar with doing Suduko puzzles. This is a great post, Martin!