Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Open Source Overheidswerk - Best Practices en Uitdagingen

Ivo Jansch
September 29, 2022

Open Source Overheidswerk - Best Practices en Uitdagingen

Op 27 September gaf ik een presentatie over 2,5 jaar open source ontwikkeling aan de diverse corona apps voor het Ministerie van VWS. De meet-up werd georganiseerd door Code4NL en vond plaats bij de Gemeente Amsterdam.

Ivo Jansch

September 29, 2022
Tweet

More Decks by Ivo Jansch

Other Decks in Technology

Transcript

  1. OPEN SOURCE OVERHEIDSWERK- BEST PRACTICES EN UITDAGINGEN
    IVO JANSCH CODE4NL MEETUP 27-9-2022

    View Slide

  2. Founder / CEO


    Solution architect


    Organisator
    WIE IS IVO?
    @ijansch

    View Slide

  3. ACHTERGROND
    WELKE APPS HEBBEN WE HET OOK ALWEER OVER?

    View Slide

  4. 3 BEKENDE APPS
    CORONAMELDER GGD CONTACT CORONACHECK

    View Slide

  5. CORONAMELDER
    3 APPS? 3 ECOSYSTEMEN!
    • Portal for submitting positive tests


    • Nationwide rollout of portal


    • Authentication via SSO GGDs


    • Rollout / implementation in 26 GGD regions


    • Training, communication


    • HSM


    • Interface with European gateway


    • Apple and Google


    • DP-3T
    GGD CONTACT CORONACHECK
    • BCO Portal


    • Interfaces to CoronIT / HPZone


    • Nationwide rollout of portal


    • Authentication via SSO GGDs


    • Secure mail portal


    • DigiD implementation


    • Rollout / implementation in 26 GGD regions


    • HSM


    • Training, communication
    • Interfaces to GGD, RIVM


    • Interfaces to testaanbieders


    • DigiD implementation


    • BRBA interfacing


    • HKVI / ZKVI / GKVI - Portals for healthcare pro's


    • CKVP - IVR (request QR by phone)


    • Standardisation across EU


    • Interface to European gateway


    • Interfacing with other countries


    • DCC Scanner


    • HSM


    • Scanner hardware


    • Trust frameworks (EU, PKI, PKI-O)

    View Slide

  6. WAAROM OPEN SOURCE

    View Slide

  7. WAAROM OPEN SOURCE?
    • Vertrouwen winnen door transparantie


    • “Een app als dit krijgt alleen voldoende draagvlak als we de ontwikkeling volledig
    transparant doen”


    • “Geloof ons” vs “Zelf vaststellen”


    • Ideeën ophalen


    • Bijdragen vanuit de community verwelkomen


    • Als de source ook anders inzetbaar is, is dat goede besteding van belastinggeld

    View Slide

  8. ‘VEILIG TEGEN CORONA’ MANIFESTO

    View Slide

  9. COMMUNITY

    View Slide

  10. OPEN SOURCE BETEKENDE NIET ALLEEN CODE
    Designs
    Code Documentatie
    UX Research Team Engagement
    Discussie

    View Slide

  11. DANKBAAR DAT ER EEN BESTAANDE CODE4NL COMMUNITY WAS
    COMMUNITY

    View Slide

  12. MEETUPS & OPEN DISCUSSIE

    View Slide

  13. PRAKTISCHE INRICHTING

    View Slide

  14. HOE RICHTEN WE ONZE GITHUB IN?
    • Bij eerste commit de licentie
    f
    iles al plaatsen


    • Voorkomt dat commits eventueel ‘buiten de licentie vallen’


    • Contributor License Agreement opstellen en CLA bot inrichten


    • Personen die voor het ministerie werken dragen hun auteursrecht al per contract
    over, dus hoeven geen CLA


    • Voor overigen borgt de CLA

    View Slide

  15. HOE RICHTEN WE ONZE GITHUB IN?
    • 4 ogen principe borgen (via GitHub branch protection rules)


    • Niemand kan naar main committen zonder een Pull Request te maken


    • Pull Request kan alleen worden gemerged met een positieve code review


    • “Signed commits” vereisen


    • Manier om de auteur vast te stellen


    • Gebruik de juiste accounts/organisations


    • Bijv ‘GitHub.com/minvws'

    View Slide

  16. PRIVATE VS PUBLIC REPOS
    Public

    repository
    Private
    repository
    Pull requests
    team
    Periodic sync
    PR, review, merge

    View Slide

  17. PRIVATE VS PUBLIC REPOS
    Public

    repository
    Private
    repository
    Pull requests
    team
    Pull requests
    community
    Periodic sync
    PR, review, merge PR, review
    Merge

    View Slide

  18. HOE RICHTEN WE ONZE GITHUB IN?
    • Repositories per deelsysteem


    • Met een naamconventie die relatie met project duidelijk maakt


    • Bijv. nl-covid19-coronacheck-app-ios


    • ‘Coordination’ repositories voor documentatie / beheer


    • ‘Provenance’ repositories voor bewijsstukken

    View Slide

  19. HOE RICHTEN WE ONZE GITHUB IN?
    • Private vs Public repositories


    • Private repository is ‘voorstadium’


    • Nuttig bij volgordelijkheid


    • Bijv vooruitwerken in afwachting van een persco / kamerbrie
    f
    ing


    • Nuttige extra stap om blunders te voorkomen


    • Niet bedoeld om zaken gesloten te houden -> uiteindelijk alles naar de public repo


    • Geautomatiseerd synchroniseren (‘sync script’)

    View Slide

  20. Checks automatiseren waar mogelijk


    View Slide

  21. AL OF NIET AFSCHERMEN TEAM

    View Slide

  22. NEAR REAL-TIME VS SNAPSHOTTING
    • Alle commits doorzetten, of


    • Per release doorzetten (snapshot)


    • Commits squashen

    View Slide

  23. IN GEVAL VAN APPS, EEN MANIER OM TE BORGEN DAT DE OPEN CODE OOK IN DE STORE TERECHT KOMT
    VERIFIED BUILDS

    View Slide

  24. WAT HEBBEN WE GELEERD?
    ALS PUBLIEK, PERS EN POLITIEK MEEKIJKEN

    View Slide

  25. Betrokkenheid vergroten door op alle lagen de community te koesteren

    View Slide

  26. SUCCES FACTOREN
    • Iemand met visie en pro-open source die de kar trekt


    • Draagvlak binnen het team


    • Overheid die zelf de regie over een project neemt


    • Belang van een community manager

    View Slide

  27. THE GOOD, THE BAD & THE UGLY

    View Slide

  28. TRANSPARANTIE HELPT TEGEN FAKE NEWS
    THE GOOD

    View Slide

  29. TECH IN THE HOUSE
    THE GOOD
    GitHub,
    Bluetooth,
    cryptography, sha256,
    weet je wel.

    View Slide

  30. PERS MOEST EVEN WENNEN AAN OPEN SOURCE OVERHEIDS PROJECTEN
    THE BAD
    27-5-2020, EERSTE DESIGN CORONAMELDER ONLINE

    View Slide

  31. ELKE BUG KAN TOT KAMER/PERSVRAGEN LEIDEN
    THE BAD
    24-6-2021, BROWSER ISSUE CORONACHECK REPORTED ON GITHUB

    View Slide

  32. .. MAAR DAT HELPT DAN WEER BIG TECH TE OVERTUIGEN

    View Slide

  33. SOMS WEET DE PERS HET BETER..
    THE BAD
    9-2021, MEDIA DECIDES TO DUB IT ‘CORONAPAS’

    View Slide

  34. SOMS WEET DE PERS HET BETER.. - MAAR MOOI DAT DE DIALOOG OPEN GEVOERD KAN WORDEN
    THE BAD
    9-2021, MEDIA DECIDES TO DUB IT ‘CORONAPAS’

    View Slide

  35. STERKE POLARISATIE RICHT ZICH OOK OP TEAMLEDEN
    THE UGLY

    View Slide

  36. THANK YOU!
    Questions?


    [email protected] / @ijansch


    • Code4NL Slack: https://praatmee.codefor.nl

    View Slide

  37. CREDITS
    - Cover foto copyright rijksoverheid


    - ‘Buildings The Hague’ by Mar10os, Flickr, used under CC BY 2.0


    - ‘Spreekgestoelte’ by Risastla, Flickr, under CC BY-SA 2.0
    CC BY-ND 2.0: https://creativecommons.org/licenses/by-nd/2.0/


    CC BY-SA 2.0 https://creativecommons.org/licenses/by-sa/2.0/


    CC BY 2.0 https://creativecommons.org/licenses/by/2.0/

    View Slide