Think about the last time you craved a piece of pastry, say Baklava for example. You thought about making it yourself but then thought twice because you don’t trust your baking skills. So, you head to the nearby pastry shop, order a nice piece of peanut filled Baklava, pay for it, enjoy eating it, and then carry on with your day.
Eating that piece of pastry sounds like a nice treat. But what if the experience doesn’t go as well as expected? What if the taste wasn’t the way your grandma used to make it for you? What if you preferred pistachio filling over peanuts? Will the baker make a special piece for you every time you want to change an ingredient? Will the baker share with you his recipe so you know what it is made of and remake it the way you want? Are you ready to spend money each time you have this craving?
All of these are problems you can encounter because the Baklava pastry is closed source and they can be avoided if this pastry was open source instead. But wait a minute! What do pastry making and eating have to do with the software industry? What is a closed source and open source in the first place?
In this article, we will explain to you the unsuspected relationship between pastry and software and introduce you to some of the key concepts of open source from which you and your organization can benefit.
What does software have to do with pastry?
Let’s reimagine the situation described above. Only this time instead of developing a craving for a piece of pastry, you have a problem in your project which requires software for it to be solved. Imagine that you do not have the time or the resources to build the software from scratch so you browse around until you find an appropriate solution provider. Typically, the provider is an established business that will sell you their proprietary software for use only after buying a license. This is what a typical proprietary software business model is like.
The problem with this model is that prices of proprietary licenses are quite expensive and could escalate to bleed your budget dry. Even worse, the tool itself is a black box where the source code (or the recipe in the case of Baklava) is closed and cannot be modified to meet your diverse needs. Besides, if for a reason you’re unsatisfied with the software and want to use a different one, you’ll suffer from a vendor lock-in that will reduce the flexibility of your decisions and most probably cost you a lot of money in the long term.
Now, let’s go back to the zero moments of truth when you are thinking about which and what pastry you want to eat. Luckily, you stumble upon your grandma’s old recipe book in one of your dusty bookshelves. The moment you open it, a wave of emotions rushes into you. You finally decide to dedicate the time to make that pastry exactly the way your grandma used to.
In your new adventure, you buy the ingredients separately and you decide to follow the recipe instructions carefully. Even if this happens to be your first try with baking, your grandma’s instructions are well written that you manage to avoid a culinary catastrophe. You taste the pastry and realize something is wrong with it. It just does not taste as good as you would have wanted it to. So you reach out to the community of bakers on your social media. You share a video or a picture of your attempt and ask for advice. After a series of very dedicated trials, you finally make the pastry you’ve been longing for with a new touch of added caramel cream on the side. Here you are, finally happy and proud of what you accomplished that you can’t wait to share the new recipe with your family, social media community and eagerly begin a new chapter in the family’s cooking book.
Yes, you probably guessed it right. This is very similar to how open-source software is developed. In summary, a group of developers with common interests start an open-source software project which is available to anyone and everyone to harness the power of crowds in improving the code. This ensures transparency in making the source code which then is shared back to the community to use, modify, improve, and reshare. The concept is of course much more complex than this and we’re gonna elaborate more on this in the following sections.
Open-source Vs. Closed-source software
Every piece of computer software is implemented using source code or a set of instructions that tells a program how to function. When the creators release their products to the public, they must decide whether to make their software open-source or closed-source. With closed-source software (CSS), also known as proprietary software, the public is not allowed to access the source code. This means that the users cannot see or modify it. In contrast, users are permitted to access the source code of open-source software. This way, they can test it, contribute to its improvement, modify it, plus sharing is allowed depending on the license. Note that using open-source software does not necessarily mean that a user should read or bring any changes to the code. If the project is mature enough, it is probably a user-friendly environment.
In almost any application where a closed-source software is used, there is always an open-source software (OSS) counterpart. Take LibreOffice as the alternative for the Microsoft 365 suite, just like the Windows operating system, which has Linux as its open-source equivalent. Each of the OSS and CSS has its pros and cons which need to be evaluated against the users’ preferences. Still, the low initial investment associated with open-source software, and the maturity of many of the open-source projects are lately giving them more popularity compared to their proprietary counterparts.
A deeper dive into the open-source
Let us take a deeper dive into your grandma’s family cooking book to better understand how open source software development works. All recipes start with someone writing the original version, and in our case, the grandmother is the writer of all the recipes in the book. She shared the book with the family while instructing them to follow the steps carefully. As long as the family members are following the rules that grandma put in her book, they can use it. But what if for example a family member, say your aunt, experimented a bit by using pistachios instead of peanuts in the Baklava recipe, found that it tasted much better than the original version and wanted to add this improvement to the family book. The aunt must ask the owner of the book, grandma if she agrees to let her add the new ingredient to her original recipe. In this last scenario, the grandmother will act as what is known in the OSS world, a maintainer, the aunt would be a contributor while the whole process is called branching. Notice that if grandma does not like the new flavor, she will not incorporate that attribution into her book. There, a possible permanent split can take place, and the aunt could start her own family cooking book.
Back in the software world, someone writes an original version of source code to implement a software application and sets around its rules on how it can be used and changed. This is called a license. This gives contributors a starting point to branch out from and makes changes or patches to this software. Then, they request the owner to merge those changes with the original code. If the maintainer decides to incorporate that change, it becomes a part of the main branch, and the software will be richer in features. This branching will be maintained by the community even if the contributor is no longer a member of the project. Sometimes suggested additions of the proposed code are not validated and not incorporated by the maintainer which leads to splits known as forks.
OSS harnesses the power of crowds and creates a worldwide community working to add new features, fix bugs, and develop new versions from the original software.
The Advantages of using OSS
In the last few years, there is a growing trend of prominent tech giants endorsing open-source projects. Not only have they become users but also developers and supporters within the OSS community. Such a shift is a strategic decision that stems from the benefits OSS could bring to the development of these companies. Some of the benefits of using OSS are:
- Promote the culture of contribution
Open Source projects are all about bringing together a community to maintain and develop the software. It is a unique mix of collaborative ideals and communal practices. A collaborative culture is encouraging organizations of different nature and individuals to break out of the proprietary chains into open source solutions.
- Development and innovation
Open-sourcing software gives it life. By putting the code out to the world, it becomes part of the industry. Innovation is driven forward as there is no reason to reinvent the wheel. Others will use it and build upon it with improvements. The software continues to evolve and stays relevant in a much faster way than when it was kept closed.
- Solid information security
Using closed source software requires a certain leap of faith as CSS providers very often fail to communicate transparent security and privacy policies. OSS offers much more transparency, so what needs to be done to secure it and what vulnerabilities it has are quantifiable and known beforehand. Alternating into OSS for some is an excellent option to ensure having more control and privacy over their private data and classified projects.
- Flexibility & agility
Open source solutions provide you with flexibility in tackling issues. There are typically multiple ways to solve a problem and provide accessibility to the software to modify it and finetune it to your needs. This will prevent you from getting blocked just because a particular capability isn’t available from a vendor.
Generally speaking, open-source solutions are much cheaper than their proprietary counterparts. The initial investment cost is typically related only to staff training and maintenance and no cost is noted for buying the users’ license. In addition, and especially with small enterprises with constrained budgets, it makes more sense to start exploring open source solutions first. If the project doesn’t require support, you can continue on the community version indefinitely. But as your needs grow, you can decide to migrate to commercially-supported versions.
Why is open-source good for Algeria?
In a challenging socio-economic context, Algeria finds itself lagging behind in the technological development of its digital infrastructure. Importing bulk ready-to-use solutions from tech giants, might provide short-term, short-impacts but the consequences of that are bad in the medium to long term. Relying on these solutions if not well negotiated to ensure knowledge transfer and capacity development will lead to a dependency and the emergence of a digital new-colonialism.
Open source solutions are much more appropriate for Algeria and other developing countries. Aside from the financial advantages and efficiency gains that open source software offers in a challenging economical context, open source offers means for knowledge sharing and breaks the chains of global monopolies. There are opportunities for many to learn how the technology they use actually works, and from there, to use that knowledge to innovate according to local needs and using local talent. This will provide Algeria with the required independence to develop solutions according to its needs, drive technological innovation, and improve its economy without having to reinvent the wheel.
Our role in open source development
Geomatic Solutions Company is the leading open-source GIS solutions provider in Algeria. We are firm believers in the power of open source solutions as a strategic approach for accelerating the development of Algeria. Since 2013, we have introduced open-source GIS solutions as alternatives to the imposed proprietary products through project implementation with clients in the public and private sectors.
Since late 2018, the strategy of Geomatic Solutions has changed towards focusing on providing training services as the most effective way to trigger a long term open source adaptation culture in Algeria. We are leading local initiatives to contribute to open source projects like QGIS. We also engage in outreach activities with the mission to democratize open source spatial technologies. The road has been challenging but we will continue until we achieve our goal.
We stand with open arms to any change-maker who wishes to join us in our mission to make open source the norm in Algeria.