Poor, transparent tools
Posted by Yannick Martel on October 26, 2009
Coming back to Tools for Conviviality, I want to share some thoughts on software architectures. Software products and associated frameworks on which we build them are tools. As such, the criteria of choice is usefulness to our goals. They should be servants.
Ivan Illitch advocates that “the simple, poor tool is a humble servant; the elaborate, complex, secret tool is an arrogant master”. How many times have we seen choice of tools which we do not master? Which are “elaborate, complex, secret”, and the more fascinating because they are? Can we mention:
- Complex, poorly understood architectures, based on new concepts which are barely understood?
- Huge packaged products, which contains the expertise of generations of analysts and programmers, but which you don’t pretend to master in a lifetime?
- Sophisticated frameworks, which are supposed to do it all and are the best you can get. But cannot sometimes the best be too much?
- Assembly of “best of breed” products, which can turn into “poorest of suite”?
Have you seen these? For myself, I have seen them too many times. With Ivan Illitch, I want to advocate a preferred choice of “simple, poor tools”, which can be mastered and are not too much for our hands, and this apply too well to our software architectures. Thanks to Tools for Conviviality, we have guidelines for selecting them when KISS is not enough. Guidelines which show us how to put at the center the human beings who are going to run, use and rely on them.