{"id":11562,"date":"2022-09-01T11:23:05","date_gmt":"2022-09-01T08:23:05","guid":{"rendered":"https:\/\/atostek.com\/?p=11562"},"modified":"2022-09-13T09:44:26","modified_gmt":"2022-09-13T06:44:26","slug":"regops-laakinnallisen-ohjelmiston-kettera-kehitys","status":"publish","type":"post","link":"https:\/\/atostek.com\/regops-laakinnallisen-ohjelmiston-kettera-kehitys\/","title":{"rendered":"RegOps \u2013 l\u00e4\u00e4kinn\u00e4llisen ohjelmiston ketter\u00e4 kehitys"},"content":{"rendered":"
L\u00e4\u00e4kinn\u00e4llisen laitteen tai ohjelmiston kehitys on Euroopassa s\u00e4\u00e4delty\u00e4 EU 2017\/745 -regulaation eli MDR-asetuksen my\u00f6t\u00e4. Toisaalta regulaatio ei tuo kovinkaan paljoa lis\u00e4ty\u00f6t\u00e4 ohjelmistojen kehitykseen \u2013 verrattuna siihen, kuinka ohjelmistokehitys kuuluisi muutenkin tehd\u00e4. Kuinka regulaatiosta voidaan ottaa kaikki hy\u00f6ty irti niin, ettei se tunnu taakalta?<\/strong><\/p>\n Helpoin tapa t\u00e4ytt\u00e4\u00e4 MDR-asetuksen (Medical Device Regulation) vaatimukset ohjelmistokehitykselle on hy\u00f6dynt\u00e4\u00e4 ISO 13485-, IEC 62304-, ISO 14971- ja IEC 62366-1 -standardeja. Tuotteesta ja k\u00e4ytt\u00f6tarkoituksesta riippuen saatetaan toki tarvita muitakin standardeja.<\/p>\n Kun standardeja sovelletaan toimintamalleiksi, saattaa syntyv\u00e4 prosessi lipsahtaa helposti perinteisen vesiputousmallin<\/strong> puolelle. Vesiputousmallissa m\u00e4\u00e4ritell\u00e4\u00e4n ensin l\u00e4\u00e4kinn\u00e4llisen laitteen k\u00e4ytt\u00f6tarkoitus ja vaatimukset. T\u00e4m\u00e4n j\u00e4lkeen suunnitellaan ja dokumentoidaan ohjelmiston arkkitehtuuri sek\u00e4 rajapinnat. Kun kaikki suunnitelmat on vihdoin saatu tehty\u00e4 ja katselmoitua, luovutetaan ohjelmisto toteutusvaiheeseen. T\u00e4ss\u00e4 vaiheessa p\u00e4\u00e4st\u00e4\u00e4n vihdoin kirjoittamaan koodi, kuten aiemmassa vaiheessa on suunniteltu.<\/p>\n Ohjelmiston toteutuksen j\u00e4lkeen kirjoitetaan viel\u00e4 verifioivat testit. Puhdas testiraportti ja ohjelmisto vied\u00e4\u00e4n validointivaiheeseen kliinikoille. Lis\u00e4ksi k\u00e4ytett\u00e4vyydest\u00e4 on muistettava tehd\u00e4 k\u00e4ytett\u00e4vyystestit IEC 62366-1 -standardin mukaisesti sek\u00e4 mallintaa potilasturvallisuusriskit ISO 14971 -standardin mukaisesti.<\/p>\n Perinteisess\u00e4 vesiputousmallissa suunnittelu-, katselmointi-, toteutus-, verifiointi- ja validointivaiheet tehd\u00e4\u00e4n koko ohjelmistolle isoina askelina. Pahimmillaan ohjelmiston dokumentointi laaditaan vasta j\u00e4lkik\u00e4teen regulaation vaatimukset t\u00e4ytt\u00e4v\u00e4ksi. Lis\u00e4ksi l\u00e4\u00e4kinn\u00e4llisen ohjelmiston kehitystiimin j\u00e4senet ty\u00f6skentelev\u00e4t eriaikaisesti tai he joutuvat tekem\u00e4\u00e4n pitki\u00e4 aikoja teht\u00e4vi\u00e4 omien kompetenssialueidensa ulkopuolella. T\u00e4m\u00e4 sy\u00f6 tiimin tehokkuutta tai pahimmillaan aiheuttaa henkil\u00f6st\u00f6ss\u00e4 turhautumista \u2013 ainakin niiden ohjelmistosuunnittelijoiden n\u00e4k\u00f6kulmasta, jotka tykk\u00e4\u00e4v\u00e4t koodata.<\/p>\n Ketter\u00e4 kehitys ratkaisee vesiputousmallin ongelmia ja ennen kaikkea nopeuttaa yksitt\u00e4isen muutoksen l\u00e4pimenoaikaa. Yksi yleisesti k\u00e4ytetty ketter\u00e4n kehityksen viitekehys on SCRUM<\/strong>, jossa kehitys etenee sykleitt\u00e4in sprinteiss\u00e4. Yksi sprintti kest\u00e4\u00e4 muutaman viikon ja aina sprintin ajaksi tiimi valitsee ty\u00f6jonosta teht\u00e4v\u00e4t ja tavoitteet.<\/p>\n Sprintin p\u00e4\u00e4tteeksi ohjelmistosta muodostuu uusi iteraatio, tuotantokelpoinen uusi versio. Ohjelmistokehitt\u00e4j\u00e4n n\u00e4k\u00f6kulmasta sprintiss\u00e4 voi keskitty\u00e4 kehitt\u00e4miseen \u2013 projektikohtainen prosessi toki edellytt\u00e4\u00e4, ett\u00e4 suunnittelua, dokumentaatiota ja testaamista on teht\u00e4v\u00e4. Sprintin demossa on oltava tavoitteiden mukaista n\u00e4ytett\u00e4v\u00e4\u00e4 ja se rytmitt\u00e4\u00e4kin ohjelmistokehitt\u00e4j\u00e4n tekemist\u00e4 sopivasti.<\/p>\n Kun perinteiseen ohjelmistokehitykseen yhdistet\u00e4\u00e4n ohjelmistokehityksen ja testauksen lis\u00e4ksi tuotannon yll\u00e4pito, puhutaan DevOpsista<\/strong> (yhdistelm\u00e4 sanoista development<\/em> ja operations<\/em>). K\u00e4yt\u00e4nn\u00f6ss\u00e4 t\u00e4m\u00e4 tarkoittaa, ett\u00e4 kehitystiimin teht\u00e4v\u00e4ksi annetaan my\u00f6s tietoj\u00e4rjestelm\u00e4n yll\u00e4pito. DevOpsia voidaan hallita SCRUM-viitekehyksess\u00e4, kunhan ennakoimattomille yll\u00e4pitoteht\u00e4ville tehd\u00e4\u00e4n varaus kehitysteht\u00e4vien lomaan.<\/p>\n L\u00e4\u00e4kinn\u00e4llisen ohjelmiston tapauksessa, kun mukaan lis\u00e4t\u00e4\u00e4n viel\u00e4 regulaatiovaatimusten t\u00e4ytt\u00e4minen, on RegOps<\/strong>-m\u00e4\u00e4ritelm\u00e4 valmis. RegOpsin mukaisesti tarvitaan siis vaatimusten m\u00e4\u00e4rittely\u00e4, suunnitelmien tekoa, potilasturvallisuusriskien kartoitusta sek\u00e4 n\u00e4iden kaikkien katselmointia. Ja pit\u00e4\u00e4h\u00e4n ohjelmisto my\u00f6s koodata, testata sek\u00e4 katselmoida toteutus. Voisiko t\u00e4m\u00e4n kaiken tehd\u00e4 ketter\u00e4sti vaikkapa SCRUM-viitekehyksess\u00e4?<\/p>\n L\u00e4\u00e4kinn\u00e4llisen ohjelmiston ketter\u00e4 kehitys voidaan rakentaa SCRUM-viitekehyksess\u00e4 katselmointien ymp\u00e4rille, kuten kuvassa 1. esitet\u00e4\u00e4n.<\/p>\n Sprintti aloitetaan valitsemalla ty\u00f6jonosta sopiva m\u00e4\u00e4r\u00e4 teht\u00e4vi\u00e4 samalla hieman tarkentaen niit\u00e4. Atostekin projekteissa listan teht\u00e4v\u00e4t ovat yleens\u00e4 asiakkaan vaatimusten mukaisia l\u00e4\u00e4kinn\u00e4llisen laitteen ohjelmiston tuotekehitysteht\u00e4vi\u00e4, ja ne on nostettu sprinttiin yhdess\u00e4 asiakkaan tuoteomistajan kanssa. Ne ovat uusia ominaisuuksia tai muutoksia olemassa oleviin ominaisuuksiin. Toisaalta ne voivat olla my\u00f6s bugiraporttien selvittely\u00e4 ja sit\u00e4 kautta korjauksia koodiin.<\/p>\n Joissain tapauksissa toteutamme Atostekilla korkean tason vaatimusten mukaisia teht\u00e4vi\u00e4, jotka on pilkottu pienemmiksi, jotta ne mahtuvat sprinttiin. Sprintin teht\u00e4v\u00e4t on tarkennettu sille tasolle, ett\u00e4 teht\u00e4v\u00e4n kuvauksesta selvi\u00e4\u00e4, mit\u00e4 tulee tehd\u00e4 ja mik\u00e4 on teht\u00e4v\u00e4n valmiuden m\u00e4\u00e4ritelm\u00e4.<\/p>\n Keskell\u00e4 sprintti\u00e4 katselmoidaan ja hyv\u00e4ksyt\u00e4\u00e4n koko tiimin kanssa l\u00e4\u00e4kinn\u00e4llisen ohjelmiston p\u00e4ivitetyt vaatimukset, arkkitehtuurisuunnitelmat, yksikk\u00f6suunnitelmat, rajapintakuvaukset, riskitaulukot sek\u00e4 muut tarpeelliset suunnitelmat. T\u00e4ss\u00e4 suunnittelukatselmoinnissa jokainen tiimin j\u00e4sen p\u00e4\u00e4see esittelem\u00e4\u00e4n omat suunnitelmansa ja suunnittelukatselmoinnista tuotetaan virallinen katselmointip\u00f6yt\u00e4kirja ISO 13485 -standardin vaatimuksia t\u00e4ytt\u00e4m\u00e4\u00e4n.<\/p>\n T\u00e4m\u00e4n j\u00e4lkeen hyvin suunnitellut ominaisuudet toteutetaan, testataan sek\u00e4 julkaistaan sis\u00e4isesti. Sprintin demo toimii julkaistun version toteutuskatselmointina.<\/p>\n Riippuen sprintiss\u00e4 tehtyjen muutosten laajuudesta ja ennenkaikkea niihin liittyvist\u00e4 riskeist\u00e4, on ohjelmisto viel\u00e4 validoitava ja mahdollisesti hyv\u00e4ksytett\u00e4v\u00e4 ilmoitetulla laitoksella ennen tuotantoon julkaisua. V\u00e4h\u00e4isten muutosten tapauksessa ilmoitetulle laitokselle riitt\u00e4\u00e4 yleens\u00e4 pelkk\u00e4 ilmoitus. Sen j\u00e4lkeen uusi versio voidaan siirt\u00e4\u00e4 validaatiotarkastelun kautta tuotantoon.<\/p>\nPerinteinen vesiputousmalli<\/h2>\n
Vesiputous vai SCRUM?<\/h2>\n
RegOps<\/h2>\n
Scrummaten maaliin<\/h2>\n
Sprintin aloitus<\/h3>\n
Katselmointien kautta toteutukseen<\/h3>\n