Open source software has been around for a few decades now, but has recently become a popular choice for many organisations, small and big. What has changed? Why is open source, which was looked upon as software to be used by people who did not want to or couldn’t spend money, in demand today? Let’s find out.
Open source has been defined by some as “technology that is run by great people, who do not care much about money and make cheap business solutions.” That may no longer be true today. Open source is turning into a serious business, but does face a few challenges.
The open source software industry is going through testing times due to technical changes, recruitment challenges, etc.
Ten years ago, new code was being written for retail, healthcare, education, banking, etc. Now that all the software has been written, it just needs a few enhancements. We don’t actually develop new software anymore; rather, we enhance the software to get better output from it. While working on the product, testing teams that used to stay outside are now doing automation within the software code itself. Infrastructure, design, testing, documentation, and code reviews are all codes today.
A solution that fits all was the concept used for building big monolithic products earlier, but nowadays, the focus is on developing one solution to solve one problem perfectly, which fits with all the other solutions, so that together they offer value to customers. This is what API based developments, services, and products are all about.
Whatever is being designed today is getting outdated in no time. For instance, if you had developed excellent software for a fax machine, you may need to follow up with software for a cordless machine, and then perhaps for a mobile phone. So whether you like it or not, your software is going to be destroyed and decommissioned sooner or later. The bottom line is that change is constant, and we have to be ready for it.
The key ingredients
If viewed as a recipe, there are three key ingredients needed to build good software.
Skill: Recruiters in India are having a tough time hiring people with the right skills. On the flip side, over 80 per cent of engineers are unemployed mainly because of the lack of new age technology skills. At the same time, the attrition rate for experienced people is now extremely high. The pandemic has created a huge demand for experienced talent, and employers are finding it hard to retain such people.
Long notice periods create additional problems as they give a candidate time to look around, get a job that pays better, and then come back and negotiate with his or her current employer. With a shortage of talent, the employer very often gives in, and offers a higher salary to retain the employee.
Then there is a proliferation of 3-month courses that offer placements, where there is no skill assessment involved. After the course, you suddenly become a geek because of the job you got, irrespective of what you have been taught. However, how far you succeed in this job is anyone’s guess.
A few companies have set up their own colleges and hire these students after they graduate, so that their remuneration can be less. Even though this may be a good strategy from a business standpoint, the graduates may not be able to fit in the outside world.
|How can India be a powerhouse of open source?|
Mindset: Let’s take an example to understand this better. Vijay, a school kid extremely interested in computers and an experienced Linux admin, will not be able to find a job in the industry because he is still at school. Divya, an experienced quality analyst, even if extremely talented, will find it difficult to find a job once she takes a career break for personal reasons. Sekar, who is an excellent designer but cannot communicate well, may not find a perfect job as well. An organisation with the right mindset will gladly hire all three individuals and give them the right training.
The technical decisions made by a team will solely depend on the mindset of its members, and the future of any project depends on that.
Purpose: Each software design has a purpose, but the process of digital transformation can have a few challenges.
- Developers should not be disturbed while they are working. However, there is a delay in a lot of releases and, very often, teams are internally divided among themselves.
- If the progress of the project is slow and deadlines are not met, the team still works extra hours, based on the need. But these extra hours come with a cost.
- There is some internal resistance from the design team itself when the same people end up working together always.
- If technical decisions are made by non-technical people, it can lead to confusion.
Is open source perfect?
When it comes to choosing between writing your own application programming interface (API) and taking one from open source, as much as it entirely depends on the use case, open API is generally used for its security, good quality code, feature availability, extensibility, etc. So, is open source perfect in all areas? Does it have no disadvantages? Not at all. There should be a perfect balance between interfaces and open source, in order to make good software.
But first, the positives…
- Simplicity: The skillsets involved are simple and don’t demand too many machines, infrastructure, etc. Whatever is available is used.
- Attracts talent: Open source attracts talent. Only the passionate opt for it.
- Developers are important people: Decisions in the open source domain are mostly made by developers.
- Remote work: Work in the open source domain is done remotely, which is a great boon during this pandemic. Developers work on multiple open source projects without meeting anyone in person, and continue to innovate that way. Open source is naturally built for remote work.
- Availability of infrastructure: If an open source project is being developed, there are a lot of free resources offered.And, here are the negatives…
- Security: With a lot of things moving forward, security can be an issue. Initiatives like Whitesource, etc, help in collective knowledge of open source security, which may be helpful later.
- Licensing issues: After what happened to Elasticsearch and MongoDB, licensing issues can create challenges.
- Documentation: Very often, documentation is poor and not made available to the community that wants to contribute to projects.
- Single owner components: People who work with Node.js might have faced this problem of depending on a single owner component. If the component provider does not support your project after some time, it could lead to a lot of problems.
Open source strategy is definitely not a cakewalk, and it’s not safe to get into it blindly. It is better to consider the good and bad facets of open source, and make a navigation strategy before jumping into it.
‘Sharing knowledge doubles it’ and ‘Great things are invented, but for them to run, it needs the SUM of great people’. With these two philosophies backing it, open source can be beneficial both for the organisation as well as the individual. It would be nice if more contributions were made from India. But for that to happen, skills need to be developed.
The earlier definition of open source does not hold true now. The right definition today is: ‘Open source is run by great people who do care about money and make affordable business solutions’.
This article is based on a talk by Sathish Kumar Thiyagarajan, Open Source Advocate and Co Organizer of Bangalore Open Source Java User Group, at OSI 2021.