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.
Overcoming our hardwired attraction to property ownership:
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.
Our Engineers at Eagle Eye benefit every day from the Open Source software community:
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.
Why are we Open Sourcing at Eagle Eye:
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:
- While we surrender propriety rights to the project, and allow the free sharing of our hard work, one of the main benefits from Open Sourcing a project is that we are opening up to feature improvements and quality enhancements through open engagement with the Software Engineering community. Our Software will be hardened through 'in the field' usage, being tested in a variety of ways which as original authors we may not have envisaged.
- Our Engineers will feel a great sense of kudos, pride and confidence from releasing their carefully crafted software for public usage, asserting their technical voice and positively engaging with the wider Engineering community.
- Knowing that our software may be released for public distribution we will have to take a more disciplined approach in how it is built, packaged and maintained. It will force us to have an Open Source Mindset, carefully considering the multiple implementations and uses of the software; the downstream impact of changes; ensuring a clean version control history and overall coherence of a release; and strong liaison with the user community.
- In terms of our actual code, we must have the discipline to be abstracting enough so others can use it (such as using protected methods, no private methods, so they can be extended by the public), as well as ensuring there is no proprietary or commercially sensitive information within the released code.
- We hope to establish a technical brand presence in the Engineering community. By openly sharing our endeavours, we will reach beyond our corporate walls to project a welcoming shared experience that other Engineers may want to engage with, attracting the next generation of Engineers to work with us in enhancing our world leading customer engagement software solutions.
- Our ultimate success at Eagle Eye is down to recruiting, engaging and retaining good people – Open Sourcing will be a be a key component in enriching the employment experience of our Technical Teams.
- Sharing is caring - it feels good to give back to the Engineering community, indulge in reciprocal kindness, and learn together.
Packaging our first Open Source release:
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.
You're all welcome:
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.