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

Software Ontwikkeling Tijdens een Pandemie

Ivo Jansch
October 18, 2021

Software Ontwikkeling Tijdens een Pandemie

Ik was als architect betrokken bij de ontwikkeling van een aantal corona apps. Tijdens een bijeenkomst voor informatica docenten presenteerde ik mijn ervaringen. (De presentatie bevatte een aantal video's, deze werken helaas niet in deze online versie van de slides).

Ivo Jansch

October 18, 2021
Tweet

More Decks by Ivo Jansch

Other Decks in Technology

Transcript

  1. SOFTWARE ONTWIKKELING TIJDENS EEN PANDEMIE
    IVO JANSCH INSTRUCT INFORMATICA INSPIRATIEDAG, 13-10-2021

    View Slide

  2. Oprichter / CEO


    Solution architect


    Ondernemer


    Organisator
    WIE IS IVO?
    @ijansch

    View Slide

  3. TERUGBLIK
    KORTE HISTORIE CORONA APPS

    View Slide

  4. WELKE APPS WAREN ER OOK ALWEER?
    CORONAMELDER GGD CONTACT CORONACHECK

    View Slide

  5. CORONAMELDER
    TIJDLIJN
    28-2-2020


    1e covid19

    geval in NL


    18-4-2020


    Appathon


    Advies OMT


    6-4-2020
    Beslissing


    Zel
    f
    bouw


    22-4-2020
    7-5-2020


    Start ‘dreamteam’

    overheid + experts
    Ux test

    Twente


    17-8-2020
    1-9-2020


    Praktijktest


    5 ggd regio’s
    Wet

    aangenomen


    6-10-2020
    10-10-2020


    Launch
    Koppeling

    EU


    11-2020

    View Slide

  6. CORONAMELDER
    TIJDLIJN
    28-2-2020


    1e covid19

    geval in NL


    18-4-2020


    Appathon


    Advies OMT


    6-4-2020
    Beslissing


    Zel
    f
    bouw


    22-4-2020
    7-5-2020


    Start ‘dreamteam’

    overheid + experts
    Ux test

    Twente


    17-8-2020
    1-9-2020


    Praktijktest


    5 ggd regio’s
    Wet

    aangenomen


    6-10-2020
    10-10-2020


    Launch
    GGD CONTACT
    1-10-2020


    Start

    ggd contact
    Launch


    App


    12-2020
    2-2021


    Uitbouw app-portaal


    tot volwaardig BCO portaal
    Vervanging hpzone


    Door ggd contact ingezet


    20-4-2021
    Koppeling

    EU


    11-2020

    View Slide

  7. CORONAMELDER
    28-2-2020


    1e covid19

    geval in NL


    18-4-2020


    Appathon


    Advies OMT


    6-4-2020
    Beslissing


    Zel
    f
    bouw


    22-4-2020
    7-5-2020


    Start ‘dreamteam’

    overheid + experts
    Ux test

    Twente


    17-8-2020
    1-9-2020


    Praktijktest


    5 ggd regio’s
    Wet

    aangenomen


    6-10-2020
    10-10-2020


    Launch
    GGD CONTACT
    1-10-2020


    Start

    ggd contact
    Launch


    App


    12-2020
    2-2021


    Uitbouw app-portaal


    tot volwaardig BCO portaal
    Vervanging hpzone


    Door ggd contact ingezet


    20-4-2021
    CORONACHECK
    Start


    ‘Coronatester’


    12-2020
    13-4-2021


    Fieldlabs met


    Coronacheck
    Wet


    Aangenomen


    1-6-2021
    EU

    DCC


    1-7-2021
    25-9-2021


    Coronacheck


    Horeca etc.
    Einde 1.5m


    25-9-2021
    ?
    TIJDLIJN
    Koppeling

    EU


    11-2020
    23-6-2021


    Vacc.


    Bewijzen

    View Slide

  8. AANPAK: BOUW EEN SKELET
    ALS JE GEEN TIJD HEBT VOOR WATERVAL MODEL


    EN TE VEEL RISICO VOOR AGILE

    View Slide

  9. DEFINIEER EERST DE ‘HOOFD JOURNEY’
    HELDER DOEL

    View Slide

  10. •Technisch proof of concept


    •Stakeholder approval


    •Visualisatie concept


    •Wegwerp of doorbouwen?


    •Challenge assumptions


    •“Lean startup” achtige aanpak
    END 2 END DEMO
    DE HELE APP, GECOMPRIMEERD IN EEN PAAR DAGEN

    View Slide

  11. View Slide

  12. • De
    f
    inieer eerst de belangrijkste ‘journey’


    • Zet de hoofdlijn uit / stip op de horizon


    • Bouw een end to end demo ervan


    • Daarna pas ‘vlees op de botten’


    • Ontwikkel parallel de ‘skin’


    • UX design


    • UX research
    SKELET AANPAK
    STAPPENPLAN

    View Slide

  13. MAAR
    UITZOEKEN, UITWERKEN EN


    BOUWEN
    BOUWEN


    ONDERBOUWEN, VERBOUWEN EN SOMS HERBOUWEN
    NIET

    View Slide

  14. ARCHITECTUUR
    TIME TO MARKET / SCHAALBAARHEID / ONDERHOUDBAARHEID

    View Slide

  15. APPS ZIJN ZICHTBAAR TOPJE VAN EEN IJSBERG
    BOUW VAN ‘ECOSYSTEMEN’

    View Slide

  16. CORONAMELDER
    WAT KOMT ER NOG MEER BIJ KIJKEN
    • Portaal doormeldingen


    • Landelijke uitrol portaal


    • Authenticatie via SSO GGDs


    • Uitrol / aansluiting 26 GGD regio’s


    • Trainingen, communicatie


    • HSM


    • Koppeling Europa


    • Apple en Google


    • DP-3T
    GGD CONTACT CORONACHECK
    • BCO Portaal


    • Koppelingen CoronIT / HPZone


    • Landelijke uitrol portaal


    • Authenticatie via SSO GGDs


    • Secure mail portaal


    • Digid koppeling


    • Uitrol / aansluiting 26 GGD regio’s


    • HSM


    • Trainingen, communicatie
    • Koppelingen GGD, RIVM


    • Koppelingen testaanbieders


    • Digid koppeling


    • HKVI - Portaal zorgmedewerkers


    • CKVP - Aanvragen per telefoon


    • Standaardisatie Europa


    • Koppeling Europa


    • Koppelingen andere landen


    • HSM


    • PKI-O

    View Slide

  17. • Denk in componenten / microservices


    • Bouw
    f
    lexibiliteit in in de basis


    • Continu toetsen en challengen van aannames


    • Microservices laten heterogeen technologie
    landschap toe


    • Bijv. Coronacheck: Swift, Kotlin, Go, PHP, Python,
    dotNET, JavaScript


    • Defense in depth


    • Soms is de beste koppeling: geen koppeling


    • Geen ‘wegwerp software’ maar ook geen 20 jaar
    onderhoudbaarheid
    LEARNINGS

    View Slide

  18. write ONCE read MANY


    • Miljoenen gebruikers


    • Interessante doelwitten voor
    DDOS


    • Zoveel mogelijk statisch en waar
    mogelijk o
    ff
    line beschikbaar

    View Slide

  19. View Slide

  20. Meer


    LEAN STARTUP


    dan


    ENTERPRISE

    View Slide

  21. PRIVACY BY DESIGN
    PRIVACY ALS BELANGRIJKSTE NON-FUNCTIONAL REQUIREMENT

    View Slide

  22. Veel gehoorde misvatting:


    “Hoe kun je nu ontmoetingen detecteren
    zonder locatie te tracken? Die app moet wel je
    locatie bijhouden”


    CORONAMELDER

    View Slide

  23. Received
    RPIs
    Infected
    TEKs
    Daily
    TEKs
    Received
    RPIs
    Daily
    TEKs
    Infected
    TEKs
    Risk
    Weight
    Factors
    Alice Bob
    Server
    GGD
    Overview
    Advertised
    RPIs
    Advertised
    RPIs
    Advertised
    RPIs
    Advertised
    RPIs
    Advertised
    RPIs
    Advertised
    RPIs
    Advertised
    RPIs
    Advertised
    RPIs
    Derived
    RPIs Match
    Risk
    Assessment
    Exposure
    Risk Level
    (1-8)
    RPI
    Date
    Local notification
    RPI
    Duration
    Date
    TEK
    Date
    Transmission
    risk params
    Attenuation (1-63 dBm) != afstand
    TEK
    Date
    Transmission risk params
    Confirmation
    Transmission risk params

    View Slide

  24. Veilig informatie over je ontmoetingen delen met de GGD


    Hoe werkt het:


    • Decentraal (op je telefoon) verzamelen gegevens


    • End to end encryptie vergelijkbaar met Signal


    • User kan alleen gegevens uploaden maar nooit
    opvragen


    • Alleen GGD kan de gegevens lezen
    GGD CONTACT

    View Slide

  25. Veel gehoorde misvatting:


    “Je wordt overal gevolgd, elk restaurant dat je bezoekt word je
    gescand.”


    Maar hoe werkt het echt:


    • Bewijs bestaat op je telefoon


    • Is voorzien van een digitale handtekening


    • Kan volledig o
    ff
    line worden gevalideerd


    • User app en scanner app kunnen beide volledig o
    ff
    line
    werken


    • Geen enkel digitaal spoor van wie, waar, door wie, voor wat
    gescand wordt
    CORONACHECK

    View Slide

  26. • Unlinkability


    • Camenish-Lysyanskaya randomizable
    signatures


    • Initialen


    • Balans security en privacy


    • Data van het Meertens Instituut
    CORONACHECK

    View Slide

  27. WAAROM HEEFT CORONACHECK 2 QR CODES?
    NL VS EU
    • Heeft geen info over wel/niet
    gevaccineerd / genezen / getest


    • Alleen initialen / geboortedag


    • Geen andere gegevens


    • Unlinkability
    • Bevat vaccinatie, herstel of
    testbewijs


    • Volledige naam / geboortedatum


    • Veel details (hoeveelste prik,
    wanneer geprikt, welk vaccin, etc)


    • Statisch

    View Slide

  28. WAT JE NIET OPSLAAT


    KUN JE OOK NIET KWIJTRAKEN
    dus vermijd centrale databases waar mogelijk

    View Slide

  29. TESTEN, TESTEN, TESTEN
    BORGEN KWALITEIT CORONA APPS

    View Slide

  30. FIELDTEST


    LETTERLIJK

    View Slide

  31. NIET ELKE APP HEEFT DE LUXE HET LEGER IN TE KUNNEN ZETTEN


    (WIJ WEL)

    View Slide

  32. TOEGANKELIJKHEID IS BELANGRIJK OM EEN INCLUSIEVE APP TE REALISEREN
    ACCESSIBILITY TESTING

    View Slide

  33. CORONAMELDER GEFASEERD LANCEREN OM BOUW EN TESTEN TE KUNNEN PARALLELLISEREN
    LAB -> VELD -> PRAKTIJK -> REGIO -> LAUNCH

    View Slide

  34. View Slide

  35. • Teamleden aan de deur om te scannen


    • Regelmatig zelf door de teststraat om ‘end
    to end’ te testen


    • Hoe ervaren we het zelf?
    EAT YOUR OWN DOGFOOD
    ZELF ERVARING OPDOEN IN REALISTISCHE SCENARIOS

    View Slide

  36. OPEN ONTWIKKELING
    ALS PUBLIEK, PERS & POLITIEK OP JE VINGERS KIJKEN

    View Slide

  37. TRANSPARANTIE TEGEN FAKE NEWS
    THE GOOD

    View Slide

  38. BETROKKENHEID POLITIEK
    THE GOOD

    View Slide

  39. DANKZIJ CORONAMELDER COMMUNITY: VERIFIED BUILDS
    THE GOOD

    View Slide

  40. DE PERS MOEST NOG EVEN WENNEN AAN EEN OPEN OVERHEIDSPROJECT
    THE BAD
    27-5-2020, EERSTE DESIGN CORONAMELDER ONLINE

    View Slide

  41. ELKE BUG KAN TOT MEDIA AANDACHT LEIDEN!
    THE BAD
    24-6-2021, BROWSER ISSUE CORONACHECK GEMELD OP GITHUB

    View Slide

  42. EN SOMS WEET DE PERS HET BETER.. MAAR TOP DAT JE DE OPEN DIALOOG KUNT AANGAAN!
    THE BAD
    9-2021, MEDIA BESLUIT TERM ‘CORONAPAS’ TE HANTEREN

    View Slide

  43. STERKE POLARISATIE RICHT ZICH OOK OP CORONACHECK TEAM
    THE UGLY

    View Slide

  44. KEY SUCCES FACTORS
    WAT JE OOK VAN (DE TOEPASSING VAN) DE CORONA APPS VIND;
    DE MANIER WAAROP ZE ZIJN GEBOUWD WAS UNIEK EN VOOR
    HERHALING VATBAAR. WAT ZIJN DAARIN DE FACTOREN?

    View Slide

  45. KEY SUCCESS FACTORS
    • Volledig open ontwikkeltraject


    • Ontwikkelen in eigen beheer/regie vs volledig uitbesteden aan een leverancier


    • Transparantie en platheid organisatie (developers t/m CIO - iedereen toegankelijk)


    • Mix durven maken tussen mensen uit totaal verschillende werelden

    View Slide

  46. WAAR HEBBEN TOEKOMSTIGE IT-ERS IETS AAN BIJ EEN VOLGENDE PANDEMIE?
    THEMAS IN DE INFORMATICA
    • Modulariteit


    • Compositie


    • Microservices


    • Refactoring


    • Software Engineering


    • Taal/tool agnostisch


    • Architectuur

    View Slide

  47. THANK YOU!
    Vragen?


    • Vanmiddag ‘meet & greet’


    [email protected] / @ijansch

    View Slide

  48. CREDITS
    - Cover foto copyright rijksoverheid


    - ‘SoHo Skeleton’ by Nick Harris, Flickr, used under CC BY-ND 2.0


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


    - ‘Iceberg in Newfoundland Canada’ by Natalie Lucier, Flickr, used under CC BY 2.0


    - ‘Surveillance’ by Jonathan McIntosh, Flickr, used under CC BY-SA 2.0


    - ‘Dice’ by Patty Loof, Flickr, used under CC BY-SA 2.0


    - ‘Spreekgestoelte’ by Risastla, Flickr, under CC BY-SA 2.0


    - ‘EPP Summit, 20 June 2019 Brussels’ by European People’s Party, Flickr, under CC BY 2.0


    - ‘A sign of the times’ by Garry Knight, Flickr, under CC BY 2.0


    - Leger helpt bij test coronamelder foto copyright rijksoverheid
    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