Software Sharing - the Statistics Canada Experience
Statistics Canada has been developing and maintaining a suite of generalized systems for over thirty-five years. Most of the systems automate commonly used statistical functions such as sampling, edit and imputation. Although the mandate of the generalized systems program is to promote standardization and reuse within Statistics Canada through the development of application frameworks, reusable systems and common methods and practices, the program is designed to make Statistics Canada systems available to other organizations in Canada and abroad.
Canadian Legislative Context
Under Canadian copyright law, Canadian government departments and agencies are prohibited from freely offering software under frameworks such as those employed within the Open Systems initiative. However, while Statistics Canada cannot relinquish its intellectual property rights in the software it shares, the Agency is permitted to license its use to other agencies and corporations.
Current Licensing Practices
Statistics Canada's licensing program is designed to cover only the costs associated with running the sharing program. All costs of developing and maintaining our shared software are born by Statcan. Four different licensing scenarios are supported:
- Full Production-Use Licensing
The license grants perpetual usage rights, plus unrestricted rights to copy and distribute the software within the licensee's corporate confines. There is a one-time fee associated with this license, with annual support services available at the licensee's discretion. Most of StatCan's main generalized systems use this model.
- Evaluation Licensing
An evaluation license allows software to be used for evaluation purposes without having to incur fees. The duration of the evaluation period is precisely limited, and the use of the software for any production purpose whatsoever is strictly prohibited.
- Beta Release Licensing
Under special circumstances StatCan will license a "pre-release" version of a software product. This license does not allow for production use of the software, and requires the licensee to cease using the early release version of the software once the full production version becomes available.
- Unsupported Software Licensing
This license allows for the sharing of software that Statistics Canada makes available as is, with no support or maintenance provided. Using this license allows software to be "shared" under less restrictive conditions. Macro libraries developed by methodologists or subject matter experts are often licensed in this way.
Statistics Canada has learned a number of relevant lessons over the years related to the sharing of software under a licensing arrangement:
- A clearly written license template that is flexible enough to handle the various license types is required. Ideally the license agreement template should be reviewed by a lawyer with experience in copyright law.
- To avoid confusion, an organization should have a central point of control of licenses with a single person being responsible for signing licenses on behalf of the producer organization. At StatCan this authority rests with the DG Informatics regardless of who developed or owns the software product.
- The license fees should be set to cover the costs associated with managing the sharing program.
- Some products are fairly complex and require assistance from the software producer to become effective tools in other organizations. A consistent approach should be adopted for dealing with the costs associated with installing software at licensed sites and training staff to use the software. Statistics Canada has chosen to include an average cost for this in the license fee. Additional assistance can be purchased on a cost basis.
- Occasionally a potential client will ask for changes to the wording of the generic license document. Changing any clause in the standard license template usually requires the intervention of a lawyer. This can be costly and managing the different "flavours" of a license agreement can become burdensome. StatCan has chosen to not entertain changes to its license agreements, preferring instead to turn down requests when a potential user insists on changes to the wording of the standard license template.
- Proper record keeping is required to track who has signed a licensed agreement and under what type of license.
StatCan has also learned several lessons about developing software products that are to be shared with external clients or partners.
- Software products must be developed to run on any platform. Most of StatCan's products are developed in SAS which is very portable. Some of the products also use C with C+ and C# wrappers to allow them to integrate with most platforms used in national statistical organizations.
- For maximum reuse, the use of imbedded products that need to be licensed separately should be avoided. StatCan uses open source products such as MySQL to avoid imbedding software components that need a separate license.
- Thought must be given to how languages should be supported within an application. Since all products used by Canadian government employees must be available in both French and English, applications developed by StatCan are developed in a way that ensures that language support is completely table driven. This allows our products to easily adapt to other languages either by replacing one language by another in a table or by adding more language tables or table columns. Language support is built into our development frameworks.