Ohjelmistokehitys Bytecraftilla

Mitä kaikkea työhömme sisältyy ja sekä vaadittavan osaamisen laajuutta; taitoja joita tarvitsemme työssämme; kuinka tuotamme arvoa asiakkaalle; sekä minkälainen me olemme yrityksenä.

Perspektiivi

Toimivan ja vakaan ohjelmiston toimittaminen ei ole yksinkertaista tyypillisessä ohjelmistoprojektissa. Ymmärtääksemme miksi, meidän on katsottava isompaa kuvaa.

Ohjelmistokehitys koostu lukuisista erilaisista paradigmoista, malleista, kehyksistä, metodologioista, käytännöistä yms. Kaikki tämä heijastuu ohjelmiston elinkaaren yli.

Se mitä missäkin tilanteessa voi soveltaa tehokkaasti vaatii valtavasti asiantuntemusta ja kokemusta.

Ohjelmiston elinkaaren aikana tapahtuu paljon ja se vaihtelee valtavasti ohjelmistosta toiseen.

Emily Freemanin DevOps-malli on yksi hyvä tapa kuvata tyypillistä modernia ohjelmistoprojektia. Mallissa on roolit ja poikkileikkaavat laatuominaisuudet.

Kun ohjelmistokehitystä katsoo kokonaisuutena ja kaikkea mitä siihen sisältyy, voi ymmärtää kuinka haastavaa se on.

Meillä kehittäjillä on ratkaiseva rooli jokaisessa vaiheessa ja tulokulmassa. Oli se sitten tiimin käytännöt, käytetyt teknologiat, testattavuuden varmistaminen kaikilla tasoilla jne. Jokaisella valinnalla on vaikutusta joko omaan tai muiden työhön. Jotta tiimi menestyy, on ymmärrettävä jokaisen valinnan seuraukset.

Taidot

Ohjelmistokehitys on vaativa laji ja onnistuneiden ohjelmistoprojektien toimittaminen vaatii laaja-alaista osaamista.Olemme tunnistaneet kolme kategoriaa taitoja, jotka ovat oleellisia ohjelmistokäsityöläisyydessä: inhimillisyys, strategiset taidot ja taktiset taidot.

Inhimillisyys

Tämä kategoria on hyvin laaja ja se käsittää taitoja kuten sosiaaliset taidot, elämäntaidot ja työelämän taidot.

Ohjelmistokehitys vaatii hyvää kommunikointia, empatiaa, vuorovaikutusta asiakkaan sekä tiimin kesken. Me emme tee ohjelmistoja yksin vaan tiiminä.

Nämä taidot korostuvat varsinkin myöhemmin uralla.

Meidän on kyettävä jatkuvasti oppimaan, osattava ottaa ja kantaa vastuuta, rohkeutta käsitellä vaikeitakin asioita tiimissä sekä opettaa muille sen mitä me jo osaamme.

Näistä taidoista on hyvä erikseen korostaa vielä kommunikaatiokykyä: yleisin nimetty syy projektien epäonnistumiselle on huono kommunikaatio.

On hyvä muistaa että kommunikaatio on itsessäänkin laaja käsite. On suullista, kirjallista ja visuaalista kommunikaatiota. Esimerkiksi myötätunto auttaa meitä muotoilemaan viestimme paremmin tilanteesta riippuen.

Strategiset taidot

Strategiset taidot ovat erittäin tehokkaita korkean tason kykyjä, työkaluja, tekniikoita ja tietämystä ohjelmistokehityksestä.

Strategisiin taitoihin tiivistyy viisaus kuinka ohjelmistoja rakennetaan.

Hyviä esimerkkejä näistä on mm. Test-driven development, Domain-driven design sekä Extreme programming.

Taktiset taidot

Taktiset taidot ovat ohjelmistokehitykset perus kauraa. Nämä ovat tyypillisesti teknistä alemman tason tietämystä kuten erilaiset ohjelmointikielet, kirjastot sekä frameworkit, tietokannat, CI/CD ratkaisut, jne.

Taktisia taitoja on hyvä hallita laaja-alaisesti ja lisäksi erikoistuminen joihinkin tiettyihin ratkaisuihin on hyödyllistä.

On kuitenkin hyvä tiedostaa että huippu osaaminen saattaa johtaa ratkaisuihin jotka eivät enää ole yksinkertaisia tai helposti opittavissa. On parempi pitää asiat yksinkertaisina jotta asiat pysyvät helposti muokattavissa.

Arvo

Tuotannossa olevat ohjelmistot ovat arvokkaita jos ne säästävät rahaa, tuottavat rahaa tai suojaavat tuottoja.

Jos taas ohjelmistoja katsotaan niiden kehittämisen näkökulmasta, niin ne ovat arvokkaita jos ne ovat helposti muokattavissa. Tästä johtuen kehityksen aikana yksi arvokkaimmista asioista mitä voidaan tehdä, on ylläpitää tai parantaa ohjelmiston muokattavuutta.

Päivittäisessä työssä on hyvä keskittyä siihen, mikä on siinä hetkessä eniten arvoa tuottavaa ja jättää vähemmän arvoa tuottavat asiat myöhemmäksi, koska haluamme maksimoida arvontuoton.

Myös prosessilla on arvoa. Esimerkiksi jos vaatimukset ovat epämääräisiä tai niiden arvo on epäselvää, on syytä pysähtyä. Tämä pätee myös tiimityöhön jossa hukka pitäisi minimoida ja arvo maksimoida. Esimerkiksi ylimääräisistä palavereista voi luopua tai pitää niitä pienemmällä joukolla.

Arvon lisäämiseksi ohjelmistoa pitää yleensä muokata jollain tapaa.

Jos ohjelmisto on helposti muokattavissa, niin se kertoo laadusta, koska muutokset on helppo tehdä jolloin ne eivät myöskään aiheuta vikoja tai regressioita. Helpot muokkaukset tarkoittavat myös nopeaa palautetta esim. testeistä tai suoraan tuotannosta koska eihän muutokset muuten olleet helppoja.

Tämä voisi tiivistää seuraavaan:
Helppo muokattavuus ⇒ Nopea palaute ⇒ Laatu ⇒ Arvo

On myös hyvä huomata että ohjelmiston tulee olla helpohkosti muokattavissa myös uusille aloitteleville kehittäjille. Jos muokattavuus vaatii seniori tason osaamista ja pitkää kokemusta projektista niin sovellus ei ole helposti muokattavissa.

Nopea palaute parantaa tuottavuutta ja tämä pätee monella tasolla. Esimerkiksi koodikatselmoinnit tai onko tuoteomistaja käytettävissä kun häntä tarvitaan. Myös asiakas tarvitsee nopeasti palautetta jotta kykenee ohjaamaan tuotekehitystä, tekemään kokeiluja sekä innovoimaan.

On tärkeää että palautteen saaminen säilyy nopeana vielä useiden intensiivisten kehitysvuosien jälkeen. Esimerkiksi voisi ottaa vaikka testien ajoajan.

Erilaisista palaute sykleistä on hyödyllistä kerätä statistiikkaa ja seurata kuinka syklit kehittyvät ajan saatossa.

Koko arvo kysymyksen voi tiivistää seuraavasti: uuden ominaisuuden arvolla ei ole väliä, vaan sillä kuinka nopeasti se saadaan tuotantoon.

Ohjelmistokäsityöläisenä Bytecraftilla

Me olemme joukko ohjelmistokäsityöläisiä (Software Crafter). Termi viittaa Software Craftsman -liikkeeseen.

Ohjelmistokäsityöläisyys

Ohjelmistokäsityöläiset vaalivat taitojaan ja haluavat tulla päivittäin paremmiksi ammatissaan. Se on ajattelutapa, jossa pyritään jatkuvasti tuottamaan arvoa sekä olemaan käytännönläheinen. Ohjelmistokäsityöläisille ammattimaisuus on itsestäänselvyys ja he tähtäävät tuloksiin joista voivat olla ylpeitä.

Mitä odotat todelliselta ammattilaiselta ammattiin katsomatta? Me tähtäämme samaan meidän työssämme.

Yrityksenä olemme ohjelmistokonsultti talo, jonka keskiössä on Crafter ajattelu.

Meitä yhdistää halu kehittyä ammattilaisina, oppia uutta ja jakaa oppimamme. Olemme joukko, joka haluaa kasvaa ja kukoistaa yksilöinä sekä tiiminä.

Crafter ajattelu erottaa meidät kilpailijoistamme. Tässä keskiössä on tekninen huippuosaaminen, arvon tuottaminen asiakkaille sekä ammattimainen yhteisö ja kukoistavat kumppanuudet.

Psykologinen turvallisuus

Psykologinen turvallisuus on meille tärkeää. Se pätee yrityksemme sisällä kuin myös olemme asiakasprojektissa tiimin kanssa.

Psykologinen turvallisuus on ympäristö, jossa tunnet olosi tervetulleeksi, voit oppia, saat toimia itsenäisesti sekä haastaa vallitsevat näkemykset ilman pelkoa.

Tähän liittyy myös luottamuksen sekä yhteenkuuluvuuden tunne.

Etiikka

Työetiikka on oleellinen osa arkeamme. Meillä ohjelmisto ammattilaisina on valtavasti vaikutusvaltaa ympäröivään maailmaan.

Ratkaisut joita rakennamme pitävät ihmiset turvassa ja hengissä, sekä yritysten ja yhteiskunnan rattaat pyörimässä. Rakennamme päivittäisessä työssämme modernin yhteiskunnan kantavia pilareita.

Luomiemme ohjelmistojen tulee tehdä maailmasta parempi ja turvallisempi paikka. Emme voi suostua ratkaisuihin jotka vaarantavat tämän. Esimerkiksi, haluatko viedä tuotantoon potilasjärjestelmän, jossa on pieni mahdollisuus turvallisuuden kannalta kriittiseen vikaan?

Etiikka kiteytyy ammattimaisuuteen. Pidetään tekninen velka minimissään, vaaditaan ratkaisuja jotka parantavat tuottavuutta, annetaan parhaamme, ollaan rehellisiä ja kieltäydytään epäeettisistä asioista.

Käytännön arki Bytecraftilla

Me olemme matala organisaatio ilman hierarkioita. Lähes kaikilla meillä on sovelluskehittäjä tausta tai olemme muutoin sujuvia ohjelmistokehityksen jargonin kanssa.

Koska olemme konsulttiyritys, suurin osa ajasta menee asiakasprojekteissa.

Päivittäin meillä on virtuaalinen kahvitauko jonne voi piipahtaa halutessaan. Slack on aktiivisesti käytössä ja sieltä saa apua sekä tukea aina. Ja toki harrastukset ja muut kevyemmät aiheet ovat vahvasti edustettuina.

Perjantaisin suurin osa meistä kokoontuu toimistolle (paikan päälle tai etänä) puolilta päivin tai pian sen jälkeen. Kirjakerho kokoontuu tyypillisesti lounaan jälkeen. Iltapäivisin meillä on usein jokin tekninen aihe tai esitys jota käymme läpi. Käymme myös viikkokierroksen jossa jokainen voi kertoa viikon kuulumiset.

Kolmesta neljään kertaa vuodessa meillä on isompi kokoontuminen, jossa on luvassa hauskaa tekemistä sekä ruokaa ja juomaa.

Kiinnostuitko?

Laita yhteystiedot niin varaillaan jutteluhetki
Kiitos! Olemme sinuun pian yhteydessä.
Hupsista! Bitit meni solmuun.