Digia Oyj – Näkemyksellinen kumppani ja muutoksen mahdollistaja

Digian OpenEdge –pohjaisten tuotteiden modernisointi Olli Havilehto

Olli on 25-vuotias ohjelmistosuunnittelija Suomen Tampereelta. Olli on työskennellyt erilaisten Web-, mobiili- sekä palvelinsovellusten parissa ja omaa toimialatuntemusta valmistavasta teollisuudesta terveydenhoitoalan järjestelmiin sekä kotimaisiin ERP- ratkaisuihin.

Tällä hetkellä Olli työskentelee osana Digia Enterprisen tuotekehitystiimiä. Työn ohessa hän viimeistelee tietojenkäsittelyopin maisteriopintojaan Tampereen Yliopistossa. Progress & Telerik - tuotteista Ollilla on neljän vuoden työkokemus. Sisällys

1. Digia 2. Arkkitehtuuriuudistus 3. Taustajärjestelmä 4. Edusta 5. Välineet Digia lyhyesti

• Kasvava digitaalisiin palveluihin keskittyvä IT-palveluyritys - näkemyksellinen kumppani ja muutoksen mahdollistaja • Perustettu 1997 • Toimipisteet Helsingissä, Jyväskylässä, Lahdessa, Oulussa, Raumalla, Tampereella, Turussa ja Vaasassa sekä Ruotsissa Tukholmassa

1000 96,2 M€ 1,8 M€ Pörssiyhtiö ammattilaista liikevaihto liikevoitto NASDAQ kahdessa maassa

Palveluiden kehittäminen | Toiminnan ohjaaminen | Tiedon hyödyntäminen *) luvut 2017 lopun tilanne Rakennamme sujuvaa digiarkea

Palveluiden Toiminnan Tiedon kehittäminen ohjaaminen hyödyntäminen Saat digitaalisilla Saat parempaa tehokkuutta Saat tukea palveluilla kilpailuetua koko arvoketjuun päätöksien tekoon

Sähköinen asiointi Integraatio Verkkokaupankäynti Toiminnanohjaus Analytiikka Sähköinen työympäristö Asiakaskokemuksen kehittäminen Henkilöstönohjaus Asioiden internet Palveluiden mobilisointi Asiakkuuden hallinta Ydintiedon hallinta Palvelunhallinta Tiedon turvaaminen Lisäämme asiakkaidemme valovoimaa digiarjessa

Hätäpuhelu paikannettu Työvuoro Tarjouspyyntö vastaanotettu hyväksytty Eläkkeet Asiakaspalaute maksettu Tieto jaettu vastaanotettu intrassa Veroilmoitus Huoltokäynti tehty kuitattu ”Jatkuva kehittyminen ja pyrkimys aina ”Täällä panostetaan henkilöihin. Kuunnellaan parempaan innostaa tekemään.” ihan oikeasti sitä, että mitä sä haluat ja mihin sä haluat mennä.” - Petri, ohjelmoija - Turo, projektipäällikkö ”Täällä on hyvät työkaverit, jotka kirittää, ja toisaalta meillä on semmonen ”Oppimisen mahdollisuudet ovat lähes organisaatio, joka rakentuu sille, että rajattomat, vaihtoehtoja löytyy oman mielenkiinnon.” jokainen tekee aina parhaansa. ” - Eero, harjoittelija - Mika, tiiminvetäjä Henkilöstömme – tärkein voimavaramme

SUKUPUOLI- JA HENKILÖMÄÄRÄ TYÖSUHTEEN IKÄJAKAUMA TOIMIPISTEITTÄIN PITUUS

Naisia 26% Helsinki 559 0-1 20 % Miehiä 74% Jyväskylä 137 1-5 27 % 123 6-10 21 % 20-29 9 % Rauma 33 11-15 13 % 30-39 36 % 6 16-20 13 % 40-49 34 % 5 20 > 6 % 50-59 18 % 12 60- 3 % Tukholma 10 (12/2016 tilanne) Digia

1 Suomalainen yritys, riittävän suuri haastamaan kansainväliset kilpailijamme

2 Paikallinen päätöksenteko ja ketterät toimintatavat

3 Matala organisaatio ja rento ilmapiiri

4 Kovaa osaamista, mahdollisuus oppia parhailta asiantuntijoilta

5 Runsaasti vaihtoehtoja erilaisiin urapolkuihin ja itsensä kehittämiseen

6 Itseohjautuvat tiimit, vapaus ja vastuu omasta työstä, laadukas esimiestyö

7 Merkityksellistä tekemistä, mukana rakentamassa digitalisoituvaa yhteiskuntaa

8 Kilpailukykyiset työsuhde-edut, työn ja vapaa-ajan tasapaino, joustot Arkkitehtuuriuudistus Uusiutumisen lähtökohdat ja eteneminen

• Lähtökohdat • Asiakkaiden toive selaimella toimivista järjestelmistä • Liiketoiminnan tarve uudistaa tuotteita ja luoda uusia tuotteita tehokkaasti • Hyvät kumppanit ja varusohjelmisto, jolla pystyttiin tunnistamaan tapa uudistua

• Eteneminen • Tuotteiden ja kehityspolun arviointi • Yhteistyökumppanien ja kehitysvälineiden valinta • POC kehitysvälineistä, uudesta toimintatavasta ja menetelmistä • Pilottiprojekti Vaatimukset

Kuka Tarve Asiakkaat Käyttö oltava mahdollista mistä tahansa ja miltä laitteelta tahansa. Selainkäyttöliittymä ja rajapinnat mahdollistamaan uudet käyttöliittymät Asiakkaat Moderni asiakaskohtainen käyttöliittymä. Käytettävyys ja muokattavuus Asiakkaat Uutta toiminnallisuutta. Mahdollisuus liittää olemassa olevat toteutukset ja uudet tuotteet. Jatkuvuus järjestelmäkehityksessä, mahdollisuus päivittää nykyinen järjestelmä uuteen selainkäyttöliittymään, vaihtamatta taustajärjestelmää. Digia Tehokkuus toteutuksessa. Muutosten tekeminen nopeammin, laadukkaammin ja mielekkäämmin. Digia Tehokkuus toimittamisessa. Versiopäivitysten kehittäminen ja toimitusten automatisointi. Digia Oltava kyky luoda uutta liiketoimintaa, muokkaamalla järjestelmiä asiakaskohtaisesti riittävässä laajuudessa. Digia Sovellukset palveluna, asennukset, jota voidaan käyttää useilla asiakkailla. Ratkaisu

Käyttö selaimella

Uudessa ohjelmistoarkkitehtuurissa

Uusilla työkaluilla

Uudella toteutustavalla

Uusilla mahdollisuuksilla

… mutta tukien myös jo olemassa olevia toiminnallisuuksia Eteneminen

1 2 3 4 Hybridi- Selain- POC Pilotti toteutukset toiminnallisuus

2016 – määrittely ja Ensimmäinen Rajattu joukko Asiakkaalle ensimmäiset toimintokokonaisuus toimintoja selaimessa myytävissä olevat toiminnot sekä perinteisessä tuotteet sovelluksessa Organisoituminen - Pilotti Tiimi koottiin eri yksiköistä tulevilla, erilaisen osaamisen ja taustat omaavista henkilöistä. Projektia lähdettiin viemään eteenpäin ketterillä menetelmillä ja DevOps – ajatuksilla Pohjana onnistumiselle johdon tuki ja osaavat, motivoituneet resurssit

1 Palvelumuotoilu 2 Tausta 3 Edusta 4 Testaus

• Toteutettavat • Taustan toteutus • Käyttöliittymän • Toiminnalliset toiminnallisuudet • Arkkitehtuurin toteutus automaatiotestit • Käyttöliittymän muutos • Uusi käyttöliittymä- • Testausmenetelmät suunnittelu • Uudet välineet ja kirjasto ja testauksen työtavat • Uudet välineet ja kehittäminen työtavat • Suorituskykytestit

Osallistujina projektin aikana myös muiden osa-alueiden osaajia tuomassa projektiin oman erikoisosaamisensa. Kehitysprosessi ja projektin eteneminen

Mitä teemme Miltä lopputulos Millä välineillä Mitä ovat Mitä vaaditaan Miten saamme Miltä tulokset tulee saamme aikaan onnistumisen tavoitteiden kaiken tehtyä näyttävät? näyttämään halutun edellytykset ja saavuttamiseksi aikataulussa ja Mitähän lopputuloksen miten edetään budjetissa seuraavaksi

ARVIOINTI JA SUUNNITTELU TOTEUTUS TAVOITE PALVELUMUOTOILU TYÖKALUVALINNAT VALIDOINTI SEURANTA

Huollon Kuvaus Taustan ja Täsmennetään Yksityiskohtainen Taustan ja Loppuraportin ja toiminnallisuus toiminnoista ja edustan tavoite ja aikataulu suunnitelma edustan toteutus toteutuksen käyttöliittymästä välineiden arviot tavoitteen etenemisestä ja arviointi ja välinevalinnat. saavuttamiseksi vaatimusten täsmentäminen SUUNNITELMA TAVOITE TYÖKALUT AIKATAULU SUUNNITELMA TOIMIVA KOKONAISUUS PÄÄTÖS JATKOSTA Pilotin havainnot

Tausta Edusta

• Hieman erilaista ideaa, SCL vs. JSDO • JSDO - Dokumentaatio puutteellista, "ei • Ohjelmistoissa monimutkaiset toteutukset nykymaailmaa" • Tietojen suojaukset, sessiokäsittelyt • JSDO –hierarkisen datan käyttö • Käyttäjätietoja useissa paikoissa ongelmallista • Uudella arkkitehtuurilla ei voida korjata • CD-toteutukset mahdollisia pääasiassa tietokannan ongelmia, mutta ne voidaan pilveen tai palvelukeskukseen piilottaa • Sovelluksissa paljon logiikkaa UI:llä kuten tallennustarkistuksia jne. ”Sen on helvetti paras olla hyvä” Stefan Hellstrand, Johtaja, Digia

”Jos et osaa, kaikki on vaikeaa”

Marko Kiviniemi, Pienempi Johtaja, Digia

Pilotti - Huoltomiehen työpöytä Taustajärjestelmä Tausta-arkkitehtuuri ja välineet

Tarve Hyödyt • Käyttöliittymäriippumaton tausta • Monikerrosarkkitehtuuri • Multitenancy / SaaS • Jatkuvuus tekemiselle • Olemassa olevan koodin hyödyntäminen • Standardi toteutustapa • Uusi, tehokkaampi tapa tehdä työtä • Toteutuskerrosten vastuualueet selkeiksi

Käytännössä

• Kumppaniksi Consultingwerk ja SmartComponentLibrary monikerrosarkkitehtuurin luomiseen • PAS (Progress Application Server) • SonarQube linttaukseen ja testikattavuuteen (Gilles Querret) OERA-malli ja taustan uusi arkkitehtuuri OpenEdge Reference Architecture Asiakkaan prosessi ja palvelutarpeet

3. osapuolen Selain Mobiili Analytiikka järjestelmä

Palvelurajapinta Smart Component Library (SCL) Business Entity (BE) - ja Liiketoimintalogiikka Tools - Digia SovellusYhteiset Framework Logiikkapalvelut Data Access (DA) - Tietokantarajapinta

Tietokanta – Pilvi / MS SQL / OpenEdge / … Taustan Ohjelmointi

Tarve Hyödyt • Laadun parantaminen ja nopea oppiminen • Uusien projektien toteutukset • Kolmannen osapuolen välineiden yksinkertaisempia toteuttajille hyödyntäminen • Välineet ohjaavat toteuttajia hyvään laatuun • Tekeminen voidaan jakaa osaamisen mukaan

Käytännössä Työtavat • Olio-ohjelmointi • Sprintit – ketterä kehittäminen • OE Studio + SCL:n työkalut liiketoimintalogiikan • Tiimin kommunikointi – jatkuvaa ja tietokantarajapinnan generointiin kommunikaatiota ja yhteisiä tilaisuuksia • SCL-työkalujen kustomointi ja DigiaFramework • Testit: Yksikkö- ja toiminnalliset testit • Testausvälineet • Koodin katselmointi Taustan CI

Tarve Hyödyt • Muutosten integrointi ohjelmakirjastoihin • Virhetilanteiden välttäminen • Vakaan taustajärjestelmän tarjoaminen • Automatisoitu julkaisu edustakehittäjien käyttöön • Yksikkötestien Commit -perusteinen suoritus

Käytännössä • DevOps: Git, Jenkins 2, SonarQube, Robot FrameWork • Muutokset testien onnistuttua kehitys-, QA- ja robottitestiympäristöihin ja julkaisu tarpeen mukaan Käyttöliittymä näkymäkuvauksesta

Tarve Hyödyt • Näkymät taustajärjestelmästä • Yksi frontend toteutus, näkymät tarpeen • Helppo käyttöliittymien suunnittelu / mukaan ylläpito • Tausta ohjaa täysin edustan käyttöliittymän muodostusta

Käytännössä • Näkymien generointi taustan ylläpitonäkymistä (perusylläpidot) • Näkymien suunnittelu uudelle toiminnallisuudelle • Asiakaskohtaiset/käyttäjäkohtaiset näkymät • Selainpohjainen näkymien ylläpito Edusta Edusta - selainkäyttöliittymä

Tarve Hyödyt

• Päätelaiteriippumaton ja moderni, • Käyttöliittymän skaalautuvuus palvelumuotoiltu käyttöliittymä • Komponenttien uudelleenkäytettävyys • Taustan rajapintojen käyttö • Työ tehdään edustassa vain kerran • Tehokkuus ja luotettavuus • Helppokäyttöisyys, asiakastyytyväisyys • Helpompi uusasiakashankinta Käytännössä • Varmatoimisuus ja nopeampi kehitys • Tarjoillaan pilvessä • Angular -käyttöliittymä • Automaattinen provisiointi • Kehitys Scrum-mallilla, Test Driven Development • SaaS-palvelumalliin siirtyminen • Mikrokomponentteja joista rakennetaan käyttöliittymä • Tausta kuvaa käyttöliittymän JSON API-formaatissa Edusta - Arkkitehtuuri

Asiakkaan prosessi ja palvelutarpeet

Selain Mobiili

Käyttöliittymä Git, Gitlab, CI/CD JSDO Angular Kendo pipeline, TsLint, Docker Typescript

Taustajärjestelmä Edusta - Testaus

Tarve Hyödyt

• Nopeampi iteraatiovauhti • Toteuttamisen kulttuurin muutos • Toimintavarmuus • Nopea ja toimintavarma kehityssykli • Koodin testikattavuus ja ideasta tuotantoon laadunvarmistus • Parempi laatu

Käytännössä

• Koodikattavuuden tavoite 80% (yksikkötestit) • Integraatiotestaus Robot Frameworkilla, Suorituskykymittaus JMeter • Testien ajaminen läpi CI-pipelinessä jokaisella commitilla Edusta – CI-pipeline / GitLab

CI-pipeline • N-kappaletta vaiheita, joita voi ryhmitellä kokonaisuuksiksi • Konfigurointi versioidun määrittelytiedoston avulla (CI pipeline as code) • Koodin käännös ja validointi, tyylien validointi, yksikkötestit, robottitestit • Koodin testikattavuus ja julkaisu, sekä asennus Edusta – Pilvipalveluympäristö

Tarve Hyödyt • Toimituksen ja versiopäivitysten tehokkuus • Automatisoitu palveluympäristö  • Ei asennuksia asiakkaille, monistettavuus tehostettu toiminta • Sovellus palveluna • Joustavuus, skaalautuvuus, kustannus

käytön mukaan, tietoturva Docker Auto-failover Monitorointi Edusta Docker registry, Autoskaalaus Kuormantasaus Tausta Gitlab, CI/CD Orkestrointi

Pilvipalveluympäristö Työkaluja OE Studio OEDT

Hyötyjä

• Outline näkymä suoraan Projekti-puussa • Tietokannnan navigointi (DB navigator) ilman SQL-yhteyksiä • Paljon ohjelmointiavusteita, jotka nopeuttavat ohjelmointia ja vähentävät virheiden mahdollisuuksia • Näyttää metodien kuvaukset • Näyttää metodien input-parametrit ja niiden selitteet • Näyttää käyttämättömät muuttujat • Osaa näyttää helposti ohjelmat, jotka käyttävät valittua include- tiedostoa (include muutos laukaisee käännöksen sitä käyttäville kooditiedostoille) • Debug Listing file compile Business Entity Designer Yksikkötestaus Kehittäjädokumentaatio • Luokkadokumentaatio koodista

• Wiki • Sekä edusta että tausta • Ympäristökuvaukset • Työkalujen käyttöönotto • PAS konfiguointi • Testaus • Paljon muuta Yhteenveto

Nopeampaa kuin koskaan ennen

• Kehitys • Toimitus • Ylläpito Kiitos! #digiarki Digia – Tähdellisten tehtävien tekemiseen

www.digia.com