Reading Steve Yegge’s rant about Google not being a platform reminded me of something I originally learned after getting familiar with financial services companies: market-makers are more successful than speculators in the long run.
The same works for software development (and perhaps everything else): successful companies build their business around providing a platform, not a specific product. Making everything a platform encourages good design and a lot of good practises. Becoming a platform also helps you offset potential risks associated with building products by letting others take those risks. This is similar to how living off agent fees and market friction looks more attractive than having to risk making a wrong market decision. It’s a little uncool, but safer.