 All right, everyone. Welcome. We're going to talk today about extensibility in DHS too. For those of you who don't know me, my name is Austin McGee. I'm the deputy tech lead for the DHSU software team. And I'm apparently too loud because Max is turning me down. That's the first time that's ever happened. Welcome, everybody. So today we're going to talk about extensibility. And I have a good group of folks to join me up here today to talk about real world experience with extending DHSU. But first, to get people kind of in the mood. Who here has ever installed DHSU and never touched it again? And then it just worked for the rest of the time you used it. It's out of the box. You install it. You never touch it again. Anybody raise hands? Who has done the opposite? Who has had to configure it? Maybe had to extend it a little bit? Had to change it? Raise your hands on Zoom if you're joining us there. I'm surprised. So some people are maybe just working with empty DHSU instances. That seems possible. Maybe we need to work on some data use in those cases. The moral of the story is that DHSU always needs to be adapted to the local context. It almost always needs to be changed, needs to be extended, needs to be integrated with other systems that are around it to match the workflow and the use case for which it's being used. And so what we're going to talk about today is how we as a community and we as the global software team can help to provide infrastructure and support for those extensions to make them easier, lower costs, easier to maintain, and so on and so forth. But before I get started with that, I want to wind us back to 2019, not for the obvious reason, but because that was the last DHSU conference that was here, live in Oslo. And back at that time, we had something, a vision called application platform that we hadn't even started to roll out yet. And I gave a presentation with this slide that is kind of dizzying, but it shows the cost of maintaining applications in DHSU. This is particularly for the core team, which maintains 30 plus applications across multiple versions of DHSU, many libraries that support that. And basically we're maintaining hundreds of code bases in order to keep DHSU running and provide all the features that you want across multiple versions in the wild. And that that's only a piece of the puzzle because then there's also everyone else out there who are building additional applications in DHSU to extend that functionality. And so what we did by introducing the application platform, one piece of our extensibility infrastructure I'll talk about some of the others later is to do what's called inversion of control where instead of allowing an application to basically take control of your entire web browser and do everything, which means that the developer that's building that application then needs to do everything for you. We flipped that around so that DHSU provides an encapsulated space that is smaller problem space for the developer to work in makes it easier to build something new easier to iterate and also easier to maintain those innovations over time. We also have built since 2019. There are multiple stages of what an application needs to do or an extension needs to do in DHSU. You need to build it. You need to maintain it over time, which is a lot harder than people anticipate. You might share it with other people and that also comes with costs and also challenges because you might be installed on a DHSU instance that you've never seen before. You maybe never will see because your application then needs to work in a specific context. But I wanted to share something that he said in the hallway to me the other day, which he was talking, I did not prompt him about this at all, I promise. He was talking about what applications we need to do. Sorry if we didn't participate, we had some technical problems. We were talking about innovations that have been in DHSU since 2016 until now. I would like to tell you that we are also improving the platform of DHSU and it is for this that we have tried to put applications in the ecosystem. We have all done it in the DHSU and it is necessary to be able to represent the unit of organization as we allow it to be selected and it was not very easy at the beginning. So you have to consider if you want to build a new application. So today things have become simpler for the new DHSU. Now for the modern DHSU platform, we are trying to do everything to put in place infrastructure that allows you to be able to work well and select the unit of organization at all levels. Now I will talk about this platform, DHSU as a platform. I hesitate to use the word platform because we use it in lexical but it is the word we have been using since, so that's why I don't know the choice. So what is it for this platform of extension in DHSU? The one that is powerful is the REST API. There are several of you who should already know that we have a REST API that is very documented that allows you to work well in DHSU. And also to design is very easy because everything you can do in the web application of DHSU is done through the API and we do everything so that everyone can put extension applications. Also we have the web application development framework that uses the control version and it allows you to be able to put a telephone application in place too. Yesterday we talked about several things and so we improved a lot the platform on the telephone than the web on the last version. Also we have tried to do everything so that the application can be intuitive and well be used in DHSU. And also those who use the DHSU, they have a system with which they can interact. So when I see these organizations, we try to understand how does it work even if they have already seen that in the past. So we want people to easily use this extension in their application. Also we have other tools like the Java DHS2 that allows the interoperability of the application. Also we have the normalizing tools of developers that allow you to test the application to see how we have managed to improve agility. We also want to work on the base platform. Also we have what we call the DHSD app that allows you to share the innovations with other people in the community so that innovations can be used again and be more efficient. Because it applies to a lot of contexts. Also there is documentation that has become more extensive, even if the community and the training that allows you to work and implement these applications. And here is the screen capture of the DHSD developer portal that allows you to have this community. If you don't know this platform, you go to dhsddeveloper.org and then you will be able to contact us. We hope that developers on your side of the platform will join the team. So what happened since 2019? There have been a lot of things that have been produced since the idea of the application was introduced during the annual conference. Basically all the applications that were developed by the team in the DHSD were used by dozens of third-party applications that also tried to take advantage of what we are doing now. The application of the transition base has also been taken into account by the team to be able to solve the bug problem as quickly as possible. Also they have developed academies and also developed awareness programs. And it has allowed people to share their knowledge and have feedback from the developer community to see how we can improve our tools and infrastructures. One thing that was mentioned yesterday, I don't know if it's quite understood by everyone, is that 2.38.0 has seen the day. 2.38.1 is going to see the day and that is just the server side of the DHSD and all the applications can be installed independently, to want to integrate other parameters directly. So we are trying to work a lot with third-party developers to be able to improve our processes, so that everyone who uses the DHSD can know of new features quickly enough to be able to improve their applications and fix the bugs that may have the same as other advantages as well. So to sum up, simply for what is the platform, what it allows us to do is to be able to build the innovation quickly and in a way that it is easy to continue to maintain development as well. And also it allows us to reduce costs in terms of investments to be able to have innovation on the application of the DHSD and also it allows us to keep it in time because it is not very easy to be able to have innovation in applications. Once it is done, you have to do it to maintain this innovation even if it is done in a country, you have to do everything to make it available in all countries as well. We do not use a lot of effort to be able to now share the new innovations, you know that in the DHSD it is not very difficult, we can have access to all the innovations without being formed again on the application level at every time. So my colleagues, I just spoke about the collaboration for the development of the application of the DHSD.