Part of the fun of being a product manager at Alfresco is the open source component of our business model. Product managers need to thoroughly understand the game they are playing, and open source software businesses differ from proprietary companies in important and nuanced ways.
The most fundamental decision that a business makes is in the choice of revenue model. They need to decide what type of revenue plan will meet the objectives of their founders, investors, and other stakeholders. Next, the business needs to select a software license, which determines the basic rules of collaboration and competition in the open source ecosystem. Finally, the business will make decisions about community governance and how much product management control the business will exert on the evolution of the product. I cover the implications of many of these decisions in my post on The Right Business Model for Your Community. Once that groundwork has been laid, the product manager can make the nitty-gritty decisions that enable the product to support the chosen model.
At Alfresco, I am responsible for products that follow an open core model. This means that our main source of revenue is from proprietary products that leverage the ecosystem created by the open source products. This is a good business model for providing predictable revenue while also developing innovative open source products. But it raises tricky questions about product differentiation. I have formulated a few principles to guide a strategy of differentiation in an open core product portfolio.
Look at how traditional portfolios differentiate
Some product managers get nervous about the community aspects of open source development; they think that none of their previous experience applies. Relax. Your previous experience with revenue modeling, driving upgrades, and licensing will translate well to an open core portfolio. You can learn a lot from freemium businesses and the way proprietary companies build developer and user communities. However, don't be deceived into thinking that you can continue doing business in exactly the same way.
Recognize that you are giving away value
An open source company will not be capturing all of the value its products generate. Not only will people use your products without ever becoming a customer, but your customers will use your free products as a negotiating tool to lower your price. You need to be careful that your portfolio differentiation strategy provides sufficient value for people to become paying customers.
The benefit of open sourcing a product is that you can attract people who appreciate using software that gives them specific rights that can not be taken away by a vendor. That benefit to the customer is exactly what gives them additional negotiating power when working with you. If you embrace this fact, you will see that it promotes a less adversarial relationship than that held by traditional software companies and customer loyalty is much higher.
Some people are simply looking for solutions that don't cost anything, and a freemium business model will attract these consumers without the complexity of open source. Don't confuse these people with your target customers, though they can often contribute in meaningful ways to the growth of your ecosystem. Some people and organizations are willing to trade any amount of money to save some time, and some are willing to trade any amount of time to save some money. Your business can benefit from both types of participants in your ecosystem, but don't waste your time trying to get the people who don't value their time to pay for your solution.
Open source value creation is a long game. If your investors' goal is to maximize revenue in the short term, it might not be the right strategy for you.
Remember the trade-off between adoption and upsell
The advantage an open core business has over traditional models is that sharing your intellectual property will accelerate the growth of your ecosystem, the adoption of your products, and the innovation of your engineering. You will only receive these benefits if you are releasing valuable code that people want to use.
These people will build their careers around the open source product, and their passion is a driver in the growth of an ecosystem. The more products, features, and innovations you release under the open source license, the more people will adopt your software.
Of course releasing everything makes it hard for a business to have revenue. If your goal is to maximize the percentage of your users from who you take money, your safest bet is to tightly control your products and aggressively licensing them. But for that strategy to work, you will need to have some compelling reason for people to adopt your products rather than those of any other software company. You are undermining one driver of adoption that can grow your pool of potential customers.
There is an inherent tension here, and your company will need to manage the trade-offs. The more you give away, the faster your ecosystem will grow, and the larger your potential customer base. But you are simultaneously removing opportunities you have to sell the products you are now giving away. Thinking about the incentives you are creating will help you find the right balance between adoption and upsell.
Pay attention to the incentives you create
In this business, product managers need to always keep in mind the incentives that they are creating in their open source community and how those incentives will shape the business in the future. Ideally, you want the members of your ecosystem to cooperate with you in the work of innovation and evangelizing. The more they feel like they share in the value that is being created, the more that they will be incentivized to grow that value.
The more you withhold value from your ecosystem, the more that other participants in your community will try to reverse engineer that innovation. This is a waste in the total productivity that your ecosystem could create if they were building something that you were not.
Alfresco found it useful to research the users of the open source products and learn about their business models. The company adopted a model that carved out space for independent consultants and developers to make a living around the open source products. These people were usually the biggest evangelists and best contributors.
At the same time, every market will have some percentage of freeloaders, bad actors, opportunists, and people that are willing to poison the well in order to get a monthly bonus. They don't care if the ecosystem collapses so long as they get a contract signed right now. For the good of the ecosystem, your model needs to offer some protection against these people.
Horizontal features should be free, vertical features can be paid
In order to maximize adoption, we want our open source products to be innovative and to solve problems that are widely experienced. Our proprietary products solve problems that are not as widely experienced, but for which people will pay a premium to solve. If the problem is too widely experienced, the pool of people in our community who will try to solve them leads to unhelpful competition. If the problem is shared by only a subset of the community, then it is likely that we are the only company interested in solving it and our proprietary solutions won't have much competition.
This particular guideline has a lot of exceptions, but it is a good default position from which to start an analysis.
If it is proprietary, it needs to add real value
You need to ensure that your proprietary products add significant value by overcoming difficult technical problems. If you try to commercialize a simple feature, regardless of how much value it provides the customer, you will find your community quickly duplicates it and has less confidence in your future stewardship of the open source ecosystem they have adopted. Senseless commercialization will make your community members wonder if you have a strategy that they can rely on.
Recognize that your differentiation will change over time
As you look at these principles, you will recognize that they will lead to different conclusions as your product, community, and market change over time. Things which you keep proprietary today will likely become open source in the future. In rare cases, you might find that you need to stop investing in an open source capability and should instead start building a proprietary alternative. If you are careful, both types of evolution can be done successfully without undermining the integrity of the open source product at the center of your ecosystem.
Though much of your investment will be in key competitive differentiators that you choose to ship in proprietary products, you will need to ensure a significant investment in your open source ecosystem to maintain a steady rate of innovation, or people will move to more promising communities.
When faced with a decision on a specific feature, I find it helpful to consider the extremes as summarized in this table:
|Give away all the value||Capture all the value|
|Maximize adoption||Maximize upsell percentage|
|Incentivize cooperation||Incentivize competition|
|Broadly applicable feature||Niche feature with value to some|
|Easy to implement||High technical hurdles|
|Product becomes more open over time||Key competitive differentiators|
You can read how my team applied these principles in the Alfresco Developer Blog: "Applying the Open Core Model in Alfresco 5.1" (PDF).
What principles do you follow to differentiate your products while keeping your open source community healthy? Please leave a comment or send me an email with your thoughts.