Revize b6218b32
Přidáno uživatelem HarryHeres před asi 2 roky(ů)
doc/internal/doc.tex | ||
---|---|---|
60 | 60 |
|
61 | 61 |
\section{Verzovací systém Git} |
62 | 62 |
\paragraph{} Tato sekce se týká verzovacího systému Git (potažmo repozitáře Gitlab). |
63 |
Vzhledem k faktu, že je již od začátku aplikace vyvíjena pro české pacienty, terapeuty, \dots (a z důvodu zachování již zaběhlých konvencí) budou veškeré komentáře, názvy a komunikace popsány v \textbf{českém} jazyce. |
|
63 |
|
|
64 | 64 |
|
65 | 65 |
\subsection{Tvorba vývojových větví (\textit{branches})} |
66 | 66 |
\paragraph{} V rámci projektu existuje hlavní vývojová větev \textbf{master}. |
67 | 67 |
V této větvi budou dostupné veškeré \textbf{funkční a otestované} verze projektu ve formě otagovaných \textbf{releases}. |
68 |
Nadále bude existovat větev \textbf{development (dev)}, na které bude dostupná \textbf{poslední} upravená, fuknční a neotestovaná verze.
|
|
69 |
Ve chvíli, kdy bude verze na development větvi otestována, může být vytvořen merge request do hlavní větve (za předpokladu, že jsou splněny všechny požadavky na novou verzi). |
|
68 |
Nadále bude existovat větev \textbf{development (dev)}, na které bude dostupná \textbf{poslední upravená, funkční a otestovaná}(na dev prostředí) verze, jež nebyla ještě otestována na produkčním prostředí.
|
|
69 |
Ve chvíli, kdy bude verze na development větvi otestována i na produkčním prostředí, může být vytvořen merge request do hlavní větve (za předpokladu, že jsou splněny všechny požadavky na novou verzi).
|
|
70 | 70 |
Pro nové \textit{features} nebo pro \textit{change requests} bude vždy vytvořena \textbf{nová} separátní větev z development větve. |
71 | 71 |
Workflow mezi jednotlivými větvemi je vyobrazen na obrázku \ref{fig:branches_workflow}. |
72 | 72 |
|
... | ... | |
78 | 78 |
\end{figure} |
79 | 79 |
|
80 | 80 |
|
81 |
\subsection{Tvorba a správa úkolů (\textit{Tickets and Issues})} |
|
82 |
\paragraph{} Každý úkol bude mít svůj \textit{ticket} (v případě, že je tak obsáhlý, že se bude muset dále dělit na podúkoly). |
|
83 |
Pokud bude úkol ,,jednoduchý'' (tj. nebude vyžadovat žádnou, případně velice minimální dekompozici), bude k němu adresována daná \textit{issue}. |
|
81 |
\subsection{Tvorba a správa úkolů napříč používanými nástroji} |
|
82 |
|
|
83 |
\subsubsection{Issues} |
|
84 |
\paragraph{} Issue je základní plánovací jednotka v systému řízení projektu (zde konkrétně nástroj \textbf{Jira}). |
|
85 |
Tato jednotka bude vždy svázána s konkrétní \textit{issue} na repozitáři Gitlab, tzn. v rámci \textit{issue} bude \textbf{vždy} k dispozici odkaz na danou \textit{issue} v repozitáři. Jejich vazba by tedy vždy měla být 1:1. |
|
86 |
|
|
87 |
\subsubsection{Ticket} |
|
88 |
\paragraph{} Ticket je běžný základní úkol. |
|
89 |
V rámci každé issue bude k dispozici výčet všech podúkolů (\textit{task}) které je nutné v rámci daného ticketu splnit. |
|
90 |
V rámci \textit{issue} bude taktéž možné specifikovat, zda-li úkol čeká na dokončení jiného, či naopak. |
|
91 |
|
|
92 |
\subsubsection{Feature} |
|
93 |
\paragraph{} Feature je typ \textit{issue} využívaný k označení implementace nové funkcionality do aplikace. |
|
94 |
|
|
95 |
\subsubsection{Bug} |
|
96 |
\paragraph{} Bug je typ, kterým se označují úkoly spojené s odstraněním nových vzniklých chyb během vývoje. |
|
97 |
|
|
98 |
\subsubsection{Change request} |
|
99 |
\paragraph{} Tímto type se označují úkoly, které jsou spojené se změnou nějaké již implementované funkcionality (feature), nicméně během vývoje došlo ke změnám priorit zákazníka a je potřeba tuto funkčnost upravit/změnit. |
|
84 | 100 |
|
85 |
\subsubsection{Issues (Tickets)} |
|
86 |
\paragraph{} Ticketem se rozumí takový úkol, který je nutné dekomponovat do menší, ideálně atomických podúkolů. |
|
87 |
Samotný ticket bude reprezentován v repozitáři jakožto \textit{issue}, nicméně v rámci jeho popisů (\textit{Tasks}) bude výčet všech úkolů (volně popsaných), které je nutné splnit. |
|
88 |
V rámci Ticketu bude využito i sekce \textit{Linked Items}, kde budou linknuté konkrétní podúkoly ve formě jednotlivých \textit{issues} (přesná korelace mezi sekcí \textit{Tasks a Linked Items} je tedy zřejmá). |
|
89 |
\par Z pragmatického hlediska bude tedy Ticket pouze speciální issue, která agreguje veškeré logicky související podúkoly. |
|
101 |
\subsubsection{Epic} |
|
102 |
\paragraph{} Epicy jsou velké logické celky agregující jednotlivé, logicky spjaté \textit{issues}. |
|
103 |
V rámci jedné iterace je možné mít naplánováno více Epiců a jeden Epic může být součástí více iterací. |
|
90 | 104 |
|
91 |
\subsubsection{Issues (Tasks)} |
|
92 |
\paragraph{} Jak bylo již řečeno výše, \textit{issue} bude buďto jednoduchý úkol, který je součástí daného \textit{tasku}. |
|
93 |
Pravidla pro vytváření těchto úkolů: |
|
105 |
\subsubsection{Obecná pravidla pro vytváření \textit{issues}} |
|
94 | 106 |
\begin{itemize} |
95 | 107 |
\item Každá \textit{issue} bude obsahovat krátký, nicméně dostatečně deskriptivní popis, čeho konkrétně se týká |
96 | 108 |
\item Každá \textit{issue} bude \textbf{jednoznačně identifikovatelná} za pomocí tzv. \textbf{labelů} (specifikováno dále) |
97 | 109 |
\item Každá \textit{issue}, která bude v jiné, než \textbf{Backlog} fázi (specifikováno dále) bude \textbf{jednoznačně přiřazena} danému vývojáři (případně testerovi či zákazníkovi, bude-li třeba) |
98 |
\item Každá \textit{issue} bude označena jednou z možností \textbf{,,urgentnosti''} (viz dále)
|
|
99 |
\item U každé issue, které je ve fázi ,,In progress'', či dále, bude jednoznačně stanoveno datum, kdy by měl být úkol dokončen (neměl by přesáhnout koncové datum iterace, v rámci které je úkol řešen)
|
|
110 |
\item Každá \textit{issue} bude označena jednou z možností \textbf{,,priority''} (viz dále)
|
|
111 |
\item U každé issue, které je ve fázi ,,In progress'', či dále, by měl být stanoven časový odhad potřebné práce k dokončení.
|
|
100 | 112 |
|
101 | 113 |
\end{itemize} |
102 | 114 |
|
103 |
\paragraph{Jednotlivé fáze úkolů}
|
|
115 |
\subsubsection{Možné fáze \textit{issues}}
|
|
104 | 116 |
\begin{itemize} |
105 | 117 |
\item Backlog - analogie s TODO |
106 | 118 |
\item In progress |
107 |
\item To test (dev) - testování \textbf{vždy provádí jiný vývojář/tester!}
|
|
119 |
\item To test (dev) - testování \textbf{vždy provádí jiný vývojář(tester)!}
|
|
108 | 120 |
\item Code review |
109 | 121 |
\item To deploy (dev) - funkcionalita implementována, nicméně je nutné funkční verzi \textit{deploynout} na testovací prostředí k umožnění testování |
110 | 122 |
\item To test (prod) - otestování na produkčním prostředí |
... | ... | |
125 | 137 |
\item Change request - vyžádaná změna od zákazníka/uživatele, která byla již dříve implementována |
126 | 138 |
\end{itemize} |
127 | 139 |
|
128 |
\paragraph{Typy priority/urgentnosti}
|
|
140 |
\paragraph{Typy priority} |
|
129 | 141 |
\begin{itemize} |
142 |
\item \textbf{Lowest} |
|
130 | 143 |
\item \textbf{Low} - nevyžaduje velkou pozornost (příkladem mohou být nekritické části aplikace, ,,nice to have(s)''), |
131 | 144 |
\item \textbf{Medium} - vyžaduje vyšší míru pozornosti - již by neměly zůstávat nedokončeny v rámci přiřazené iterace (v krajních případech je možné posunout do další), |
132 | 145 |
\item \textbf{High} - vysoká priorita vyžadujicí privilegované řešení, |
133 |
\item \textbf{Severe} - maximální důležitost - vyžaduje okamžité řešení (například v případech, kdy tyto problémy způsobují nestabilitu či přímo rozbíjí produkční prostředí)
|
|
146 |
\item \textbf{Highest (Severe)} - maximální důležitost - vyžaduje okamžité řešení (například v případech, kdy tyto problémy způsobují nestabilitu či přímo rozbíjí produkční prostředí)
|
|
134 | 147 |
\end{itemize} |
135 | 148 |
|
136 | 149 |
\paragraph{} V rámci jakýchkoliv úkolů \textbf{není potřeba} vést časové údaje a odhady. Tato činnost bude probíhat v systému \textbf{Jira}. |
Také k dispozici: Unified diff
Updated document Interní směrnice