1 |
c9a22ab3
|
HarryHeres
|
\documentclass[12pt, a4paper]{article}
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
5 |
|
|
%%-----------------------VYUŽITÉ PACKAGES----------------------------%%
|
6 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
7 |
|
|
\usepackage[czech]{babel}
|
8 |
|
|
\usepackage{geometry}
|
9 |
|
|
\usepackage[final]{graphicx}
|
10 |
|
|
\usepackage{anyfontsize}
|
11 |
|
|
\usepackage{setspace}
|
12 |
|
|
\usepackage{hyperref}
|
13 |
|
|
\usepackage[T1]{fontenc}
|
14 |
|
|
\usepackage{subcaption}
|
15 |
|
|
\hypersetup{
|
16 |
|
|
colorlinks,
|
17 |
|
|
citecolor=black,
|
18 |
|
|
filecolor=black,
|
19 |
|
|
linkcolor=black,
|
20 |
|
|
urlcolor=black
|
21 |
|
|
}
|
22 |
|
|
|
23 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
24 |
|
|
%%-----------------------ZAČÁTEK VLASTNÍHO TEXTU---------------------------%%
|
25 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
26 |
|
|
\begin{document}
|
27 |
|
|
|
28 |
|
|
\begin{titlepage}
|
29 |
878a1458
|
HarryHeres
|
\title{
|
30 |
|
|
\vspace{-4cm}\hspace{-10cm}
|
31 |
|
|
\includegraphics[width=8cm]{assets/logo.png} \\
|
32 |
|
|
\vspace{5cm}
|
33 |
|
|
\begingroup
|
34 |
|
|
\setstretch{4}\fontsize{30}{10}\selectfont\fontdimen2\font=0.8ex
|
35 |
|
|
\parbox{13.3cm}{
|
36 |
|
|
\centering{\textbf{ASWI - Neurorehablitační systém BrainIn}\\
|
37 |
|
|
\fontsize{24}{10}\selectfont\centering{{Interní týmové předpisy a dokumentace}}
|
38 |
|
|
}}
|
39 |
|
|
\endgroup}
|
40 |
|
|
\date{}
|
41 |
|
|
\author{}
|
42 |
|
|
\maketitle \thispagestyle{empty}
|
43 |
|
|
\vspace{3cm}
|
44 |
|
|
\hspace{0cm}\parbox[b][5cm][b]{8cm}{{\setstretch{1.5}
|
45 |
|
|
Autor: Bc. Jan Hereš\\
|
46 |
|
|
Datum: 27.02.2023\\
|
47 |
|
|
Poslední úprava: \today\\}}
|
48 |
c9a22ab3
|
HarryHeres
|
\end{titlepage}
|
49 |
|
|
\newpage
|
50 |
|
|
|
51 |
|
|
|
52 |
|
|
\tableofcontents
|
53 |
|
|
\newpage
|
54 |
|
|
|
55 |
|
|
\section{Úvod}
|
56 |
|
|
\paragraph{} Tento dokument slouží jakožto analogie ,,interních směrnicí'' pro sjednocení a ustálení vývojových procesů napříč celým týmem.
|
57 |
|
|
|
58 |
|
|
\section{Interní management}
|
59 |
878a1458
|
HarryHeres
|
\paragraph{} V rámci řízení projektu bylo ustanoveno, že se tým bude \textbf{pravidelně} scházet v on-site/online formě každý týden (konkrétní den bude vždy určen s předstihem dle možností jednotlivých zúčastněných). V rámci těchto schůzek bude probrána odvedená a naplánovaná práce, případně jakákoliv nastávající problematika. Z těchto meetingů bude \textbf{vždy} vytvořen ,,záznam ze schůzky dne XXX'', který bude součástí dokumentu se všemi takovými záznamy.
|
60 |
c9a22ab3
|
HarryHeres
|
|
61 |
|
|
\section{Verzovací systém Git}
|
62 |
878a1458
|
HarryHeres
|
\paragraph{} Tato sekce se týká verzovacího systému Git (potažmo repozitáře Gitlab).
|
63 |
b6218b32
|
HarryHeres
|
|
64 |
c9a22ab3
|
HarryHeres
|
|
65 |
|
|
\subsection{Tvorba vývojových větví (\textit{branches})}
|
66 |
|
|
\paragraph{} V rámci projektu existuje hlavní vývojová větev \textbf{master}.
|
67 |
|
|
V této větvi budou dostupné veškeré \textbf{funkční a otestované} verze projektu ve formě otagovaných \textbf{releases}.
|
68 |
b6218b32
|
HarryHeres
|
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 |
c9a22ab3
|
HarryHeres
|
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 |
|
|
Workflow mezi jednotlivými větvemi je vyobrazen na obrázku \ref{fig:branches_workflow}.
|
72 |
|
|
|
73 |
|
|
\begin{figure}[h]
|
74 |
|
|
\centering
|
75 |
|
|
\includegraphics[width=\linewidth]{assets/aswi_branches.png}
|
76 |
|
|
\caption{Workflow mezi jednotlivými větvemi v rámci repozitáře}
|
77 |
|
|
\label{fig:branches_workflow}
|
78 |
|
|
\end{figure}
|
79 |
|
|
|
80 |
|
|
|
81 |
b6218b32
|
HarryHeres
|
\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.
|
100 |
c9a22ab3
|
HarryHeres
|
|
101 |
b6218b32
|
HarryHeres
|
\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í.
|
104 |
c9a22ab3
|
HarryHeres
|
|
105 |
b6218b32
|
HarryHeres
|
\subsubsection{Obecná pravidla pro vytváření \textit{issues}}
|
106 |
c9a22ab3
|
HarryHeres
|
\begin{itemize}
|
107 |
|
|
\item Každá \textit{issue} bude obsahovat krátký, nicméně dostatečně deskriptivní popis, čeho konkrétně se týká
|
108 |
|
|
\item Každá \textit{issue} bude \textbf{jednoznačně identifikovatelná} za pomocí tzv. \textbf{labelů} (specifikováno dále)
|
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)
|
110 |
b6218b32
|
HarryHeres
|
\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í.
|
112 |
878a1458
|
HarryHeres
|
|
113 |
c9a22ab3
|
HarryHeres
|
\end{itemize}
|
114 |
|
|
|
115 |
b6218b32
|
HarryHeres
|
\subsubsection{Možné fáze \textit{issues}}
|
116 |
c9a22ab3
|
HarryHeres
|
\begin{itemize}
|
117 |
|
|
\item Backlog - analogie s TODO
|
118 |
|
|
\item In progress
|
119 |
b6218b32
|
HarryHeres
|
\item To test (dev) - testování \textbf{vždy provádí jiný vývojář(tester)!}
|
120 |
878a1458
|
HarryHeres
|
\item Code review
|
121 |
00c2c634
|
HarryHeres
|
\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í
|
122 |
|
|
\item To test (prod) - otestování na produkčním prostředí
|
123 |
|
|
\item To deploy (prod) - končí schválením merge requestu do \textbf{masteru}
|
124 |
878a1458
|
HarryHeres
|
\item Done - Issue hotova, uzavřena
|
125 |
c9a22ab3
|
HarryHeres
|
\end{itemize}
|
126 |
|
|
|
127 |
878a1458
|
HarryHeres
|
\paragraph{} Poznámka: Ze stavu ,,To deploy (dev)'' lze přejít do stavu ,,Done'', pokud není žádoucí ovlivňovat produkční prostředí (zejména pro malé změny, které jsou součástí většího zásahu do projektu).
|
128 |
00c2c634
|
HarryHeres
|
|
129 |
|
|
|
130 |
c9a22ab3
|
HarryHeres
|
\paragraph{Typy issues}
|
131 |
|
|
\begin{itemize}
|
132 |
00c2c634
|
HarryHeres
|
\item Epic - velký logický blok, který obaluje novou funkcionalitu nebo velké množství úprav
|
133 |
|
|
\item Feature - nová funkcionalita (zejména front-endové změny)
|
134 |
|
|
\item Ticket - jakýkoliv další úkol, který implicitně není novou funkcionalitou, spíše například vytvoření obsáhlejší dokumentace, případně nových tříd či struktur
|
135 |
|
|
\item Task - základní úkol (ideálně atomický); využití na rozdělení ticketu do menších podúkolů
|
136 |
|
|
\item Bug - Chyba, kterou je nutno opravit
|
137 |
878a1458
|
HarryHeres
|
\item Change request - vyžádaná změna od zákazníka/uživatele, která byla již dříve implementována
|
138 |
c9a22ab3
|
HarryHeres
|
\end{itemize}
|
139 |
|
|
|
140 |
b6218b32
|
HarryHeres
|
\paragraph{Typy priority}
|
141 |
c9a22ab3
|
HarryHeres
|
\begin{itemize}
|
142 |
b6218b32
|
HarryHeres
|
\item \textbf{Lowest}
|
143 |
c9a22ab3
|
HarryHeres
|
\item \textbf{Low} - nevyžaduje velkou pozornost (příkladem mohou být nekritické části aplikace, ,,nice to have(s)''),
|
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ší),
|
145 |
|
|
\item \textbf{High} - vysoká priorita vyžadujicí privilegované řešení,
|
146 |
b6218b32
|
HarryHeres
|
\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í)
|
147 |
c9a22ab3
|
HarryHeres
|
\end{itemize}
|
148 |
|
|
|
149 |
00c2c634
|
HarryHeres
|
\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}.
|
150 |
|
|
|
151 |
c9a22ab3
|
HarryHeres
|
|
152 |
00c2c634
|
HarryHeres
|
\section{Aplikace pro řízení projektů - Jira}
|
153 |
|
|
\paragraph{} Pro účely předmětu ASWI bylo schváleno garantem předmětu doc.Ing. Přemyslem Bradou, MsC., Ph.D. a vedoucími projektu použití nástroje \textbf{Jira} pro správu vývoje a projektu.
|
154 |
|
|
Pro sjednocení vývojového procesu byl vytvořen následující projektový workflow:
|
155 |
|
|
|
156 |
|
|
\begin{figure}
|
157 |
|
|
\centering
|
158 |
|
|
\includegraphics[width=\linewidth]{assets/jira_workflow.png}
|
159 |
|
|
\caption{Projektový workflow v systému Jira}
|
160 |
|
|
\end{figure}
|
161 |
c9a22ab3
|
HarryHeres
|
|
162 |
00c2c634
|
HarryHeres
|
\paragraph{} Poznámka: Je tedy zřejmé, že tento workflow přesně koreluje s navrženou stukturou repozitáře projektu.
|
163 |
c9a22ab3
|
HarryHeres
|
|
164 |
|
|
|
165 |
|
|
% \cite{Example}
|
166 |
|
|
|
167 |
|
|
|
168 |
|
|
% \clearpage
|
169 |
|
|
% \section{Závěr}
|
170 |
|
|
|
171 |
|
|
% \newpage
|
172 |
|
|
% \bibliographystyle{unsrt}
|
173 |
|
|
% {\raggedright\small
|
174 |
|
|
% \bibliography{literatura}
|
175 |
|
|
% }
|
176 |
|
|
|
177 |
|
|
\end{document}
|