This morning I was meeting with a client and going over the list of outstanding issues. The client chose to wait on some low priority issues because someone from the community was planning on fixing the bug in the next release. There were other features that the client didn't think it was important enough to add. In other cases, the client really needed the feature quickly so they wanted us to take care of it. During the conversation I stumbled on this metaphor that resonated with me: buying commercial software is a little like living in a condo while using open source is like owning a house.
When you live in a condo, you pay a monthly fee and the condo association decides what to spend the money on and who does the work. Having been part of a condo association, I know first-hand how groups make different decisions than individuals would. When you own a home, you have a lot more control over what gets fixed/enhanced and who you hire to do it.
Of course, the metaphor breaks down in the case of the community making a fix and you benefit without paying for it. House ownership is not like that - although I am holding out hope that someone will just show up and fix our garage door.
When you use open source software, there can be several ways to get a feature fixed or enhanced:
Do it yourself
Put a bounty out for the feature
- If you are working with a consulting firm to do the overall implementation, you can add this to the scope of the project
- Find a couple other organizations that want the feature and host a sprint
- Partner with a company that sells a commercial software style maintenance plan. There are several open source software companies that are built on this model. In my house metaphor, this is a little like hiring a management company to take care of everything. You pay a little more but you don't have to think about it.
The point here is that with open source you have many more options for how you invest in the software's continued evolution. You can opportunistically adopt new features that others have built and you can finance the implementation of features that you absolutely need to have right away. If the software is just perfect for you as it is, you don't have invest anything. In the commercial software world, you are required to pay but you have very little say how your money is spent - a little like that condo fee.