I was reading this article on impact maps – a great technique for visualizing scope and underlying assumptions of a product (ideally before it is built).
An impact map is a visualisation of scope and underlying assumptions, created collaboratively by senior technical and business people. It is a mind-map grown during a discussion.
Mind maps are great tools for thinking and impact map is a special kind of mind map. I wanted to try it with one of my micro-product ideas.
“Can we make it better” (#cwmib) has been rattling in my head for a while. I got a domain name and tried a couple of implementations but was never satisfied with it. Then I saw this tweet from Paul Graham. I also happened to read about impact mapping on the same day. So I decided to combine the two.
“Can we make it better” essentially works like this.
I write a piece of code. A class, a function or a module or a tiny utility. I have the feeling that it can be improved but not sure how. So I share the code with the rest of the world and request people to take a shot at making it better. It is not a challenge but a request for help.
A bunch of developers see this code and think they can make it better. They take the code, improve it along one of the vectors – simpler, faster, more evolvable, more maintainable, more elegant etc. They rewrite the code or modify it and submit the mod along with an explanation of why it is better. Several people try the same. We all learn from each other. A healthy debate (or a flame war) erupts. But we all learn something from it. Here is a very early impact map from this idea.
* Even though, I use a code snippet as an example, it can be done with any artifact – a design, a logo, a survey form, a block diagram – anything you want to improve.
Let me know what you think.