A few days ago one of my esteemed colleagues (I haven’t even checked to see which one yet) posted the good ol’ adage “Simple things should be simple, complex things should be possible.” While I know it can sometimes help us manage scope and deal with the fact that some things are just plain complicated, it can also result in software that sucks.
In my days at Microsoft, I had a program manager who would cite this maddening little phrase at least a couple of times a month. I would run a usability test showing users banging their head on the desk while trying to accomplish a core task, and he would come back with, “Yeah, it’s complicated, but it’s possible.” Great – but if users can’t find a feature, it doesn’t exist. If they can’t figure it out, it’s worse. If they tell their friends… you can forget Version 2.
So, while acknowledging that sometimes it’s difficult to boil complex things down into manageable chunks -
While conceding that there are multi-step processes that can’t be automated or condensed -
While freely admitting that it’s often better to put out the software NOW rather than waiting to perfect it -
While confessing that I have not always practiced what I am about to preach -
Let me unequivocally advocate that “Simple things should be simple, and complex things should be as simple as possible.”
Thanks – now descending my soapbox.