Ole ketterä! Rakenna laatua jatkuvalla integraatiolla


2014-06-16, 10:11 Kirjoittanut Kimmo Hakala

Ketterässä ohjelmistokehityksessä yhden tuotteen inkrementin toimitus vaatii luotettavaa, toimivaa ja integroitua ohjelmistoa jokaisen sprintin lopussa.

Jatkuva integraatio vastaa tähän haasteeseen merkitsemällä kaikki tehdyt muutokset ohjelmistoon ja integroimalla kaikki muutetut komponentit vähintään kerran päivässä.

Kokoonpanonhallinta, kääntäminen, ohjelmiston buildaus, kehittäminen ja testaus on paketoitu yhteen automatisoituun ja toistuvaan prosessiin. Koska kehittäjät integroivat työnsä jatkuvasti, buildaavat ja testaavat jatkuvasti, niin viat koodissa voidaan havaita nopeammin.

Jatkuva integraatio pitää ohjelmistokehityksen liikkeessä

Jatkuva integraatio voi tarjota seuraavia etuja:

  • Aikainen havainnointi: Mahdollistaa aikaisemman integraatio-ongelmien sekä ristiriitaisten muutosten havaitsemisen sekä helpottaa juurisyyanalyysiä
  • Säännöllinen ja nopea palaute: Antaa kehitystiimille säännöllistä palautetta koodin toimivuudesta sekä tarjoaa nopeaa palautetta tehdyistä laadun- ja testauksenparannuspäätöksistä
  • Parempi versionhallinta: Pitää päivän aikana testatun ohjelmiston version samana kehitetyssä versiossa
  • Parantaa riskienhallintaa: Vähentää kehittäjän koodin refaktoroinnista aiheutuvaa regressioriskiä johtuen koodin nopeasta koodin uudelleentestauksesta jokaisen pienen muutoksen yhteydessä. Lieventää isoihin integraatioihin liittyvää aikatauluriskiä  
  • Parantaa luottamusta: Tarjoaa luottamuksen siitä, että jokapäiväinen kehitystyö perustuu kiinteään perustaan
  • Parantaa näkyvyyttä: Parantaa tuoteinkrementin näkyvyyttä rohkaisten kehittäjiä ja testaajia
  • Parantaa saatavuutta: Tarjoaa suoritettavan ohjelmiston jatkuvan saatavuuden läpi sprintin testaukselle, esittämiselle tai koulutustarkoituksiin
  • Tehostaa testausta: Vähentää toistuvia manuaalisia testauksen aktiviteettejä

 

Jatkuvaan integraatioon liittyy kuitenkin myös riskejä ja haasteita: 

  • Jatkuvan integraation työkalut pitää ottaa käyttöön ja niitä pitää ylläpitää
  • Jatkuvan integraation prosessi pitää olla määritetty ja perustettu
  • Testausautomatisointi vaatii resursseja ja sen perustaminen voi olla monimutkaista
  • Erinomainen testikattavuus on olennaista, jotta saavutetaan automatisoidun testauksen hyödyt
  • Toisinaan tiimit luottavat liikaa yksikkötesteihin ja suorittavat liian vähän järjestelmä- ja hyväksymistestejä

 


comments powered by Disqus