Monday, 8 January 2007

I'm it

I've been tagged by Alex to tell everyone 5 things about myself that people probablly don't know. It's been interesting reading all sorts of peoples blogs on this. So I guess I'll join in :-)

1. I did martial arts for 16 years, Karate and Bujinkan (Ninjutsu)
2. I love studying philosophy, psychology, and religion. I'm interested in peoples belief systems, my beliefs, and why we have the beliefs we do. I am intrigued in how powerful ideas can be in changing peoples experience of life.
3. I lived in Italy during my teens as my father was doing research in Turin. I remember we were living in a place with 14th and 17th century furniture and "ladies of the night" patrolled directly below my bedroom window (we were on the second floor)
4. I suffer from insomnia to the mystery of myself and doctors.
5. I've never been to a concert ( rock, pop, classical or otherwise), this surprises many people, I have no idea why I've never been to one, it's not because I dont like music, oddly enough it's never occured to me to go, and there's been lots of times where I almost ended up going to one with friends but for some reason it never happened.

As for tagging other people, I'm going to make a dead end :-)

Design Rules

There are no design rules.

We create software by creating levels of indirection. Design is about having effective ways of manipulating these levels of indirection.

There's no one way of doing this. There are lots of ideas on how to do this. Some ideas are super effective for creating designs that solve certain types of problems but this dosn't mean they will always be the most effective

I think it's therefore a good thinking tool to not categorise oneself as a particular kind of designer, eg "OO", "Functional", "Procedural" etc as it can limit your design choices unnecessarily. I also think categorising your design as "OO" or otherwise can also limit your design options.

This doesn't mean you apply every idea that all the other cool kids are using. Your designs should be reasonably coherent and understandable and not a big messy mish-mash of ideas. Though it does get tricky when you want to introduce new ideas and techniques into an existing system.

So what's my point?

There are no rules. However, coherent and understandable systems tend to have "pseudo" rules. The trick is to not mistake pseudo rules as fundamental rules.