Jotta ohjelmistokehitysprosessi mahdollistaa tietoturvallisen sovelluskehityksen ja tietosuojan tason tämän ohjeen mukaisesti, sen on täytettävä joitakin perusvaatimuksia. Ohjelmistokehitys, jossa seuraavat vaatimukset eivät täyty, ei ole tämän tietoturvaohjeen mukainen. Tämä koskee ohjelmistokehitystä myös alihankintatilanteessa, vaikka alihankkijan prosessit ja työkalut eivät olisikaan ostajalle näkyvissä.

Huoltovarmuuskriittisten järjestelmien toteutuksessa näiden vaatimusten toteutumisesta, esimerkiksi kehitys- ja tuotantoonvientityökalujen saatavuudesta, on huolehdittava myös jatkuvuussuunnittelumielessä.


Ohjelmistotuotantoprosessissa on oltava käytössä:


  • Tuotteen tehtävälista (product backlog), joka on priorisoitu luettelo työtehtävistä, joita tuotteen (palvelun tai sovelluksen) toteuttamiseksi on tehtävä. Tehtävillä voi olla eri tasoja, kuten epic, kertomus eli story ja tehtävä eli task. Tässä dokumentissa "tehtävä" voi olla minkä tahansa tasoinen.

  • Tuoteomistajan (product owner) rooli, joka on kuvattu aiemmin tämän ohjeen kohderyhmänä.

    • Tietoturva- ja tietosuojariskien hyväksyminen on pääosin vastuutettu tälle roolille kuten aiemmassa vaatimusluokittelussa on kuvattu. Riskin ollessa merkittävä, sen hyväksyntä kuuluu viimekädessä johdolle.
    • Tietoturvatyön priorisointi suhteessa muuhun työhön on oltava vastuutettu tälle roolille, eikä esimerkiksi erilliselle ohjausryhmälle.

  • Tiketöintiin pohjautuva työnohjausjärjestelmä, joka tukee luokituksia (label tai tag). Tämä tarkoittaa sitä, että tehtävälistalla olevien työtehtävien edistymistä voidaan erikseen ja yksittäin seurata, työlistalle ilmestyvät tietoturva- ja tietosuojatehtävät voidaan helposti huomata, ja työtehtävien teosta jää auditoitava jälki. Useimmiten tuotteen tehtävälista ja työnohjausjärjestelmä toimivat samassa työkalussa, mutta välttämättä näin ei ole.

  • Koodin versionhallintajärjestelmä, joka mahdollistaa koodin vertaiskatselmoinnin koordinoidun suorittamisen osana toteutustyötä. Tällainen voi olla esimerkiksi nk. pull request -menettely.

  • Pilvipalveluissa tuotantoon viennin automaatio (nk. CI/CD-putki), joka mahdollistaa pilvipalvelun infrastruktuurin määrittämisen koodina, tuotantoon viennin mahdollisimman vähäisellä ihmistyöllä sekä jossain määrin mahdollisuuksia tietoturvatestauksen automatisointiin.


Tehtävälistan ja työnohjausjärjestelmän on käytännössä tarpeen elää työkalussa, joka on standardoitu useamman projektin välille, koska esimerkiksi linkkien luominen eri projektien työtehtävien välillä on tärkeää. Tällaisia työkaluja ovat esimerkiksi erilaiset sähköiset tiketöinti- ja työnohjausjärjestelmät..