 Okay, can you hear me? Okay, so welcome back to second day of Academy I hope you had a wonderful evening yesterday and could enjoy some great food and We start the second day with a keynote from Leonardo Favario who is a Government official from the Italian presidency and he will speak to us about developers, italia and the work that they've been doing to bring more open source at the government Thank you. Thank you very well. Yes. No, maybe. Yeah, cool. All right. Welcome everyone In the last couple of days, I was thinking about how to communicate in this short amount of time whatever we have been doing in the past, let's say three years and I wanted to focus mainly on these three Points, let's say three topics community legal framework and catalog now. I know that we We're developers, so we don't speak legally so we don't want I don't want to bore you with too much About the central legal framework, so I will be very very quick about that But I'd like to talk to you about that since I think that Italy it's quite advanced in this sense First and foremost, who are we and what are we doing? I Like and we like to define us as a startup in the government Okay, so we are a bunch of folks like 30 to 35 people Let's say focus and we have a background in different fields from software architecture software development to free and open source software and In we say that we are building the operating system of the country What does it mean? Government the governments in general are complex machines But in order to digitally transform a country We need to have some solid foundations So we need to have the digital infrastructure in place before thinking about how to Build layers on top. So this is exactly what we are focusing on we call them the enabling platforms and For example, those are like the national resident Register they are like the digital identity. They are the digital payments and of course When we started to think about how to implement these Ideas and put them in actions We said, alright, we don't just need technology We need to involve the citizens as much as possible and that's exactly why we built Communities around them. We have a community called designers italia, which is focusing on Writing and developing guidelines for templates for all the public services. We have developers italia And that's the focus of my talk, which is focusing on how to Get people involved. So how to get developers involved how to get citizens Involved give feedback and open issues and so on and now to of course get public administrators First of all understand what we're doing and then contribute. So Let's start with the first topic which is which I like to call community. Oh developers italia is the community of public service developers and I like to say that we're like 3000 developers even if we are not exactly all developers. We like to treat everyone in the same way so What's the particular point I would say the one of the most fundamental one is that Everything the digital digital team and everything we are pushing the public administration to develop is 100% free and open source and we'll see how the legal framework is helping us in in order to accomplish these this target, let's say so I Know and we all know that numbers are not a real indicator of how communities are Exactly performing and now and we heard really good speeches yesterday. However, just to give you a quick Look see of the situation. We have 250 open source repositories More nearly three thousand users in in our chat channels We then they exchange like 35,000 messages last month. It was vacation months. So in Italy So you you may think that this is not a huge peak. However, something is happening. It's in an interaction among these players is happening on our channels and I like also to focus on The hackathon that in October 2017 was run by our team and I think That these was our way to get people to know what we were doing. Okay, so putting hide under developers in 26 cities also San Francisco was connected live On the same weekend in order to develop and work and understand how public services had had to be You know designed and developed and and tested was a great opportunity for us to Understand what people wanted what citizen wanted what public administration or administrators wanted involved also a little small to medium enterprises and then You know grow the overall community. So you may say, okay, you're talking about communities But what are you providing those folks? What what is the objective of your community? And what are you talking about? Okay? So developers Italia and you can browse the developers that I tell you that I T is what we call a developer portal So we were focusing mainly on two things. The first one is a platforms catalogue, let's say so I was Mentioning before the the work of the team that is Working on the enabling platforms So as I told before digital identity digital payments and so on but we said, okay, we are developers So we kind of know what we need. Okay, so we don't just need some sort of blog posts and You know rough documentation. We need something more. We need technical rules. We need To have access to a whole set of SDKs written in different languages for different frameworks We need also maybe graphic resources. Okay, so that if we need to implement a web application using some sort of Interfaces has to be a template Sort of standard in order to Let the citizen have the best experience possible and also we need to test Okay, so as you can see, I quickly showed you what the digital Identity page on our web portal as so it all it has all these sort of objects and it allows Developers to quickly access it. This is the first part and then the second part in our developer portal. We are Stressing is the API selection. So of course If we want to interact with public services with some sort of well application somewhere We need to have API's in order also first of all to test and then to understand if the code we're writing is actually Performing the the operation we want. So How do we find API's in Italy is in Italy? Sorry, it's it's not so straightforward So we said, okay, let's prepare a web page where we show a selection of all the rest API's and then we help public administrators to write Open API 3 specs and and we help them write documentation in order to have again standardized way to interact with them Okay, so what are we providing to all the community? We have a Get up account where we are storing as you can see most of our of our code or where people can actually Become maintainers since we want to involve the community So if someone is doing a great job in some private citizen is some freelancer also if Small-medium internet enterprise is doing a great job on a piece of software then it's okay They can become a maintainer and we are Stressing this we want to involve as much as possible people to get connected to the code All right code without documentation is quite Hard to grasp is quite it's not so straightforward to understand so One of the first things that the team decided to do was to implement a documentation platform So this is Docs Italia and is our response to that is based on read the docs with a template Made in a standard in a standardized way using the Designers guidelines and then at some point we said okay, this is cool But let let me think about it. We're just storing documentation Why don't we just try to experiment something new and put also loads on top of this platform If you think about it a low is something or you know technical Document Derived from a low. It's nothing else than a document that evolves over time So we're using to use get every day to use version control to get diff on some piece of code Why don't we just try to do it on the lows as well? Okay on our legislation? So we started Drafting and putting as much information as we could on top of this platform And right now citizens can easily just browse The load they're looking for and see the very front version see who made a modification where and How it did change and so on and on and we're using this platform stressing its use also for When when a low is getting it's in the process of getting published so we want to Involve citizens into the decision so people can comment on this platform. They can You know open Merge or pull requests they can do all sort of things that we are used to do in software development, but Maybe and it can be of course applicable also in the in the field of a Simple text as a low is but it has never been done before Of course other tools that we are providing to our community are Meeting points so and now seeing Kuwait is using a forum this based on discourse and It's incredible how? People are actually appreciating it Private citizens are appreciating this platform and they are not only discussing about our Platforms our software the ones that we are doing at developers Italia at the digital transformation team But they're talking about every kind of service that is available to private citizens and this is something again, maybe it's quite trivial for us because we are all used to Bulletins and in forums and in chat, but it's something that is quite Let's say revolutionary in a government and people are using it as well And then of course we are we have a black channel, but we are also evaluating other possibilities For letting people Communicate in real time and in a chat fashion. Okay, so this is all the the background Let's say what developer Italia was up until a few months ago And then something started to change something started to improve and then I want to ease Again without boring you too much Introduce you to the new legislation framework and in the in Italy. So, okay Italy has an interesting set of lows for what regards digital administration and they are all Grouped inside what it's called the digital administration code and that's that's Italian low and it's interesting because two articles in this code article 68 and 69 are totally in Direction of free and open-source software why well because those two articles say they a public administration in order to in the phase in acquisition phase when they need to acquire a new software and they have to go Free and open source by default. Okay, so the first pick has to be free and open source And just if they cannot find As a free and open-source solution developed by other public administration or developed by third parties like we could be private citizens then they can you know, we will see how they can Sign an analysis where they state that there was nothing provided and then they can start developing their own Code if they develop their own code from scratch then okay that code has to be 100% free and open source okay, so it has to have an free and open-source license has to be published on some sort of code versioning system and It has to be available for the old other citizens. So this law was Already had already been crafted when the digital transformation team came to be however It was hard to interpret it. So it was hard to really understand how Those passages were had to be done. So a normal public administration didn't know exactly how to publish a piece of code how to interact with other administration in order to get a Piece of code and and get it to work So that's why the team in the past three years worked on these new guidelines and the name guidelines looks like yet Another piece of document however right now they are low. So they are mandatory by law and these guidelines I believe are a really good opportunity for a public administrator to understand how these process works so these are practical guidelines and that Tell everything from how to start a project in an open fashion by default how to manage how to maintain a repository how to You know deal with merge or pull requests to upstream from other Contributors and so on and on and the cool stuff. I believe it's that and those these guidelines contains Some technical attachments we call it that way that you can basically copy and paste them inside a Contract you're making to a third-party developer so that even if the developer doesn't know how to do that Well, it's the public administration in the contract itself. It's Specifying what the developer has to do in order to go open by default. Okay, so this is something I believe quite revolutionary because it's again. It's basically a mandatory by law that The public administration has to go open by this by default. So again as I told you before This guideline tell a PA to make a comparative assessment if you don't find a Free and open source software in our catalog and we'll see what the catalog is Then you have to sign a piece of paper where you say, okay, this software doesn't exist I have to develop it but then when developing it I have to go open by default Yes, that's it, but just to clarify two quick example development phase And let's say reuse phase. Let's call it that way. So Let's start in this a little Blue ellipse over here, so we have public administration a that for some reason had made the comparative assessment and decides that there's no Free and open source software available and it has to develop a new one. So what I what it means Okay, PA a starting from here drafts the contract and Commissions the development to the developer in this contract it's written again Taking from some of the attachment of the guidelines and put it in the contract it's written that That piece of software whenever it's done The ownership of that piece of software app has to be assigned to the PA Okay, so the PA Commissions the development of software that software whenever it's finished the the ownership of that software goes back to the PA And then at that point the PA can do basically two things one is Publish that code it by itself or the second one is ask the developer to publish it usually the what happens is that you put it in the contract that one of the Last thing to do is to ensure that that a code is being Published on top of some code public code hosting platform. Okay, and then what happens? Well Automatically and we'll see how these code is being indexed into our developer Stalia catalog so that our other public administration can directly draw from it Okay, and see a And make use of it take advantage of it. Okay, so that was development phase Let's see the reuse phase again. We'll start from public administration be this time. Okay, I'm down here So public administration be first thing is The public administration has to do is to search for that software Search for any kind of software on top of the our platform on top of our catalog if there is a hit Let's say what happens. Okay, public administration be tests it The public administration has to see if that software is really fitting their requirements and their needs Probably and this is happening many times. What happens is that? Probably the administration be needs some customization needs to have some modification and so on so again Public administration be a points a developer to do those and those customization The ownership of those customization goes back to the public administration and then again as we saw before that code develop goes Goes directly on top of a code hosting platform is re-indexed by our Catalog is shown again so that the an imaginary public administration C could see the first Imago software and then also the modifications. Okay, so that it's more Immediate and transparent way of handling public administration code. Okay, so we saw community the community part We saw these short Let's say resume of the legal framework and now we see where this information is actually stored where it is indexed and I mentioned before the catalog the developers Italia platform What is the catalog? What are we talking about when when we are dealing with the catalog? so I told before Developers Italia was a developer portal it had platforms it had API's Right now starting in June. We also have another section and if you browse aside the the side Which is also translated in English you can easily see it and this new section is called Software okay, it's called software catalog So again one of the questions I was asked like I don't know Thons and like thousands of times when I was trying to Talk with public administrators like PA managers like people who you know managers who take decisions and who? actually decide if a Software has to be developed from scratch or as to You know reused in some way one of the first question they make me they made me was where do I find those information? Where do I find that piece of software and it again thinking in a? Developer fashion. It's kind of trivial. So what do we do? We just browse some sort of? Website we query some Search engine we asked some friends. We just asked the community and in a way or other we are able to more or less understand which are The softwares that may fit our needs or which are a set of libraries that we could use okay But this is not so straightforward for example when dealing with public administration So we decided that we had to build a catalog and an actual this catalog is Mandate a mandatory by law right now and the laws I was was telling you before and what this catalog is is basically Again a container of all these Information regarding a software so you can see over here. It's quite light, but Every every software has Dedicated page you can See the information the page information regardless. I don't know features or the roadmap or Of course screenshots of or you can also see the tree of forks Okay, so that you can understand What which is the original fork that originated the other ones or if there's a fork that has been maintained more than another one You can see who are the maintainers okay, which is quite quite important and if there is a contract right now So for example again think about the example before so if public administration a was is right now paying a Contractor in order to maintain the software then public administration B Can't take advantage of that and doesn't have to pay another time to maintain the same piece of software Or maybe they can you know join forces and Let make that software become a little bit more Featureful or you know better maintained and and tested and then there and then there we also inserted a sort of index we call it Vitality index which is a combination. There's an algorithm that is basically Taking into consideration all the activity all the activities that are going on onto a certain Repository and it's showing some sort of vitality in order to help the administrators. Of course the catalog has is indexed we have a recommendation system in order to you know help in the in the search and phase we have a Cloud of tags and so on and you can see over here that in the first I would say Month and a month and a half. Let's say 60 days two months We already collected like 42 45 solutions So and this has been even without us even without the T digital team going there and asking For contributions the public administrations just reading the guidelines reading the laws Understood that this is mandatory. So right now from now on they have to go open by default so what they did they created if they didn't have one a and an organization on top of a code hosting platform and they Inserted all the information on top of that in order to be registered in our Catalog and the indexed you may ask, okay, but how do you get all this data? How do you get information regarding? I don't know where the okay where the Who is maintaining the software which platforms is the software made for? Who is using the software? Okay, which are the public administration using the software? So that's how we crafted and why we crafted a specification. Let's say a metadata specification called public code the YML and in which is sort of You may say, okay, there are a lot of Specification standards over there. However, there's not a real one for what concerns public administration so this standard is exactly targeting public administration software we use and We have been crafting it in a way so that both developers and manager so, you know Decision makers can actually take advantage of this code. Of course, it's YML So it's easy to write easy to read. However, in order to further help our Administration we created an editor, which is basically, you know Which is what you get basically? Forms that you you can You can feel and then what what is the output of this editor? You're creating that public code the YML file you're downloading it And the only thing you have to do in order to be indexed in our catalog is to put that public code the YML file In the root of your repository. Okay, so this is actually the actions that the Public administration did they created a public code they crafted one exactly with the specification of their Software they downloaded it. They put it in on the on the route in the route of the repository that they owned and that every night automatically our crawler crawls all the The public code hosting or the on-premises that you're You're installing for yourself on your own organization and automatically extracts information from this public code YML file and populates your web page and indexes that page into all the Our catalog so, you know, it's it's really straightforward. It's really trivial Okay, I've been talking just about public administration. Maybe a little bit boring. However, I would like to Again, I think this is a clear call to action right now since Public administrations right now with this new legislation are doing anything Anything let's say fantastic or extraordinary. They're just you know Following whatever we are used to do when developing free and open-source software just opening a repo Using free and open source license and then you know continuing to develop and the development in the open So that's why in the catalog Apart from the public administration reuse part. There's also another part that we call third party Open-source software and in that part it's basically That part is basically open to anyone. So any one of you are developing free and open-source software or You know if you find also a piece of software that may be of interest of a public administration Well, you can create a public code YML file put it in that repo with some easy pool of merge request and That's how immediately The night after the the crawler will crawl that information and will publish that software on top of the cattle So we see how if we make this catalog Alive we make it as active as possible. We publish as many information as possible And so this means as many software as possible This means that public administrations when they have to Acquire new software the first thing and this is mandatory by law that they have to do is to go on that catalog To check if that software is already there and the loam and dates that if that information that software is there Then they have to pick it Okay, so I believe this is what I call a promotion Okay, so use the catalog as a showcase for your software in order to let public administration Know that your software is there your software is awesome and your software is actually able to solve their problems and if it's not well, they can take it and Maybe you know getting contact with you and get a contract with you in order to Further develop it and reach the status Did they want it to be so? Okay, of course, this is just a little step you may say where is this revolution, right? So This is just a little step, but I believe it's just I don't know a giant leap forward for public administrations because It's it has been hard for them and for governments to find exactly the software that we're looking for and That has been sort of a scabotage in order to develop software from scratch or you know gets a software maybe proprietary software with Incredible Licenses just because they were not able to find one so the legislation is on our side right now We have the catalog we have the instruments and the tools in order to make the catalog alive and to populate it and It this is a way so that we have to Let public administration understand that these keys has to be the default easy It's right now mandated by law, but it will eventually become the default Of course, this is a little step. We don't want just them to publish the software when it's released. We are In this outreach phase the digital transformation team is telling everyone how to handle a software and be Software development and be open by design. Okay, so from the very first step you have to go open Involve the community listen to the feedback of your citizens Which are actually the users of your software and in this way make it as much interoperable as possible. Thank you any questions Hey, thanks for the presentations. I and I have two small two Questions number one is that are there any security audit conducted by and by and by independent parties on the open source Code and number two is that are there any kind of bug bounty programs for the Open-source course. All right, should we pick out the questions or yeah, maybe I can yeah, thank you for your question very interesting one Yes, so I would say right now the code is out there So what we are telling it public administration is like a watch out. You don't have to just download that Rapal clone the repo and just docker compose out. Okay You in the first phase what you need to do is to probably appoint or contract a Developer or a as you said some auditors That will carry on and you know do some auditing process on top of that piece of software so that You have to understand it also from a security perspective Someone review that code, you know someone actually Tested that code someone did some sass there's that you know some sort of analysis on that code So that's exactly what we're telling the public institution is not exactly self-service Okay, so okay the code is there, but it's also your repositories are there Okay, so but however when we talk to public instruction, we say okay. That's there, but please run a a Security analysis on top of that. However, what we are implementing right now is exactly in this direction So we would like to give public administrations that want to pick or in the acquisition phase Let's say an indication so running From our side on the digital transformation team Some security analysis I don't know also container Testing and so on We want to give them an overview or what's the state of the the security of that of that software Regarding bug bounty programs Okay, we are aware of like the European Union one like the Fossa project and It's we are in the process of defining how to do this It's exactly what we would like to do. I think it's personally. I think it's a it's a good Approach, however, we need to define out to out to go in this direction And I have a question. Yep. Thank you very much for your presentation I've noticed that you have documentation both in English and in Italian So the first question is what is your working language and second question is who writes your documentation? Okay, cool Thank you Yes, good question. So we try to go English by default in since For a lot of many different reasons. I mean also because when when you know dealing with developers, we all kind of know English and So that is not a real, you know obstacle however Since we're Italian government we have to of course provide also Italian documentation So we try to have both for most of the problem Regarding who writes the documentation we have a team of tech writers with which is Quite active and they have a lot of interaction with the developers So yes where we can we use tech writers in order to write a commutation especially for what do I told you? There are the enabling platforms where you know Good documentation really is needed. So we try to Make use of their knowledge in writing documentation as much as possible for those where we cannot we try to you know Follow templates so the designers team made Documentation documentation guidelines. I don't even know the exact name. However, it's a guidelines on how to To write proper documentation and we are following it in or our our Projects and the fact is that we are telling public administrators to use it as well Okay, so it's a it's a cycle and it looks like it's working right now Thank you Yep, so what about code quality as in What kind of measures are we're gonna be put in place to guarantee a certain amount of quality? I work in the sector and I can give an example so soft array doesn't exist yet a procurement will be created and Big company will come by bid the lowest. They'll get the job Make you know write as much as necessary to actually you know past quality tech and not quite that sorry Functional tests. Yep, and you know ship whatever a mess that is then functionality be needs to be done Another procurement another big company show a bit slowest monkey patch it until it works And that goes back in there. Yeah, good question of course, there are a limited amount of things that you can do in this way, but if you sort of Define which are some sort of thresholds in the contract itself then you know people start to work in different fashion So And that's the direction where the guidelines are went so as I told before the guidelines have these attachments that can be copy pasted into a contract and Most of the attachments are in exactly trying to solve this problem So they're asking for for example when you you just don't push the master, right? Or you just try to use code review process you try to Involve as many other people as possible, but you know what we saw that in many occasions These happened in the past where people were used to develop in a closed fashion So they are they had their own SVN or get somewhere and so they said, okay Who cares I just push there and then whenever it's finished. I'll I'll just ship my code when working in the open This is slowly changing So we are for example Helping public administrations to understand maybe also how to I don't know run pre hooks for Before pushing or to check whether you're storing You know past phrases or certificates or any kind of Sensible information into the into the repository. We're trying to help in order to avoid it So all of these I'm telling you it's already inside the guidelines So it will be attached to the contract to the contracts that you are giving your Your developer so, you know when it's a contract. It's it's more Let's say It's hard to to to avoid it and if you do avoid that then There may be consequences, of course So it we are trying to go exactly in that direction in order to avoid whatever we saw up until now Happening every day in order to avoid it seen in the future as well So basically the contractors they do the lowest possible and whatever mess and then ship that but nobody sees it if All those code that is developed Is in the open it by default starts to make it better even with no actions taken exactly Yeah, yeah, I feel the same and that's exactly the last slide right so that's why we're pushing Problem administrators to tell their developers and their contractors to go open by default Okay, so from the very first moment and not just push as a last the last commit and push it in the open Yes, if I also may add a comment in the procurement process You can see it's actually a very good advantage to remain maintainer of the software you have created So there is a good incentive for companies to do the right thing because it's going to be less expensive also for them In the long run and they're able to get many more contracts Leonardo have you ever thought about building up something like Trust pilot for citizen with speed so you know who is going to give a feedback and so maybe the One up public administration choose a software and the citizen is happy Maybe you collect the feedback. So maybe the software is good as what service. I don't know how exactly it's just an idea I got a question. I can say that in some project of the Italian digital transformation team. This is happening so we have we have a way to get direct feedback from Let's say beta testers or let's say early-stage users and However, we are thinking about how to implement it and scale it also for other for other projects like you said the digital identity is one candidate and Yes, we think that again in This is not our software. This has to be as transparent as possible. It's a Public software is for citizens. They they are the users So we have to collect feedback as much as possible in order to iterate over that and and release and ship better code Okay, I have two questions for you. Yeah first of all When did it all start that and second Have you experienced any? resistance from the big IT companies lobby Okay, cool question. Thanks Easy one Okay Okay, so that's the curious thing. So the The digital administration code has been out for quite a while so The new part is these new guidelines which again, they're called guidelines but formally they are and they are low they're mandatory and they have been I mean the team started to draft those guidelines in 2016 2017 and they have been published on May this year in 2019. So this is really fresh. This is new Regarding the second question as a team We we are in contact with a lot of providers with a lot of again small to medium enterprises but also big enterprises and We I think I think We were more afraid of you know of having to deal with situation than what really is happening in reality it's like It looks like people are sort of understanding that this is a low so they cannot really escape it so easily and so they are Re-engineering or rearranging their The development flow in order to comply with the law. So I would say yes, that was the scary part of course and But we have to know and we know the resistance will happen every day. However, we we already put it in place Counter-measurement counter-measures. So we know how to handle with this situation. We know how to reply We know how which you know which document to point or which allow to refer to even if you know, it's It's legal ease. So For developers, it's quite hard to do this work. However, we are For the moment. We are handling situation quite well. So I'll be happy to report you back in a year and hopefully Everything will be open Yeah, I have two questions. Yeah, the first one is you said you had put the laws now on the git as well Have you had any interest from lawmakers to actually use git to help them write laws and secondly, is there or could there be any cooperation with other countries in Europe for the public administration software Not quite sure I got the second one. Oh Say they have IT systems in Germany or Norway. Can you share the same software and cooperate on it? Well, okay You me yeah first question is Yes, the answer is yes first of all, of course, we need to involve a team of tech writers in order to Help low makers Publish it. I know it's just MD or you know markdown or RST It's not so complicated. However, it's you know, you're changing the way they're trying to do their Yeah, exactly. So it's it's not so straightforward. So that's why we basically use this the guidelines we wrote and also Human interfaces so people actually tech writers in order to help this transition to happen But this is really cool. I think it's it's a way to really see the changes and and many new Documents menu lows are gone are doxy tally by default. Okay, so they're already Written in that way in that format and using that technology by default and the second one It's an interesting question Since I would say definitely yes since at the end of the at the end of the previous all of the discussion the software is Nothing else than it any kind of repository with an open source license So the the contract itself between a public an Italian public administration and a German one is just a license So if you're using you know any NGPL license or any license you want that is in the OSI list then Why not right and this is exactly the direction where we're going. So this is not an Italian You know a little way of handling reuse and it has to be just Italian. It's Open source, so it's free and open source. It's just that's of course, which is the way to use it and Probably can be our catalog since our cattle is both in Italian and English That's also a way to You know probably spread it around and we are in in contact with different Governments in also. Yeah, well mostly in the European Union But also let's say outside in order to understand how to you know Work on this specification and the public that way I'm a specification. Sorry for that. There you go and Develop it further and then use the cattle. Why not? It's already there Of course, it's free as an open source if they want you can implement their own But if they want to use ours, that's cool That's it Okay, thank you if anyone has any queries, please ask Leonardo in person Yeah, I'll be here on the day. Yeah, okay. Thank you Leonardo for that amazing talk