Törmään silloin tällöin tilanteeseen, jossa räätälöidyt ohjelmistot koetaan lähinnä kirosanana. Yleinen mielipide tuntuisi olevan se, että räätälöidyt ohjelmistot olisivat verkkopalvelukehitykseen automaattisesti huonompi, kömpelömpi ja kalliimpi vaihtoehto. Silkkaa puppua, sanon minä. Pureudutaanpa aiheeseen tarkemmin.

Räätälöidyt ohjelmistot rakentuvat myös valmiin päälle

Räätälöidyillä ohjelmistoilla on pitkät perinteet. Itse asiassa ensimmäiset ohjelmat luotiin ilman mitään alustoja, tuotteita tai sovelluskehyksiä silkkana sankarikoodauksena. Ei ollut muita vaihtoehtoja. Onneksi tarve sankarikoodaukselle on taakse jäänyttä aikaa.

Tämän päivän ammattimaisessa verkkopalvelukehityksessä räätälöidyt ohjelmistot luodaan itse asiassa usein sovelluskehyksen päälle. Toki verkkopalvelun voi edelleen tuottaa ilman “kivijalkaa” (sovelluskehystä), mutta tälle on nykyisin hyvin vaikea keksiä liiketoiminnallisesti katsottuna riittäviä perusteluita.

Uuden verkkopalvelun voi vallan mainiosti ohjelmoida alusta loppuun saakka pelkällä ohjelmointikielellä kuten Pythonilla, PHP:lla tai Javalla. Samanlaisen verkkopalvelun voi kuitenkin 99,9% todennäköisyydellä tuottaa myös Djangolla (Python sovelluskehys), Springillä (Java sovelluskehys) tai jollain lukuisista PHP-kehyksistä. Jälkimmäinen tapa on nopeampi, halvempi ja standardoidumpi.

Räätälöidyt ohjelmistot eivät enää tarkoita käsin koodausta alusta loppuun.

Valmisohjelmistot voivat vaatia myös ohjelmiston räätälöintiä

“Valmisohjelmisto” luo sanana mielikuvan jostain mikä voidaan ottaa suoraan käyttöön. Mikäli mennään termin varsinaisen merkityksen mukaan, niin näinhän se onkin. Microsoft on Office on suoraan käyttövalmis ohjelmisto.

Sen sijaan verkkopalvelukehityksessä valmisohjelmistoksi mielletty on yleensä pikemminkin valmis tuote(alusta) kuten WordPress tai Magento. Kumpikin ovat pitkälle tuotteistettuja ja tarjoavat teoriassa suoraan pakasta nostettuna nopeasti valmiin verkkosivuston tai verkkokaupan. Todellisuus kuitenkin on, että harva haluaa pakasta vedetyn version. Yleensä vain kustannuskriittisyys houkuttaa asiakasta kotisivukone-tyyppisten halpojen SaaS-ratkaisujen pariin.

Pienimmillään muutokset ovat kevyitä muutoksia ulkoasuteemaan, mutta bisneslogiikka saattaa vaatia esimerkiksi uusien lisäosien kehittämistä, ääritapauksissa jopa ydintuotteeseen kajoamista. Tässä kohtaa lienee hyvä selventää, että ydintuotteeseen ammattilainen kajoaa vain tarkan harkinnan jälkeen ja kontrolloidusti. Tuotealustan versiopäivitettävyys ei saa mennä rikki räätälöintien tuloksena.

Valmisohjelmisto ei takaa immuniteettia räätälöintitarpeille. Versiopäivitettävyyden varmistaminen on yksi selvä vihje siitä, että asioit kokeneen Open Source ohjelmistoammattilaisen kanssa.

Räätälöidyt ohjelmistot vai valmistuotteet?

Valinta räätälöidyn ja valmisohjelmistokehityksen välillä kannattaa suosiolla jättää ohjelmistoalan ammattilaiselle. Tarkemmin sanottuna mieluiten sellaiselle taholle, jolle molemmat tavat ovat tuttuja. Pelkästään valmisohjelmistoja käyttävät tai kaiken sovelluskehyksen päälle tuottavat talot osaavat usein katsoa aihetta vain yhdestä näkökulmasta. Apple-fanaatikolle iPhone on ainoa oikea puhelin ja Android-käännynnäiselle avoin ekosysteemi ainoa oikea vaihtoehto.

Yhden asian tilaaja voi kuitenkin itse valita. Valinta vaikuttaa oleellisesti siihen kannattaako valmisohjelmistoja edes harkita toteutuksessa. Valinta on seuraava: pitääkö ohjelmisto rakentaa liiketoiminnan ehdoilla vai voidaanko bisnes justeerata valmistuotteen tarjoamaan sabluunaan? Otetaan esimerkki: jos tarve on mallia “perusverkkokauppa”, voi olla järkevää tukeutua valmiiseen tuotteeseen (kuten Magento). Se voi tehdä toimituksen nopeammaksi, selkeämmäksi, järkevämmäksi ja halvemmaksi.

Verkkopalvelukehityksessä valmistuotekin voi vaatia räätälöintiä. Räätälöinnin taso ja tapa pitää kuitenkin valita oikein. Tilattaessa uutta verkkopalvelua kannattaa jo etukäteen miettiä taipuuko oma tarve tuotteen asettamiin rajoihin vai ei.

Räätälöidyt ohjelmistot ovat tapa rakentaa kilpailuetua

Edellisessä kappaleessa totesin, että joskus tarvetta kannattaa mukauttaa tuotteen ehdoille tyypillisesti kustannussyistä. Milloin räätälöidyt ohjelmistot ovat hyvä valinta? Uniikin ja ylivoimaisen kilpailuedun hakeminen on yksi suosituimmista syistä. Facebook, Youtube, Twitter ja niin edelleen ovat kaikki räätälöityjä ohjelmistoja.

Kuten arvata saattaa, niin valmiin tuotteen päälle syntyy lähtökohtaisesti samankaltaisia lopputuloksia (ellei olla turvauduttu voimakkaaseen ohjelmiston räätälöintiin). Periaate on yksinkertainen: mitä räätälöitävämpi tekninen pohja on, sitä vapaammin se on mukautettavissa liiketoimintatarpeisiin. Vertauskuva voisi olla kivijalan (sovelluskehys) päälle rakennettu talo tai valmiin talopaketin (tuote) tuunaus. Jälkimmäisessä on vähemmän mukautusvaraa.

Räätälöidyt ohjelmistot valikoituvat suositeltavammaksi toteutustavaksi myös silloin kun vaadittava verkkopalvelutoteutus edustaa out-of-the-box ajattelua. Esimerkiksi verkkokaupan, blogin tai normaali yritysverkkosivuston rakentamiseen on useimmiten järkevää käyttää valmista tuotetta, mutta uudenlaisen SaaS-liiketoiminnan pohjana (kuten OneMindDogs) on yleensä jotain muuta WordPress, Magento tai Joomla. Sovelluskehyksen päälle (esim. Django/Python) tapahtuva toteutus on standardi tapa tuottaa ratkaisu, jolla on maksimaalinen mukautettavuus liiketoimintatarpeisiin.

Räätälöidyt ohjelmistot ovat kannattava valinta yleensä kun haetaan maksimaalista mukautettavuutta ja/tai uniikkia kilpailuetua.

Ovatko räätälöidyt ohjelmistot kalliimpia kuin valmisohjelmistot?

Kyllä, räätälöidyt ohjelmistot ovat tyypillisesti tyyriimpiä kuin valmisohjelmistot, mikäli tarkastellaan vain käyttöönottoprojektin kustannuksia. Todellisuudessa kokonaiskustannuksiin vaikuttaa moni muukin tekijä kuten tuotelisenssit.

Mikäli vertaillaan vain avoimen lähdekoodin räätälöityjä ohjelmistoja ja valmisohjelmistoja toisiinsa, kokonaiskustannuksen määrittelee yleensä liiketoimintatarve sekä soveltuvan teknologian ja kehittäjätiimin valinnassa onnistuminen.

Esimerkiksi Magenton taivuttaminen väkisin “vääränlaiseen” tarpeeseen voi tulla pitkässä juoksussa selvästi tyyriimmäksi kuin räätälöidyt ohjelmistot. Kehityksen hintalapun määrittelee siis niin tarve kuin toteutusteknologiatason oikeaoppinen valinta.

Alla oleva kuva havainnollistaa miten kustannus ja käyttöönottonopeus pienenevät mentäessä ylöspäin teknologiatasoissa. Mukautettavuus ja siten mahdollisuudet rakentaa uniikkia kilpailuetua taas kasvavat alaspäin mentäessä.

Räätälöidyt ohjelmistot

Räätälöidyt ohjelmistot

Verkkopalvelun hintaa kannattaa tarkastella elinkaarilaskennalla, ei pelkästään käyttöönottoprojektin kautta. Oikean teknologiatason valinta saattaa vaikuttaa enemmän kustannuksiin kuin tason sisällä tehtävä varsinainen teknologiavalinta.

Räätälöidyt ohjelmistot eivät ole häviämässä mihinkään

Verkkoon tuotettavien sovellusten teossa käytettävät teknologiat kehittyvät jatkuvasti. Kehitys tekee ratkaisujen ohjelmoimisesta nopeampaa. Esimerkiksi kestosuosikki Javalla ohjelmointi on kokemuksemme mukaan n. 20-30% hitaampaa kuin moderneilla Python- ja PHP-pohjaisilla kehitystyökaluilla.

Universaaleihin tarpeisiin (kuten verkkosivusto, blogi tai verkkokauppa) syntyy koko ajan lisää erinomaisia avoimen lähdekoodin tuotteita. Esimerkiksi vielä pulska 5 vuotta sitten hyvää yleiskäyttöistä verkkokauppa-alustaa oli vaikea löytää edes kaupallisilta markkinoilta, nyt voi valita useammasta hyvästä ja ilmaisesta vaihtoehdosta.

Digitalisoitumisen myötä tarve liiketoimintaa tukeville verkkopalveluille tulee entisestään kasvamaan. Räätälöidyt ohjelmistot ovat näissä tarpeissa keskeinen liiketoiminnan kasvun katalyytti.