Ohjelmisto ei ole koskaan valmis, se vain julkaistaan
Mitä se tarkoittaa?
Mitä se tarkoittaa?
Sananlasku ”Ohjelmisto ei ole koskaan valmis, se vain julkaistaan” tiivistää modernin ohjelmistokehityksen ytimen: digitaalinen tuote on luonteeltaan jatkuvassa muutoksessa.
Toisin kuin fyysinen tuote, kuten tuoli tai silta, ohjelmistoa voidaan aina parantaa, optimoida ja laajentaa. Sananlasku kuvaa kahden keskeisen voiman välistä jännitettä:
- Tekninen täydellisyys: Kehittäjät ja suunnittelijat näkevät aina tapoja hienosäätää koodia, parantaa suorituskykyä, lisätä uusia ominaisuuksia tai korjata pieniä, käyttäjälle näkymättömiä virheitä. Jos kehitystiimi saisi päättää, tuotetta hiottaisiin loputtomiin.
- Liiketoiminnan realiteetit: Toisaalta ohjelmisto on olemassa ratkaisemaan ongelman tai tuottamaan arvoa. Jotta se voisi tehdä niin, sen on oltava käyttäjien saatavilla. Liiketoiminnassa on kyse aikatauluista, budjeteista ja markkinoille pääsemisestä.
”Julkaiseminen” on siis tietoinen päätös siitä, että ohjelmisto on ”riittävän hyvä” (usein käytetään termiä Minimum Viable Product, MVP). Se on piste, jossa tuote tarjoaa tarpeeksi arvoa käyttäjälle, vaikka se olisikin kaukana täydellisestä.
Sananlasku tarkoittaa myös sitä, että työ ei lopu julkaisuun. Päinvastoin, se on usein vasta alkua. Kun ohjelmisto ”vain julkaistaan”, alkaa todellinen työ:
- Ylläpito: Korjataan bugeja, jotka löydetään vasta laajemmassa käytössä.
- Päivitykset: Tehdään tietoturvakorjauksia ja varmistetaan toimivuus uusissa käyttöjärjestelmissä tai selaimissa.
Sananlaskun historia
Tämä sananlasku ei ole vuosisatoja vanha viisaus, vaan se on ”digitaalisen ajan kansanviisaus”. Sillä ei ole yhtä nimettyä keksijää, vaan se on syntynyt kollektiivisesti ohjelmistoalan sisällä 1980- ja 1990-luvuilla, kun tietokoneohjelmista tuli yhä monimutkaisempia.
Sen juuret ovat siinä perustavanlaatuisessa erossa, joka ohjelmistoilla on perinteiseen teolliseen tuotantoon tai insinöörityöhön.
- Vastakohta fyysiselle tuotteelle: Kun autotehdas julkaisee uuden automallin, se on fyysisesti ”valmis”. Siihen ei voi enää julkaisun jälkeen lisätä uutta moottoria tai muuttaa rungon muotoa. Ohjelmistoon voi. Varhaiset kehittäjät huomasivat nopeasti tämän digitaalisen tuotteen muovailtavuuden.
- Vesiputousmallin kritiikki: Alun perin ohjelmistoja yritettiin kehittää kuten siltoja tai taloja: ensin suunnitellaan kaikki täydellisesti paperilla (vaatimusmäärittely) ja sitten rakennetaan (koodataan) se kerralla valmiiksi. Tämä ”vesiputousmalli” osoittautui hitaaksi ja kalliiksi, koska vaatimukset ehtivät muuttua ennen kuin tuote oli ”valmis”. Sananlasku syntyi tämän turhautumisen seurauksena.
- Ketterän kehityksen nousu: Sananlaskun filosofia on käytännössä kiteytetty nykyaikaisissa ketterissä menetelmissä (Agile). Sen sijaan, että yritettäisiin rakentaa ”valmista” tuotetta vuosikausia, ketterä kehitys perustuu ajatukseen julkaista pieniä, toimivia osia nopeasti. Tämän jälkeen tuotetta parannetaan jatkuvasti (iteroidaan) palautteen pohjalta.
Nykyään, ”ohjelmisto palveluna” (SaaS) -mallin ja jatkuvan julkaisemisen (Continuous Deployment) aikakaudella, sananlasku on totuudenmukaisempi kuin koskaan. Sovellukset, kuten Google Maps tai Facebook, eivät ole olleet ”valmiita” kertaakaan historiansa aikana – niitä vain päivitetään ja julkaistaan jatkuvasti.
Kipinä Software ohjelmistokehitys
