Projekt

Obecné

Profil

Konvence » Historie » Revize 14

Revize 13 (Adam Šmucr, 2024-02-21 12:39) → Revize 14/19 (Adam Šmucr, 2024-02-21 12:42)

h1. Konvence 

 Tento dokument obsahuje dohodnutá týmová pravidla, které je nutné dodržovat po celou dobu práce na projektu. Byla vymyšlena a odsouhlasena všemi členy týmu na první společné schůzce.  
 Obsahuje konvence týkající se softwarového procesu, vývoje cílové aplikace, projektové dokumentace i interních záležitostí týmu. V případě, že v průběhu práce na projektu dojde tým k závěru, že některá z konvencí není přínosná, je možné ji v rámci některé z interních schůzek změnit. 

 h2. Softwarový proces 

 *Standardní délka iterace je 2 týdny* a vždy začíná v *ÚTERÝ*. Délka může být upravena před začátkem iterace. 
 Každý týden bude probíhat *_Standup_* (interní týmová schůzka) a to v *PONDĚLÍ od 19h online*. Každý druhý týden má tato schůzka i funkci _Plánovací a retrospektivní_. 
 Na konci iterace probíhá *_Demo se zákazníkem_* a *_Schůzka s mentorem_* v tomto preferovaném pořadí. 
 Preferovaný den pro tyto schůzky je *ÚTERÝ*, přesné datum a čas se bude domlouvat operativně dle času zúčastněných osob. 

 h2. Práce v ALM nástrojích 

 Při práci na projektu budou používány nástroje *Redmine* a *Gitlab* pro komunikaci týmu bude použit interní *Discord*. Pro správu dokumentů pak *Google Drive*. 

 h3. Redmine  

 Na plánovací schůzce budou týmově navrženy úkoly pro další iteraci. Některé budou přiřazeny zodpovědným osobám (klíčové, pro konkrétní osobu) a ostatní je možné si přiřadit během iterace. Každý člen týmu by měl mít přehled o odpracovaných hodinách a dle toho si vybrat další úkol.  

 *Za vytváření úkolů v Redmine zodpovídá Team Leader* s výjimkou bugů, které může vytvořit kdokoliv. Typy úkolů jsou popsány následovně. 

 *Typy úkolů a jejich popis* 
 * Feature - hlavní funkcionalita aplikace 
 * Task - úkoly vyplývající z Feature, analýzy 
 * Support - podpůrné činnosti projektu (administrativa, dokumentace, schůzky) 
 * Bug - nalezený defekt (měl by obsahovat screen a detailní popis) 
 * Risk - analyzované riziko 

 *Používané kategorie úkolů* 
 * Analýza - zkoumání technologie, architektury, možného řešení 
 * Dokumentace - všechny dokumenty odevzdávané zadavateli 
 * Schůzka - fyzická nebo online schůzka zainteresovaných stran 
 * Programování - vývojová činnost související s aplikací, testování 
 * Administrativa - všechny dokumenty související s procesem odevzdávané mentorovi 

 *Životní cyklus úkolů* 
 * New - nový úkol, nemusí být časově ohodnocen, není přiřazen do iterace 
 * Accepted - časově ohodnocený úkol, zaplánován do některé z iterací 
 * Assigned - přiřazený úkol někomu ze členů týmu, pracuje na něm 
 * Resolved - přiřazený člen považuje úkol za dokončený na své _Feature_ větvi 
 * Verified - úkol je zkontrolován, provedeno code review a je v _dev_ větvi 
 * Closed - úkol je dokončen 

 *Nejpozději na konci pracovního dne si každý člen týmu zaznamená odvedený čas a pokrok*, může uvést komentář pokud k tomu existuje důvod. 

 h3. Gitlab 

 Budou vytvořeny dvě důležité větvě - *main* a *dev*. Následně pro každou _Feature_ vznikne separátní větev, kde bude proveden merge do větve _dev_ po dokončení úkolu. 
 Před každou _Demo schůzkou se zadavatelem_ bude proveden merge do větvě main. Tag je uváděn ve tvaru *<číslo TSP>.<iterace>.<0>* 
 Každý člen týmu zodpovídá za své provedené merge requesty a řeší na nich vzniklé problémy. 

 Commit message obsahuje odkaz na úkol, ke kterému se vztahuje a popis v angličtině. 

 h2. Programové a dokumentační konvence 

 Názvy proměnných, tříd a komentáře jsou vedeny v angličtině. 
 Komentáře jsou uvedeny u všech metod/funkcí, kde mají smysl (funkčnost není na první pohled jasná). 
 Code review dělá pokaždé někdo jiný než kdo danou funkci naprogramoval. 

 Dokumentace pro *zadavatele* zadavatele je vedena v *ANGLIČTINĚ*. 
 Dokumenty *týkající se procesu* jsou v *ČEŠTINĚ*. 

 Většina dokumentů jsou ukládána na _Google Drive_. Zápisy ze schůzek jsou vedeny na _Wiki_, stejně jako dokumenty kterým to definuje popis úkolu. anglickém jazyce.