Thursday, February 24, 2011

Antitecture

I'm experimenting with a new way of looking at software.
It's the wrong way of looking at software, but I'm experimenting with it anyway.
I call this antitecture - short for anti-architecture.
It's an ideology that claims that architecture is evil and is 100% a bad thing. I hope to make this into a cult and make followers pay me millions of dollars. but I digress.

The idea behind it is that architecture is about scale. In non-software architecture, you design a house on paper and then the house almost literally scales to its actual form. Fixing issues in a small scale later prevents having to solve those issues on a larger scale.
But a lot of what we do today in mobile user-experience doesn't need to scale. It's a bit of content and data that we need to present to the user in a nice way. Not difficult in itself, but gets difficult when we try to apply architecture and concepts to it.

So, if I write a music library that's divided into folders, I do just that - have a data structure of music divided into folders - no "metadata", no "tagging", no concepts. If later I'd need something more sophisticated, I'll do it later.

The bogus theory behind this ideology is that end users have simple needs, and thus the software that serves them should be simple. Our problems as developers begin when we try to apply concepts and architectures that we learned when we were in the "scalability" cult, which is maintained by the illuminati that controls the computer-science universities and the government, to a software discipline that doesn't require scalability, like some user-interface solutions for example.

Of course, some software does need to scale and that's where architecture is a good thing - but I was trying to make a point so don't confuse me with my fallacies.

Seriously though, I think my favorite way of looking at this is: architecture should be a function of scalability. The less your solution needs to be scalable, the less architecture it requires.

No'am