WHAT SHOULD I CARE ABOUT?
What could block my research?
It is important as soon as possible to identify in which context your software will be distributed: commercially? open source? This choice has a strong impact on your research as it could open or close doors. It will also help you identify what you should or shouldn’t do in terms of collaboration, code reuse, and distribution.
Here are some examples of problematic situations you must be aware of:
In case of joint development, part of the code belongs to a PARTNER. This partner has the right to veto any project that includes the software, be in a research programme or a commercialisation.
In every research project, try to keep the software property undivided.
Once all or part of the software has been licenced with EXCLUSIVE RIGHTS, or is developed under CONFIDENTIALITY, the licencee can block future collaboration research.
Try to keep confidentiality on data, not on code (nor algorithm or methods) and limit exclusivity by sector and geographic zone.
If you include OPEN SOURCE code, check the licence beforehand: some licences may prevent you from distributing a proprietary software.
If you want to keep your know-how private (proprietary code), integrate only open source code with a permissive licence : MIT, BSD, Apache, (LGPL), etc.
If you include code with DIFFERENT OPEN SOURCE LICENCES, beware of legal incompatibility between those licences (e.g. : GPLv2 and Apache are incompatible). This could prevent you from distributing your software (even free, even with source code, etc.).
Choose a licence as soon as you begin developping the software, and choose to integrate only open source code with a compatible licence (see chart).
PROTECTION
Rights holder is the only one authorized to manage the intellectual property rights. In Belgium, the law provides that software belongs by default to the employer (University).
- Copyright: protects the form (source code) and original graphic interface.
- Patent: protects functionality (~algorithm) of software.
- Trademark and domain name: protects reputation.
- Confidentiality agreement: necessary for collaborating on proprietary software.
- Sui generis law on database: protects the investment necessary to obtain a quality database.
GOOD CODING PRACTICES
Version control system (Git, SVN, Mercurial, etc.)
As soon as you start, store all your code in a Version control system (Git, etc.). This will allow to:
- Easily collaborate and keep track of every contribution
- Make reproducible science (identify the specific version linked to a publication)
Source code header
Start all your code files with a Copyright and Licence header. These examples should be adapted to each case:
GPL
Copyright (C) 20xx-20xx “University (official) name” // this is the owner(s) (mandatory)
<NEW SOFTWARE is a software for doing new things>
James Cook (laboratory of Soft Dev) – Contact: james.cook@research.be // facultative
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program.
If not, see <http://www.gnu.org/licenses/>. // these are the licence specific terms (mandatory)
MIT
Copyright (C) 20xx-20xx “University (official) name” // this is the owner(s) (mandatory)
<NEW SOFTWARE is a software for doing new things>
James Cook (laboratory of Soft Dev) – Contact: james.cook@research.be // facultative
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING […] // these are the licence specific terms (mandatory)
PROPRIETARY (COMMERCIAL)
Copyright (C) 20xx-20xx “University (official) name” // this is the owner(s) (mandatory)
<NEW SOFTWARE is a software for doing new things>
James Cook (laboratory of Soft Dev) – Contact: james.cook@research.be // facultative
All rights reserved // these are the licence specific terms (mandatory)
TOOLS
- FOSSOLOGY
Software which detects open source in code files - SONARQUBE
Software which analyses code to provide quality metrics - SOFTWARE QUALITY METRICS EXPLAINED
Report on how to understand those metrics - SOFTWARE DISCLOSURE FORM
A preparation to a first meeting about your software with your KTO
MORE INFORMATION
1) LICENCE FAMILIES
2) COMPATIBILITY CHART
3) FREE AND OPEN SOURCE
The licence defines if a software is free – or open source – (FLOSS: Free/ Libre and Open Source Software). The main point in FLOSS licences is that they give the user access to the source code, which means the user can modify the software. In opposition, most commercial software is proprietary (or « closed source »).
Free licences must respect the 4 freedoms defined by the Free Software Foundation (free – as in free speech, not as in free beer). Open Source Licences must respect the 10 conditions from the Open Source Initiative. In practice, the common licences (MIT, GPL, Apache, BSD) are all both free and open source.
Be aware that open source licences contain very strict legal constraints, which can make them incompatible with other open source licences. Just to mention common incompatibilities: GPLv2 and Apache Licence, GPLv2 and GPLv3, etc.
4) DISTRIBUTION
- OPEN-SOURCE: Can speed up the development and make collaboration easier. Beware of licence compatibility!
- PROPRIETARY: Makes it easier to sell software licences. Preferred choice if you want to keep your know-how secret.
- RESEARCH PURPOSES: As a special case of proprietary software, you can choose to open your code to external collaborators, under a confidentiality agreement.
- MOBILE APPS: A great way to reach tech-friendly users.
Contact
Réseau LiEU
contact@reseaulieu.be
+32(0)81/62.25.94