Since joining GigaSpaces a few months ago, I thought it would be interesting to write down some thoughts about my experience on the journey from the closed-source, enterprise world to the open source, startup mentality of getting work done, both internally at the office as well as from a client-facing perspective.
As you are most likely aware, Cloudify is a free, open source cloud orchestration tool. However, this is the first open source software I have ever been part of and I’m seeing many interesting parallels as well as divergences between open and closed source projects.
Cloudify—gluing it all together since 1843. Check it out. Go!
I want to start with a little background about myself. In the past decade, I’ve worked for companies that have generally been very Microsoft-centric at the office. Everything was very corporate—you want some new software, you have to pay. You need to upgrade a system and make sure all the information is migrated properly, pay. Need a new feature—sure, give me your money and I’ll build it for you. You pay for a product whose underlying functionality is totally hidden from you.
There was no perfect software for your use case either. You were limited simply to what was out there in the world and the ways of doing business and building a product were very fixed. This was the reality of my corporate work environment, until I decided to move to GigaSpaces.
Recently, I was speaking with a friend who worked with me at a previous company about their decision not to develop in Python. He said that the decision was made because they didn’t want the customers to feel as if there wasn’t enough value in the product because then the customer might say they can just code it themselves.
At that moment, it hit me; there is a real cavernous chasm between a closed business and an open one—it’s not just about an open source "product"—it’s a mindset, and everything that comes along with that way of thinking. I very quickly realized that open source is not just a buzzword, it’s actually a state of mind which is demonstrated in the way a company is run and a product is developed. For example, GitHub allows developers to share their code in a manner that makes it easy for others to see and access. They are not just putting up the code because it’s an open source project, rather the mindset of the company is all about being open and part of a larger system—it’s a culture, not just the way the product is written.
This is also evidenced in the openness of the company to support side projects of complementary open source tools like this GitHub project and this Python project—just for the sake of contributing to the global open source community.
What’s more, I’ve found the “community” approach of open source applications also very interesting. Open source evangelists really push for more open software, and that brings with it a built-in community of individuals that will truly be interested in helping you by contributing to the open project you have started.
Our Software is Your Software
Cloudify, is built in Python (this is also a by-product of wanting to be more natively integrated with other open source projects, such as OpenStack, and contribute to those projects, as well); and the keys to the kingdom, as-it-were, are given to the users to make of it whatever they can dream up. They can simply access the source code in GitHub, fork a copy, make changes and improvements, and then push that code back to the core code base (if they so choose).
What it comes down to is that we are confident in ourselves and the product such that we don’t feel the need to lock-in our customers nor lock our doors and make you pay for everything. The value that we provide is everything that comes on top of the actual software—the deep industry and architectural knowledge and service that go along with the product.
Again, it’s a mentality of being open to everyone, which at first seemed to me to be a strange thing, coming from the corporate software world. In general, the open source world really gives users the ability to mix and match applications as they see fit, as well as customize the code themselves to fit their specific needs.
Only the Beginning
But I’m still learning, and my main feeling is that being out there for everyone to see can feel a bit too exposed—which is one of the main issues that “plagues” the open source world in general, and isn’t specific to our product. On the one hand, all the code’s problems are completely transparent, on the other hand, however, this transparency is exactly what helps improve the code through intelligence of the masses. So, this does come with the tradeoff of exposing it to endless criticism, that said, the advantages of having an open project are significant from both perspectives—the business and the customer. We even see many large enterprises and government organizations adopting the open source and community approach.
Basically, the main point I am trying to make is that open source is all about helping each other make the best applications together. It goes back to the idea of a win-win situation for everyone and building a larger community around a cause that is greater than you.
That is the mentality I am quickly becoming more and more enamored with. Although this is just the beginning of my open source journey, I have to admit that I am very much looking forward to seeing where this brings me. It’s a brave new world (for me).