Mikä on systeemityössä IN?

hanke purjehtii
vesiputouksesta
muutoskaaokseen

hiljainen tieto
siivittää muuttolinnun
laadunhallinnan

tutkija testaa
haarukalla perunaa
ilman speksejä

Systeemityöyhdistys Sytyken kymmenennessä laivaseminaarissa Viking Mariellalla 5.-7.9.2007 kysyttiin: ”Mikä mahtaa olla IN?”
Sytyken sytyttämiä sponsoreita oli niin paljon, ettei kaikille riittänyt puheenvuoroa paripäiväisessä seminaarissa. Niinpä puheenvuorotta jäänyt Samcom ilmoittautui jo ensi vuoden sponsoriksi.
Timo Kaisla Ixonos Projektinjohtopalveluista kertoi haasteista suurissa tietojärjestelmähankkeissa, sata kertaa tavallisia suuremmissa, tuhansia henkilötyövuosia ja yli kolme kalenterivuotta nielevissä migraatio eli konsolidointi- tai vaihtohankkeissa. Alustava suunnitelma ja lopullinen todellisuus poikkeavat toisistaan merkittävästi: kustannukset kasvavat nelinkertaisiksi ja aikataulu kolminkertaiseksi, hanke koskettaa koko organisaatiota ja suurta alihankkijajoukkoa.
Ainutkertaisen hankkeen skaalasokeutta ei riko konsulttikaan. Johto ja kokenut projektipäällikkö hallitsevat normaaliprojektit, ei koko henkilöstöä koskevaa muutosta. Organisaation pitäisi lääkitä itseään ulkopuolisten kokemuksilla suurista projekteista.
Puolet meneillään olevista projekteista pitäisi tappaa, jotta migraatiohankkeeseen saataisiin kaikkien divisioonien parhaat resurssit. Päällikkövetoinen vaatimusmääritys, vaikka siihen varattaisiin reilut puoli vuotta, tuottaa puutteellisia ja tasoltaan kirjavia tuloksia, jos päälliköt eivät ole systeemityön ammattilaisia. Systematisointi on saattanyt rämettyä organisaation pienissä projekteissa; suurissa sitä tarvitaan. Pienissä projekteissa kannuksensa ansainnut projektipäällikkö ei ehkä uskalla skaalata resurssi- ja aikatarvetta riittävän ylös – ja jos uskaltaisi, esimies ei sitä hyväksyisi.
PMBOK kuvaa, mitä pitäisi tehdä, ei sitä, miten se tehtäisiin.
Vaatimusten- ja muutostenhallinnassa työpajat toimivat, ne tuottavat paljon dokumentoimatonta, ns. hiljaista tietoa. Aikataulu annetaan yleensä ylhäältä, vaikka suurta hanketta pitäisi suunnitella alhaalta ylös. Linjaihmiset arvioivat työmäärät kirjavasti. Katselmointi vaatii pari kuukautta ja kymmenen henkilöä, ettei ”takaseinä jää puuttumaan”.
Laadunhallinnasta tarvitaan kuvaus, jossa käsitellään muutakin kuin testausta. Testaajiksi tarvitaan ulkopuolisia ammattitestaajia, he oppivat nopeasti prosessit kuin prosessit. Jos talon omat asiantuntijat pannaan kolmeksi kuukaudeksi ajamaan erilaisia testejä, kyse on heidän ammattitaitonsa väärinkäytöstä.
Miten henkilöstö saadaan mukaan? Aluksi voisi kutsua vaikka Esa Saarisen luennoimaan, muutoshan koskee kaikkea ja kaikkia. Projektipäälliköt ovat avainasemassa: jos homma on liian iso jollekulle heistä, hänet pitäisi vaihtaa toiseen mahdollisimman pian, muuten muutosvastarinta kasvaa.
Miten suuri tietojärjestelmäprojekti ostetaan? Vaatimusmääritys on niin vaativa, että kiinteä hinta johtaa yleensä jatkuvaan sopimuspapereiden läpikäyntiin juristien kanssa.
Ostavan ja tilaavan organisaation toiminta- ja kulttuurierot vaikuttavat projektiin. Jos organisaatiot ovat eri maissa, ongelmat yleensä lisääntyvät. Halvin tapa rakentaa siltoja saattaa joissain tapauksissa olla ilmainen viina. Projektissa työskentelevien ihmisten pitäisi kokea olevansa ”yhdessä veneessä” eikä vain asiakassuhteessa. Parhaimmillaan projektin lopussa ei enää voi erottaa, kuka on toimittajan ja kuka asiakkaan edustaja.
Nopeasti muuttuvassa maailmassa isoissa projekteissa voidaan käyttää ketteriä menetelmiä monin sprintein.
Claus Günther ja Sakari Lehtonen IDS Scheer Finlandilta selvittivät meille Open BPM:n merkitystä liiketoiminnalle. Claus Güntherin mukaan nykyinen muutosten aika edellyttää kokonaisratkaisuja, liiketoiminnan harmonisointia ja segmentointia. Miten se näkyy attribuuttitasolla? Mitä tehdään itse ja mitä ostetaan?
Kokonaisuuden hallinta tarkoittaa suhteiden hallintaa, asioiden välisten suhteiden ymmärtämistä. Onko tämän hallitseva toimitusjohtajasukupolvi vasta kasvamassa? Kolme vuotta sitten puhuttiin malliin perustuvasta arkkitehtuurista (Model Driven Architecture), nykyisin arkkitehtuurin pitäisi perustua liiketoimintaan (Business Driven Architecture).
Mikä on IN? Olisiko Business Driven SOA? Tulevaisuudessa yritysarkkitehtuuria ja SOA:a hallitaan yhdessä.
Sakari Lehtonen kysyi, miten järjestelmät palvelevat liiketoimintaa kokonaisuutena. Monessa organisaatiossa on kiinnitetty huomiota prosessien hallintaan, mutta laajempi kehikko, sovellukset, tiedot, laitteistot ja integrointi, on jäänyt hoitamatta. Olennaista olisi saada nämä kaikki samaan tietokantaan, jotta tiedetään, mitä sovellusta, tietoja ja laitteistoja tietty prosessi tarvitsee. Miten tällaista tietokantaa ylläpidetään? Tuskin PowerPointilla.
SOA:ssa on aina sama kerrosarkkitehtuuri: käyttöliittymät – integraatioalusta – ERPit. Portaalista tuleva käsky reitittyy integraatiokerroksen läpi keskuskoneelle, jossa kaikki tiedot ovat luontevissa moduuleissa. Muutaman vuoden kuluttua integrointikerroksen korvaa ohjaava kerros.
Entä tulevaisuus? Yrityksellä on yksi sovittu tapa kuvata ohjelmalogiikka, joka voidaan generoida eri alustoille. Prosessit mallinnetaan BPM:lla ja tekniikka UML:lla – ja nämä kuvaustavat pidetään erillään!
Joakim Sandström nSenselta vakuutti innostavassa puheessaan, että tietoturvan testaaminen on osa systeemityötä. Hän kertoi aloittaneensa uusmediahypen aikana ohjelmoijana, törmänneensä koodin tietoturvaongelmiin ja innostuneensa sovellustietoturvahaavoittuvuudesta, josta kukaan ei tuolloin ymmärtänyt mitään. Ohjelmistorobotilla hän löysi viikossa puolesta miljoonasta verkkopalvelusta pari miljoonaa haavoittuvuutta.
Hän kertoi esimerkin, miten oli sovellushaavoittuvuuksia käyttäen muuttanut tilaukseensa 80 %:n alennuksen. Varastomies alkoi kuitenkin ihmetellä suurta alennusprosenttia ja tarttui puhelimeen. Entä tulevaisuudessa, jos tuotantoketju automatisoituu eikä ole enää varastomiestä lukemassa tilausta?
Ohjelmoijille ei kerrota, miten tehdään tietoturvallista SOAP:ia. Heille opetetaan, että ensin koodataan ja sitten testataan, vaikka tietoturva pitäisi rakentaa osaksi koko prosessia.
Monet kuvittelevat, että palomuuri, VPN ja SSL takaavat tietoturvan. Uusia haavoittuvuuksia on kuitenkin 75 % enemmän kuin ennen; nyt ne ovat sovelluksissa eivätkä linjoissa tai palvelimissa.
Jos autoja rakennettaisiin kuin tietojärjestelmiä, niissä ei olisi ikkunoita eikä jarruja; eihän niitä itsestäänselvyyksinä mainittaisi vaatimusmäärittelyissä.
nSense teki vuonna 2006 yli sata turvatestiä, joista löytyi vain viisi puhdasta sovellusta.
Yrityksen pitäisi analysoida, mitä tietoturvaongelmista seuraa? Ensimmäinen raportoitu verkkopankkihaavoittuvuus lienee se, kun äiti jätti verkkopankin auki ja 16-vuotias poika huomasi, että osoitekentässä pyöri tilinumeroita. Hän pääsi vaivattomasti siirtämään rahoja toisten tileiltä.
Http-protokolla on tilaton ja ohittaa kaikki tietoturvat. Se suosii ”pahiksia”. OWASP kuvaa, millaisia haavoittuvuuksia sovelluksista löytyy. Niitä löytyy 80 % sovelluksista, mikäli tietoturvatestaus uupuu.
Tietoturvahaavoittuvuudet voidaan jakaa teknisiin ja loogisiin. Jälkimmäiset liittyvät tilanteisiin, joissa sovellus ei tarkista syötettä: sushia saatiin parissakymmenessä minuutissa, vaikka ohjeellinen vähimmäisaika oli pari tuntia. 95 % haavoittuvuuksista voitaisiin välttää validoimalla syöte ja enkoodaamalla tuloste.
Missään ei rakenneta ohjelmistoja niin, että tietoturvallisuus olisi ohjelmoijasta riippumatonta. Liian usein ohjelmoija itse testaa sovelluksen tietoturvan ja liian harva asiakas vaatii tietoturvallista toimintaa. Tietoturva pitäisi testata silloin, kun ympäristö muuttuu – mutta ympäristöhän muuttuu päivittäin.
Koulutuksessa pitäisi korostaa, että sovelluksen tietoturva on laatukriteeri siinä missä toiminnallisuuskin. Kaikille sovelluksille pitäisi määrittää minimivaatimukset. Organisaatio jää riskianalyysissaan liian usein sille tasolle, että tunkeutujaa ei päästetä palvelimelle, mutta unohdetaan, että tunkeutuja voi hintoja muuttamalla huijata itselleen ilmaiseksi musiikkifirman kaikki kappaleet.
Pentti Virtanen Tieturilta kertoi kouluttajan ottein, miten vaatimukset valmistuvat viikossa. Riittävän pieniksi pilkotuilla kokonaisuuksilla, joita osaavat ihmiset käsittelevät.
Perinteinen vesiputousmenetelmä on kuin organisaatiota vaihdettaisiin joka vaiheen jälkeen ja tieto välitettäisiin kuvauksissa keskustelua välttäen. Ketterissä menetelmissä myönnetään, ettei vaatimuksia saada kerralla oikein – varsinkaan sitä, mitä kaivataan neljän vuoden kuluttua tai ensi joulumarkkinoilla. Sitäpaitsi: jatkuvasti löytyy uusia tapoja tietojärjestelmien toteuttamiseen. Miksi ne jätettäisiin hyödyntämättä kiveen hakatuilla vaatimusmäärityksillä ja tietojärjestelmäprojekteilla?
Sopimukset eivät tee järjestelmää eikä tavoitteena ole voitto välimiesoikeudessa vaan toimiva järjestelmä. Sopimusten sijaan tarvitaan luottamusta ja sopeutumista muutoksiin!
Ketterissä projekteissa asioita tehdään rinnakkain, siksi kalenteriaika lyhenee. Ketteryys edellyttää ammattitaitoisia, motivoituneita ihmisiä sekä kommunikointia tiimien sisällä, niiden välillä ja asiakkaiden kanssa. Projektissa pitää olla riittävästi osaavia ihmisiä, jotka voivat keskittyä päätoimisesti, tuntea ”flown”. Mieluummin tehdään heti tietoturvallista koodia kuin etsitään haavoittuvuuksia jälkeenpäin.
Kallein tapa rakentaa on kokonaishintainen budjetti. Jos järjestelmä tilataan paloissa, voidaan lopettaa ajoissa. Scrum tuottaa asiakkaalle joka kuukausi toimivan sovelluksen, jota on helppo arvioida. Miten perinteisessä projektissa voidaan tietää, milloin sovelluksesta 22 % olisi valmiina?
Millainen projektisuunnitelma on muuttolinnuilla? Niillä ei ole projektipäällikköä ja ne sopeutuvat kulloinkin eteen tuleviin tilanteisiin.
Miten keität perunoita? Mittaatko veden määrän ja perunoiden koon ja lasketko siitä, kuinka kauan perunoiden pitää kiehua? Vai kokeiletko perunoiden kypsyyttä haarukalla?
Ketterät menetelmät eivät ole hopealuoti. Ohjelmistotuotannossa vaikeinta on ajatteleminen.
Byrokraattisessa organisaatiossa, jossa luvan saamiseen menee kuukausia, on vaikea toimia ketterästi. Perinteistä ohjelmistokehityksestä siirrytään ketteriin pienin askelin – aluksi vaikka lisäämällä kommunikointia.
Minna Oksanen SysOpen Digialta innosti meidät Business Intelligencesta. Onko organisaatiosi pulloposti, purjevene vai laiva? Ajelehditko vai ohjaatko itse? Business Intelligence tarkoittaa liiketoimintatiedon hallintaa yhtenäisen tietomallin avulla. Muutosta mitataan mahdollisimman pienin syklein, jotta saadaan konkreettisia tuloksia järkevässä ajassa.
Mitä tällä alueella on tapahtunut kymmenessä vuodessa? Voisiko metatiedoin kertoa, että tiedot liittyvät toisiinsa niin, ettei tietoa tarvitsisi toistaa? Perustiedot keskittyvät transaktioihin, kuutiot analyysiin. Kahden eri järjestelmän raportit saattavat poiketa toisistaan, jos luvut lasketaan eri tavoin. Samalle näytölle voidaan yhdistää eri elementtejä, kunhan tiedot ovat olemassa.
Näkyviä ratkaisuja saadaan sadassa päivässä. Real Time Datawarehousing and Reporting tarjoaa vastauksen kysymykseen, kuinka monelta kalkkunalta pitää katkaista kaula, jotta huomenna liikkeessä on riittävä määrä kalkkunaleikkeitä. Vastaus ei saa perustua viime viikon tilanteeseen, jos huomisen tilaukset ovat jo tiedossa.
Metadatan merkitys kasvaa, mallinnuksesta ei koskaan saa luopua ja liiketoiminnan kanssa pitää keskustella.
Perttu Karvinen ja Mikko Holmberg CodeBakersista kertoivat Java-kehityksessä puhaltavista tuulista. Kehitysrytmi on hidastunut, Java on vakiinnuttanut asemansa, mutta vaihtoehtojakin löytyy. Suppeimmillaan Java on ohjelmointikieli, laajimmillaan ohjelmistoalusta. Skriptikielillä pystytään nopeasti tekemään jotain tilanteissa, joissa Javalla joudutaan vääntämään paljon.
Spring on ohjelmointikehys, joka hoitaa sille esiteltyjen olioiden väliset riippuvuudet. Hibernate on olio-relaatio-tulkki, joka piilottaa relaatiomaailman olio-ohjelmoijalta. Java-koodaajan ei siis tarvitse tietää mitään SQL:stä. Hibernaten ongelmana on, että sovellus voi lähettää SQL-käskyjä ilman, että tulkki huomaa sitä. Eclipse taas on avoin kehitysympäristö.
Ketterään kehitykseen on tulossa kollaboraatioalustoja. Työkalutuki on jo olemassa ja kasvaa jatkuvasti. TDD eli Test Driven Development vaatii aloittamaan testauksen heti. Jatkuva integraatio varmistaa, että koodi toimii. Silti projektinhallintaakin tarvitaan. SOA ja BPM, joista aiemmin puhuttiin, eivät periaatteessa vaikuta sovelluskehitykseen Javalla.
Juhani Snellman Qentinelista kysyi: Testaus, Quo Vadis? Hän aloitti esityksensä kolmesta taidemaalarista, joiden piti kuvata omena. Yksi kuvasi omenan, toinen omenapuun ja kolmas puutarhan, jossa omenapuu kasvoi. Juhani Snellman kuvasi meille testauksen ympäristössään, nopeutuvan liiketoiminnan ja globalisaation puutarhassa, jossa kaikkea halutaan enemmän, nopeammin ja kustannustehokkaammin.
Testaus tekee näkyviksi liiketoiminnan riskit ja mahdollisuudet. Testaus sinänsä ei paranna ohjelmistoa vaan tuottaa relevanttia informaatiota liiketoimintariskien hallintaan. Testaus on ohjelmistokehityksen ja tietojärjestelmähankkeiden tukiprosessi.
Testauksen trendeinä voidaan mainita halpatuotanto, erikoistuminen ja ketterä testaus. Kymmenen erikoistunutta testaajaa voivat korvata tuhat halpatuotantomaista ostettua perustestaajaa.
Ketterän menetelmän kirjat eivät käsittele testausta. Osaava ketterä testaaja tukee sekä kehittäjätiimiä että liiketoimintaa.
Yksikkötesti ohjaa suunnittelua ja hyväksyntätesti tavoitteiden määrittelyä. Näistä voidaan automatisoida ne, jotka eivät vaadi aivokapasiteettia.
Tutkivassa testauksessa testaajan ammattitaito korostuu: hän ei toimi etukäteen mietittyjen määritysten mukaan vaan kokeilee asioita, joista tiedetään, että niissä joskus on ongelmia tämänkaltaisissa järjestelmissä. Kyse on negatiivisesta testaamisesta. Se ei onnistu perinteisessä organisaatiossa, jossa vaaditaan paljon kuvauksia ja testitapausten katselmointia etukäteen.
Siirtyminen perinteisestä ohjelmistokehityksestä ketterään tuottaa välivaiheessa kaaoksen; ihmisen toimintahan ei muutu nopeasti.
Lopuksi Silja Räisänen Osuuspankkikeskuksesta kertoi omien kokemustensa ja Systeemityölehtien valossa, mikä kymmenen vuoden aikana Sytyken laivaseminaareissa on ollut IN.

2 vastausta artikkeliin “Mikä on systeemityössä IN?”

  1. Hei
    Olisiko mahdollista että tämän tekstin voisi julkaista Systeemityölehden laivaseminaari artikkelina.
    Olisiko myös mahdollista, että alkaisit kirjoittaa kolumnia kyseiseen aviisiin.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *