Complexity happens when you don't understand a problem fullyIt's true. We, the software craftsmen, have a very difficult task upon us: building tools for proposes we don't understand fully. I got it screeching my fingers with a bit of bioinformatics. In finance is no different. Today I saw poor JMS queues abused to dispatch themselves multiple times before aborting. It's not fair. How can you manage the development of a piece of software that does thing you don't understand or in which you put complexity without serious business reasons? Why we do it? Because we listen to stake holders and we do not try to understand: we do exacly what they say. Human beings thinks for use cases and even for exceptions. I do not want to be that kind of engineer ... I want to be the good kind. I want to be the kind that extract general rules. I want to bring order into chaos. Because software loves order. And this is the beauty behind the screen and the keyboard, the chance we got to be artist instead of brainless coders.
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.