Ketterä Softakehitys

Seuraa 
Viestejä45973
Liittynyt3.9.2015

Olettaen, että tietokoneohjelmien kehitysprosesseja voi kutsua edes etäisesti tieteeksi, haluaisin keskustella Tiede -foorumin kävijöiden kanssa eräästä mieltäni askarruttavasta asiasta.

Olemme yhtiössämme kehittäneet vuosikausia ohjelmistoja pääasiassa perinteisellä metodilla jossa kehittäjät työskentelevät joitain päiviä / viikkoja (projektin koosta riippuen) siiloissaan ja tietyin väliajoin suoritetaan järjestelmän integraatio jolloin mahdolliset modulien väliset konfliktit havaitaan. Voinemme kaikki olla yhtä mieltä siitä, että ohjelmissa on aina ongelmia, kyse on vain siitä kuinka nopeasti pystymme havaitsemaan tärkeimmät niistä. Debuggauksessa ei välttämättä aina tiedetä kenen tekemään koodiin ongelma liittyi - ymmärrettävää, kun bildiin on tehty samaan aikaan kymmeniä tai satoja muutoksia..

Tässä vaiheessa monet asiaan perehtyneistä ovat jo varmaan hymähtäneet ja mieleen on juolahtanut Agile -metodit ja Continuous Integration. No eipä juolahtanut ainakaan minulle pitkiin aikoihin, tuntui suoraan sanottuna todella tyhmältä että ei ollut selvittänyt jo aiemmin itselleen mistä oli kyse noiden ajatustapojen takana.

Lähinnä kyse on siis siitä, että koodatut modulit integroidaan, bildataan ja niille ajetaan modulitestit ja perus analyysit automaattisesti saman tien. Ideana se että tehdään kehitystä siten, että uusin paketti on 'aina valmiina julkaistavaksi' (itse en kyllä välttämättä julkaisisi mitään pelkkien automaatiotestien jälkeen, mutta näin kovasti uhoavat noilla saiteilla..). Tämä käytäntö soveltuu erityisesti suht kevyisiin Java -projekteihin, 'old-school' -kielien kanssa voi tulla vaikeampaa. Pelaa hyvin esim. CVS -versionhallinnan kanssa, mutta taajaan käytetyn Clearcasen kanssa taas suht pahoja vaikeuksia, eli ei mikään lopullinen pelastaja, mutta voisin kuvitella että seuraava suht halpa järjestelmä voisi olla aika kätevä jossain webbipohjaisen Javalla toteutetun sovelluksen kehityksessä:

- Eclipse tms. koodaukseen ->

- CVS versionhallintaan ->

- AntBuild bildaukseen ->

- CruiseControl bildien ohjaukseen ja tehontarpeen hajauttamiseen ->

- JUnit testaukseen

Olemme nyt siis suunnittelemassa noiden ajatuskehikoiden (pääasiassa C.I. siis) ympärille uusia työskentelyprosesseja, ja haluaisin kuulla foorumilaisten mahdollisista kokemuksista näiden kilkkeiden parissa. Olen löytänyt huolestuttavan vähän kritiikkiä näitä toimintatapoja kohtaan, ja haluaisin hieman tervettä tylytystä jos sitä löytyy. :]

Kommentit (0)

Uusimmat

Suosituimmat