Sense and Simplicity

on March 18, 2007

The book Getting Real – written by the web-company 37signals – there are many interesting things to be found. Many of those things can be interpreted very philosophically, even tough this book is all about practice. The key concept in Getting Real is building a successful business using simplicity.

The recent years I’ve been doing a lot of software development. As most young learning-developers, I would look back at my six month old work and say: Hmmz, why the hell did I do it like this? I’m convinced that all software developers go to several stages during their careers and I’m also convinced that it takes you at least X amount of projects to reach a senior level. One of the phases I could qualify myself in two years ago was the ‘solving the meta-problem phase’. This is a known phenomanon in the IT where people not solve the actual problem but the problem to a problem. (For example building a message delivery system while the customer wants a simple email form.) The past year I’ve started to actually listen to one of the oldest software wisdoms out there: KISS: ‘Keep It Simple Stupid’.

Getting Real gave me another push towards ‘simplicity’. And now, I finally saw the light :)

One of the most ming bogging examples of simplicity is the phenomenon of emergence. The best example of this is DNA, a simple set of instructions which grows to something complex which is adapted to the environment. Also, making your software’s code more simple creates many advantages for both developer and user.

Simplicity isn’t just something we find in the architecture of life and systems but it’s also something we can apply to human society. Today, I went to the Ginza Apple store where I let my girlfriend buy a MacBook. In the back of the store there were two big elevators. One for going up, one for going down. There was no button to call the elevator, we just had to wait. Once the elevator came, we got in and were kind of confused, no buttons? Yes, just wait and it will stop at all floors. Now in a way this elevator can be considered very unfriendly since we had to wait. But the next time we got in, we didn’t spend any energy on thinking! There was no choice. And that’s another interesting point, choice.

Also in Getting Real, which is mainly about web applications. They demonstrate how their products outdo their competition because they are way more simple and therefore easier to use. I think choice is another important factor. As you might have read before, it’s a fact that choice is one of the main psychological contributors of unhappiness. This is well-explained by Barry Schwartz on TEDTalks

These two aspects, simplicity and the social effects of it, make Philips Electronics’ statement really profound: ‘Sense and Simplicity’.

After playing around with the Macbook and after riding the AppleStore Elevator, I believe. Sense and Simplicity.

Diversity VS uniformity

on September 04, 2006
There are many different programming languages out there. Each of them have profound cultural implications to their programmers. Programmers that learn new languages every once in a while find themselves travelling through different geek-culture warzones. Since one year I settled down in Ruby land. For me this language is unique, unlike any other language I have ever seen. One could view Ruby as the mechanical version of a natural language, because it allows people to extend this computer language like a natural language.

Python and Ruby programmer’s mostly oppose eachother, although they can agree on one thing: PHP is the devil. Python and Ruby branched from the same ancestral tree but have significant cultural impacts. Like Java, Python embraces the principle of uniformity, whereas Ruby embraces the principle of diversity. One could argue that the latter might be more suitable for most of the current (european) political models :)

Now, I’m not saying that Python is for communists. Actually, I’d rather not dirty my hands on politics. But I do think these principles have significant cultural and economical consequences, respectively these are the working environment and the productivity.

I’m highly convinced that Ruby has a much greater potential for both. Programmers can program in their own style, they can even look at it as art. Like a columnist loves writing articles, programmers love writing their kung-fu code. I wonder wether this same columnist can have the same artistic joy in China.

David Heinemeier Hansson, the inventor of RubyOnRails, says beauty leads to happiness, hapiness leads to productivity . I do agree that the programmer’s freedom in creating this hapiness contributes to the productivity, but I don’t think it’s enough. To achieve the full potential of Ruby’s productivity, we need to adjust our development methodologies to this awesome language. Rails makes a good start by facilitating for example unit testing.

In short, I think Ruby is THE language for the new software world and a gateway to new ways of thinking.