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.