Ohjelmistokehitys on tärkeä osa nykypäivän yritysten toimintaa ja menestystä. Tässä artikkelissa käsitellään missä tilanteessa ohjelmistokehityksen ulkoistaminen toimii parhaiten ja miksi johtaminen on tärkeää ohjelmistokehityksen ja tuotekehityksen onnistumisen kannalta.
Miksi ketterät menetelmät ovat suosittuja ohjelmistokehityksessä?
Natiivisovellus vai verkkosovellus -vertailu
Oletko miettimässä mobiilisovelluksen tuottamista? Tässä tapauksessa eteesi on tullut varmasti seuraava kysymys: kannattaako minun tuottaa sovellus natiivisovelluksena juuri tiettyjä laitteita tai käyttöjärjestelmiä varten vai verkkosovelluksena, joka on suoraan yhteensopiva verkon välityksellä kaikkien laitteiden kanssa? Tähän kysymykseen pyrimme vastaamaan tässä artikkelissa tehden vertailua näiden kahden sovellustyypin välillä.
Ohjelmistokehitysprojektin osa-alueet
Mistäs ne venepaikat varataan?
Kuntien välinen kehitysyhteistyö on synnyttänyt monia avoimen lähdekoodin tuotteita, joita kunnat ovat omien kumppaniensa kanssa räätälöineet käyttöönsä. Kehittämisen keskiössä on ihannetilanteessa yhteistyö, jota koordinoimalla verorahat menevät tehokkaaseen käyttöön ja palvelut kehittyvät ajanmukaisesti.
Yksi tällainen projekti on Respa/Varaamo-tuotteen päälle rakennettu venepaikkojen varaus- (ja myös MAKSU!)järjestelmä, jota mm. Hämeenlinnan kaupunki käyttää. Keskusteltuani monien potentiaalisten asiakkaiden kanssa, on usein noussut esiin se, että kunnalla/kaupungilla on jo työkalut satamainfran hallintaan. Ja hyvä niin, pitääkin olla!
Tästä kuitenkin käy nopeasti selväksi se, että infranhallintaan tarkoitetut työkalut eivät ole tehty asiakkaita eli kuntalaisia varten. Eikä kyllä oikeastaan myöskään kunnan työntekijöitä - varsinaisen satamatyön ulkopuolelta - varten.
Esimerkiksi Hämeenlinnassa vapautui paljon venepaikkoja, joihin aiemmin jouduttiin jonottamaan, koska järjestelmä vaati asukkaita aktiviisuutta ja vahvistaa oman varauksensa ja myös maksamaan sen suoraan verkossa. Näin kaikki nukkuvat ja "perintöpaikkaa" pitävät venepaikkojen haltijat tippuivat pois ja paikat vapautuivat niille, jotka paikkaa aidosti tarvitsivat.
Lisäksi järjestelmä hallitsee myös venepaikoille jonottamisen, jolloin jälkeen yksi hallinnollisesti täysin turha käsityö saatiin automatisoitua.
Ylläpidämme ja kehitämme lukuisia julkisen sektorin palvelua helpottavia avoimen lähdekoodin palveluja ja asiakkaitamme ovat mm. Hämeenlinna, Turku, Helsinki, Janakkala, Parkano, Kangasala, Tampere, Lohja, ... Olemme tunnettuja siitä, että ajattelemme asiakkaidemme etua ja kiinnitämme erityistä huomiota palvelujen käyttäjien (esim. kuntalaiset) kokemaan laatuun.
Samalla varausjärjestelmä teknologialla voidaan varata ja maksaa myös julkisia tiloja vaikkapa kirjastoista tai kouluilta. Myös esim. kunnan omistamat mökit voidaan tuoda järjestelmään.
Voimme hoitaa myös järjestelmien pelkän ylläpidon, kuten toimimme mm. Hämeenlinnan kirjastojen tilavarausten kanssa, toimitusprojekti tuli toiselta kumppanilta.
Tsekkaa Hämeenlinnan varausjärjestelmät täältä: https://varaukset.hameenlinna.fi/
Apache Log4j 2 haavoittuvuuden vaikutukset Haltun ylläpitämiin järjestelmiin
Perjantaina 10.12 Haltun tietoon tuli nollapäivähaavoittuvuus Log4j 2 komponentissa. Arvioimme parhaillaan haavoittuvuuden vaikutuksia ylläpitämiimme järjestelmiin. Tiedotamme asiakkaitamme tilanteen etenemisestä sähköpostitse ja tätä blogipostausta täydentäen.
Taustaa
9. Joulukuuta raportoitiin nollapäivähaavoittuvuudesta komponentissa Log4j 2.14.1 ja osassa sen vanhemmissa versioissa. Haavoittuvuus antoi hyökkääjälle mahdollisuuden ajaa mielivaltaisia komentoja hyökkäyksen kohteena olevalla sovelluspalvelimella.
Arviomme vaikutuksista Haltun ylläpitämiin järjestelmiin
Haltun toteuttamat asiakasjärjestelmät eivät ole java-pohjaisia sovelluksia, joita haavoittuvuus koskettaa.
Haltu käyttää Log4j 2 kirjastoa omassa keskitetyssä lokienhallintajärjestelmässään, joka on ollut altis hyökkäyksille. Käsityksemme mukaan haavoittuvuutta ei ole ehditty hyödyntämään ja olemme rajoittaneet ongelmaa poistamalla kyseisen kirjaston käytöstä 12. päivä sunnuntaina.
Lisätietoja aiheesta: https://log4shell.com ja https://www.kyberturvallisuuskeskus.fi/fi/haavoittuvuus_38/2021
Päivitys: 14.12.2021 kello 14:06 Olemme jatkaneet vaikutusten arviointia ja selvittäneet onko haavoittuvuudella vaikutuksia asiakkaidemme järjestelmiin. Emme ole havainneet haittoja ylläpitämissämme asiakasjärjestelmissä. Tutkimme edelleen asiaa.
Päivitys: 17.12.2021 kello 16:48 Emme ole havainneet haittoja ylläpitämissämme asiakasjärjestelmissä. Seuraamme Kyberturvallisuuden haavoittuvuustiedotteita sekä viestintää ja reagoimme tarvittaessa.
Fuzzing suomeksi
Tettiläisen kokemuksia Haltusta
Meillä oli ilo saada nuori, ohjelmoinnista kiinnostunut Reko Valtaoja seuraamme viikoksi tekemään työelämään tutustumisjaksolle. Sen pidemmittä puheitta Rekolta pyydetty kirjoitusta TET-viikon kokemuksista:
Sain hienon mahdollisuuden tutustua softakehitysalaan työelämään tutustumisjaksollani Haltulla. Olen 9. luokalla oleva kangasalalainen. Harrastan käyrätorven soittoa ja koodausta (itsekseni). Erityisesti tietotekniikka ja koodaus on aina kiinnostanut, ja olen käynyt koodauskursseilla, joissa on käyty koodauksen perusteita ja tutustuttu erilaisiin ympäristöihin. Haaveammattini on sovellus-/pelikoodaus.
Tilaisuus TET-jakson suorittamiseen avautui jo 8. luokan keväällä, mutta sitten tulikin korona-aalto ja kaikki peruttiin. Tänä syksynä kuitenkin kun lukuvuosi alkoi ja syksyllä oli uusi TET-jakso, niin asia otettiin uudestaan esille.
Ensimmäisenä päivänä tietysti vähän jännitti ja olin epävarma vähän kaikessa, mutta haltulaiset opastivat hyvin ja olivat avuliaita ja ystävällisiä, ja sain paljon tekemistä. Alussa minulle annettiin tehtäväksi tutustua heidän toteuttamaansa sovellukseen, Harrastuspassiin. Minun piti etsiä siitä asioita, joita voisi parantaa. Löysinkin lopulta muutaman, Ja tämän jälkeen sain korjata ne yhdessä muutaman haltulaisen avulla. Seuraavina päivinä jatkettiin siitä, mihin eilen jäätiin. Mielenkiintoista tekemistä oli aina! Kun nämä taskit saatiin hoidettua, loppuviikon tein omaa, yksinkertaista bmi-laskurisovellusta, jonka sainkin tehtyä valmiiksi ennen viikon päättymistä.
Opin paljon erilaisia asioita TET-viikon aikana. Työt olivat aika lailla sellaisia, mitä olin etukäteen kuvitellut ja mitä voisin tehdä isona, ja pidin niistä valtavasti. Kunpa kaikki työt olisivat noin mukavia!
Haluaisin välittää valtavat kiitokset Haltulle ja kaikille sen työntekijöille, jotka olivat viikossa mukana. Kaikki ottivat minut hyvin vastaan ja olivat muutenkin ystävällisiä. Ilman heitä kaikkia ei tuo viikko olisi onnistunut! Lisäksi Haltulla on mahtavat työtilat ja kaikki vaikuttivat tyytyväisiltä.
Reko Valtaoja
Ja todellakin tyytyväisiä olimme, heti jakson päätteeksi alettiin keskustelemaan jo kesätöistä! Yrittäjänä on mahtava päästä osaksi tämänkaltaisia mahdollisuuksia ja tarjota aidosti kokemuksia nuorille alasta kiinnostuneille.
Värivaltaus
Emme tiedä oliko Värivaltauksella tällainen mainoslause kun sitä pystyi pelaamaan Aapelissa, mutta mielestämme se kuvaa hyvin Värivaltauksen ideaa. Värivaltaus on kiehtova peli ja myös erittäin koukuttava.
Löytyykö äppisi Huaweista?
Long story short: Trump ja Kauppasaarto --> uusissa Huawein malleissa ei ole enää Googlen ydinpalveluja (Google Mobile Services, jatkossa GMS) käytössä, ei vaikuta vanhempiin malleihin, kuten esim. Huawei P10, P20, P30, mutta esim. P40 ja P40 Pro eivät sisällä Googlen ydinpalveluja.
Eikö kosketa sinua käyttäjänä tai sovelluksentekijänä?
Kokeillaas toista lähestymistapaa:
Puhelimestasi ei löydy enää Google Play -kauppaa!
Eikä Youtubea. Eikä Gmail-sovellusta!
Alkoiko jo kiinnostamaan?
Eli jos sinulla softan tekijänä tai julkaisijana, startuppina tai yrityksenä on Android-sovellus, niin jatkossa se on ladattava saataville myös Huawei AppGalleryyn, jotta se olisi suoraan ladattavissa Huawein puhelimiin. AppGallery on siis kuten Play-kauppa nykyisissä Android-puhelimissa (tai AppStore Apple-laitteissa.)
Tämän lisäksi tulee huomioida muutamia asioita kehityksessä:
Sovellus kannattaa alusta lähtien suunnitella siten, että se on ladattavissa sekä Huawein että Googlen kauppaan. Tämä koskee mm. seuraavia toiminnallisuuksia:
Push-notifikaatiot: Jos käytät Googlen Push -palvelua, niin Push-viestit eivät tule perille Huaweissa olevaan sovellukseen.
Ratkaisu: Toteuta erillinen Huawei variantti sovelluksesta ja käytä siinä Huawein omaa Push-palvelua.
Tämän puutteen ratkaisu ei ole mikään iso homma ja kannattaa myös miettiä, että voiko sovellusta julkaista AppGalleryyn ilman toimivia Push-ilmoituksia, koska moni käyttäjä voi olla tilanteeseen tyytyväisempi kuin sovelluksen täydelliseen puuttumiseen.
In-App -Maksutoiminnallisuudet
Google Play -palvelut eivät ole käytössä, joten maksut pitää hoitaa toisella tapaa. Tähänkin löytyy Huawein oma toteutus: https://developer.huawei.com/consumer/en/doc/development/AppGallery-connect-Guides/appgallerykit-app-iap-0000001055276890
Kartat sovelluksissa
Google Mapsista on luovuttava, mutta rehellisesti sanottuna, on olemassa paljon kauniimpiakin toteutuksia, joita voisi käyttää sekä Google että Huawei -versioissa.
Esim. Here Maps -SDK:ta voisi ymmärtääkseni käyttää molemmilla alustoilla ja välttää kahden eri version välillä kikkailua.
Huaweilta toki löytyy tähänkin oma karttatoteutus, johon siirtyminen on erittäin suoraviivaista: https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/hms-map-migrate
Lisäksi itselleni vieraampi https://www.mapbox.com/ pitäisi olla hyvä ratkaisu tarjoilemaan kartat alustariippumattomammin.
Nopea summaukseni onkin, dokumentaatioita tutkittuani, että teknisesti kyseessä ei ole valtava ponnistus seuraavista syistä:
Googlen ja Huawein -palvelujen tekniset toteutukset ovat koodin näkökulmasta lähes identtiset, joten erillinen "variantti" on helppo toteuttaa.
Voi johtaa hyvään sekä kehittäjän että käyttäjän kannalta, koska muitakin ekosysteemitaisteluja on käynnissä, mm. Googlen ja Amazonin välillä.
Johtaa parempaan arkkitehtuuriin, koska komponentit tulee suunniteltua siten, että käytettävät palvelut on helppo korvata / vaihtaa.
Suurimmat ongelmat:
Päättäjät eivät ymmärrä, että sovelluksien tulee olla molemmissa kaupoissa, koska käyttäjät alkavat jakautumaan entistä tasaisemmin eri sovelluskauppojen välille
esim. Säästöpankin tunnistussovellusta ja Säästöpankkisovellusta ei ole tällä hetkellä Huawein AppGalleryssä. Sieltä puuttuu myös EasyPark ja Parkman.
Huawei-yhteensopivuudella olisi nyt helppoa ottaa kärkipaikka sovelluskaupassa ja myös positiivinen markkinointikulma edelläkävijuudesta.
"Katellaan mitä muut tekee, ei me tehä nyt mitään"
Jos kohderyhmänä ovat nuoret, niin esim. Honor-sarjan puhelimet ovat asiakassegmentissä erittäin suosittuja. Älä siis tee päätöksiä perustuen omaan iPhone-kaveripiiriisi perustuen.
Negatiivinen käyttäjäpalaute yritystä kohtaan, koska sovellus ei ole saatavilla puhelimeen
Tämä ei sinänsä ole julkaisijan vika, mutta ei myöskään Huawein vika.
Huawei on tällä hetkellä 2. suurin Android-puhelinvalmistaja heti Samsungin jälkeen, Huhtikuun tilastoissa Huawei ohitti valmistajana Samsungin. Molemmilla n. 20% osuus. Lähde: https://www.statista.com/statistics/271496/global-market-share-held-by-smartphone-vendors-since-4th-quarter-2009 ja uudempi lähde: https://www.forbes.com/sites/zakdoffman/2020/06/15/samsung-and-apple-beaten-by-huawei-in-huge-new-smartphone-surprise/
Ylläpidettävä kehityshaara (joka ei oikeasti työllistä niin paljon)
Hieman enemmän testattavaa
Lyhyt yhteenveto: Älä stressaa liikaa, mutta ota tämä asia huomioon, ennen kuin negatiivinen palaute osuu tuulettimeen.
Jos mielestäsi kirjoitus oli hyödyllinen, niin arvostaisin sen jakamista, jotta tämä tietoa saadaan mahdollisimman monen mieliin.
Teknistä osaamista yritykseen osaajapulasta huolimatta?
Softa-alan osaajapula on monilla huulilla ja otsikoissa. Isot firmat vievät osaajat käsistä isoihin konsultointiprojekteihin, joiden asiakkaina on usein isot yritykset sekä julkisen sektorin digitalisaatiohankkeet. Moni osaaja valitsee mielummin yrityksen, jossa on varmuutta enemmän kuin startupissa välttämättä on. Tästä syystä moni startup saattaa joutua maksamaan softa-alan osaajille erittäinkin suurta palkkaa, jotta riskinottokyky voittaisi epävarmuuden.Itse kuitenkin näen, että monesti osaajapula johtuu vain tehottomuudesta ja yritykset ostavat softaosaamista ihan liikaa todelliseen tarpeeseen ja toisaalta myös ostetun työn tuottavuuteen nähden.
Olemmekin kokeilleet nyt muutamien asiakkaiden kanssa tietynlaista "Tech lead as a service" -tyyppistä lähestymistapaa, jolla saa käyttöönsä käytännössä koko meidän firman, mutta meillä on kuitenkin selkeästi yksi henkilö, joka tuntee asiakkaan projektin parhaiten, mutta myös asiakasvastaava, joka pitää huolta siitä, että työ jakautuu järkevästi ja että kysymyksiin löytyy vastaukset tehokkaasti. Jo muutamalla tonnilla kuukaudessa voi siis saada meiltä koko firman osaamisen käyttöön ja me sisäisesti järjestämme asian niin, että meiltä on oikeat ihmiset projektissa mukana. Välillä tarvitaan arkkitehtuurisuunnittelua, integraatioita, toisaalta taas jossain kohtaa enemmän osaamista esim. mobiilisovelluskehitykseen tai käytettävyyteen. Mielestäni tämä on hyvä malli, jota pystytään tarpeen mukaan skaalaamaan erittäin nopeasti ylöspäin useaan henkilöön per kk ja tarvittaessa pistämään koko homma tauolle, jolloin kustannukset tippuvat minimiin.
Toimimme käytännössä näin jo nyt, mutta kiinteä kuukausilaskutus tuo helpoutta ja ennustettavuutta niin asiakkaalle - kuin meillekin (mitäs sitä asiaa peittelemään). Ja tätä kautta myös me pystymme koko ajan parantamaan omaa tarjontaamme ja tuomalla kysyttyä osaamista osaksi palveluitamme.Ja jos haluat vain kokeilla, miten homma toimisi käytännössä meidän kanssa, niin pystyn lupaamaan palvelun käyttöön ilman irtisanomisaikaa, vaikka kuukaudeksi. Rehellisyyden nimissä esim. 2000€/kk -paketilla ei kuukaudessa välttämättä päästä vielä paljoa pintaa syvemmälle varsinkin jos pitäisi keskittyä olemassa olevaan järjestelmään, mutta vaihtoehtoisesti, jos kyseessä olisi vaikka suppea järjestelmäintegraatio, niin työ voisi olla hyvinkin tehtävissä ja maksaisi itsensä takaisin saman tien.
Meillä tiimi palvelee Tampereella, meidän omalla porukalla tai sovittaessa otetaan paikallisia kumppaneita mukaan.
Autan mielelläni kartoittamaan tarpeesi täysin veloituksetta, joten jos haluat apua, niin ota minuun suoraan yhteyttä mikko@haltu.fi tai +358-350-6464, voit myös jättää yhteydenottopyynnön sivujemme kautta, niin palaamme asiaan mahdollisimman nopeasti. Jätä yhteydenottopyyntö