6 min read

Challenging Perceptions

A story about building solutions in a mature market where nobody believe in you, even yourself.
Challenging Perceptions

Sometimes, I've been asked about my last 10 years in entrepreneurship and what could have been the biggest lessons learn. In this blog post, I'm talking about one important lesson I learn, and I hope this will encourage some of you to go and create something yourself.

🥋 Seizing Opportunities

Before diving into my personal journey and the main focus of this article, let's take a quick trip down memory lane. It's late 2012, my company Vates is not even a year old, and I'm gearing up to relaunch Xen Orchestra - a virtual machine web management project I initially developed during the summer of 2009 but put on hold less than six months later due to time constraints.

I found myself thinking, "Surely there's a better solution available by now, three years later." To my astonishment, no one had taken the initial idea, concept, or even the code (which was already open-source!) to build something similar. I began to wonder if maybe no one else was interested in the project at all.

My second surprise came when I announced the project's revival, and we quickly discovered a significant number of interested people. So, why hadn't anyone else taken the initiative?

A similar situation occurred in 2018 when Citrix decided to discontinue the free version of XenServer. Was it logical to fork and introduce another virtualization platform in 2018, not 2008, when everything was moving to the cloud or containers? The answer turned out to be a resounding YES, but the doubt stemmed from perception, not actual usage.

This leads us to the first lesson from my journey: even if something seemingly obvious hasn't been done before, it doesn't mean there isn't an opportunity or a demand waiting to be fulfilled. Sometimes, all it takes is a single initiative to bring an idea to life and make it a reality. It could be you.

👨‍🏫
Beyond Replacement: in the realm of software, it's crucial to keep in mind that new products don't always replace existing ones. Instead, they often enhance or complement what's already there, offering additional capabilities or addressing different needs. Containers haven't replaced VMs for various reasons, OpenStack hasn't replaced VMware, and Kubernetes won't replace every other stack on Earth, even if everyone suddenly decided to adopt it (and if that happened, there would still be a need for a platform underneath, regardless of its type or technology). Remember this when innovating, even in a well-established market!

Despite the apparent odds (or at least the perception of them), I believe there's room for anyone to create something valuable. In the end, what matters most is developing a solution that addresses a problem and works effectively. Ideally, it should adhere to the principles of Free Software - you can read more about the "why" in this article:

The moral contract
Balancing openness and revenue: navigating the moral contract in the evolving world of free software.

The first lesson we've discussed naturally leads us to consider the importance of diversity in software. In our situation, we could have simply opted to use KVM/oVirt or Proxmox and left it at that. Instead, we built a multi-million-dollar business around Xen, a technology that had been declared dead for over 15 years, primarily by those who lacked a deep understanding of it.

🌳 Diversity is good

At times, I come across criticism regarding the existence of multiple stacks or software solutions for a given task. However, there's another side to this story: having diversity in software is crucial for maintaining a vibrant and thriving ecosystem. But why is that the case?

Well, drawing a parallel between software/technology diversity and biodiversity is an apt comparison, as both can be viewed as "ecosystems". Biodiversity contributes to an ecosystem's resilience to environmental changes, while a diverse software landscape can better adapt to new challenges, security threats, and evolving user needs. Innovation is another aspect where biodiversity and software diversity share common ground: biodiversity fosters innovation and adaptation in nature, and similarly, a diverse software ecosystem encourages the development of novel ideas, approaches, and solutions to various problems. That's why avoiding monoculture is essential in both domains: in nature, monocultures are vulnerable to disease and pests, while in software, relying on a single technology or platform can lead to vulnerabilities and limited options when addressing challenges.

But there's also other aspects playing a crucial role, like complementarity. Different species in an ecosystem have unique roles and can complement each other. In the software world, diverse technologies can work together to create more comprehensive and efficient solutions, leveraging their individual strengths. Biodiversity allows for the existence of a wide range of species with unique characteristics, and similarly, software diversity offers users and developers more options to tailor their solutions to specific requirements and preferences. Furthermore, biodiversity leads to competition and/or cooperation, which in turn drives improvement and efficiency. A diverse software landscape fosters competition, pushing developers to continuously improve and innovate. Lastly, just as biodiversity inspires creativity in art, science, and culture, a diverse software ecosystem can stimulate innovative thinking and problem-solving in technology and development.

Inherent Boundaries

Like any approach, there are limitations: this diversity competes with existing resources, such as the number of developers or users. It's intriguing to observe how some projects may fade away due to insufficient traction, much like a form of "natural" evolution in biology. Of course, in reality, the situation is far more complicated due to monopolies or closed ecosystems. This is precisely why Free Software plays a crucial role in enabling and maintaining this diversity.

🔮 Unifying Approaches

Embracing diversity doesn't imply that, as a software user, you'll struggle to keep up or switch between various technologies. After all, you can drive almost any car, right? It doesn't matter if the engine is from brand X or Y, as long as there's a steering wheel and the usual pedals. Sure, sometimes it feels more like you're transitioning from a bicycle to an airplane, but that's likely because the objectives are vastly different or because it's a relatively new domain (such as orchestrating applications rather than virtual machines).

In my view, pursuing grand unification in software isn't necessarily a desirable goal, even with good intentions. It could be the case if you're a vendor aiming to have people associate an entire concept or language with your product, as some large vendors have done. For instance, in France, people often say "SQL" when they're referring to Microsoft SQL, despite the existence of MySQL/MariaDB and PostgreSQL, all of which use Structured Query Language.

Nevertheless, unification can be somewhat achieved through interoperability. You can either build a stack with various components (by creating the connecting glue) or switch between functionally similar software without losing your data. The OpenDocument Format serves as an example of the latter. In the server virtualization world, it's the OVA format. To me, this is a healthy way to unify things, either through complementarity/open APIs or via standards and interoperability. This approach allows you to enjoy the benefits of diversity while appreciating and embracing the vast ecosystem.

🚀 Beyond Conformism

In conclusion, one of the most significant lessons I've learned as a product creator and even as someone who has forked existing software is not to let criticism dictate your decisions. Don't be swayed by those who say it's "too late" or "there's no space left to innovate" or any other excuse to stay in your comfort zone. Indeed, there's ample opportunity for anyone to innovate and create something valuable, even in a mature or diverse market.

If you believe you can solve a problem, go ahead and tackle it. Chances are, you're not alone. And if people tell you "it's already solved," remember the reasons you decided to address it in the first place - they're likely valid!

Offering critiques or identifying problems is a relatively simple task; however, finding solutions is more demanding yet significantly more gratifying. Some people may resist exploring alternative approaches, advocating for uniformity and conformity, often due to their reluctance to accept deviations from the status quo or personal interests in maintaining existing conditions. Within this framework, the diversity of software options, including free software, emerges as a strength rather than a weakness.

After all, who would've thought there was a need for another virtualization platform in 2018, right? It's never too late.