Issue

Selleks, et efektiivselt tööd jälgida ja ülesannet täita, on kasulik kasutada issue'sid ehk pileteid. Issue võimaldab jälgida tööülesandeid ja nendele mõeldud aega.

Issue-si tuleks luua pidevalt ja palju, nii uute funktsioonide loomisel, kui esinevate vigade (bugide) parandamistel.

Eraldi issue't ei tohiks teha õppimise kohta. Kui sa seadistad näiteks LibGDX-i ja selle käigus otsid infot, siis lisa see aeg "LibGDX seadistamine" issue alla. Eraldi me selliseid issue'sid ei tee, mõne asja tegemise jooksul kulunud aeg õppimisele läheb kirja vastava issue juurde.

Mis on pilet (issue)?

Pilet (inglise keeles issue) on GitLabis või mõnes teises keskkonnas loodud tööülesande kirjeldus, mis aitab projekti arendamisel:

  • määratleda täpselt, mida on vaja teha,

  • jaotada tööd tiimiliikmete vahel,

  • hoida arvestust kulunud aja üle,

  • tagada, et kõik liikmed saavad samamoodi ülesannetest aru.

Iga issue peaks keskenduma ühele konkreetsele ülesandele. Näiteks "Loo exit button".

Miks on vaja hästi läbimõeldud issue'sid?

Kuna iga tiimiliige peaks saama võtta mistahes pileti ja hakata selle kallal iseseisvalt töötama, peavad kõik kirjeldused olema arusaadavad ja piisavalt detailsed. Kui pilet on puuduliku või segase kirjeldusega, takistab ja aeglustab see meeskonna tööd.

Hea pilet annab vastused järgmistele küsimustele:

  • Mis on eesmärk?

  • Mida peab lõpptulemus sisaldama?

  • Kuidas saab aru, et töö on tehtud?

Selleks kasutatake tihti checkliste.

Lõpetamiskriteeriumid

Ülesandele lisatakse sageli lõpetamiskriteeriumid (acceptance criteria), mis annavad kokkuvõtliku ülevaate sellest, mida peab tegema, et ülesannet saaks lugeda "tehtuks".

Selleks on hea kasutada issue kirjelduses väiksemate ülesannete checkliste. Ehk selle asemel, et kirjutada "Ostukorv" võiks kirjutada:

  • Paneelis on nupp pealkirjaga "Ostukorv"

  • Nupule klõpsates viiakse järgmisele lehele, mis kuvab seni valitud tooteid

  • Lehel on nupp asjade sorteerimiseks hinna järgi pealkirjaga "Järjesta"

  • Vajutades nuppu toimub sorteerimine odavamast kallimaks

Hea pileti 101

  • Anna piletile selge ja arusaadav nimi

  • Lisa hinnanguline ajakulu ning lisa jooksvalt tegelikku ajakulu

  • Lisa milestone
    • See aitab ülesandeid grupeerida (näiteks sprintide kaupa)

  • Määra piletile assignee
    • Keegi, kes on selle pileti eest vastutav

  • Kasuta üht keelt
    • Vali kas eesti või inglise keel ja jää selle juurde

  • Sulge kõik lõpetatud piletid
    • Seda võiks ideaalis teha keegi, kes ei ole selle pileti autor

  • Branch’i nimi võiks olla selgelt seotud issue nime või numbriga.
    • Kasuta formaati #123-funktsiooni-nimi või lühike kirjeldus, mis viitab ülesande sisule.

  • Kasuta checklisti, et kirjeldada täpselt, mida tuleb teha.
    • Issue loomisel on oluline anda piisavalt teavet, et teised liikmed saaksid sellest aru ja töötada selle kallal.

    • Sellisel moel saavad ka hiljem koodi testijad/ülevaatajad nende samade punktide järgi kontrollida, et kas kõik pileti sulgemiseks vajalikud kriteeriumid on täidetud.

  • Hoia pilet fookuses ja kitsas – iga pilet peaks keskenduma ühe probleemi lahendamisele
    • Kui on plaanis midagi suuremat, siis jaga ülesanne mitme pileti vahel ära

  • Loo pilet enne töö alustamist
    • Soovitatavalt kohe uue milestone’i alguses.

  • Eelmises sprindis pooleli jäänud pilet tõsta järgmisesse sprinti edasi
    • Sama tee ka milestone'i eesmärkidega

Non-code issues

Paljud projektis tekkivad issue’d ei ole otseselt seotud uue koodi kirjutamisega. Sellised „mitte-tehnilised“ piletid on samuti olulised ja peavad samuti olema dokumenteeritud ja ajaliselt hinnatud.

Alguses on nendeks enamasti kas projektiplaani tegemine või koosolekute pidamine tiimi või juhendajaga.

Näiteid:

  • Koosolekud (tiimi või juhendajaga):
    • Loo igaks sprindiks eraldi issue, kuhu saab logida koosolekud ja lisada kulutatud aja

    • Lisa kommentaaridesse lühidalt, mida arutasite

  • Projektiplaani koostamine/GitLabi korrastamine/Järgmise sprindi planeerimine:
    • Nendele peaks olema samuti issue

    • Kirjelda lühidalt, mida tegid: "vanade piletite kustutamine", "järgmise sprindi eesmärkide kaardistamine"

Kokkuvõte

  • Loo palju, hästi kirjutatud issue'sid. Parem rohkem kui vähem.

  • Logi iga tegevus - koodi kirjutamine, koosolek jms.

  • Hästi hallatud issue'd aitavad luua selge ja toimiva töökeskkonna, kus iga tiimiliige saab iseseisvalt tööd teha

Issue loomise kohta saad täpsemalt lugeda siit.