Every Monday, we have a Weekly meeting with all of our employees, were we discuss topics of interest to everyone at AOE. Though this is an internal event, I would like to make an exception in this case and talk about the value of Open Source to AOE. We are firmly committed to the idea of Open Source, and in this blogpost, I would like to explain why it is useful for companies to contribute to the Open Source community and why we encourage our developers to contribute as often as possible.
AOE’s history originated in the TYPO3 community; the first AOE projects were based on the Open Source CMS TYPO3. To this day, many of our largest customers like congstar run on TYPO3 as their Enterprise CMS platform. AOE’s goal was to become the world’s biggest TYPO3 provider and the CMS helped us to grow quickly as a company. However, over time, we wanted to expand our footprint beyond TYPO3, as the business environment was increasingly moving toward E-Commerce platforms. For this reason, we started working with the E-Commerce Software Magento.
During this time, we spent a lot of time working with and contributing to the TYPO3 community. Many of our developers contributed code to the community, working either on extensions or on more extensive code for the core itself. Our employees also actively participated in the Magento community.
So, as we were using Open Source Software for our projects at AOE, we were also helping the communities to take the next steps in moving toward developing mainstream Enterprise functions. Particularly as AOE focused on Enterprise projects, we developed a lot of code that big companies really needed, such as workflows, scalability, Enterprise features, etc. AOE grew from a TYPO3 company to an E-Commerce company and Open Source provider.
So, why are we actually so involved in Open Source? Some people consider Open Source to be free, that is, users don’t have to pay money for it. Some even regard Open Source Software as “good” and proprietary software as “evil”. Others view Open Source as a “religion” of sorts. While all of these points might be valid to some extent, none of them convey accurately or completely why we believe in the power of Open Source.
There are many different reasons why we prefer Open Source to proprietary software, even if selling proprietary software would generate higher revenue. Basically, there are four main drivers behind why we at AOE prefer Open Source:
Firstly, with Open Source, customers spend less money on the software itself. Hence, there is more budget to be spent on working on the project than if you pay higher fees to the software vendor. The result is a better value proposition for the customer.
The second aspect is that we strongly believe in collaboration. We believe that you can create better things together than by doing it alone. Even in a growing company with great people and a lot of expertise, you are limited to a certain extent. These limitations can be fixed through a strong community. That is very much what Open Source is based on – creating value together.
A very important business aspect, especially for larger companies that need customized software, is flexibility and control of the software. We often had customers that wanted migrations from proprietary software to Open Source software. When we asked them “why”, they usually answered that they felt locked in, as they couldn’t adjust the software to their needs, had to wait for software releases by the provider, had to pay money for long-delayed updates and so on. They felt trapped. In the industry, this is known as “vendor lock-in”. Open Source software gives customers much more flexibility and control to build the kind of software that they want.
The last point is a bit idealistic, but we think that it is cool to work together in a global community on an Open Source project instead of competing against each other for customers and revenue. Even if this is the least-important point from a business point of view, it is the most important aspect for many developers: To spend their free time contributing to a community. If you ever attended an Open Source conference, you probably know about the pleasant feeling of collaborating on a project together in a big global community – it is just a lot of fun and creates a great atmosphere. It’s basically a natural thing, people want to work together and help each other, instead of thinking of “how can we sell more?”
Beside these four core drivers for Open Source, there is another major advantage: Most of the innovation in software during the past ten years originated in Open Source. All the cutting-edge stuff we use today, such as Docker, Kubernetes, Akka, Go, etc., only gained the traction because it was made Open Source. In our opinion, Open Source has become the dominating force in the Web. All of the old-school players have been left behind when it comes to innovation.
So, what can we say about our contributions to Open Source communities? Checking our account on GitHub, you can see that we are contributing to a lot of different projects, such as Magento, Solr, ViewJS, jQuery, Jenkins, etc. To date, we have 262 projects and 88 got commits in 2017, with a total of 2,432 stars.
Looking at the activity, you can view a graph of commits on GitHub. Checking the commits for the past eight years, you can see many commits to the community between 2013 and 2016. Unfortunately, in 2017 we had quite a drop-off. Naturally, there are reasons for that. For example, we had an extremely busy year from a business perspective in 2017 – with our major OM³ project. Maybe, no one had the time to publish code. Nevertheless, we clearly want to say that this should not develop into a trend, but should remain a one-time effect.
Some of our projects were rather small, usually internal projects (for example, we created our own meals tool, which the entire company uses to book lunch with every day), but we also contributed to some bigger projects, such as Searchperience or the AOE Tech Radar. In addition, we are planning to Open-Source our FlaminGO project in the near future. It’s also great to show that we continue to contribute to existing stacks, not only to our own software.
Looking at Q1 of 2018, we have a good volume of commits, it is nearly the same performance as the average from 2013 through 2017. But, though AOE had almost tripled in size, the commits performance is relatively flat. This means either that we don’t contribute as much on average any more, or that the contributions are still by the same core of people as before.
We don’t really know the reasons for this yet. Maybe there are just some open questions that need to be answered; we want to provide our employees with answers to some potential questions.
One aspect, which might also be interesting for our clients, is the question of conflict vs. potential of publishing software. This is obviously a very valid issue, because you can’t just Open-Source a complete software stack, such as our OM³ solution. This wouldn’t make sense from a business perspective and would also open the door for competitors to use as a foundation for building their own solutions. This is not the idea, of course, and we have to protect our solutions to a certain extent.
On the other hand, our software solutions primarily consist of Open Source software, or more precisely, on Open Source stacks that we have extended. So, it might look like AOE is packaging and selling these Open Source stacks as a new product, but it is more accurate to say that we create a Software as a Service package based on Open Source Technology. With this approach, we can create a lot of processes and services, thus offering even more value to our clients.
It is therefore important that developers carefully consider what they can contribute to the community and what might be harmful for the project. In a nutshell, it is not useful to contribute the entire software package to the community. However, it is useful to publish certain portions of what we are in the process of building for our solutions so that the code can also be helpful for others. A great example for this is our FlaminGO project, which is an E-Commerce framework in GO created by AOE. FlaminGO can be very helpful for other companies working on E-Commerce projects. On the other hand, it is in AOE’s interests that other developers use and contribute to the FlaminGO framework, thus making the system better.
When you ask yourself “Am I allowed to publish this to the community?”, the best way to find out is by answering the question: “Am I endangering what we are trying to achieve, or am I helping the different parts of the solution to get better?”
Contributing to Open Source communities requires extra time from developers. It is clear that when you contribute code to the community, you also need to provide a certain amount of documentation. In addition, people might come to you asking you to adjust the software to their specific needs. Simply stated, it takes time, commitment and effort to contribute and do it well.
To summarize, we want to motivate people to increase their contributions to Open Source communities. We want to emphasize that AOE continues to believe in the idea behind Open Source; it is still an important part of our DNA and we think that it is very important to not only take from the Open Source community, but to also give something back.