Ohjelmistokehitys
Milloin kannattaa ostaa valmis ohjelmisto, milloin teettää oma, ja mitä jälkimmäinen maksaa.
Ohjelmistokehitys tarkoittaa sitä, että joku kirjoittaa juuri teille ohjelman, jota ei ole valmiina ostettavissa. Sana kuulostaa isolta hankkeelta, mutta käytännössä suurin osa pienen yrityksen ohjelmistotarpeista on pieniä: kaksi järjestelmää pitää saada puhumaan keskenään, sama tieto naputellaan kahteen paikkaan, tai joku tekee joka perjantai käsin saman raportin.
Useimmiten vastaus on: älä teetä omaa. Valmis ohjelmisto on halvempi, toimii huomenna ja joku muu korjaa sen kun se hajoaa. Kun kysyt tarjousta räätälöidystä ohjelmistosta, hyvä toimittaja kysyy ensin, oletko varma. Tämä sivu on kirjoitettu niin, että voit tehdä ostopäätöksen ilman yhtäkään myyntipuhelua.
Mistä ohjelmistoprojekti oikeasti koostuu
Ostaja luulee maksavansa ohjelmoinnista. Ohjelmointi on kuitenkin alle puolet työstä, ja se on juuri se osa, joka menee useimmiten aikataulussa. Budjetti pettää muualla. Alla on tyypillinen jakauma pienessä projektissa, joka onnistuu.
| Vaihe | Mitä siinä tapahtuu | Osuus budjetista |
|---|---|---|
| Määrittely | mitä rakennetaan, mitä ei rakenneta, mistä tiedetään että se toimii | 15–20 % |
| Toteutus | varsinainen ohjelmointi | 40–50 % |
| Testaus ja korjaukset | oikealla datalla, oikeilla ihmisillä | 15–20 % |
| Käyttöönotto | vanhan datan siirto, opastus, rinnakkaisajo | 15–25 % |
Kaksi asiaa kannattaa lukea tuosta taulukosta. Ensimmäinen: määrittely on maksullista työtä, ja jos sitä ei laskuteta erikseen, se on joko piilotettu hintaan tai sitä ei tehdä. Toinen: käyttöönotto maksaa suunnilleen saman verran kuin testaus, ja se on lähes aina se rivi, joka puuttuu tarjouksesta kokonaan.
Miten pieni projekti etenee
Koko tapa tehdä työtä mahtuu yhteen kuvaan. Määrittely on lyhyt, ensimmäinen osa otetaan käyttöön nopeasti, ja seuraavaa osaa aletaan rakentaa vasta kun edellinen on oikeasti käytössä.
Tämä on koko ero epäonnistuvaan projektiin. Epäonnistuvassa mallissa määritellään kaikki kerralla, rakennetaan kuukausia ja näytetään asiakkaalle valmis tulos, jolloin virheiden korjaaminen maksaa moninkertaisesti. Onnistuvassa mallissa ensimmäinen osa on käytössä ennen kuin toista on aloitettu, ja jos projektin haluaa lopettaa kesken, käytössä oleva osa jää.
Milloin valmis riittää
Jos teet samaa asiaa samalla tavalla kuin tuhat muuta suomalaista yritystä, joku on jo rakentanut sen. Laskutus, kirjanpito, ajanvaraus, verkkokauppa. Näissä oma ohjelmisto tarkoittaa, että maksat kymmenen tuhatta saadaksesi jotain vähän huonompaa kuin kahdenkymmenen euron kuukausimaksu.
Valmiin puolesta puhuu myös se, mikä siihen on jo rakennettu muiden rahalla: verkkolaskujen välitys, viranomaisilmoitukset, pankkiyhteydet ja arvonlisäveron käsittely. Ne ovat tylsiä asioita, jotka maksavat paljon tehdä uudestaan ja joissa virhe maksaa vielä enemmän.
Milloin oma kannattaa
| Tilanne | Miksi |
|---|---|
| Työprosessisi on aidosti erilainen | valmis ohjelmisto pakottaisi muuttamaan tapaa, jolla teette työn |
| Kaksi järjestelmää ei puhu keskenään | väliin tarvitaan jotain, ja se jokin on pieni |
| Sama työ toistuu käsin joka viikko | automaatio maksaa itsensä takaisin mitattavasti |
| Lisenssimaksut kasvavat käyttäjien mukana | oma maksaa kerran, valmis joka kuukausi jokaisesta |
| Käytätte valmiista kolmea osaa kahdestakymmenestä | maksatte joka kuukausi seitsemästätoista, joita kukaan ei avaa |
Viimeinen rivi ansaitsee selityksen. Iso valmisohjelmisto on kallis paitsi rahassa, myös siinä, että sen monimutkaisuus kannetaan koulutuksessa ja virheissä. Kapea oma työkalu, joka tekee ne kolme asiaa, on nopeampi käyttää eikä vaadi koulutuspäivää uudelle työntekijälle.
Mitä se maksaa
| Laajuus | Esimerkki | Hinta |
|---|---|---|
| Pieni automaatio | kaksi järjestelmää puhumaan keskenään | ks. hinnasto |
| Sisäinen työkalu | yhden tiimin päivittäinen työ | ks. hinnasto |
| Asiakkaille näkyvä järjestelmä | kirjautuminen, maksut, data | ks. hinnasto |
| Muutostyöt jälkikäteen | uusi näkymä, uusi raportti, uusi rajapinta | tuntityötä |
Neljäskymmenestuhatta on meillä yläraja, ja se on rehellisyyssyistä siinä. Olemme yhden hengen yritys, ja sitä isompi kokonaisuus vaatisi useamman tekijän tai venyisi niin pitkäksi, että se olisi teille huono kauppa. Isommat työt joko pilkotaan osiin, joista ensimmäinen tehdään ja loput päätetään myöhemmin, tai ne ohjataan toimijalle joka pystyy siihen. Sanomme kumman tahansa ensimmäisessä puhelussa, emme projektin puolivälissä.
Miksi ohjelmistoprojektit epäonnistuvat
Epäonnistuminen näyttää harvoin siltä, että ohjelma ei toimi. Se näyttää siltä, että projekti maksoi kaksi kertaa arvioidun, valmistui puoli vuotta myöhässä, ja lopputulosta käyttää yksi ihminen. Syyt ovat lähes aina samat, ja ne kaikki ovat torjuttavissa ennen aloitusta.
| Syy | Miltä se näyttää | Miten se torjutaan |
|---|---|---|
| Laajuus kasvaa matkalla | jokaisessa palaverissa lisätään yksi toive | toiveet listaan, toteutus toisessa vaiheessa |
| Määrittelyä ei tehty | "katsotaan matkan varrella" | kirjallinen laajuus ennen ensimmäistä riviä |
| Kukaan ei omista projektia | päätökset odottavat viikkoja | yksi nimetty ihminen, jolla on valta päättää |
| Testataan vasta lopussa | oikea data paljastaa virheet käyttöönotossa | oikeaa dataa mukaan ensimmäisestä viikosta |
| Vanha tapa jäi käyttöön | tiedot kirjataan edelleen myös vihkoon | vanha tapa pois käytöstä samana päivänä |
Laajuuden kasvu on niistä kallein. Se ei näy budjetissa vaan aikataulussa, ja aikataulun venyminen maksaa kahdesti: tunteina ja siinä, että yritys elää kuukausia vanhan ja uuden tavan välissä. Torjunta on yksinkertainen. Toiveet kirjataan ylös, mutta niitä ei toteuteta kesken vaiheen. Ne ovat seuraavan vaiheen sisältö, ja seuraava vaihe hinnoitellaan erikseen.
Ikuinen laskutuskone
Yrittäjäpalstoilla toistuu sama pelko, ja se kannattaa sanoa ääneen: ohjelmistotoimittaja hyötyy rahallisesti siitä, että koodi on huonoa. Mitä sekavampi järjestelmä, sitä enemmän tunteja jokainen muutos vaatii, ja tunnit laskutetaan. Ostajan on käytännössä mahdotonta arvioida, oliko kolmen päivän muutostyö kolmen päivän työ.
Tätä ei voi poistaa luottamuksella. Se poistetaan kolmella sopimusehdolla, jotka kannattaa vaatia keneltä tahansa ostatte.
| Ehto | Mitä se estää |
|---|---|
| Lähdekoodi luovutetaan teille | toinen tekijä voi arvioida työn ja jatkaa sitä |
| Koodi on teidän omassa repositoriossanne | näette joka päivä, mitä on tehty |
| Ensimmäinen vaihe on pieni ja kiinteähintainen | näette työn laadun ennen kuin sidotte ison summan |
Kolmas on tehokkain, ja se maksaa teille vähiten. Tuhannen euron ensimmäinen vaihe kertoo enemmän toimittajasta kuin mikään referenssilista. Jos se menee hyvin, jatkatte. Jos ei, olette menettäneet tuhat euroa ettekä kahtakymmentä.
Kiinteä hinta vai tuntihinta
Kysymys esitetään usein niin, kuin toinen olisi ostajalle turvallinen ja toinen ei. Kumpikin on turvallinen oikeassa tilanteessa ja kallis väärässä.
| Kiinteä hinta | Tuntihinta | |
|---|---|---|
| Sopii kun | työ on tarkkarajainen ja tuttu | työn sisältö elää matkalla |
| Riskin kantaa | toimittaja | tilaaja |
| Hinnassa on | riskilisä, koska toimittaja varautuu yllätyksiin | ei riskilisää, mutta ei kattoakaan |
| Muutostoive kesken työn | vaatii uuden hinnan, hidastaa | onnistuu heti, kasvattaa laskua |
| Huono puoli | toimittaja karsii laadusta, jos arvio petti | lasku ei pääty itsestään mihinkään |
Käytännössä paras yhdistelmä pienessä projektissa on tämä: kiinteä hinta ensimmäiselle rajatulle vaiheelle, ja tuntihinta muutostöille sen jälkeen. Silloin tiedätte etukäteen, mitä käyttöönotto maksaa, ettekä maksa riskilisää muutoksista, joita ei ehkä koskaan tule. Meillä tuntihinta on sama riippumatta siitä, onko työ helppoa vai vaikeaa, ja se lukee hinnastossa.
Näin ostat turvallisesti
- Kirjoita ylös se yksi asia, joka menee rikki Ei ominaisuuslistaa, vaan mikä maksaa rahaa tällä viikolla. Jos et osaa nimetä sitä, hanketta ei kannata aloittaa vielä.
- Laita ongelman viereen euromäärä Tunti päivässä turhaa naputtelua on noin 220 tuntia vuodessa. Kun tunnille laskee palkkakustannuksen, saat luvun, jota vasten tarjousta verrataan.
- Vaadi kirjallinen laajuus ennen aloitusta Yksi sivu riittää. Siinä lukee mitä tehdään ja mitä ei tehdä. Ilman sitä molemmat osapuolet muistavat sovitun eri tavalla.
- Vaadi lähdekoodi sopimukseen Yksi virke: lähdekoodi ja tietokanta luovutetaan tilaajalle projektin päättyessä. Ilman sitä maksatte työstä, jota ette voi viedä mukananne.
- Tilaa ensin pieni vaihe Tuhannen euron työ kertoo toimittajasta enemmän kuin referenssilista, ja se on halpa tapa selvittää asia.
- Katso luvut kolmen kuukauden kuluttua Ratkesiko se yksi asia, jonka takia tilasit? Jos ei, korjaa se ennen kuin lisäät mitään uutta.
Määrittely mahtuu yhdelle sivulle
Määrittely kuulostaa raskaalta, ja siksi se jätetään usein tekemättä. Pienessä projektissa se on kuitenkin yksi sivu, ja sen kirjoittaminen kestää tunnin. Alla on se sisältö, joka riittää. Jos toimittaja vaatii enemmän ennen kuin antaa hinnan, kysy miksi.
| Rivi | Esimerkki |
|---|---|
| Kuka käyttää ja missä | kolme asentajaa puhelimella, yksi toimistolla koneella |
| Mitä järjestelmään syötetään | tunnit, kohde, materiaalit |
| Mitä siitä pitää saada ulos | laskurivit ja kohteen kate |
| Mihin se liittyy | kirjanpito-ohjelma, verkkolaskutus |
| Mitä ei tehdä tässä vaiheessa | varasto, palkat, asiakasportaali |
| Mistä tiedetään, että työ onnistui | laskut lähtevät viikon sisällä työstä |
Tärkein rivi on viides. Lista siitä, mitä ei tehdä, on ainoa asia, joka pysäyttää laajuuden kasvun, ja se on myös ainoa rivi, joka lähes aina puuttuu. Viimeinen rivi on toiseksi tärkein, koska se muuttaa projektin lopputuloksen mielipidekysymyksestä mitattavaksi asiaksi.
Ylläpito: mitä se oikeasti tarkoittaa
Ylläpito on sana, joka tarkoittaa neljää eri asiaa, ja tarjouksissa niitä ei eritellä. Kysy erikseen jokaisesta.
| Mitä | Kuinka usein | Mitä se maksaa |
|---|---|---|
| Käyttökustannus, palvelin ja tietokanta | joka kuukausi | Cloudflaren päällä muutamia euroja |
| Tietoturvapäivitykset | muutaman kerran vuodessa | pienessä järjestelmässä tunteja, ei päiviä |
| Virheiden korjaus | ensimmäisinä kuukausina | kuuluu työhön, ei laskuteta erikseen |
| Muutokset, koska toimintanne muuttui | kun muuttuu | tuntityötä tehdyn työn mukaan |
Pieni automaatio ei tarvitse ylläpitoa vuosiin. Asiakkaille näkyvä järjestelmä tarvitsee, koska sitä käyttävät ihmiset joita ette voi kouluttaa, ja koska selaimet ja maksunvälittäjät muuttuvat. Erottelu kannattaa tehdä ennen tilausta, ei sen jälkeen.
Käyttökustannus on se luku, jota kukaan ei kysy
Rakennushinta kysytään aina. Se, mitä järjestelmän pyörittäminen maksaa kuukaudessa, kysytään harvoin, vaikka se on se luku, joka juoksee niin kauan kuin järjestelmä on olemassa. Ero on iso ja se on tarkistettavissa.
| Malli | Mitä siitä maksetaan | Tyypillinen kk-hinta |
|---|---|---|
| Toimiston oma palvelin tai konesali | virtuaalipalvelin, varmuuskopiot, valvonta | 80–400 €/kk |
| Pilvipalvelu perinteisellä palvelinmallilla | palvelin pyörii myös yöllä, kun kukaan ei käytä | 40–200 €/kk |
| Cloudflare, jota me käytämme | maksetaan käytöstä, ei pyörimisestä | muutamia euroja/kk |
Syy eroon on rakenteellinen eikä neuvottelutulos. Perinteisessä mallissa palvelin on päällä koko ajan ja laskuttaa myös silloin, kun järjestelmässä ei ole ketään. Cloudflaren mallissa koodi ajetaan vasta kun joku avaa sivun, joten pienen yrityksen sisäinen työkalu maksaa kuukaudessa vähemmän kuin yksi kahvipaketti. Kolmessa vuodessa ero on tuhansia euroja, ja se ero on kokonaan teidän.
Tästä seuraa yksi asia, joka kannattaa tietää: ero on olemassa vain, jos järjestelmä on rakennettu tälle alustalle alusta asti. Valmiin, perinteisesti rakennetun ohjelmiston siirtäminen jälkikäteen ei ole muutostyö vaan uudelleenrakennus. Kysy alusta siis silloin, kun tilaat, ei kolmen vuoden päästä.
Milloin ei kannata teettää mitään
Tämä osio puuttuu lähes jokaiselta kilpailijaltamme, joten kirjoitamme sen auki. Nämä ovat ne tilanteet, joissa vastauksemme ensimmäiseen puheluun on, että älkää tilatko.
| Tilanne | Miksi ohjelmisto ei auta |
|---|---|
| Ette osaa nimetä yhtä asiaa, joka menee rikki | epäselvä ongelma muuttuu kalliiksi, ei ratkea |
| Prosessia ollaan juuri muuttamassa | ohjelmisto naulaa kiinni tavan, joka on vaihtumassa |
| Ongelma on hinnoittelussa tai sopimusehdoissa | koodi ei korjaa kannattamatonta hinnoittelua |
| Kukaan ei ehdi olla projektin omistaja | ilman omistajaa työ pysähtyy kolmanteen viikkoon |
| Sama asian hoitaa valmis ohjelmisto 20 €/kk | takaisinmaksu on vuosikymmeniä |
| Työ toistuu kolme kertaa vuodessa | automaatio maksaa enemmän kuin käsin tekeminen |
Yleisin näistä on kolmas. Yritys, joka ei tiedä mikä työ oli kannattava, tilaa järjestelmän saadakseen sen selville. Usein vastaus löytyy laskemalla kaksi viime vuoden isointa työtä auki, ja se on yhden illan työ taulukkolaskennassa. Tee se ensin. Jos vastaus säikäyttää, tilaat järjestelmän tietäen mitä siltä haluat.
Mitä me teemme
Pieniä, tarkkarajaisia järjestelmiä: automaatioita, integraatioita, sisäisiä työkaluja ja asiakassovelluksia. Cloudflaren päällä, mikä tarkoittaa, että käyttökustannus on tyypillisesti muutamia euroja kuukaudessa eikä satoja.
Emme tee kuukausia kestäviä projekteja, joissa lasku juoksee ennen kuin mitään on käytössä. Jos työ ei mahdu muutamaan viikkoon, se pilkotaan osiin, joista ensimmäinen on käytössä ennen kuin toinen alkaa.
DT Nova Tmi, Y-tunnus 3595452-5, Helsinki. Yksi ihminen, joka tekee työn itse. Olemme julkaisseet 21 sovellusta App Storeen ja rakentaneet kanta-asiakasjärjestelmän, joka on päivittäisessä käytössä helsinkiläisessä thairavintolassa. Rajoite kerrotaan itse: emme ota useaa isoa projektia yhtä aikaa, ja jos kalenteri on täynnä, sanomme sen ensimmäisessä puhelussa.
Sisäinen työkalu ja asiakkaille näkyvä järjestelmä ovat eri kokoluokkia, ja hinnat ovat hinnastossa. Muutostyöt tehdään tuntityönä. Lähdekoodi ja tietokanta luovutetaan teille, ja se kuuluu hintaan. Käyttökustannus Cloudflaren päällä on tyypillisesti muutamia euroja kuussa.
Usein kysyttyä
Kysy tämä: joutuisitko muuttamaan tapaa, jolla teet työsi, jotta valmis ohjelmisto sopisi? Jos et, ota valmis. Jos joutuisit ja se tapa on syy siihen, miksi olette hyviä, teetä oma.
Sinä. Saat lähdekoodin ja tietokannan. Se on tärkeää siksi, että jos minulle sattuu jotain, joku toinen voi jatkaa siitä mihin jäätiin.
Riippuu siitä mitä rakennettiin. Pieni automaatio ei tarvitse ylläpitoa vuosiin. Asiakkaille näkyvä järjestelmä tarvitsee, ja siitä sovitaan erikseen ennen aloitusta. Muutostyöt laskutetaan tehdyn työn mukaan 75 euron tuntihinnalla.
Voi, ja siksi teemme pienissä palasissa. Jokaisen palasen jälkeen sinulla on jotain, joka toimii, ei puolivalmis kokonaisuus.
Rajatulle ensimmäiselle vaiheelle annamme. Koko projektille emme aina anna, koska kiinteä hinta epäselvälle laajuudelle sisältää riskilisän, jonka te maksatte. Rajaamme mieluummin vaiheen pieneksi.
Silloin se pilkotaan osiin tai se ei ole meidän työmme. Sanomme sen ensimmäisessä puhelussa ja nimeämme mielellämme jonkun, joka pystyy siihen. Yhden hengen yrityksen kapasiteetti on tosiasia, ei neuvottelukysymys.
Puoli tuntia puhelimessa ja vastauksen kysymykseen, mikä nyt menee rikki. Emme tarvitse valmista määrittelyä. Jos sellainen on, se nopeuttaa.
Sanomme sen heti. Emme ota työtä varastoon ja aloita kahden kuukauden päästä kertomatta siitä etukäteen.
Kyllä, Helsingissä, ja sen tekee sama ihminen, joka vastaa puhelimeen. Työtä ei siirretä alihankintaan ilman että siitä kerrotaan.
Soita 044 989 1659 Lähetä sähköpostia
Vastaa Moustafa Tarabya, DT Nova Tmi. Ei myyntitiimiä, ei tarjouspyyntölomaketta — soitat suoraan sille, joka tekee työn. Arkisin klo 9–20, ja jos en ehdi vastata, soitan takaisin saman päivän aikana.
Lue myös: kanta-asiakassovellus yritykselle · QR-koodi generaattori · yhteystiedot · blogi