So you're in a software design discussion and someone informs you that your idea is too complicated. It simply won't work because there are too many moving parts. OK. Let me understand. Because there's a widget that connects to a ball and a little slide with a twist at the end, it has become too complicated? And we all know that complicated things fail, right? They catch fire almost instantly under the sheer weight of their "complication"? OK, that's not what you mean. Tell me then, what do you mean.
I mean that designs with too many things are not simple enough to understand and maintain. OK. Fair enough. Can you elaborate? What are the "things" we are counting and how do I know when I have too many? Well, that's easy. The "things" are the system elements; the ball and that stupid slide. Don't get me started on the widget, it's all just too much - I mean more than is needed to fit the purpose.
But there's only a widget, ball and slide with a twist? That's just 3 1/2 elements. Should we kill the twist? That will make the element count 3; will that be a better design? Fewer parts means less complication, which means better design, right?
No, I'm afraid that won't do it. To make your design truly good you need fewer "moving" parts. It's not just the count it's the twistiness that leads to complication, for instance, that twist at the end of the slide. But I like the twist; we need the twist, the customer requires a twist if they want to see that ball swoosh. I'm sorry, it's just too complicated. And remember, complication is bad.
But wait, I've seen many complicated things that work pretty well. Aren't such things well designed? Take my car for instance, it must have thousands of parts and I know it has twistiness, lots of twistiness.
Saturday, August 8, 2009
Subscribe to:
Comments (Atom)