I am excited to announce that the Engineering and Technical teams at Eagle Eye will be publishing some of our non-proprietary software components and tools as Open Source, sharing some of our work with the wider Engineering community.
This post is if for a technical and non-technical audience to introduce the concept of Open Sourcing and why at Eagle Eye we are taking this step. We also look at some of the wider considerations and responsibilities involved.
As human beings, we seem to be hardwired to possess things. We like to accumulate stuff, perhaps serving the insatiable needs of our egos to project our prosperity and resourcefulness to the outside world. Ever since the agrarian revolution, when we emerged from the Eden of hunter gather lifestyles, we have needed some system of property rights to protect our harvests. Our nomadic lifestyles ended, and we laid claim to land. The more land we had, and the more stuff we put on that land, the more prosperous we became, at least in material terms. But owning things carried a burden, we began to worry about who might steal our stuff, and had to think about security and legal frameworks to protect our property.
Open source runs contrary to our accustomed accumulation of property, and contrary to our modern conventions of copyrights and intellectual property rights. Open source is a convention which emerged from movements in the computing industry which tapped into the cooperative side of human nature, perhaps that side of us which thrived in the culture of nomadic tribes where we would return from the hunt and sharing our bounties with the community, so that we may benefit from reciprocal kindness in times when we return from our hunts empty handed.
The pioneering figures in the evolution of Open Sourcing included Richard Stallman who in the 1980’s created the GNU Project along with the GNU Manifesto and the Free Software Foundation to clone the proprietary UNIX operating system and toolset with versions which were distributed freely to users. In the early 1990’s, Linus Torvalds built upon the GNU work by creating the Linux Kernel, a Unix-like open source operating system which is now pervasive in use across servers, embedded devices, mobile devices (e.g. used in the Android Operating System) and personal computers. The evolution of Open Source technology has been accompanied by conventions, principles, and a framework of licensing models to govern the distribution and use of Open Source software.
Fast forward to 2020, and now many of the world's tech giants, such as Google, Oracle, and IBM publish a range of projects as Open Source.
At Eagle Eye, our Software Engineers are all running Linux on their personal computers and suites of Open Source utilities to do their work. Our flagship product, the AIR platform, and all of the associated services and tools we use to service the loyalty and digital promotion needs of some of the world’s leading retailers, depends heavily upon Open Source software and toolsets to provide a patchwork of stable, proven and reliable components as the foundations for our SaaS solutions. Of course, we have invested heavily in building our proprietary software services to support our business logic and processes, but we have not re-invented the wheel when Open Source software is available to fulfil specific technical needs. Even PHP and JAVA, the computing languages widely used in our applications, are Open Source.
When open sourcing a project we relinquish property ownership, but we do not necessarily surrender control. Other people may use the software, or even ‘fork’ the software to use for their own proprietary uses, subject to one or more licenses that meet the Open Source Definition published by the Open Source Initiative or the Free Software Foundation. The wider Engineering community may influence the project through their own code contributions, or the logging of issues, however this is not a ‘free for all’ because a well organised Open Source project will have contribution guidelines, testing requirements and other policies, all clearly outlined in ‘README’ files which are integral to the project. The code lives in a version-controlled repository which gives full access control capabilities which means that only appointed persons can merge external changes, and the accompanying tests, into the codebase.
Paradoxically, when we surrender our drive to 'own' all of our software, we open ourselves up to numerous benefits resulting in improved and more reliable software through crowdsourcing, tapping into the collective wisdom, experience and diversity of the wider Software Engineering community.
Here are some of the reasons we are embracing Open Source:
Our inaugural Open Source release will be used as a template for future releases to follow. We will be publicly releasing a project named 'Scoop', built by one of our Software Engineers, Oliver Tappin, or Ollie as we call him. Scoop is a tool which works with the queue management application, RabbitMQ to help with the problem of shovelling messages from one queue to another. Ollie has created Scoop in his own time so Eagle Eye will fork the project and release it publicly while ensuring that Ollie is appropriately attributed as the original author.
When we publish a new project, we want to create a fanfare around the event. So the Scoop release, and subsequent releases, will be mini PR events for us. Not only will the projects meet all of our agreed Open Sourcing conventions from a technical perspective, we will also ensure that each release is wrapped up and packaged with a nice logo, a Purple Labs blog post, a YouTube video on our Purple Labs Channel and a press release to venues such as Hacker News to inform and engage the wider Engineering community.
Once released, we will appoint an Open Source Liaison to manage any issues and pull requests against the code repository and generally be a friendly face for external users of the project.
In overcoming our innate urges to own all of our creations we hope that our Open Source projects will be used widely and engaged with by anyone who takes the interest, and we warmly welcome the Engineering community to help us to build upon the software we publish in the public domain.