ohjelmistojen pientuottajan bisnesmallista

Viime viikon aikana tapasin lukuisia ihmisiä ja keskustelin liikeideastani sekä tarjoamistani palveluista. Tämä oli hyvin hyödyllistä, sillä jouduin terävöittämään viestiäni ja ottamaan huomioon monenlaisia ohjelmistobisneksen realiteetteja. Ensimmäisen toimintakuukauteni lopuksi päätin kirjoitella hieman ajatuksiani bisnesmallistani.

Toimintaani voisi kutsua konsultoinniksi tai alihankinnaksi. Näillä sanoilla on hieman negatiivinen kaiku, ja ne liitetään yleensä suurempiin organisaatioihin, joten yksittäisen tekijän organisaationa haluaisin mieluiten puhua ohjelmistojen ja ohjelmistotyön tuottamisesta. Keskeisimpiä kilpailijoita minulle ovat yritysten omat työntekijät, kun taas alihankintaa tekevät yritykset ovat potentiaalisia yhteistyökumppaneita, joiden kanssa voidaan toteuttaa suurempia tuotantoja. Liiketoimintani on ohjelmistojen ja niiden komponenttien tuottamiseen osallistumista.

Keskeinen realiteetti ohjelmistoalalla on se, että osaaville tekijöille on kova tarve ja heitä on hidasta rekrytoida. Siinä mielessä alihankinnalla voitaisiin saavuttaa joustavuutta. Yritykset kuitenkin haluaisivat ensisijaisesti vahvistaa omaa tiimiään ja palkata vakituisia työntekijöitä. Kasvaville yrityksille henkilöstön määrä on tärkeä mittari, toisaalta osaaminen halutaan pitää omassa hallinnassa ja työvoiman on oltava käytettävissä ennakoitavasti.

Ohjelmistotyön ostaminen on monella tapaa ongelmallista. Tekijöiden kyvyt vaihtelevat suuresti, ja tiettyyn tehtävään kuluvaa aikaa olisi vaikea arvioida vaikka tekijät olisivatkin samanlaisia. Työn edistymistä ja valmiusastetta on vaikea arvioida ja seurata. Varsinkin aivan uudenlaisten asioiden kehittäminen on riskialtista. Ryhtyessään alihankintaprojektiin ostajan on selvitettävä itselleen, millaista rahallista riskiä on valmis sietämään, ja seurattava työn edistymistä sekä onnistumismahdollisuuksia tiiviisti. Toimittajan on tietysti omalta osaltaan sitouduttava toimimaan eettisesti ja vastuullisesti. Työn edistymisestä ja käytetystä ajasta on annettava tietoa mahdollisimman läpinäkyvästi.

Ohjelmistoalan pitäisi vielä kypsyä; pitäisi toisaalta oppia ostamaan palveluita ja hallitsemaan useiden toimittajien projekteja. Toisaalta ohjelmistoja pitäisi oppia tekemään hallitusti, ennustettavasti ja seurattavasti, yhteistyössä useiden toimijoiden kesken. Uuden sovelluksen kehitystyötä kannattaisi tehdä ketterästi, ylläpitäen jatkuvasti toimivaa prototyyppiä ja lisäämällä siihen toiminnallisuuksia looginen pala kerrallaan. Toteutettuja osia pitää luonnollisesti testata jatkuvasti, sekä yhdessä että erikseen. Yhteiset toimintatavat auttavat, ja yhtenäisillä sopimuskäytännöillä voidaan edistää näiden määrittämistä. Olen itse ottanut käyttöön IT2015-sopimusehdot, joista saa hyvän pohjan myös käytännön toimintatapojen organisoinnille.

Ohjelmistotyön ostaminen on helpompaa, jos ostaja tietää tarkasti mitä pitää tehdä ja miten vaativaa se on. Tämä auttaa ostajaa määrittämään työn arvon. Itse haluaisin pyrkiä arvoperusteiseen hinnoitteluun, jossa hinta määräytyisi sen mukaan mikä on lopputuloksen arvo ostajalle. Vaikka arvo olisi helppo määritellä, on edelleen haasteena valita sopiva toimittaja työlle, sillä pitäisi tuntea toimittajan kyvyt. Tämän vuoksi tarvitaan verkosto toimittajia, joiden kyvyistä saadaan käsitys useiden lyhyiden toimeksiantojen perusteella. Tämä vaatii tietysti paljon vaivannäköä ja perehtymistä. Vakituisen oman henkilöstön palkkaaminen tuntuu turvallisemmalta vaihtoehdolta. Kuinka moni työnantaja kuitenkaan tietää omienkaan työntekijöidensä kyvyt riittävällä tarkkuudella? Olisiko hyvä tietää?

Jatkan edelleen bisnesmallini pohdintaa, ja erityisesti toimintatavoista ja sopimuskäytännöistä minulla on vielä paljon sanomista.

seuraavia askeleita

Kuluneen viikon olen lähinnä hoidellut monenlaisia käytännön asioita, joita yrityksen käynnistäminen vaatii, ja hahmotellut mielessäni kokonaiskuvaa toimintatavoista. Nyt ajattelin istahtaa alas hetkeksi ja hahmotella millaisia asioita aion käsitellä tässä blogissa lähiaikoina. Tarkoituksena on paitsi kommentoida erilaisia ajankohtaisia ja muuten tärkeitä tai mielenkiintoisia aiheita, myös esitellä omaa toimintaani ja osaamistani erilaisten projektien muodossa. Tässä kirjoituksessa piirtelen hieman karttaa maastosta, jossa lähiaikoina tulen liikkumaan, ja toivoakseni onnistun herättelemään mahdollisten tukijoideni ja asiakkaideni mielenkiintoa.

kirjoja ja kirjoituksia

Koska liiketoimintani tulee pitkällä tähtäimellä rakentumaan erikoisosaamisen varaan, olen varannut itselleni aikaa lukemiselle ja pohtimiselle. Osaamista täytyy ylläpitää ja kehittää edelleen. Tietysti myös väitöskirjani loppuunsaattaminen vaatii aikaa ja energiaa, mutta tästä aiheesta kirjoitan myöhemmin. Lähiviikkoina tulen kirjoittamaan jonkinlaisia arvosteluja ja kommentaareja tärkeistä kirjoista, joita olen lukenut ja joita voin suositella muillekin. Jotkin näistä ovat yleistajuisempia, toiset teknisempiä tai matemaattisempia.
Luetellakseni muutamia esimerkkejä, tulen esittelemään sellaisia kirjoittajia kuin Pedro Domingos, David Vernon, David Mumford, Jeff Hawkins, Ray Kurzweil ja Marcus Hutter. Keskeisiä aiheita ovat erilaiset tekoälyyn ja älykkäisiin järjestelmiin liittyvät ideat ja tekniikat. Tulen kirjoittamaan myös ajankohtaisista aiheista, uutisista ja läpimurroista ja kommentoimaan niitä.

projekteja ja kokeiluja

Edellisessä kirjoituksessani väitin hiukan provosoivasti ja itsetietoisestikin olevani henkilö, joka kykenisi periaatteessa yksinään toteuttamaan kokonaisen järjestelmän palvelimilta useisiin päätelaitesovelluksiin saakka. Tällaisesta henkilöstä käytetään usein nimitystä full-stack -kehittäjä, vaikka termin tyypillinen merkitys on kylläkin hiukan suppeampi, ja tarkoittaa henkilöä joka on minua huomattavasti rutinoituneempi työtehtävissään. En markkinoi itseäni full-stack -kehittäjänä, mutta en halua jättää tätä väitettä pelkäksi kehuskelevaksi heitoksi, vaan todistaa sen. Tarkoitukseni on toteuttaa kuvatunlainen kokonaisuus vaiheittain, dokumentoiden prosessi tässä blogissa.
Tavoitteena tässä kirjoitussarjassa on toisaalta tehdä alaa vähemmän tuntemattomille selkeämmäksi, millaisia asioita modernien tietojärjestelmien toteuttaminen vaatii, ja millaisia osasia niissä on. Toisaalta haluan kuvailla nopeaa tekniikan kehitystä viimeisen 20 vuoden aikana; olen kuitenkin nähnyt läheltä ne ajat, jolloin nykyisen kaltaisia työkaluja ja apujärjestelmiä ei vielä ollut, ja suuri osa järjestelmien koodista ja konfiguroinneista piti vaivalloisesti kirjoittaa itse. Nykyään olemme tilanteessa, jossa yhden henkilön on mahdollista kohtuullisessa ajassa suoriutua kaikista työvaiheista.
Kirjoituksissa tullaan käsittelemään sellaisia asioita kuin virtuaalikoneet, Docker, REST ja JSON sekä Android. Valtavirrasta tulen poikkeamaan sillä tavoin, että tulen käyttämään funktionaalista ohjelmointia, joten tulen käsittelemään myös sellaisia asioita kuin Haskell ja Yesod. Kaikki tämä on kuitenkin vasta runkoa varsinaiselle ydinasialle, joka on tietysti oppivat ja älykkäät järjestelmät. Tulen siis kirjoittamaan myös sellaisista asioista kuin relationaalinen oppiminen, neuroverkkojen ja Bayesin verkkojen lisäksi. Tällaisten tekniikoiden käyttö bisneksessä vaatii kuitenkin tietynlaisen pohjatyön ja runkotekniikan, ja haluan osoittaa ymmärtäväni riittävästi myös tästä puolesta. Tietysti tarvitsen myös omiin tarkoituksiini, esimerkiksi esittelyjä varten, jonkinlaisen perusjärjestelmän käyttööni. Tämän järjestelmän rakentamista tulen kuvailemaan tässä blogissa.

mikä argomens on?

Matti Eskelinen

Nimeni on Matti Eskelinen, ja olen juuri perustanut tämän yrityksen työskenneltyäni vuosia yliopistolla tutkimus- ja opetustyön parissa. Tämän lyhyen kirjoituksen tarkoituksena on kertoa kaikille kiinnostuneille, mikä oikein on yritykseni olemassaolon tarkoitus, ja käynnistää tämän yritysblogin julkaiseminen.

Olen lapsesta saakka ollut kiinnostunut tekniikasta ja sen tuomista mahdollisuuksista, ja ottanut innokkaasti käyttöön kaikkea uutta. Olen oppinut ohjelmoimaan Commodore 64:n Basicillä ja käyttämään internetiä siihen aikaan kun yhteys otettiin modeemilla erillisen Winsock-työkalun avulla ja suosituin selain oli nimeltään Mosaic. Harjaannuin etsimään tietoa teknisistä asioista siihen aikaan kun kätevin tapa oli kaivella sinnikkäästi usenet-uutisryhmien arkistoja ja seurata linkkejä sivuilta, joita alkeellinen hakukone Lycos onnistui kaivamaan esiin. Olen käyttänyt mobiilia internetiä Psion 5 -laitteella, joka oli yhdistetty GSM-puhelimeen modeemijohdon avulla, ja kehittänyt dotcom-buumin aikaan ensimmäisessä ohjelmistoalan työpaikassani palvelinsovellusta, joka muunsi web-sivut wap-sivuiksi luettavaksi esimerkiksi Nokian 7110-puhelimella.

Olen kehitellyt omaa blogialustaa silloin kun blogi-sanaa ei vielä ollut, ja tehnyt älypuhelinsovelluksia silloin kun viimeistä huutoa oli Symbian ja Nokia 6600. Olen ostanut tavaraa verkosta jo ennen vuosituhannen vaihdetta. Pebble-älykello on ollut minulla päivittäisessä käytössä siitä saakka kun sain sen käsiini Kickstarter-kampanjan jälkeen, ja olen tukenut Oculus Riftiä ensimmäisestä päivästä alkaen. Olen seuraillut Internet of Things -buumia jo vuosien ajan ja kehitellyt pieniä Arduino-pohjaisia sulautettuja laitteita. Raspberry Pi:tä olen käyttänyt ensimmäisestä A-versiosta saakka. Olen hyvin kiinnostunut puettavasta tekniikasta, todellisen ja virtuaalisen maailman yhdistämisestä, laajennetusta todellisuudesta, tekoälystä ja oppivista järjestelmistä.

Olen henkilö, joka periaatteessa pystyy yksinään toteuttamaan integroidun järjestelmän, joka toimii työpöytäkoneilla, älypuhelimessa ja verkkoselaimessa, lukee tietoa virtuaalikoneella pyörivältä, docker-pakettina toteutetulta palvelinohjelmalta, johon taas tietoa syötetään sulautetuista sensoreista. Osaan kirjoittaa ohjelman, joka lukee sisään raakaa dataa tiedostosta, kameralta tai sulautetulta laitteelta, käsittelee sen, analysoi sen ja tunnistaa siitä asioita, ja tekee päätöksiä tämän pohjalta. Osaan toteuttaa loogisia päättelijöitä, neuroverkkoja, SVM-luokittelijoita, Bayes-verkkoja, geneettisiä algoritmeja ja tilastollisia kielioppeja. Olen kahlannut läpi kymmeniä tuhansia sivuja tieteellisiä artikkeleita ja kirjoja tekoälyn ja koneoppimisen menetelmistä sekä niihin liittyvästä filosofiasta.

Olen haaveilija, ideoija, intoilija ja toteuttaja. Kykenen työskentelemään itsenäisesti ja sinnikkäästi, kunnes saan ratkaistua selvittelemäni ongelman tai korjattua koodiani vaivaavan bugin. Minulla on tietoa ja kokemusta hyvin monenlaisista asioista, ja tutkijakoulutukseni myötä kykenen systemaattiseen ja rationaaliseen työskentelyyn. En vain ole koskaan ollut tilanteessa, jossa voisin keskittyä täysipainoisesti yhteen haasteelliseen asiaan kerrallaan ja tekemään sen valmiiksi. Minulla ei myöskään ole ollut luontevaa kanavaa tuoda esiin ideoitani, ja olen luonteeltani vaitelias ja syrjäänvetäytyvä.

Yritykseni argomens on perustettu tarjoamaan minulle sellainen työpaikka, jossa olen parhaimmillani: ideoijana ja haastavien ongelmien ratkaisijana. Ajan myötä toivon sen kehittyvän yritykseksi, joka auttaa toisia yrityksiä kehittämään älykkäitä ja ihmisten elämää helpottavia teknologiatuotteita sekä mahdollisesti työllistää myös muita. Tähän tavoitteeseen pyrin luomalla verkostoa alalla toimivista henkilöistä ja yrityksistä.

Autan yrityksiä rajaamaan ja pilkkomaan ongelmia ja ratkaisemaan ne ketterästi pala kerrallaan. Olen valmis keskustelemaan avoimesti ja luottamuksellisesti teknisistä aiheista ja kehittelemään ideoita toteuttamiskelpoisiksi. Laskutan vain etukäteen sovitun, kiinteän hinnan perustuen käyttämääni aikaan. Haluan tuoda Jyväskylän seudulle ja Suomeen kokoaikaisena yrittäjänä tarjottavaa, freelancer-tyyppistä ohjelmistokehityspalvelua.

Tässä blogissa tulen kirjoittamaan viikoittain minua kiinnostavista teknisistä aiheista.