Kriba nagu progeja

Kirjutab: Zarvik

Pealkiri ei vihja sellele, et sa peaksid kirjutama koodi või midagi sellist. Pigem tahaksin ma vaadata meetodeid kuidas koodi kirjutatakse.
Ma olen eelnevalt kirjutanud sellest, kuidas improteatri lähenemine aitab (minu jaoks vähemalt) kirjutada, kuid täna tahaksin ma võtta inspiratsiooni hoopis IT sektorist, võrreldes selliseid lähenemisi nagu Agile ja Waterfall ning pannes need kirjutamise konteksti.

Mis on Agile?  Sisuliselt (ja väga lihtsustatult) saab selle idee võtta kokku nii: Sul on eesmärk mida sa tahad täita ning ajaperiood (sprint), mille jooksul tuleb valmis teha minimaalne funktsionaalsus, mis selle eesmärgi ära täidaks. Tähtis on see, et lõpptulemus oleks funktsionaalne tervik. Ajaperiood on kusjuures üsna lühike.

Et seda ideed illustreerida, ütleme et sul on eesmärk teha liikumisvahend punktist A punkti B. Esimese lühikese intensiivse tööperioodi (sprindi) lõpuks oled sa valmis saanud rula. On kiirem kui kõndimine ja täidab funktsiooni. Järgmise sprindi jooksul arendad edasi ja saad rulast tõuksi. Juhitavus ja stabiilsus on parem.
Kolmas sprint teeb sellest tõuksist jalgratta - jälle uues funktsionaalne tervik, mis eelnevatest kiirem.
Siis järgmine teeb sellest mootorratta. Oh kui palju kiirust veel juures, aga näe, stabiilsus on probleem.
Seega järgmisel sprindil tuleb äkki kaks mootoratast, mis on kokku ühendatud ja meenutavad juba vaikselt autot.

See oli küll väga lihtsustatud seletus, kuid ma olen täheldanud, et kirjutades liigun ma üsna sarnastel radadel - mul on alati tervik. Jah, mitte ilmtingimata hea tervik, kuid seda annab järgmise intensiivse tööpersioodi ajal ümber teha. Esimene mustand tekstist on nagu rula, kuid eemärk on täidetud. 

Sa ei saa parandada seda, mida pole olemas ja mul on igav kirjutada, kui ma täpselt tean, mis välja tuleb. Ma vajan avastamist ja proovimist. Ka jutuvõistlusel teise koha saanud lugu läks esimese pauguga kirja vähem kui kahe nädalaga. Sellele järgnes aga rohkem kui kaks kuud arendustegevust, et esialgsest ideest ka asja saaks.


Kui sa oled kaos-kirjutaja, nagu mina, siis see võib olla sinu jaoks parim lähenemine. Kui sulle meeldib aga omada selget plaani lõppeesmärgist ja kõikidest nüanssidest juba varem, siis ehk annab hoopis inspiratsiooni Waterfall meetod. Kui võtta eelnev rulast autoni idee, siis waterfall meetod vaataks kohe eesmärgi peale ja ütleks: me teeme auto.
Siis planeeriks ta kõik selle osade tegemise ära, kuni detailideni, pannes kõigile osadele ka kuupäevalise eesmärgi. Planeerimine ja eeltöö võtab siin üsna kaua - samas on ka lõppeesmärk ju väga nüansirikas.
Mõnes mõttes meenutab see seda, kui sa planeerid kogu raamatu käsikirja ette ära ning siis alustad alles selle kirjutamisega. 

Kumb neist on parem või kiirem meetod?
Raske öelda. Mõlemal on oma head ja vead. Agile lähenemisega autoni jõudmiseks võib pikas plaanis minna isegi kauem (lisaks on äkki sellel autol ka mõned rula jäänukid sees). Samas on sul vähemalt mingi tervik kogu aeg olemas - mis on hea, kui jaks või resursid vahepeal otsa peaks saama.
Waterfall võib anda kindlama lõpptulemuse kui vaja jällegi oluliselt rohkem planeerimist ja ka selge sihiga liikumist. 

Eks IT firmad vali ise, mis neile kõige paremini sobib.
Kirjutades on sama.



Kommentaarid