3.8. Maintenance of software by the owner administration¶
Software maintenance, whether upgrading or corrective, is an essential process in the life cycle, as it keeps the software updated as regards to rapid technological development, regulatory development and the new requirements of the administration.
Furthermore, during maintenance, product software updates fall within the scope of Article 69 of the CAD and must therefore be available for reuse. This section describes the maintenance procedure that we recommend to easily allow for the reuse of these improvements.
3.8.1. Ownership of the code developed during maintenance¶
As already discussed in 1.5 Ownership, the administration must assume full ownership of software developed from scratch, including any portion developed during a maintenance contract. Please refer to the aforementioned section for further information.
3.8.2. Release of modifications under open licence¶
To release modifications to software, it is not possible to use the process previously described in 3.7.1 Releasing new software under open licence; in fact, this process, regardless of the extent of the modification, would create a second source code repository separate from the original, creating high costs for any administration that, having reused the original software, hopes to continue to benefit from its ongoing development.
The proper and cheaper way (both for the owner administration, and for those who hope to reuse the software in the future) to maintain software under open licence is to adopt a specific development process in which every individual change is carried out directly in the original repository containing the software, providing immediate evidence of the change that has occurred.
Furthermore, it is essential to communicate that the software is in the maintenance phase (by entering this information during the software registration in Developers Italia), so that other administrations can take this into account in the comparative assessment phase.
The entire process is described in technical detail in Annex B: Guide to maintainingopen source software. In the case of procurement, the administration is required to include the guide among the tender technical documents, for example as an annex to the technical specifications, so that suppliers have immediate evidence of the process required.
3.8.3. Support for reusing administrations¶
Even if there is no guarantee or technical or training support obligation on the part of the owner administration towards administrations that reuse the software, where the software is subject to upgrading maintenance, it is essential that the internal resources or companies in charge of such maintenance provide basic support to those who report specific issues, or who wish to make (at their own expense) changes to the software.
In fact, the reuse model, allows for multiple administrations to invest in the same software, each with its own budget, therefore incrementally adding to the value of the original software. However, for this process to work correctly, as a minimum, a technical coordination process between the public administration that maintains the software and the administration that intends to modify it is desirable. Furthermore, this provides an opportunity to share development plans and therefore investments between multiple administrations as regards the same software, with savings for public financing.
3.8.4. Software not yet released under open licence¶
If the administration initiates a process of maintenance for software that it already owns, but for which it has not yet released under an open licence, adding its initial release to the maintenance contract must be considered, because of the lower cost that is normally incurred compared to carrying it out separately.