Open source projects have always been a major topic for discussion among IT professionals worldwide. Over the decades, open source software grew from free apps coded by passionate enthusiasts to globally adopted enterprise solutions and a rapidly developing multi-billion industry.
Nowadays, you can hardly find a business that doesn’t use open source products in its daily operations, especially if we are talking about IT companies. Programming languages, libraries, frameworks, database management systems, content management systems – most of the tech stack you need to build quality software is open source.
Contributing to open source projects has always been a matter of honor in the IT community, and there are many ways to do it. In this article, we’ll talk about open source software, why companies invest in open source products, what services Redwerk can offer to open source sponsors, and how Redwerk uses sponsorship to contribute to the Freenet open source project.
What is open source software?
The open source movement had started long before it received its official name and definition. Its origins date back to the 1950s-1960s when most of the software was developed by academics and corporate software engineers in collaboration, and it was distributed via the public-domain model. The latter implies no copyright or license restrictions and grants the public complete access to the source code with the ability to modify it, distribute, and sell it, giving no credit to the original developers. However, as technologies evolved, the software production costs were increasing, which laid the foundation for imposing proprietary licenses on new software developments. With the decision of the US Commission on New Technological Uses of Copyrighted Works to recognize computer programs as subject to copyright, this trend was gaining even bigger momentum.
Obviously, such an unfold of events was not fostering knowledge sharing and the so-called “hacker culture”; therefore, many software engineers frowned upon the widespread use of closed source software. Richard M. Stallman was one of those engineers who couldn’t use their engineering expertise to fix annoying software issues because of proprietary software licenses. Knowing how to resolve the issue with constant printer paper jams at MIT lab but having no access to the printer driver’s source code, Stallman decided for himself that no user should be deprived of the opportunity to understand how the software works. His GNU Project, a free software operating system, and Free Software Foundation laid the groundwork for the open source movement.
Since the term “free software” was quite ambiguous in that “free” refers to freedom rather than price, there was a need for a better term. Back in 1998, Christine Peterson, an American forecaster and the co-founder of Foresight Institute, was the first one to raise the issue of coining a new term, and his alternative – open source – was very well received by the Foresight meeting attendees.
So what exactly is open source software in its modern sense? Open source software is a type of software that leaves its source code open to the public with the right to use it, modify it, and distribute according to the open source license under which it is released. Open source movement is meant to foster learning, transparency, collaboration, and community-oriented development. Therefore, what an open source product implies is that there is a group of volunteers who initiated the development, the so-called “core development team,” and a number of contributors who either support the core team with software maintenance tasks or take the source code and build on it depending on their unique needs. Who develops open source software, why do they do it, and who uses open source products? All these questions we’ll address in detail.
Who develops open source software?
Open source software is usually associated with products that people can use free of charge. So why would someone want to spend their free time on developing an open source product without any financial remuneration for it? This matter is not that one-sided though. Considering that every person is motivated by their unique needs, the reasons for getting involved in developing open source software vary. Here is who may be interested in working on open source projects:
- Experienced software developers in need of better solutions – all great products were once just an innovative idea and a group of volunteers believing in making the difference. Mastering a broad tech stack or specializing in a particular niche of software development, experienced developers understand how to make the existing solutions better. This is exactly how open source products like Vue.js, Ghost, and Drupal were born.
- Computer Science students – education is the driving force of innovation, and that is why a decent portion of open source projects are initiated in the halls of academe. Whether it is the desire to win a mentor’s approval, to stand out from the crowd with a pioneering project, or to improve one’s tech competence, Computer Science students keep disrupting our reality. GIMP, Linux, and VLC Media Player are open source products designed by students and used by millions of users globally.
- Open source companies – open source software attracts not only ambitious volunteers but also software development vendors willing to monetize an open source product. The monetization strategies vary – from imposing dual licensing and releasing enterprise versions with advanced features and enhanced security patches to providing technical support and consulting services. Nowadays, open source companies gain the biggest revenue from providing professional services: open source software integration, customization, support, training, and consulting. Among the companies that have successfully implemented the above-mentioned business models are MySQL, MongoDB, Red Hat, Percona, Cloudera, among many others. On top of that, some companies, like Telegram, deliberately release software with open source code to emphasize their high security level and iron-gate protection against hackers.
- Software development giants – these companies possess immense technical resources, yet they still may seek insights from open source contributors as more perspectives make better software. What is marketed as giving back to the IT community is often part of a bigger strategy, be it engineering economics, increasing brand loyalty, or forecasting future trends in IT. Nowadays, all the big names have released open source software: Google (Kubernetes, Android), Facebook (React Native, Presto), Mozilla Foundation (Bugzilla, Thunderbird), Microsoft (Visual Studio Code, .NET).
- IT services companies– most of the time, these companies do not develop open source projects from scratch. They collaborate with open source development teams on mutually beneficial terms: IT services companies assist with software maintenance tasks while open source developers consider implementing the features requested by the sponsor supporting the IT services company. The latter is probably a custom software development agency like Redwerk, with fully managed delivery teams.
Who uses open source software?
What once was just an attempt to find a pioneering approach to software development, transformed into an integral part of our daily lives. Nowadays, you can hardly find a person who hasn’t used an open source product at least once in their lifetime. We all use web browsers such as Mozilla Firefox and Google Chrome daily; although Google Chrome has a proprietary license, its core functionality is based on Chromium, an open source project. Some of us may use free text editors such as LibreOffice, photo editors such as GIMP, image organizers such as Shotwell, among other useful tools, both for personal and professional purposes. It is not only software engineers who are familiar with open source products; however, they probably make up the biggest share of open source consumers as they rely on open source products to build quality software solutions. If you are into programming, you are definitely familiar with GitHub repository hosting service, MySQL database management system, Ubuntu OS, Jenkins automation server, and tons of different libraries and frameworks. Therefore, open source software has permeated all spheres of our lives, both on corporate and personal levels.
Popular Open Source Products
Open source sponsorships
Open source projects require substantial funding just as any commercial product or service. This is why many open source products were developed by large companies who can cover enormous up-front investment, such as Yahoo’s Hadoop or LinkedIn’s Kafka. As for smaller open source projects that are not that widely used and thus cannot be properly monetized, they rely mostly on external contributors and donations. Not all open source contributors work for free as there are not so many people who can afford to volunteer for a prolonged time. Therefore, open source core development teams are always looking for sponsorships and volunteers, be it individual developers or software development agencies.
Issues open source teams face
Open source products are often developed by enthusiasts who rely exclusively on their own resources. However, software development requires a joint effort of different IT experts and continuous investment. It may take decades for an open source product to gain a decent user base and proper support from external contributors. For this reason, insufficient funding and a limited number of volunteers are the primary issues open source teams struggle with. Although the open source services market is projected to grow into a 30-billion-dollar industry by 2022, the largest revenue streams will go to the big players, such as Red Hat, IBM, and Oracle, who know how to commercialize open source products. Of course, open source creators can use the same or similar monetization strategies like offering support with software implementation or imposing restrictive licensing. However, the success of these endeavours depends on many prerequisites, such as broad adoption of the open source software and brand awareness. Therefore, smaller open source projects that cannot afford large-scale marketing campaigns and are yet to prove their credibility rely mostly on their core development teams and support from external vendors.
Motives behind sponsorship
Reasons why people choose to support an open source project are as diverse as motives of open source contributors. Each of us pursues our own goals, so do businesses. However, if analyzed on a global scale, all sponsors can be grouped under the following categories:
- Active open source users who want to fix a particular bug or modernize software for extra convenience
- Active open source users who want to add new features they really need
- Open source advocates who actively support the concept behind the project
- Tech companies whose commercial solutions are based on open source products
- Tech companies who use open source sponsorship as part of their social responsibility policy
Services IT agencies offer to sponsors
Due to the nature of their business, software development agencies know everything there is to know about open source software. Whether it’s an open source programming language, a database management system, a frontend framework, or a backend library, the use of open source products in developing software solutions, whether for a client or your own brand, is inevitable. Therefore, working on open source projects is a way for software agencies to give back to the open source community, albeit through sponsorship. Having independently managed full-stack delivery teams on board, they can easily integrate with the open source core team as no extra supervision is needed. The range of IT services they provide is mostly defined by sponsors’ interests and the needs of the open source core team. Here is a brief overview of the IT services software development agencies offer to sponsors.
Technical project audit
IT services companies assist not only with developing custom software solutions but also provide consulting services, including a comprehensive technical audit. While working both on new and legacy projects in different industries, these companies gain invaluable expertise in detecting open source product vulnerabilities, potential threats, missing or promising features. They can also devise or optimize a migration plan and outline cost-reduction strategies.
Software testing and QA services
Developing fully-functional software is impossible without consistent testing and quality assurance. Portfolios of successful IT services companies include numerous SaaS products, web platforms, mobile apps, PC games, legacy software as well as open source projects. Obviously, all these products require a decent amount of QA hours. Having such a versatile experience in testing, IT agencies know how to thoroughly test open source products bringing the maximum value within a short time.
Developing key features
Any open source team puts the biggest effort to sustain its software core functionality and develop new features in line with the product road map. Taking over a part of software maintenance and QA tasks, IT services companies make it easier for the core team to focus on developing new features and optimizing existing ones. They also work on developing specific features requested by the sponsor provided the core team approves them.
Any software project, even the smallest one, requires technical documentation to facilitate collaboration and enable the product’s further development. Considering the limited resources open source teams have, documentation is often the neglected aspect of the software development cycle. IT services companies can help open source developers prepare, update, or translate functional requirements specifications, product road maps, testing documents, user manuals, installation guides, among other technical documents.
Educational support and media coverage
Educating the public on how to use the open source software, explaining its benefits, and providing detailed guides is one step towards the product’s widespread recognition. IT services companies have enough human resources to address users’ questions on forums, social media platforms, prepare detailed instructions and FAQs as well as video tutorials to help open source teams grow their consumer & contributor base.
SEO and marketing services
As any commercial solution, an open source product needs a proper marketing campaign to reach its target audience and enhance its visibility. Well-established IT agencies have experienced SEO and marketing specialists whose daily operations revolve around boosting brands’ digital presence. Therefore, they can help open source creators write SMM posts, blog articles, and video content for multiple platforms as well as suggest the right SEO techniques for tangible results in a shorter time.
Identifying business needs
Identifying clients’ needs is a rule of thumb for all software development agencies with a client-centered business model. This step is essential for evaluating the technical expertise needed for project implementation. Before sponsoring a project, contributors want to be aware of the project scope, potential ROI, or other gains they will receive within the allocated time and budget, and this is where IT agencies come to the rescue as they will calculate all these metrics with detailed explanation behind the numbers.
Handling core team
As we mentioned above, open source development teams are mainly interested in developing the product’s core features. However, they are willing to negotiate and implement the requested-by-sponsors features in case IT agencies cover a significant portion of resource-consuming tasks: software maintenance and testing, refactoring, technical writing, media coverage, or any other time-sensitive aspects. In such a way, software development agencies decrease the workload on the open source core team and, at the same time, help sponsors achieve their goals.
Freenet case study: our contribution to open source
Nowadays, more and more people are searching for ways to protect their privacy, freely share their opinions, and exchange information without fear of prosecution. It is known that what goes on the Internet, stays there, and depending on the laws of a particular country, the consequences of expressing views freely may be dire for these people. Although freedom of speech is considered one of the fundamental human rights, some countries, such as China, Belarus, Iran, impose severe limitations on what people can say, what social media platforms they can use, and what information they can access.
We have already raised the issue of freedom of speech in our article on ways to stay anonymous online. One of the solutions ensuring the highest privacy level is Freenet, an open source software facilitating censorship resistance on the web. It is a P2P network that runs on top of the Internet and routes encrypted communications through other users’ nodes. With Freenet, you can share files, browse and publish “freesites” (websites accessible only through Freenet), and communicate on forums freely, without fear of prosecution. It is considered especially secure if used in the “darknet” mode when users connect only to their friends or people they fully trust. We’ve already talked about how Freenet works and what challenges we faced while working on the Freenet project; however, we would like to dive deeper and share the results of our fruitful cooperation. Here is what we’ve done for Freenet so far.
- 1 detect software vulnerabilities
- 2 increase the maximum file upload size
- 3 test solutions for boosting speed
- 4 restore the inital functionality of the search index
- 5 fully refactor one of the essential plugins
- 6 do thorough testing and bug fixing
- 5people in team
- 4 plugins improved
- >25klines of code
- 2018first contribution
Security is a primary point of concern for any software development team, regardless of what kind of software they develop – a P2P network or an e-commerce web platform. As for Freenet’s security, there was an issue with Theora video filter and therefore users had to download videos if they wanted to watch them safely. Our Redwerk team managed to fix the filter, and now users can watch videos right from the Freenet interface without compromising their identities: the filter simply removes malicious HTML tags. We also added the CSRF (cross-site request forgery) protection to plugin KeepAlive.
Software testing and QA
Freenet releases a new build once every six months, and we help them with testing and quality assurance before every release. While testing Fred, Freenet’s core functionality, we managed to detect bugs causing file upload errors, and now Freenet users can upload files of up to 15 GB compared to the initial 5 GB. Our QA engineers also tested several plugins – KeepAlive, Library, Spider, Freemail. While Spider and Freemail contained only minor bugs, KeepAlive would freeze and crash, and we managed to get to the root cause of this malfunction and resolve the issue.
Our team finished work on several plugins, including KeepAlive. The latter helps Freenet users preserve their files and freesites that may otherwise disappear without the ability to restore them. Because of a moderate user base, older and less popular files get replaced by newer ones quite quickly, while KeepAlive literally keeps all the bits of files alive. We performed a comprehensive refactoring and released an alternative fully-functioning version of the plugin. We are proud to know that KeepAlive is now listed among Freenet’s official plugins.
The search on Freenet was enabled by two plugins – Library and Spider. Library was supposed to create new databases while Spider crawled Freenet and registered specific words and their location and transferred that data to Library. Library had been out of order for a long time, whereas Spider had only a couple of minor bugs. We managed to restore the original functionality of Freenet’s search index; however, there is room for improving the search quality, and this is our goal for the near future.
Freenet implemented a new user interface to improve the digital experience of existing users and attract new ones. However, while performing usability testing, we detected a number of issues – improper alignment of UI elements, uneven margins, displaced logos, among others. We also made sure that Freenet’s web design is not only appealing to the eye, but also mobile-friendly.
We have been supporting Freenet users on forums for about two years. Freenet software definitely requires a certain level of technical know-how to install it and configure all the needed plugins. Therefore, proper user support may play a decisive role in growing the user base. We reply to users’ questions on Freenet forums as well as regular social media such as Reddit to encourage more people to join the network and thus enhance its file-sharing capacity.
Freenet is a long-running project; therefore, a significant share of its technical documentation was outdated. We helped Freenet update and expand its documentation to ensure open source developers, contributors, and users have relevant data on the project’s functionality, progress, and practical application. As a software development agency, we understand the importance of professionally written technical documentation; therefore, we maintain it and make edits regularly.
Freenet is a global project because freedom of speech should not have boundaries. To inform more people about the possibility of staying anonymous online, we helped Freenet translate its official website and most of the technical documentation into Russian. This step was necessary to cater to the needs of numerous Freenet users from CIS countries. Here in Ukraine, ICT experts have a good command of English and Russian, so the translation process went smoothly.
As we’ve mentioned above, Freenet software may be challenging to handle for non-technical users. Therefore, there were many requests to simplify the initial node setting process. We reworked Freenet’s First Time Wizard and enabled the opportunity to add nodes to friends automatically. All that Freenet users have to do in this case is to create a special Peers-Offers folder and paste links to the needed nodes into the folder. This functionality improvement is especially useful for people who want to interlink all their nodes within a short time.
Redwerk is a software development agency with well-established expertise. Apart from Freenet, we are working on one more open source project in a similar niche. Hiring an independent software development agency for improving open source projects becomes more and more widespread among open source sponsors and advocates. The reason behind this trend is apparent: such an approach guarantees transparency in budget allocation, full accountability, smooth negotiations, and faster results.