But you need to be clear if what you're doing is commercial or just a project. And if it's commercial, you need a business model that delivers value to paying customers. In effect, there are two classes of users in open source, and both are markets to pay attention to.
There are your non-paying community users and paying corporate customers. And you need to serve the needs of both groups at the same time. If you are not commercial enough, you end up like Apache. If you are not community-oriented enough, you'll never get the adoption and scale that works. Adoption must come first before there's an opportunity to commercialize. It's not easy to do this, but if you do it right, it works out well for both audiences.
What are the next steps needed for open source as a software production methodology to reach the next level?
The most important next step is the emergence of what I call "Enterprise 2.0." It's time for mainstream corporate IT departments to look at the best practices happening in the Web area and determine how to make their own infrastructure and applications more Web-based.
Companies like Google, Yahoo, Amazon, Travelocity are all running open source stacks meeting huge demands of their users for high availability, performance, scalability, and security. These are the same things that corporate IT needs. So I think there are lessons to be learned in making corporate IT more nimble and more cost-effective using open source software.
Open source now enjoys a rich and complex history, which is largely the result of trial and error over the years. What would you say have been the open source community's greatest missteps, or lessons learned?
I don't think there have been significant missteps at all. Here's an example. For 10 years, companies like IBM, Apple, and others attempted to dethrone Microsoft's lock on operating systems. They all failed and threw in the towel. Fast forward to today. What's the fastest growing server operating system? It's Linux, a platform developed by a student hacker out of Finland.
The power of open source did what billion-dollar companies could not do. The lesson learned is that if you solve the right problem in a transparent fashion, you can make good software very popular through open source. Open source software like Linux, MySQL, and others have greatly disrupted the old ways of the software industry, and that's put more power in the hands of the buyers. That's a good thing.
If you could wave your wand and create the perfect software "universe," what would it look like?
I don't know what you mean by "software universe" but I will take a guess. To me, the ideal software universe is an interoperable stack where you can chose best-of-breed software at each layer and know that it's all standards-based and will work together. And ideally you could pick the different pieces and still have a simple GUI install that makes it easy to deploy.
I'd also like to see some of the distinctions in how programmers work with data be simplified. Why does the developer need to know how data is stored in order to use it efficiently? The software should be smart enough to hide these implementation details. Also, I think developer productivity took a huge hit when we moved from GUI development with visual tools and frameworks to Web-based applications.
It's like we lost 10 years of improvement. Only now are things starting to catch up with frameworks for languages like Ruby on Rails, Groovy/Grails, Scala, Zend Framework, etc.
There has been a fair amount of controversy, competition, and dissent within the various open source communities. Does this lack of agreement damage the long-term goals of open source, or would you like to see more of this?
I'm not sure what you're referring to here. I think there's probably the same amount of competition and dissent in open source projects as in any other complex software project, particularly with regard to projects that involve participation with people coming from multiple different companies. It just happens that some of this takes place in public so it's more visible.