[]RSS

About Archives Artwork Comic Contact Philosophy Projects Tags

Vista woes and anti-dog food

[Comment]

December 10th, 2006 in Links

A mostly-unhappy rant about Life with Vista.

Dog Food and Inbred Software

[Comment]

February 5th, 2005 in Rants. Weblog

So you have yourself a software project. Maybe it’s a Free project, a commercial product, or some internal tool. How do you make it better?

Conventional wisdom suggests that you should use your own software as soon as it’s functional; to gain a first-hand perspective of it’s qualities. The principle encourages change by inflicting software on the people building it. And given the right circumstances it can work.

dogfood.jpg I was talking to a future employee about Microsoft eating their own dog food. In our discussion, I realized that the principle is incomplete: Microsoft, for example, has followed the approach religiously for over a decade, and they still struggle to produce average quality products. I use a lot of Microsoft software. While workable, it’s littered with many points of frustration. This isn’t just my impression either:

You can’t even be mad at them, since they’re only programs. Although, come to think of it, you can be mad at programs; Microsoft Word has inspired me to rage far beyond anything these robots engender. — Roger Ebert (review of ‘I, Robot’)

Microsoft software isn’t improving, and they use it a lot. They’ve grown accustomed to the quality problems, accepting them, and redefining their perception of quality. They’re inbreeding quality.

It is a case of inbalance and skewed perspective. If all you use is your own software, it becomes your new perspective. What are you going to know about alternatives, if you don’t use them in-depth? Artists draw inspiration from works other than their own as it’s a healthy approach to perspective.

You really want to use and get to know many different products, including your own. Contrasting your approaches to others is critical, as is the willingness to question fundimental requirements and assumptions. You need to understand how other products are built, and how they balance usability, scale, and complexity.

Change is difficult too. If you’ve always used one approach, there is a good chance that you (and your teams) will fear, or botch a change to something else. Worse, if you don’t know anything about alternative and historic solutions, it makes it difficult to comprehend the scope and effect of change. A great product doesn’t exist without balance, understanding, and perspective.