On Open Source and software reuse, from Italy to India

Just what the title says.

On Open Source and software reuse, from Italy to India /img/agid-2019.jpg

In May 2019 the Agency for Digital Italy (AGID) published new Guidelines on software acquisition and reuse in italian Public Administrations. Here I synthesize the history behind those guidelines as written by Vincenzo Patruno, Project Manager and Open Data Evangelist, and then compare that report with other “public software” developments in India.

Software acquisition and reuse in italian Public Administrations: from the Stanca directive to the AGID guidelines

Software procurement in Public Administrations (PAs) was first regulated in Italy almost twenty years ago. Its history is a good overview of the changes that have occurred in legislation and administrative trends.

The concept of software reuse is a pillar of the new guidelines. Both in terms of economy and efficiency, it is much more advantageous to reuse and improve software that already exists rather than starting from scratch every time.

Historically, however, public administrations have managed software projects essentially in a “vertical” way: giving a supplier a series of specifications that define how that supplier should write and package the required software from scratch.

[This happens even if] it is rather unusual for public administrations at city or regional level to have really different needs in their areas of competence, like health and tourism. [Still,] they often try to satisfy those needs every time through “ad hoc”, newly developed software.

But a software solution developed for one PA (when released under an Open license) may very well be reused by another that has the same needs. And if in the past the reusable components were mostly proprietary, nowadays companies can develop software building on vast libraries of open source software, and contribute to their improvement.

A short history of Open Source software within italian Public Administrations

Back in 2002, a Commission created by Minister Stanca made of Italy one of the very first countries in the world to have a directive for Open Source in the Public Administration. The resulting “Stanca directive” mandated, for the first time in Italy, that all PAs must include clauses to favor software reuse in their software tenders and contracts. Before deciding to design a software product, a PA should verify whether other products, with the same features, was being already developed or used by another PA. This would allow the first PA to only pay “customization” and improvements, since the original development had been already paid by that other PA.

Five years later, in 2007, a second commission with the same mission was set up by Minister Nicolais, and once again it dealt with software reuse by PAs.

In 2007, however, it was still very difficult to make suppliers adopt an open approach to software developed for a PA. Companies strongly opposed such approaches, because their business models were essentially based on “locking in” their customers. Consequently, PAs ended up anyway with proprietary software solutions that only the original supplier could manage and maintain.

Besides this problem, there was a more practical one…

All too often, software was designed and built in ways that, regardless of licensing, made its code not really suitable for sharing and reuse. Releasing with an open source license software not designed to be reused, co-developed or easily portable, which may contain everything from proprietary, third-party libraries to legacy “spaghetti code” from earlier projects was a big problem, and so was reusing it.

The members of the Nicolais Commission were aware of this. When the Commission discussed about software reuse, says Patruno,“we already knew that at best we would have reuse of the supplier, not the code. This is why the italian “Catalog of [public software] Reuse” instituted at the time has not been used, in practice.

The current scenario

Today, the CAD has evolved further and the new Agid guidelines further improve the overall regulatory framework. What is more important, according to Patruno, is that the current technological landscape is completely different from 2007, and “certainly much more favorable to software reuse”.

Today, sharing code has become common practice among both companies and software developers.

Software has become more complex, but there is plenty of frameworks and Open libraries for code development. It is also common to work in “fluid” development teams that are often geographically distributed, through platforms like GitHub, GitLab or Bitbucket.

The end result is similar to what you would have when inviting guests at home: you worry much more about tidying everything up before anyone arrives to see the code. This, and the possibility of independent reviews and contributions, leads to better code, which is easier both to maintain and reuse, by everybody.

For this reason, the most interesting part of the new guidelines, in addition to the evolution of the regulatory system, is the adoption of the website developers.italia.it as a reference platform for PA software.

Meanwhile, in India…

On Open Source and software reuse, from Italy to India /img/aadhaar-logo.jpg

The digital identity system called Aadhaar is (whatever one thinks of its sociopolitical motivations, and consequences) a perfect source to “learn a lot about crucial stuff like Free/Open Source software, Open Government and Open Data”. This is why, last year, I listed twelve things I believe everybody should learn [from] Aadhaar. They are all important, but the ones most directly connected to the AGID guidelines story are number 6 and 8:

  • 6: Think a thousand times before inviting third parties between citizens and administrations
  • 8: The REAL reason why many public administrations do not want to Open Source their software is…

Read about those things in my Aadhaar post and you will immediately understand why, whenever teach or talk with civil servants, a recurring theme of mine is:

I don’t care (no, of course I do care, but that is another issue) whether you actually release your data or source code with an open license. Check your workflow anyway, and make sure you could easily do at a moment’s notice. Because if, for whatever mix of legal, technical or bureaucratical reasons, you cannot release as Open Data and Open Source your data and the software that manages it…

That is a very, very strong sign that your department is NOT working in the most efficient, cost-effective and citizens-oriented way! And I am not talking of software! I am saying that your org chart and procedures may need a serious overhaul.

(*) of course I am NOT talking of actually sensitive data, be they personal records or military ones. Open Data is something else entirely