As an architect, I’m sometimes asked to evaluate and/or choose platforms for software, web sites, and so on. As you might imagine, choosing a platform can be an enterprise-critical decision, and one of the big forks in this road is whether to consider open-source software.
I’m not going to touch that debate here – this tends to be a pretty religious point with a lot of people, and I’m not sure I can add too much value to a religious debate. Instead, I’m going to assume that you’re at least open to open-source software and you’d like to evaluate some alternative open-source alternatives.
The factors you’re evaluating in an open source platform really aren’t too different from the factors for a closed-source platform:
- Community size and stability
- Ability to extend / grow
- Indirect costs
Without a doubt, the most important factor of all for open-source platforms is the size and vitality of the community, which ends up being pretty vital for the long-term viability of the project. While it’s certainly true that you’ve always got access to source code if you need it, you really don’t want to count on that if you can avoid it. A large, active community implies a bunch of good things for the platform:
- Lots of people have already evaluated and bought into this platform. No matter what you experience on this platform, chances are, you’ll have company.
- Lots of contributors means that the platform is more likely to keep growing.
- An active platform will get important update (like security patches) more quickly.
- A large community means a large market, which means lots of people offering services. If you need something, and you can’t find it for free, there’s a good chance you can hire someone to help you.
- If you’re looking at a platform that supports some sort of extensions, plugins, themes, etc., a large community usually inspires more people to contribute to these pools, which means more choices for you.
- With any luck, you might even be able to find user groups for your platform of choice. These groups can help you with free advice, as well as put you in contact with other people who can help answer your questions.
One last thought: consider where the platform gets its funding. In some rare cases, open source projects are funded entirely by donation, but when organizations reach a certain size, there really has to be a plan to pay the bills. Watch for “freemium” models, where certain functionality might be available in a “community edition” of the platform, but the latest and greatest stuff is available only to paying customers. This certainly isn’t a deal-breaker, but understand that you’re going to have to wait in line for new stuff, or deal with an upgrade to a paid version at some later point.