AVADO is the UK’s leading provider of online learning for professional qualifications and has recently begun a programme of international expansion. The AVADO development team is responsible for the development and maintenance of the campus, exams, customer relationship management and other supporting systems within the business. Working with a number of internal customers requires a constant focus on reuse and extensibility across all of our design and development activities.
The following specialised terminology will be used throughout this document:
- FOSS (Free and Open Source Software) - software made available under a license guaranteeing users the freedom to access, modify and redistribute its source code.
AVADO's strategy when approaching the development of new projects is to:
- Prefer the use of FOSS, where appropriate, within our projects and contribute our modifications to such projects to the open source community.
- Perform our development activities in the open.
- Where possible, and without infringing upon branding agreements, to publish all source code created by AVADO, regardless of whether it was developed in-house or by a contractor acting on AVADO's behalf.
AVADO will strive to consider FOSS when selecting solutions to meet business requirements:
- When procuring software for use within the business, AVADO will strive to actively and fairly consider open source solutions alongside proprietary solutions.
- Such procurement decisions will be based upon:
- capability;
- security;
- manageability;
- relative value for money of each solution based on lifetime total cost of ownership (including exit and transition costs); and
- scalability and ability to meet future business requirements.
- Where there is no significant cost difference between a FOSS platform and a proprietary platform, FOSS platforms will be selected for their inherent flexibility.
- Where AVADO has customised FOSS to meet its own requirements and the release of such customisations is possible without violating partnership agreements, AVADO will aim to release its changes upstream or at least make its patches publicly available.
AVADO will only release source code to the community where the code meets the following criteria:
- The release of the source code does not violate AVADO's partnership agreements.
- The source code has utility outside of AVADO.
- The source code is of sufficient quality, having been audited and verified by the development team, to the best of our ability, to be free of defects.
The following are examples of source code which cannot be released by AVADO:
- Source code specifically related to the user interface and branding requirements of AVADO's partnerships, e.g. themes, as AVADO is not authorised to redistribute the branding within such source code.
- Configuration pertaining to the security of AVADO's infrastructure.
In the interests of forming and fostering collaboration with communities around our FOSS projects, AVADO will:
- Commit developer time on a regular basis to triaging issues and pull requests generated by the community.
- Communicate externally, in the form of per-project roadmaps, our plans for each of our projects.
- Where ideas and contributions from the community do not match our intended roadmap for a project, AVADO will clearly and publicly communicate functional and technical objections to the contribution.
- Accept that the community is free to fork FOSS projects where AVADO and the community are unable to reach agreement regarding a project's roadmap.
Include the following:
- GPL for Moodle components, as it's a requirement of the GPL v3 under which the core of the platform is licensed
- CLA for contributions from the community to clearly identify ownership and rights to fair use
This policy is inspired by the following resources:
- The 18F Open Source Policy, which has an excellent structure and introduction.
- The UK Government's "All About Open Source" document