{"id":259,"date":"2021-03-04T18:40:00","date_gmt":"2021-03-04T18:40:00","guid":{"rendered":"http:\/\/www.cheetah.fi\/blog\/?p=259"},"modified":"2021-04-29T06:28:39","modified_gmt":"2021-04-29T06:28:39","slug":"mihin-tarvitaan-ei-toiminnallisia-it-vaatimuksia","status":"publish","type":"post","link":"https:\/\/www.cheetah.fi\/blog\/mihin-tarvitaan-ei-toiminnallisia-it-vaatimuksia\/","title":{"rendered":"Mihin tarvitaan ei-toiminnallisia IT-vaatimuksia?"},"content":{"rendered":"<p>Useimmiten uuden IT-ratkaisun m\u00e4\u00e4rittelyty\u00f6 keskittyy ratkaisun toiminnallisiin vaatimuksiin: Tietoj\u00e4rjestelm\u00e4lt\u00e4 haluttuja toimintoja kuvataan k\u00e4ytt\u00e4j\u00e4tarinoiden (user story), k\u00e4ytt\u00f6tapausten (use case) ja k\u00e4ytt\u00f6liittym\u00e4n n\u00e4k\u00f6ismallien (wireframe \/ mockup) avulla. Toiminnalliset vaatimukset kuvaavat kattavasti ja yksityiskohtaisesti k\u00e4ytt\u00e4j\u00e4n vuorovaikutuksen tietoj\u00e4rjestelm\u00e4n kanssa. Ne m\u00e4\u00e4rittelev\u00e4t, mill\u00e4 tavalla ja mit\u00e4 sy\u00f6tteit\u00e4 k\u00e4ytt\u00e4j\u00e4 antaa tietoj\u00e4rjestelm\u00e4\u00e4n sek\u00e4 j\u00e4rjestelm\u00e4n antamat vasteet k\u00e4ytt\u00e4j\u00e4n sy\u00f6tteisiin.<\/p>\n<p>Tietoj\u00e4rjestelm\u00e4n ei-toiminnalliset tai laadulliset vaatimukset (non-functional requirements) sen sijaan m\u00e4\u00e4rittelev\u00e4t miten tietoj\u00e4rjestelm\u00e4 antaa vasteet sy\u00f6tteisiin tai millainen se on. Ei-toiminnallisia vaatimuksia ovat esimerkiksi:<\/p>\n<ul>\n<li><strong>Saatavuus (availability)<\/strong>. Jos IT-ratkaisun tulee olla k\u00e4ytett\u00e4viss\u00e4 99 % ajasta, saako se olla pois k\u00e4yt\u00f6st\u00e4 14 minuuttia p\u00e4iv\u00e4ss\u00e4 vai yht\u00e4jaksoisesti 3,5 p\u00e4iv\u00e4\u00e4 vuodessa? Miten IT-arkkitehtuurilla ja toimintatavoilla varmistetaan, ett\u00e4 ratkaisun suunnitellut yll\u00e4pitotoimenpiteet ja yll\u00e4tt\u00e4v\u00e4t virhetilanteet hoidetaan saatavuusvaatimukset t\u00e4ytt\u00e4en?<\/li>\n<li><strong>Skaalautuvuus (scalability)<\/strong>. Jos IT-ratkaisu toimii 100 yht\u00e4aikaisen k\u00e4ytt\u00e4j\u00e4n kuormalla, niin toimiiko se samalla suorituskyvyll\u00e4 my\u00f6s 500 k\u00e4ytt\u00e4j\u00e4n kuormalla? Miten IT-arkkitehtuurilla varmistetaan, ett\u00e4 ratkaisu voidaan pienill\u00e4 muutoksilla (infrastruktuuriin, alustaan tai sovellukseen) saada toimimaan my\u00f6s 10 000 k\u00e4ytt\u00e4j\u00e4n kuormalla?<\/li>\n<li><strong>Siirrett\u00e4vyys (portability)<\/strong>. Jos IT-ratkaisu toimii Windows PC:ll\u00e4, niin toimiiko se my\u00f6s Applen Mac-tietokoneella (OS X), Samsungin Galaxy-puhelimella (Android) tai Nokian Lumia-puhelimella (Windows Phone)? Miten teknologiavalinnoilla varmistetaan ratkaisun alustariippumattomuus tai minimoidaan ty\u00f6, joka vaaditaan ratkaisun siirt\u00e4miseen uudelle alustalle?<\/li>\n<\/ul>\n<p>Muita ei-toiminnallisia vaatimuksia ovat esimerkiksi tietoj\u00e4rjestelm\u00e4n tietoturvaan (security), k\u00e4ytett\u00e4vyyteen (usablity), yll\u00e4pidett\u00e4vyyteen (maintainability), r\u00e4\u00e4t\u00e4l\u00f6it\u00e4vyyteen (modifiability), integroitavuuteen (interoperability) tai suorituskykyyn (performance) liittyv\u00e4t vaatimukset. Kuten yll\u00e4 olevat esimerkit auttavat ymm\u00e4rt\u00e4m\u00e4\u00e4n, ei-toiminnalliset vaatimukset m\u00e4\u00e4rittelev\u00e4t rajoitteita ja reunaehtoja tietoj\u00e4rjestelm\u00e4n tekniselle toteutukselle ja hallinnoinnille.<\/p>\n<p>Tietoj\u00e4rjestelm\u00e4n ei-toiminnallisia vaatimuksia on haastavaa m\u00e4\u00e4ritell\u00e4 selke\u00e4sti, koska ne liittyv\u00e4t j\u00e4rjestelm\u00e4n sis\u00e4isiin ja teknisiin ominaisuuksiin. Uuden tietoj\u00e4rjestelm\u00e4n vaatimuksia m\u00e4\u00e4ritelt\u00e4ess\u00e4 kiinnostavat tyypillisesti eniten ratkaisun k\u00e4ytt\u00e4j\u00e4lle tarjoamat toiminnot eli toiminnalliset vaatimukset. Kuitenkin ei-toiminnalliset vaatimukset voivat ty\u00f6m\u00e4\u00e4r\u00e4llisesti vastata useita kymmeni\u00e4 prosentteja ratkaisun toteutuksen kokonaisty\u00f6m\u00e4\u00e4r\u00e4st\u00e4.<\/p>\n<p>Ei-toiminnallisilla vaatimuksilla on kriittinen rooli tietoj\u00e4rjestelm\u00e4n laadun, luotettavuuden ja kustannustehokkuuden takaamisessa <cite>koko elinkaaren ajan<\/cite>. Panostus ei-toiminnallisten vaatimusten m\u00e4\u00e4rittelyyn heti alussa on t\u00e4rke\u00e4\u00e4, koska ratkaisun toteutuksen j\u00e4lkeen ei-toiminnallisia vaatimuksia voi olla hyvin ty\u00f6l\u00e4st\u00e4 tai jopa mahdotonta t\u00e4ytt\u00e4\u00e4.<\/p>\n<p>Realististen ei-toiminnallisten vaatimusten m\u00e4\u00e4rittelyyn tarvitaan yhdistelm\u00e4 teknist\u00e4 ja liiketoiminnallista ymm\u00e4rryst\u00e4. Ei-toiminnalliset vaatimukset laatii tyypillisesti projektin suunnitteluvaiheessa IT-arkkitehti, joka tasapainottelee liiketoiminnan ja tietohallinnon tarpeiden sek\u00e4 teknologian mahdollisuuksien v\u00e4lill\u00e4. Ei-toiminnallisten vaatimusten m\u00e4\u00e4rittelyss\u00e4 tarvitaan kompromisseja ja vaatimusten v\u00e4list\u00e4 priorisointia (trade-off), koska useimmiten kaikkia vaatimuksia ei ole mahdollista toteuttaa k\u00e4yt\u00f6ss\u00e4 olevilla rajallisilla resursseilla. Esimerkiksi ratkaisun suorituskyvyn parantaminen saattaa v\u00e4hent\u00e4\u00e4 ratkaisun siirrett\u00e4vyytt\u00e4 tai integroitavuus saattaa v\u00e4hent\u00e4\u00e4 tietoturvaa.<\/p>\n<p>Yksinkertaistaen voisi sanoa, ett\u00e4 ratkaisun toiminnalliset vaatimukset m\u00e4\u00e4rittelev\u00e4t ratkaisun liiketoiminnallisen hy\u00f6typotentiaalin (prosessien mahdollistaminen, tehostaminen, tukeminen), kun taas ei-toiminnalliset vaatimukset m\u00e4\u00e4rittelev\u00e4t ratkaisun luotettavuuden, kustannustehokkuuden ja teknisen mukautuvuuden tulevaisuuden tarpeisiin. Usein m\u00e4\u00e4rittelyvaiheessa eniten keskustelua her\u00e4tt\u00e4v\u00e4 ei-toiminnallinen vaatimus on j\u00e4rjestelm\u00e4n saatavuus, jonka voidaan erityisesti liiketoimintakriittiselle j\u00e4rjestelm\u00e4lle suoraviivaisesti vaatia olevan 100 %. Keskusteluun tuo perspektiivi\u00e4 se, ett\u00e4 AT&amp;T:n puhelinverkko USA:ssa on ainut tekninen j\u00e4rjestelm\u00e4 maailman historiassa, jossa on tiett\u00e4v\u00e4sti paikallisesti p\u00e4\u00e4sty 99,999 % saatavuuteen. Esimerkiksi Google t\u00e4ht\u00e4\u00e4 palveluissaan 99,99 %:n saatavuuteen, mutta ei uskalla luvata k\u00e4ytt\u00e4jille sit\u00e4k\u00e4\u00e4n.<\/p>\n<p><em>Lis\u00e4tietoa:<\/em><br \/>\n<em><a href=\"http:\/\/www.nytimes.com\/2011\/01\/09\/business\/09digi.html?src=busln&amp;_r=1&amp;\" target=\"_blank\" rel=\"noopener\">The New York Times<\/a><\/em><br \/>\n<em><a href=\"http:\/\/en.wikipedia.org\/wiki\/Non-functional_requirement\" target=\"_blank\" rel=\"noopener\">Wikipedia<\/a><\/em><\/p>\n<p>Haluatko saada lis\u00e4tietoja tietoj\u00e4rjestelmien toiminnallisista tai ei-toiminnallisista vaatimuksista? <a href=\"https:\/\/www.cheetah.fi\/\">Tutustu palveluihini ja kysy lis\u00e4\u00e4!<\/a><\/p>\n<p><em>Kirjoittaja on <a href=\"https:\/\/www.cheetah.fi\/\">Cheetah Consulting Oy<\/a>:n perustaja ja johtava konsultti Teemu Lepp\u00e4nen. Teemulla on yli 15 vuoden monipuolinen k\u00e4yt\u00e4nn\u00f6n kokemus IT-ratkaisujen toimittamisesta kansainv\u00e4lisiss\u00e4 teknologiayrityksiss\u00e4 ja tarjoaa yrityksens\u00e4 kautta erilaisia IT-neuvonanto- ja koulutuspalveluita.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Useimmiten uuden IT-ratkaisun m\u00e4\u00e4rittelyty\u00f6 keskittyy ratkaisun toiminnallisiin vaatimuksiin: Tietoj\u00e4rjestelm\u00e4lt\u00e4 haluttuja toimintoja kuvataan k\u00e4ytt\u00e4j\u00e4tarinoiden (user story), k\u00e4ytt\u00f6tapausten (use case) ja k\u00e4ytt\u00f6liittym\u00e4n n\u00e4k\u00f6ismallien (wireframe \/ mockup) avulla. Toiminnalliset vaatimukset kuvaavat kattavasti ja yksityiskohtaisesti k\u00e4ytt\u00e4j\u00e4n vuorovaikutuksen tietoj\u00e4rjestelm\u00e4n kanssa. Ne m\u00e4\u00e4rittelev\u00e4t, mill\u00e4 tavalla ja mit\u00e4 sy\u00f6tteit\u00e4 k\u00e4ytt\u00e4j\u00e4 antaa tietoj\u00e4rjestelm\u00e4\u00e4n sek\u00e4 j\u00e4rjestelm\u00e4n antamat vasteet k\u00e4ytt\u00e4j\u00e4n sy\u00f6tteisiin. Tietoj\u00e4rjestelm\u00e4n ei-toiminnalliset tai laadulliset [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7,8,4,10],"tags":[],"_links":{"self":[{"href":"https:\/\/www.cheetah.fi\/blog\/wp-json\/wp\/v2\/posts\/259"}],"collection":[{"href":"https:\/\/www.cheetah.fi\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cheetah.fi\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cheetah.fi\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cheetah.fi\/blog\/wp-json\/wp\/v2\/comments?post=259"}],"version-history":[{"count":16,"href":"https:\/\/www.cheetah.fi\/blog\/wp-json\/wp\/v2\/posts\/259\/revisions"}],"predecessor-version":[{"id":489,"href":"https:\/\/www.cheetah.fi\/blog\/wp-json\/wp\/v2\/posts\/259\/revisions\/489"}],"wp:attachment":[{"href":"https:\/\/www.cheetah.fi\/blog\/wp-json\/wp\/v2\/media?parent=259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cheetah.fi\/blog\/wp-json\/wp\/v2\/categories?post=259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cheetah.fi\/blog\/wp-json\/wp\/v2\/tags?post=259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}