Saturday, February 21, 2009

Eating Your Dog Food

"Eating one's dog food" (EODF) is a pretty common phrase in the software industry. It means "to use the product that one makes".

For example, if M$ would eat its dog food, then all the computers in M$ offices, barring those for cross-platform testing, should be running Vista. But I suspect number of Windows XP and OS-X will be significant.

I observed not many companies actually eat their own dog food, at least not at all of my previous companies. Even for companies that do, the users are usually not the developers, and feedback either never collected, or blissfully ignored.

Why EODF is important? To understand this, we must first understand humans are selfish, and when something is not related to us personally, we don't really care.

However, if the developers have to reboot their machines every couple of hours, then they will crack their heads to stabilize the software. If the developers' lives are tied to the two-way radios day-in-and-day-out, they will write more maintainable codes, start using UML properly (or just stop using it altogether), hire more competent programmers, and test the software more thoroughly beyond just shouting "TESTING 123" on the radio at left hand, and passed the test when there is sound coming out from the radio at the right.

By enforcing EODF, this will tie the interest of the developers to the products they are developing. I have observed quite a number of products are developed and tested by people who won't be using them as regular users.

EODF should form part of the framework for US banks: First, bonuses are paid in the financial products that one sells, and vested gradually over a ten-year window. Second, impose a hefty fine and allow litigation for product responsibilities like what is in the automobiles or consumer electronics sectors. I believe in this way the Wall Street bankers will think things through before screwing the whole world for their own benefits.

No comments: