Tuesday, April 04, 2006

Complexity Kills

From the NYT article, "Windows Is So Slow, but Why?".

In an internal memo last October, Ray Ozzie, chief technical officer, who joined Microsoft last year, wrote, "Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build and test, it introduces security challenges and it causes end-user and administrator frustration."

I guess the problem is that getting simplicity right is often harder. When you define things in clear terms, it is often easier to see that one idea is winning out over another, rather than shading things in compromises. On the other hand, just being simple without solving the problem doesn't always help.

I think Microsoft could wave the magic wand and say- no more backwards compatibility testing. They could support old OS programs in virtual machines.

There are plenty of complex problems- conflicting requirements, ad hoc processes to automate, personalities, etc. There are a lot of strategies for dealing with this.

I look at agile development practices as one approach that can help- start small. Don't build the whole thing before you put it in front of someone. Test every little bit. Respond to change. On the other hand, it seems to be about creative problem solving. This is often giving people what they need, not what they ask for.

I really hate the saying "keep it simple, stupid". I think it should be "keep it simple, smart".