Sorry! Your browser is not supported on this site and it might be acting a bit wonky. Please use Firefox, Chrome or Edge instead

Rikkinäiset workflowt: syyt ja seuraukset

Written by:
Eficode

Rikkinäiset workflowt: syyt ja seuraukset

 

JIRA on Atlassianin tehtävienhallintaohjelmisto, jonka avulla voidaan hallita projekteja ja seurata tehtävienkulkua. Projektien kannalta on tärkeää keskittyä osatehtävien hallintaan. Näin kokonaisuus toimii, tulee valmiiksi, eikä pienempiä, mutta silti tärkeitä tehtäviä jää toteuttamatta. Kaiken tyyppisiä osatehtäviä eli issueita pystytään seuraamaan sujuvasti JIRA.ssa tehtävänkulkujen eli workflow:ien muodossa.

Suunnitellessa projekteille workflow:ta saattaa helposti syntyä pieniä huolimattomuusvirheitä. Rakennettaessa ne ovat pieniä, jopa vain yhden askeleen puuttumisia, mutta todellisuudessa niillä on suuremmat seuraukset. Yksi virhe voi aiheuttaa tuhansien issueiden kohdalla ongelmia.

shutterstock_144960274CLOSED mutta edelleen UNRESOLVED

Yleinen virhe on se, että siirtymälle, jossa issuen tila vaihtuu ns. “End of life” -tilaan, unohdetaan määrittää resolution. Tämä tarkoittaa käytännössä sitä, että vaikka issue saadaan saatettua workflown läpi esimerkiksi closed-tilaan, jää sen resolution edelleen näyttämään unresolved-tilaa. Tämä tarkoittaa, että se näkyy edelleen projektin dashboardilla avointen issueiden listassa, koska issuella ei ole mitään resolutionia. Todellisuudessahan se on jo tehty. Tämä taas voi olla erittäin raivostuttavaa eikä lainkaan toivottavaa, sillä tämä hankaloittaa projektin sujuvaa etenemistä ja raportointia.

Sama mutta päinvastainen virhe voi tapahtua, jos issue avataan uudestaan. Issuen tila vaihtuu taas open-tilaan, mutta sen resolutionin mukaan se on jo ratkaistu. Onneksi tämän virheen voi korjata.

Fix Resolution - Manual

Vaihe, joka unohtuu workflowsta on resolution screenin asettaminen siirtymälle. Jälkikäteen siirtymän pystyy kyllä korjaamaan ja asettamaan issuelle resolutionin, mutta työlästä se on.

1. Projektissa huomaat, että osa issueista on edelleen unresolved, vaikka ovatkin jo closed-tilassa. Tarkasta, mikä workflow on kyseessä.
2. Tee kopio workflowsta, koska et voi muokata workflowta, joka on käytössä samalla. Tarkasta myös, onko workflow schema, jossa workflow projektissa on, käytössä myös muissa projektissa. Jos näin on, tee myös siitä workflow schemasta kopio, jota projekti käyttää.
3. Avaa tekemäsi kopio workflowsta. Lisää workflowhun uusi status (add status). Voit nimetä sen vaikka Resolution Fix.
4. Seuraavaksi lisää siirtymät (add transitions) Resolution Fix:n ja Closed:n välille. Closed:sta menevä siirtymä Resolution Fix:iin voi olla nimeltään Clear resolution. Lisää siirtymälle post function, jotta resolution field saadaan tyhjennettyä.

add post function → update issue field → resolution → none → add

5. Toinen siirtymä on Resolution Fix:stä takaisin Closed:iin. Nimi esimerkiksi Fix resolution. Tähän siirtymään tulee lisätä screeni, jotta haluttu resolution saadaan workflown loppuun.

add screen → resolve issue screen

6. Tarkasta vielä muut siirtymät, jotka menevät viimeiseen tilaan. Jos niissä ei ole screenejä, lisää ne.
7. Palaa projektiin ja katso mikä workflow scheme olikaan käytössä. Siirry administrator puolelle ja avaa se (jos vaiheessa 2. teit kopion workflow schemasta, avaa se alkuperäisen sijasta). Tämän jälkeen lisätään tähän schemaan workflow, johon lisättiin uusi status.

add workflow → add existing → etsi listasta haluttu workflow →
valitse issue type(t) alkuperäisen mukaan → assign

8. Siirry takaisin projektiin ja workflow schemeen. Vaihdetaan projektin käyttöön korjattu scheme.

Switch scheme → valitaan korjattu scheme → acknowledge

9. Siirrytään Issue Navigatoriin. Etsitään projektin issuet, joissa status on closed, mutta resolution unresolved. Esimerkiksi näin:

query status =Closed AND resolution in (Unresolved) AND
issuetype= "Task"

10. Valitse työkaluista bulk change. Valitse kaikki issuet listattuna sivulla, mutta tarkasta ensin, että ne ovat varmasti kaikki closed ja unresolved, ja että niissä on keskenään sama issue type. Tämän jälkeen:

next → clear resolution (Resolution Fix) → vahvista muutokset

11. Tämän jälkeen tee sama haku uudestaan, mutta muuta haussa status = “Resolution Fix”.
12. Tee bulk change uudestaan ja vaihda status takaisin closediin. Tässä vaiheessa kysytään myös, minkä resolutionin haluat issueille (Fixed, Done, jne.).
13. Kun issuet on migrattu, palaa administrator puolella workfloweihin ja etsi korjattu workflow. Tee tästä kopio ja nimeä se samalla nimellä kuin alkuperäinen workflow, jos vain mahdollista.
14. Muokkaa uusinta kopiota. Valitse Resolution Fix -status ja poista se (remove status).
15. Siirry workflow schemeihin. Lisää muokattuun schemeen uusin workflow, josta edellisessä vaiheessa poistettiin status. Lisää workflow samalla tavalla kuin vaiheessa 7.

Kuten huomattiin, issueiden resolutionin vaihtaminen jälkeenpäin on hyvin monivaiheinen prosessi. Helpoimmalla pääse, kun muistaa tarkastaa workflowt kunnolla niitä tehtäessä. Tarkasta, että viimeiseen tilaan siirryttäessä siirtymällä on resolution screen ja uudelleen avaamisessa resolution tyhjennetään. Nämä muistaessasi vältyt luultavammin suurelta jälkityöltä.

Script Runner

Toinen tapa korjata resolutionit on käyttää maksullista lisäosaa nimeltä ScriptRunner. Se on kokoelma tehokkaita mutta helppokäyttöisiä workflow funktiota, JQL funktiota, kuuntelijoita ja palveluita. ScriptRunner mahdollistaa JIRAssa esimerkiksi JQL-kyselyiden laajentamisen ja se parantaa workfloweja. Kokonaisuudessa se tehostaa JIRAn hallinnointia.

Workflowien korjaaminen ScriptRunneria apuna käyttäen toimii seuraavasti:
1. Asenna ScriptRunner -lisäosa JIRAan.
2. Tee haku kaikille issueille, joiden resolution on unresolved.
3. Tallenna haku filtteriksi.
4. Käytä valmista sisäänrakennettua scriptiä määrittääksesi filterin sisältämille tapauksille jokin resolution.

Eficoden Atlassian tiimi kertoo tulevaisuudessa enemmän ja tarkemmin miten workflow suunnittelua tulisi tehdä erilaisissa ympäristöissä ja mitkä sen käytännön vaikutukset ovat tehtävälle kehitystyölle.