This piece on a useful device with a retarded marketing-driven approach to third party developers reminded me of something that's been bouncing around in my mind for a while.
If you want to give your computer product the best chance of success, the key is to make it interoperable with other software. There are plenty of tools for this: USB/Firewire connectivity, 802.11b, HTTP, scriptability, open file formats, open APIs for third party developers. A product that everyone else has their hooks into is a product that is easy to adopt and hard to give up.
If you want to make your product fail, then don't do this. It's as simple as that.
Be conscious of where your money comes from. Don't be greedy. Too many companies crap on their cake by trying to get a piece of everyone else's action--"we'll have to approve everything you write" or "we'll sell you an SDK". Your job is to make the best widget you can, not to dictate the hows and whys of other developers. Be an aid to creativity, not an obstacle. Help these people who are going to make your product the Must Have Item of the Year, don't try to charge or obstruct them as they do so.
Of course, if your product is junk then even third party developers won't help you. The art of making a good product isn't something I can help you with. But if you have a good product, the active developer community that interoperability offers can be both a sales force and make customers happier. And how's that bad?
--Nat