“Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.”
– Antoine de Saint-Exupéry
My interests in the concepts of minimalism as a lifestyle are constantly growing since I read about it a couple of weeks ago. It just makes sense to me. So I came up with the idea to look for signs of minimalism in computing. The results overwhelmed me - but read for yourself.
Just look at Apple products like the brand new iPad. A screen, a button and that’s it. On the backside there’s the company logo and the name of the product. That’s it. Minimalistic and beautiful. Compare an Apple laptop to some Windows machine you can grab at the local store. The latter is full of shiny sparkling stickers informing you about all the inside parts nobody is interested in after buying the device. Even the operating system is cluttered with software nobody needs. Open the lid of a MacBook and neither will you find any sticker nor third party software. This is neither a Windows flame nor an Apple hype. Admittedly, I’m kind of obsessed with the Apple philosophy (though I definitely don’t endorse every of their moves) and their products. Still, it’s just one example. Note to the reader: More Apple related examples likely to follow.
Have you seen Transmit by Panic? Even if you’re not a Mac user, I recommend having a look at their site. It’s brilliant! The program itself does one thing: It’s an FTP client. And I can tell you it does its job very well! It’s gorgeous and a joy to use. Somehow it manages to keep the interface clean and minimalistic all the time. I love it. For the sake of completeness: Transmit 4 was released very recently and is not bug free yet. One of them is quite annoying for me. However, that will hopefully not last for too long and, apart from that, the program is the perfect tool for the job. Update: since the time of writing this post an update has been released. All bugs gone :)
I can’t remember any statement of 37signals saying they follow minimalistic principles. Nevertheless they obviously do. They are proud to be a small, slow growing company with a loyal customer base. No more than about a dozen employees and the will not to hire until absolutely necessary works pretty well for them. Their company blog Signal vs Noise with tens of thousands of RSS subscribers speaks for itself. Have you ever tried using one of their products, like Basecamp? A sophisticated feature set and a minimalistic UI design await you. To be honest, I tried it twice and it just isn’t the right tool for me. But that’s absolutely ok! A software trying to fit everybody’s needs will eventually end up being crap. It doesn’t work for me but it works for an incredible amount of other people.
Agile development is steadily gaining popularity. Let’s have a look at some of the common principles:
They all support the minimalistic approach. Avoid needless clutter and focus on the essential instead: the product. Keep teams small and communication-overhead low. Set small, tangible goals to prevent stress and lack of motivation.
Consistent test driven development and steady refactoring keep your code clean and readable. Have a look at popular principles like DRY and YAGNI. They’re both truly minimalistic approaches. Refactor your code to live with less and just do the simplest thing that could possibly work.
“If you’re not sure what to do yet, do the simplest thing you can think of.”
– Steve Conover
As you can see, minimalism is everywhere when it comes to software development. This fascinates and encourages me to go into more detail about that topic in following posts. Questions arise like whether a minimalistic lifestyle supports a developer and in which ways. Thanks for reading and see you in the comments!