The Great Law of Unix and its progeny is to do one thing and do it well. Although Unix programs may have great complexity, they are focused and modular. This has certainly lead to the amazing success of Unix, BSD, Linux and other *nix operating systems in the tech world, but I think that this law is more generally applicable than simply ‘how to write Unix programs.’
My previous post is, in essence merely a re-statement of this law. When pushing a release or change to your product, keep your focus. It is far better to make a few changes that will make a big difference, than lot’s of meaningless fiddling (Though don’t forget that big and little changes should be measured on their effect on the user’s experience, not how much effort they require).
I learned this lesson again today when I was working on my Arch Linux install. I use LinuxMint for my day-to-day computing, but, in the interest of learning more about how Linux is built, I’ve been slowly working on getting a usable system on my second partition. Like with code releases, one thing I’ve learned is to not try to change too much at once. My initial plan was to build the entire system from scratch in an extreme minimalist style (OpenBox, SLiM, Chrome and a Terminal) but I quickly found that there is a great deal more complexity in doing that than I had anticipated and I’ve had much more success since switching to XFCE and more ‘mainstream’ technologies.
Some day I will probably reduce my system even further, but for now, I’ve learned that minimalism is a process of taking away more than it is a process of adding the minimum amount possible.