I find the best UI designs to be a blank canvas that you can do whatever you like within, in the way that you would like to do it, going three decades back and three decades forward.

Whether it was the Classic Macintosh, or Plan 9, your favorite Lisp machine, or a UNIX Workstation, or the Creative Cloud suite: the best and most productive UI is part of an integrated heuristic system intentionally designed to enable new capabilities while maintaining an honest commitment to its own design traditions.

I think in UNIX culture, you can call it the Principle of Least Surprise, or maybe that was the Macintosh? Either way, any good System is going to follow that principle to some degree.

If you are a writer, there are many different ways you can go about writing as a profession. You can go for the old pen and paper, a UI that has served writers for millennia. You can opt for a typewriter, and typewriters are still around and work. You can customize your emacs environment to the Nth degree and probably port it forward to every new laptop you buy until the day you die. Maybe you have a PC from the 80s you run WordStar on and pump out best selling novels about once or twice a decade. Or you can hop onto this invite-only hype train called Writely and get to work there, and wakeup one morning to find it is now called Google Docs, everything changed and nothing makes sense. Maybe tomorrow Google Docs will be something else. Or if you have it there anyway, you might even opt to write in Mathematica or Microsoft Excel or OmniOutliner or Notepad, rather than install yet another application, this one styling itself as a “word processor”. All you need is a place to put words where you can change them.

It isn’t the system that is special. It isn’t the tool that is cool. All that matters is the one using the tool, and all the mind behind the matter manipulating the tool really wants to do is whatever thing they were originally using it to do in the first place.

Does that mean software shouldn’t have new capabilities? Absolutely they should! So long as they are there to serve the users, and you don’t plan to yank the rug out from under them. That means capabilities should be added judiciously and with intent. Improvements made where there is room for improvement. UI changes made to accommodate the addition of these new capabilities, within a metaphorical structure that the user can mentally place it within.

“Less is more”. Applied judiciously, and conscientiously with empathy towards your users, those three words might save you and them a lot of bother. Applied without constraint or concern for your users, those three words are just a curse as you take away from your users and hand wave their concerns because you launched a feature too soon or in a slipshod manner and you suddenly have commitment issues.

This perhaps turned into something of a rant. I often find the software I am most delighted to use is the kind that looks the same as it did 10 years ago, give or take some minute differences. The software I am never delighted to use is the kind that changed how it worked because some designer got their hands on it in the last 10 years and broke a usage pattern they didn’t think was important, my usage pattern incidentally, and most of those changes were not so much driven by technological changes, but by whatever flavor of the day weed was making its way through the UI/UX world that month. My only defense against their whims seems to be to use tools I have the source for and if it doesn’t exist in that form yet, make it myself.