If you’ve exposed underling complexity or unnecessary choice in your software because you see those things as inevitable, it’s because your job isn’t finished. If you’re going to write GUI software for other people to use, do it properly, and treat those people like human beings instead of software engineers. If you want to expose complexity to the user and wash your hands of it, write command-line tools – or utilities that are used exclusively by other machine processes.
Tuesday, March 9, 2010
Engineer Thinking, by Matt Legend Gemmell, is so full of good things that I really want to re-quote the whole thing. But I won't. Here's the penultimate paragraph that makes the broad point: