That is, you have choices. Basic choices. You make a choice that seems right, but later it can seem wrong, and meanwhile you've gone down a long road where your work seems wasted.
Over at Datamation, Serdar Yegulalp offers an interesting take on how this relates to Movable Type, the software this blog is written on.
I don't want to get into his accusations against this software or the decisions made by the people managing it. He does that well enough. But there is a broader point to be made.
Going with any software platform is a major commitment. It's a bigger commitment with open source because, in order to get the most value from it, you have to become part of a community, participating through bug reports, beta-testing, and (if you are capable) by writing enhancements.
Every piece of software you choose in open source is a platform. In the same way that going with Oracle or Microsoft or Apple means choosing a platform. As your time with a platform goes up, your investment does, too, and leaving the platform becomes increasingly expensive. This is lock-in, and proprietary vendors are great at profiting from it.
This chart on application lifecycle management simplifies and explains some of these complexities. Needless to say, they're complex.
But here's another thing. They also change.
Take the MT example. You can argue either side of Movable Type vs. WordPress you like, but what can't be argued is that WordPress has advanced a lot since 2007. It is now considered a full CMS, competitive with Drupal and heading toward enterprise scale. Movable Type 4, meanwhile, still calls itself a publishing platform.
This is not a criticism, just an observation, but the folks who run Movable Type made one set of decisions after 2007, those at WordPress made others, and users on both sides basically went along for the ride. There could be people, on both sides of the divide, who for one reason or another now feel bad about that 2007 decision. But their costs for switching have gone way up, as more and more content has gone into each package.
My point is that you can't be static on this. You can't just go through a process, with Roberto or any resource, make a choice and move on. You have to stay on top of it, you have to constantly evaluate it, and maybe (especially if you're a scaled organization) you should be supporting multiple projects so that when a day comes that you want to leave one, you can.
You don't just join a project's community, in other words, with open source. You join an analyst community. And you must continually do your homework to stay on top of new opportunities as they arise.