Humppaan itsekseni

Softan teko on yleensä ryhmätyötä. Lähes kaikki työn puolesta koodaus tehdään ryhmissä, yleensä 3-10 hengellä, mutta joskus kaksistaan ja toisinaan tolkuttoman suurella porukalla. Harrastekoodauksestakin suuri osa kanavoituu vapaan koodin projekteihin, jotka ovat myös ryhmätyötä, vaikkakin usein kovin erilaista.

Ei siis ole sattumaa, että myös ohjelmistotuotannon prosessimallit on suunniteltu ryhmätyöhön. Itse asiassa niiden ensisijainen tarkoitus on mahdollistaa ryhmätyö. Scrum puhuu suoraan ideaalisti 7 hengestä; XP:n parikoodaus tuskin onnistuu alle 2 hengellä, ja vesiputousmallin alkuperäinen lupaus oli juuri suurten ja todella suurten projektien systemaattinen läpiveto, kun menetelmä skaalautuu ylöspäin. Jonkinlaisena filosofisena taustaoletuksena tässä voi nähdä, että koodaus nyt hoituu yksinkin, mutta kun on tiimi, tarvitaan Prosessi.

No hyvä, kooderi ilman ryhmää on kuin lammas ilman laumaa. Mutta lähes kaikki mielenkiintoinen maailmassa on lähtenyt siitä, että asioita käytetään johonkin mihin niitä ei ole tarkoitettu. miksei siis tässäkin. Eli kuinka taipuu prosessimalli yhdelle hengelle, ja onko siitä iloa?

Keskustelimme hiukan aiheesta toimistolla ja skypessä, ja teimme seuraavia huomioita:

  • Prosessimalleista ei ehkä usein ole iloa sellaisenaan, mutta kokemus niistä on hyödyllistä, koska niiden tavoittelemat asiat (edistymisen seuranta, varmistettu ymmärrys tavoitteista, tavoitteiden päivitys, jne) ovat kuitenkin tarpeen, vaikka ne tehtäisiinkin ad hoc.
  • Monet Scrumin työkalut voivat olla hyödyllisiä, erityisesti backlog
  • Prosessien ylläpito vaatii yksin työskennellessä suurempaa kurinalaisuutta, koska ei ole sosiaalista painetta (ja ehkä koska ne tuntuvat turhilta?)

Arvon ohjelmistotuotannon ammattilaiset ja harrastajat (lue: lukijat), onko teillä kokemuksia prosessimallien käytöstä yhden hengen projekteissa, sellaisenaan tai muokattuna? Millaisia? Mikä toimii ja mikä ei?

Tämän artikkelin on kirjoittanut Otso Kivekäs ja sitä ovat sittemmin muokanneet muut Codenton työntekijät.

Yksityisestä pilvestä on hyötyä myös kehitystöissä

Ohjelmistojen kehitystoiminnassa virtuaalikoneiden käytön hyödyt ovat jo laajasti tunnettuja. Kyseessä on kuitenkin usein kehittäjän omassa työpöytäkoneessa ajettava virtualisointiratkaisu (kuin esim. VMware Workstation tai VirtualBox). Nykyään useissa yrityksissä on myös omat keskitetyt virtualisointiympäristöt (esim. VMware vSphere tai avoimeen lähdekoodiin perustuva Eucalyptus), eli eräänlaiset yksityiset pilvet, joissa voi ajaa virtuaalikoneita.

Mitä syitä kehittäjälle on suosia yksityistä pilveä, jos sellaista on tarjolla?

Yksityisen pilven hyödyt

  • Yksityisessä pilvessä on todennäköisesti tehokkaammat laskentaresurssit kuin yksittäisen käyttäjän työpöytäkoneessa: muistimäärä, tallennustila ja laskentakyky on todennäköisesti suurempi yksityisen pilven palvelimissa.
  • Yksityinen pilvi vähentää työpöytäkoneen kuormittumista: kun työpöytäkoneella alkaa olla virtuaalikoneita enemmän kuin pari, se voi tehdä isäntäkäyttöjärjestelmästä niin hitaan, että kehittäjän tuottavuus pienenee kun joutuu odottamaan yksinkertaisiakin operaatioita. Pahimmassa tapauksessa työpöytäkone onnistuu jumittumaan kokonaan, jos vahingossa käynnistää liian monta virtuaalikonetta samanaikaisesti.
  • Yksityisessä pilvessa voi ajaa moninkertaisesti enemmän virtuaalikoneita rinnakkaisesti kuin työpöytäkoneella, jossa kehittäjä on rajoittunut pariin kerrallaan (usein johtuen rajoitetusta muistimäärästä). Yhtäaikainen ajaminen säästää vaivaa ja tehostaa työtä kun ei tarvitse sammuttaa muita koneita käynnistääkseen uuden.
  • Virtuaalikoneet yksityisessä pilvessä jatkavat ajamista myös kun työpöytäkone ei ole käynnissä. Eli ne eivät ole ollenkaan riippuvaisia kehittäjän työpöytäkoneesta. Tämä johtaa myös helpompaan virtuaalikoneiden jakamiseen kehittäjien välissä.

Hyvältä kuulostaa. Onko huonoja puolia?

Yksityisen pilven haitat

  • Koska yksityinen pilvi on verkossa, se vaatii verkkoyhteyden kehittäjän työpöytäkoneelta. Pääsy on vaikea kun verkkoyhteys ei ole saatavilla/ei toimi/takkuilee. Lisäksi mahdollisesti ei ole pääsyä yrityksen ulkopuolelta. Vertauksena työpöytäkoneella ajettava virtualisointiratkaisu toimii aina kun työpöytäkoneessa on virtaa.
  • Yksityisen pilven rauta- ja ohjelmistolisenssikustannukset tuovat todennäköisesti huomattavasti suuremman kertamenon, kuin työpöytäympäristöön perustuva virtualisointiratkaisu joka voi maksaa alle sata euroa per käyttäjä.

Mutta jos olet yrityksessä jossa yksityinen pilvi on jo hankittu, ja käytät jo virtualisointia työpöytäkoneellasi: ota ihmeessa yksityisen pilven hyödyt irti myös kehitystyössä.

Tämän artikkelin on kirjoittanut Markus Holmberg  ja sitä ovat sittemmin muokanneet muut Codenton työntekijät.