SlideShare a Scribd company logo
Selecting software: Total Costs of Ownership
Open source is often selected as a means to reduce license costs and ease the management of said
licenses.
However, one must take the total costs of ownership into account, including but not necessarily
limited to:
• Migration costs: often a migration traject is needed to migrate data, templates, … from the
old system into the new one.
• Re-integrating costs: if a system is to be a “drop-in” replacement for an existing component
in an integrated environment, it still has to be tested, and some changes may be required
nevertheless.
• Maintenance costs: open source software also needs upgrades / security patches etc. These
changes have to be tested and installed by your staff.
• Training expenses: staff and users do need training, whether the product is open source or
not.
• Exit costs: at the end of usage cycle, there are exist costs for moving data, templates … out
of the system, into a new one.
Open Source Recommendations 1 / 3
Writing your own software - Custom development
Make sure you own the code
If your department wants to publish custom code, it has to be sure it has all the rights to do so.
While this may seem obvious, in some countries one has to explicitly specify in a contract that a
developer will transfer all the rights to the client / government agency he is working for.
This should not only cover source code, but also documentation (in original / editable form), hi-res
versions of graphics and so on.
Another option would of course be that the developers themselves publish the code as open source.
In that case the government does not own the code, but the objective (being able to reuse and adapt
the code within the boundaries of the license) is reached.
Don't invent your own license
Reusing existing licenses benefits both your department and the developers: your legal department
does not have to write something from scratch, and many open source developers are already
familiar with the existing open source licenses. This saves time and avoids confusion when several
parties need to combine and/or maintain open source software.
Stick to well-known licenses like Apache, BSD or (L)GPL. When in doubt, the European Public
License (available in 22 official EU languages) may be an option:
http://joinup.ec.europa.eu/software/page/eupl
Respect the license
Although open source software can be distributed for free, this does not mean it comes with no
license at all. Please respect the license: this is no different (and certainly not harder to do) than
respecting commercial licenses, and often the requirements are very modest and easily met.
When extending software or reusing open source libraries, your integrator should make sure that
components with different licenses can be combined.
Make sure you have the expertise to maintain the code
Having the source code helps, but having internal expertise (or being able to quickly find external
expertise) is equally important.
Without a good understanding of how the system works, it will be very difficult and / or time
consuming to find and fix bugs or add new features, when the typical code base easily consists of
several thousands of lines of code.
Open Source Recommendations 2 / 3
Use the well-known community tools
Many open source projects already have development tools and guidelines in place that can be used
for free. While your department may have its own development environment, it is recommended to
use the open source project's version control system / ticketing tool instead, and follow the
established best practices on developing code and writing documentation.
When developing a project from scratch, the European JoinUp platform may be considered:
http://joinup.ec.europa.eu
Contribute your patches
Aside from creating goodwill from the community, reporting bugs and contributing patches also has
the benefit of keeping your source code in line with the source code of the community. It is very
time consuming to maintain your own branch of a product that is regurlay updated, so contributing
your patches reduces the risk of divergencing code branches and simplifies the hand-over to other
developers.
In addition, some open source licenses require that all end users can obtain a copy of the modified
code. Contributing your patches to the project's code repository or ticketing tool ensures that this
requirement is met, without much effort.
Open Source Recommendations 3 / 3

More Related Content

More from Bart Hanssens

OpenFed, a Drupal distribution
OpenFed, a Drupal distributionOpenFed, a Drupal distribution
OpenFed, a Drupal distributionBart Hanssens
 
Open Summer of Code in Belgium
Open Summer of Code in BelgiumOpen Summer of Code in Belgium
Open Summer of Code in BelgiumBart Hanssens
 
Open Belgium 2022: Prepare To Code
Open Belgium 2022: Prepare To CodeOpen Belgium 2022: Prepare To Code
Open Belgium 2022: Prepare To CodeBart Hanssens
 
Werkgroep metadata: INSPIRE - DCAT-AP mapping
Werkgroep metadata: INSPIRE - DCAT-AP mappingWerkgroep metadata: INSPIRE - DCAT-AP mapping
Werkgroep metadata: INSPIRE - DCAT-AP mappingBart Hanssens
 
Quarkus, Jib én OpenJ9
Quarkus, Jib én OpenJ9Quarkus, Jib én OpenJ9
Quarkus, Jib én OpenJ9Bart Hanssens
 
Open Data at the Federal Level 2021
Open Data at the Federal Level 2021Open Data at the Federal Level 2021
Open Data at the Federal Level 2021Bart Hanssens
 
Open Data workshop Agoria ICT
Open Data workshop Agoria ICTOpen Data workshop Agoria ICT
Open Data workshop Agoria ICTBart Hanssens
 
Atelier Open Data / Agoria ICT
Atelier Open Data / Agoria ICTAtelier Open Data / Agoria ICT
Atelier Open Data / Agoria ICTBart Hanssens
 
Open Source and Open Data
Open Source and Open DataOpen Source and Open Data
Open Source and Open DataBart Hanssens
 
Open Community Projects
Open Community ProjectsOpen Community Projects
Open Community ProjectsBart Hanssens
 
From webform to API using microframeworks
From webform to API using microframeworksFrom webform to API using microframeworks
From webform to API using microframeworksBart Hanssens
 
Linked Data: Introductie
Linked Data: IntroductieLinked Data: Introductie
Linked Data: IntroductieBart Hanssens
 
Open data, what's cooking at the federal level 2020
Open data, what's cooking at the federal level 2020Open data, what's cooking at the federal level 2020
Open data, what's cooking at the federal level 2020Bart Hanssens
 
BOSA DG DT: opendata et intégrateur de services
BOSA DG DT: opendata et intégrateur de servicesBOSA DG DT: opendata et intégrateur de services
BOSA DG DT: opendata et intégrateur de servicesBart Hanssens
 
Local and Regional digital transformation in Belgium
Local and Regional digital transformation in BelgiumLocal and Regional digital transformation in Belgium
Local and Regional digital transformation in BelgiumBart Hanssens
 
Voordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic webVoordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic webBart Hanssens
 

More from Bart Hanssens (20)

OpenFed, a Drupal distribution
OpenFed, a Drupal distributionOpenFed, a Drupal distribution
OpenFed, a Drupal distribution
 
Open Summer of Code in Belgium
Open Summer of Code in BelgiumOpen Summer of Code in Belgium
Open Summer of Code in Belgium
 
Open Belgium 2022: Prepare To Code
Open Belgium 2022: Prepare To CodeOpen Belgium 2022: Prepare To Code
Open Belgium 2022: Prepare To Code
 
Werkgroep metadata: INSPIRE - DCAT-AP mapping
Werkgroep metadata: INSPIRE - DCAT-AP mappingWerkgroep metadata: INSPIRE - DCAT-AP mapping
Werkgroep metadata: INSPIRE - DCAT-AP mapping
 
Overzicht DCAT-AP
Overzicht DCAT-APOverzicht DCAT-AP
Overzicht DCAT-AP
 
Quarkus, Jib én OpenJ9
Quarkus, Jib én OpenJ9Quarkus, Jib én OpenJ9
Quarkus, Jib én OpenJ9
 
Open Data at the Federal Level 2021
Open Data at the Federal Level 2021Open Data at the Federal Level 2021
Open Data at the Federal Level 2021
 
Open Data workshop Agoria ICT
Open Data workshop Agoria ICTOpen Data workshop Agoria ICT
Open Data workshop Agoria ICT
 
Atelier Open Data / Agoria ICT
Atelier Open Data / Agoria ICTAtelier Open Data / Agoria ICT
Atelier Open Data / Agoria ICT
 
Open Source and Open Data
Open Source and Open DataOpen Source and Open Data
Open Source and Open Data
 
Données ouvertes
Données ouvertesDonnées ouvertes
Données ouvertes
 
Open Data
Open DataOpen Data
Open Data
 
Open Community Projects
Open Community ProjectsOpen Community Projects
Open Community Projects
 
From webform to API using microframeworks
From webform to API using microframeworksFrom webform to API using microframeworks
From webform to API using microframeworks
 
Linked Data: Introductie
Linked Data: IntroductieLinked Data: Introductie
Linked Data: Introductie
 
JavaVMs en GraalVM
JavaVMs en GraalVMJavaVMs en GraalVM
JavaVMs en GraalVM
 
Open data, what's cooking at the federal level 2020
Open data, what's cooking at the federal level 2020Open data, what's cooking at the federal level 2020
Open data, what's cooking at the federal level 2020
 
BOSA DG DT: opendata et intégrateur de services
BOSA DG DT: opendata et intégrateur de servicesBOSA DG DT: opendata et intégrateur de services
BOSA DG DT: opendata et intégrateur de services
 
Local and Regional digital transformation in Belgium
Local and Regional digital transformation in BelgiumLocal and Regional digital transformation in Belgium
Local and Regional digital transformation in Belgium
 
Voordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic webVoordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic web
 

Recently uploaded

SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsUXDXConf
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Motion for AI: Creating Empathy in Technology
Motion for AI: Creating Empathy in TechnologyMotion for AI: Creating Empathy in Technology
Motion for AI: Creating Empathy in TechnologyUXDXConf
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Boni Yeamin
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupCatarinaPereira64715
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfalexjohnson7307
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsPaul Groth
 

Recently uploaded (20)

SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Motion for AI: Creating Empathy in Technology
Motion for AI: Creating Empathy in TechnologyMotion for AI: Creating Empathy in Technology
Motion for AI: Creating Empathy in Technology
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 

Some Open Source Recommendations

  • 1. Selecting software: Total Costs of Ownership Open source is often selected as a means to reduce license costs and ease the management of said licenses. However, one must take the total costs of ownership into account, including but not necessarily limited to: • Migration costs: often a migration traject is needed to migrate data, templates, … from the old system into the new one. • Re-integrating costs: if a system is to be a “drop-in” replacement for an existing component in an integrated environment, it still has to be tested, and some changes may be required nevertheless. • Maintenance costs: open source software also needs upgrades / security patches etc. These changes have to be tested and installed by your staff. • Training expenses: staff and users do need training, whether the product is open source or not. • Exit costs: at the end of usage cycle, there are exist costs for moving data, templates … out of the system, into a new one. Open Source Recommendations 1 / 3
  • 2. Writing your own software - Custom development Make sure you own the code If your department wants to publish custom code, it has to be sure it has all the rights to do so. While this may seem obvious, in some countries one has to explicitly specify in a contract that a developer will transfer all the rights to the client / government agency he is working for. This should not only cover source code, but also documentation (in original / editable form), hi-res versions of graphics and so on. Another option would of course be that the developers themselves publish the code as open source. In that case the government does not own the code, but the objective (being able to reuse and adapt the code within the boundaries of the license) is reached. Don't invent your own license Reusing existing licenses benefits both your department and the developers: your legal department does not have to write something from scratch, and many open source developers are already familiar with the existing open source licenses. This saves time and avoids confusion when several parties need to combine and/or maintain open source software. Stick to well-known licenses like Apache, BSD or (L)GPL. When in doubt, the European Public License (available in 22 official EU languages) may be an option: http://joinup.ec.europa.eu/software/page/eupl Respect the license Although open source software can be distributed for free, this does not mean it comes with no license at all. Please respect the license: this is no different (and certainly not harder to do) than respecting commercial licenses, and often the requirements are very modest and easily met. When extending software or reusing open source libraries, your integrator should make sure that components with different licenses can be combined. Make sure you have the expertise to maintain the code Having the source code helps, but having internal expertise (or being able to quickly find external expertise) is equally important. Without a good understanding of how the system works, it will be very difficult and / or time consuming to find and fix bugs or add new features, when the typical code base easily consists of several thousands of lines of code. Open Source Recommendations 2 / 3
  • 3. Use the well-known community tools Many open source projects already have development tools and guidelines in place that can be used for free. While your department may have its own development environment, it is recommended to use the open source project's version control system / ticketing tool instead, and follow the established best practices on developing code and writing documentation. When developing a project from scratch, the European JoinUp platform may be considered: http://joinup.ec.europa.eu Contribute your patches Aside from creating goodwill from the community, reporting bugs and contributing patches also has the benefit of keeping your source code in line with the source code of the community. It is very time consuming to maintain your own branch of a product that is regurlay updated, so contributing your patches reduces the risk of divergencing code branches and simplifies the hand-over to other developers. In addition, some open source licenses require that all end users can obtain a copy of the modified code. Contributing your patches to the project's code repository or ticketing tool ensures that this requirement is met, without much effort. Open Source Recommendations 3 / 3