Suunnittelusta toteutukseen
Suunnittelu
Lähdimme Shoconin suunnitteluun määrittelydokumentista, jonka asiakas oli teettänyt toisella toimijalla paria vuotta aikaisemmin. Aloitimme määrittelydokumentin läpikäynnillä, rajasimme, täsmensimme ja täydensimme dokumenttia vastaavaan ensimmäisen vaiheen tarpeita. Teimme myös yhteistyötä asiakkaamme design-kumppanin kanssa ja saimme tästä tarkat määrittelyt väreihin, typografiaan ja sovelluksen yleiseen ilmeeseen.
Prototyyppivaihe
Shocon on monimutkainen sovellus. Linjastot, tilaukset, tuotteet, suunnittelu ja arjen operointi ovat monilla tavoin sidoksissa toisiinsa, niillä on riippuvaisuussuhteita ja yksi asia vaikuttaa moneen paikkaan. Hyödynsimme tekoälytyökaluja interaktiivisen prototyypin luomiseen, jossa käytännössä asiakkaan kanssa yhteiskehitimme sovelluksen näkymä ja toiminnallisuus kerrallaan. Tämä oli loistava tapa saada testattua eri toteutusvaihtoehtoja nopeasti, jopa livenä tapaamisessa. Samalla asiakkaalle muodostui selkeä käsitys siitä, miten sovellus tulisi toimimaan ja mitä kaikkea on hyvä ottaa huomioon.
Nykypäivän tilanteessa koodin kirjoitus tai toiminnallisuuksien lisääminen ei ole ongelma, ongelma on tietää mitä rakennetaan, miksi ja miten sen pitää toimia. Prototyyppivaiheen kehitystä auttoi myös asiakkaan erittäin vahva substanssiosaaminen ja selkeä visio siitä, miltä sovellus täydellisesti toimiessaan näyttää jo heti alussa.
Kehitystyö
Prototyyppivaiheen jälkeen siirryttiin varsinaiseen kehitystyöhön. Rakennettiin tietomallit ja tietokanta Supabase:n tietokantaan, sekä aloitettiin sovelluskehitys Flutterflow-alustalla. Shocon koostuu kahdesta sovelluksesta, web-versiosta tuotannon suunnitteluun, seurantaan ja raportointiin, sekä tablet-sovelluksesta, jolla tuotannon työntekijät operoivat työpäivää eri linjastoilla.
Pilottiasiakas auttoi kehittämään sovellusta paremmaksi
Pääsimme hyödyntämään sovelluskehittäjän parhaita apureita, eli oikeita käyttäjiä, hyvin varhaisessa vaiheessa, kun siirryimme jo muutaman kuukauden aktiivisen kehittämisen jälkeen pilottikokeiluun. Pilotin aikana saimme arvokasta palautetta käyttäjiltä, löysimme lisää rajatapauksia, jotka ottaa huomioon sekä saimme monia alkutaipaleen hypoteeseja joko vahvistettua tai vääräksi todistettua.
Nykyteknologia mahdollistaa nopeat suunnanmuutokset ja lisäykset, näin myös Flutterflown kohdalla. Monissa tapauksissa saimme ilmoituksen bugista tai toiminnallisuustoiveesta aamulla, ja iltapäivään mennessä muutokset olivat jo livenä pilottiasiakkaan ympäristössä. Toisissa tilanteissa kohtasimme myös ongelmia, kun käyttäjän raportoima bugi oli hitaampi työ ja riippuvuussuhteiden vuoksi monimutkainen toteutus, jolloin meni pidempi hetki, että se saatiin toivotulla tavalla korjattua.
Lopputulos
Kuten joka projektissa, täysin ilman hikkoja ei tämäkään projekti sujunut; Olimme arvioineet osan työvaiheista nopeammaksi toteutukseksi mitä se todellisuudessa oli ja kohtasimme pieneltä osin päällekäisten projektien aiheuttamaa resursointihaastetta.
Pilottiasiakkaan testauksen aikana havaitsimme myös useita yksityiskohtia, joita oli kehitettävä melko paljonkin, että saadaan tuotteesta sellainen, että se kestää arjen rajatapaukset ja muutokset, joista jokaista ei kehitysvaiheessa ole aina mahdollista ennalta havaita. Tässä jouduimme tekemään priorisointia ja päätöksiä, jotka johtivat myös siihen että aivan kaikkea alussa sovittua ei saatu ensiversioon toteutettua.
Kaikenkaikkiaan sovellusprojekti prototyyppivaiheineineen seurasi seuraavaa kaavaa: Prototyyppivaihe kesällä, kehitystyö syksyllä ja pilottiasiakkaan testijakso alkuvuodesta. Tämä on hyvä esimerkki siitä, miltä sovellusprojetki nykyteknologioilla näyttää: Pieni ja ketterä tiimi, modernit teknologiat ja tekoäylavusteiset työvaiheet ja työtavat, reippaasti perinteistä mallia ketterämpi toteutus.
Saimme projektin aikana tuotantokelpoisen, myytävän tuotteen toteutettua, mutta kuten jokaisessa ensimmäisessä versiossa, paljon toiminnallisuuksia jäi myös rajauksen ulkopuolelle ja jatkokehitykseen. Pilottiasiakkuuden ansiosta meillä on nyt selkeä lista toiminnallisuuksia, joita lähteä purkamaan jatkokehityksessä.