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.

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 LibGDX-i õppimine, 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

  • Õppimine
    • Kui õpid, vaatad videot või loed dokumentatsiooni (nt LibGDX või API kohta), loo sellele eraldi issue või logi ajakulu seotud ülesande juurde

    • Nt: Kui uurid, kuidas arvutada hiire asukohta kaardil ja vaatad Youtube'i videot, lisa link ja ajakulu vastava issue kommentaaridesse

  • 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, õppimine, 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.