“Patterns are all the brain knows about.” – Jeff Hawkins
Tim is going to talk about “Open Source Business Model Design Patterns”, in the style of Alexander (who started the Patterns movement) instead of the style of the Gang of Four.
What if we don’t recognize patterns? Tim asks.
Hmm…. Tim says that IBM changed all the rules in the PC market, but then failed to see the pattern. Instead, Dell embraces the commodity market and Microsoft gets the software market when IBM “signs away [the] future”.
Tim asks who in the audience uses Linux. It seems that half the audience raises their hand. He then asks who uses Google. Everyone raises their hand.
What he’s getting at is that Google runs on Linux. So do lots of other web apps that people use, so everyone is actually using Linux without recognizing it.
8:16AM – But… these open source apps on an open source platform are built by “fiercely proprietary” companies. Source code is never distributed, since it is accessed via the web. The value in an app like Amazon is in the data as well as the code. So the open source licensing does not seem to match.
8:20AM – The industry wanted to replicate the desktop stack, but with RedHat being a benevolent master of OSes, but instead we got “proprietary software as a service” at the top of the stack on top.
The pattern is how to create value in the context of previously high-value industries being commoditized.
8:35AM – Architecture of the system is important. Tim quotes Linus saying that he couldn’t do what he did for Linux with Windows, presumably because the architecture was different. A small core with modularity is important for open source. He cites things like CPAN and Apache.
User-Centered Development – release early and often; involve your users in development.
Don’t Differentiate on Features – Instead focus on operational aspects like speed of testing, assembly, and integration like Dell. I think the caveat here is if you are in a commodity part of the industry or not.
Follow Industry Standards – Users want choice, but not too much of it. I think this is one that power users/developers have a hard time with, since we tend to imagine all options as being equal. We need to realize that the vast majority of users get overwhelmed and would rather have a few good, well-tested choices.
Software as a Service – Users don’t want computers, they want the services they provide.
The Perpetual Beta – Google continually beta tests its newest products. I think this is cool since it keeps the company more in tune with the wants and needs of users. I wonder how this balances out with how users are overwhelmed with too many choices.
Leverage Commodity Economics – Because services need to scale. Tim says that Google will never give away its sysadmin secrets in how it maintains its huge server farms.
8:45AM Tim quoting Broderbund – “Productivity software is apps where the data that the user provides is more important than the data that we provide.”
Amazon – a killer app. Leverages community. Reminds me of the lessons from the book Net Gain.
Users contributing content is just as important as users contributing code. This is true for Eclipse as well. I appreciate all the articles in Eclipse Corner because it helps unlock the value in the codebase. Also, bug reports are key in improving the code.
Tim notes that only a small percent of users will actually participate. This applies in many contexts. I used to be on the Condo Board when I lived next to the Metro and there were probably only 10% of the owners who participated.
Network Effects by Default – Set inclusive defaults for aggregating user data. Don’t go through the steps of asking the user, but instead assume that if user emails someone 3 times, that the user is a friend and add them to the address book. This is a little scary in terms of privacy. I’d lean towards more explicit click-throughs to get permission to do this kind of stuff, even if it results in less participation. Opt-in is much more empowering to the user than opt-out.
The Long Tail – You can make money off of small niches.
The Mechanical Trunk – Build your core with traditional (static?) languages like Java and C++, but built your interfaces with templating systems and dynamic languages like PHP. I’d add Ruby and Ruby on Rails here.
9:00AM – Liveblogging this seems to be helping the ideas soak into my head. I’m enjoying this especially because I’m interested in the business side of software. I got a minor in Economics to go along with my Computer Science degree.
Software Above the Level of a Single Device – Think of iPod + iTunes. iTunes runs on your Mac or PC, but it travels with you on your iPod.
Platforms and Tools (The Eclipse Pattern) – Third party developers are an essential part of the success of new platforms. Therefore, build tools that help developers extend your platform. I’d have to agree that Eclipse has done the best at this, especially over NetBeans and IntelliJ. The PDE is very helpful in getting someone started on building plug-ins and helping them maintain it. The new RCP wizards are going to do the same for RCP apps in Eclipse 3.1.
Tim mentions Ruby on Rails. “Programming without doing a lot of programming to do database applications.” Exactly.
Intel Inside – LOL. Maybe IBM PowerPC Inside? – Inside every open system, there are proprietary, single-source components. Hmm… AMD is still around. But in any case, try to find ways to become the single-source (or the Gorilla in Moore terms) for an essential subsystem. Think also of Cisco. This seems like an “evil” pattern.
Dual Licensing – JBoss and MySQL. This might allow an “Intel Inside” play described above, but Tim thinks that it probably doesn’t since both are accessed via open standards like J2EE and SQL. Hmm… but Oracle has done this (though without dual licensing.)
Own the Namespace – Restrict the data via legal means like copyright. This brings to mind patents. Tim cites the domain name registrar business. This seems like another “evil” pattern.
Tim closes by encouraging us to look for patterns.
Epilogue: Afterwards, I saw that Tim uses a PowerBook. He said that he’ll probably be writing up the ideas in this presentation. I’m looking forward to the article and/or book. :)