Ten days ago I attended a workshop by Kent Harmon about knowledge capture and re-use. It was nothing ground breaking new, it was not rocket science, and still it was fascinating.
Kent reminded us how we learn. Or better how we used to learn when we were little.
By asking Why?
I used to ask a lot of questions and my granddad was great in explaining things to me. He showed me how to repair my bike, fix a hole in the tyre, and create things from spare parts. It was fun! Questions lead answers and to more questions and I needed to find out how this and that worked by taking it apart. I built model cars from Lego and Fisher Technik. Experimenting with transmissions and steering design. Then I built a model car with all the bells and whistles and was proud as.
These days I find my experience and knowledge gets in the way. I know too much that fits close enough (in my opinion) and jump to a conclusion. I have enough clout and be convincing that the suggestion can get implemented without much questioning. That is dangerous. And I have to thank Kent to have me reminded 10 days ago.
Design then Test is a common approach and a common mistake. We have a problem, design a solution, test it, refine it and implement it. Sounds familiar? We forget the basics. Asking Why? Asking why leads to problem solving. Asking why leads to finding the real problem. Asking why leads to multiple possible solutions. Asking why makes sure I talk to all people who are involved or have a vested interest.
Test then Design is the better way. It is what we used to do. Test the steering, find out how turning this wheel impacts on this part, how using this lighter material makes turning the wheel easier but is more prone to breaking on pressure. That’s what development is about finding the best solution not the first one that comes to mind. Test the alternatives then design the solution. There will be far less quality issues to fix afterwards.
There is another benefit, the individual tests lead to re-usable knowledge artifacts. Next time we don’t need to start from scratch. But careful! Don’t make assumptions – verify the validity of those artifacts when solving the next problem.