Revize c0a2c21a
Přidáno uživatelem HarryHeres před téměř 2 roky(ů)
doc/aswi/vize_produktu/doc.tex | ||
---|---|---|
14 | 14 |
\usepackage{subcaption} |
15 | 15 |
\usepackage{listings} |
16 | 16 |
\usepackage{color} |
17 |
\usepackage[table]{xcolor} |
|
18 |
\usepackage{array} |
|
17 | 19 |
\hypersetup{ |
18 | 20 |
colorlinks, |
19 | 21 |
citecolor=black, |
... | ... | |
130 | 132 |
|
131 | 133 |
\subsubsection{Externí} |
132 | 134 |
\begin{itemize} |
133 |
\item Terapeuti |
|
135 |
\item Terapeuti pro pacienti s postižením CNS
|
|
134 | 136 |
\item Pacienti s postižením CNS |
135 | 137 |
\end{itemize} |
136 | 138 |
|
137 | 139 |
\subsection{Popis uživatele} |
138 |
\paragraph{} Uživatelem může být kdokoliv s připojením k internetu a počítačem s webovým prohlížečem. |
|
140 |
\paragraph{} Uživatelem může být kdokoliv s připojením k internetu a zařízením s webovým prohlížečem. |
|
141 |
|
|
142 |
|
|
143 |
\subsection{Popis uživatelského prostředí} |
|
144 |
\paragraph{} Splnění úlohy provádí pacient sám. |
|
145 |
Délka každé úlohy se liší v závislosti na pacientovi a samotné úloze. |
|
146 |
Úlohy je možné plnit kdekoliv a kdykoliv. |
|
147 |
|
|
148 |
\subsection{Požadavky stakeholderů} |
|
149 |
\begin{center} |
|
150 |
\begin{tabular}{|| p{0.2\linewidth} | p{0.1\linewidth} | p{0.2\linewidth} | p{0.2\linewidth} | p{0.2\linewidth} ||} |
|
151 |
\hline \rowcolor{lightgray} |
|
152 |
Potřeba & Priorita & Obavy & Nynější řešení & Navržené řešení \\ |
|
153 |
\hline |
|
154 |
Nový design šablon & Vysoká & Množství práce pro převedení šablony & Starý design & Nový design od Michala Horkého \\ |
|
155 |
\hline |
|
156 |
Přechod na novější verzi Unity & Vysoká & Převod nenabídne žádné výhody & Unity verze 2018 & Unity verze 2022 \\ |
|
157 |
\hline |
|
158 |
Řešení výkonnostních problémů aplikace & Střední & Bottleneck bude neovlivnitelný & Žádné & Přechod na novější verzi Unity \\ |
|
159 |
\hline |
|
160 |
Vytvoření projektové dokumentace & Nižší & Žádné & Útržky z předchozích odborných prací & Dedikované dokumenty obsahující podrobný popis aplikace \\ |
|
161 |
\hline |
|
162 |
\end{tabular} |
|
163 |
\end{center} |
|
164 |
|
|
165 |
\newpage |
|
166 |
\section{Přehled produktu} |
|
167 |
|
|
168 |
\subsection{Perspektiva produktu} |
|
169 |
\paragraph{} Produkt v této chvíli nemá žádnou přímou komerční konkurenci. |
|
170 |
Taktéž není závislý na žádných ostatních produktech, aplikacích či jiných systémech. |
|
139 | 171 |
|
140 | 172 |
|
141 | 173 |
% \cite{Example} |
doc/internal/assets/aswi_branches.drawio | ||
---|---|---|
1 |
<mxfile host="app.diagrams.net" modified="2023-02-27T18:57:08.934Z" agent="5.0 (X11)" etag="xBrTJXhf0yV0iBiW_cQ9" version="20.8.23" type="device"><diagram name="Page-1" id="c_o0WdvzdA73kFaHCeJq">5VnbUtswEP2aPLbjO8kjJKF0Cm2BzgB9U2zFVitbRlFu/fquY8l3kwC5TeAF60hay+fsrrRKx+yHiy8cxcEN8zDtGJq36JiDjmHomqXDvwRZSkR3jBTxOfEklgP35B9WUyU6JR6elAYKxqggcRl0WRRhV5QwxDmbl4eNGS2/NUY+rgH3LqJ19IF4IkjRrq3l+BUmfqDerGuyJ0RqsAQmAfLYvACZw47Z54yJ9Clc9DFN2FO8pPMuW3qzhXEciU0m3MbXV99uuw8/fvvPCPHL57vB9JMyM0N0Kr9YrlYsFQWcTSMPJ1a0jnkxD4jA9zFyk945qA5YIEIKLR0ex4TSPqOMr+aaHsLdsQv4RHD2Fxd6HLeLR2Po8TnyCHyD6otYhKWhe7kINBUMILlUzAVetJKgZ9SCU2IWYsGXMERNUGpIfzS6sj3PxbWVuEFBWFNNRNKh/Mx2zjk8SNpfIcEGCoAV8He8nv0tMGQ4ZYbMXgNDDQTZu+KnV6fDgxCVTcZFwHwWITrM0Yuyy+ZjrhmLJVV/sBBLmW+kfxWIBLL48rHYeEqMfbZVc7CQxtPWUrbStSYLfJl++B425S5+KTRltkPcx2Kd/9Tl5JgiQWbldWzfec2DqlMQ5KmkR7M6HpoEq/fqh5HKeqdUq6nnnKNlYUDMSCQmBcs/EyAPaEuvBLRd2Scq47P01zweHtIV5E6Tfcrb/cg4riRodu3jSoK6XufjQ2RBa8PQMg6ZBa3j8l7brG7hxme75r9Wg/9a9o4YsjdgKPLOkwM7tFyKJhPilokpezNeEPFYeC44JrRyv0waO3BLVYqsc0unWagN08jrNoa1md+pnmHTz5SzXtgSjIohq2oo5aFmaFu7g9PgPQ4VSZXAVut0s7rCeZ4mBRVobWqrvyLk+PL/au5IAXeYYgSxKXFY4qg6FrD0VQquOC8Eqyi7a7ngKRQ1FQhR4keJz4MPYsAvktAnUICey46QeB5tSxzloEiWWCixNK3X07Tt5BS9ciqwtPqO6DTVTbvaEc9afSIT7wZNEkobZT1K/bagExzfjkunbqtOHpkpPQZ4VpCp0HG6QpndIwsoleMLSv3CEEDeCWtgrL/r2K8G9TroaxhTHCZ8nbAQ1gaXTvsVor69fMdzAMYYiSmHs8Jl/w6aI44iNzhhYaqXB0ZdGL2pktidMk0byrtKibZTU9stU1YMv7v6fWtVe5jywX5r+WBZFUPafssHvdd6BslOhMMopTZOF/GRjozVk0h2AXio5GvUTyL1EN/jfUp2NFME6WcN9ylGA0VGdvHyCpKgmf8qmMZA/uOqOfwP</diagram></mxfile> |
doc/internal/doc.tex | ||
---|---|---|
1 |
\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 |
\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 |
\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 |
\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 |
|
|
61 |
\section{Verzovací systém Git} |
|
62 |
\paragraph{} Tato sekce se týká verzovacího systému Git (potažmo repozitáře Gitlab). |
|
63 |
|
|
64 |
|
|
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 |
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 |
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 |
\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 |
|
|
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í. |
|
104 |
|
|
105 |
\subsubsection{Obecná pravidla pro vytváření \textit{issues}} |
|
106 |
\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 |
\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 |
|
|
113 |
\end{itemize} |
|
114 |
|
|
115 |
\subsubsection{Možné fáze \textit{issues}} |
|
116 |
\begin{itemize} |
|
117 |
\item Backlog - analogie s TODO |
|
118 |
\item In progress |
|
119 |
\item To test (dev) - testování \textbf{vždy provádí jiný vývojář(tester)!} |
|
120 |
\item Code review |
|
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í |
|
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 |
\item Done - Issue hotova, uzavřena |
|
125 |
\end{itemize} |
|
126 |
|
|
127 |
\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 |
|
|
129 |
|
|
130 |
\paragraph{Typy issues} |
|
131 |
\begin{itemize} |
|
132 |
\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 |
\item Change request - vyžádaná změna od zákazníka/uživatele, která byla již dříve implementována |
|
138 |
\end{itemize} |
|
139 |
|
|
140 |
\paragraph{Typy priority} |
|
141 |
\begin{itemize} |
|
142 |
\item \textbf{Lowest} |
|
143 |
\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 |
\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 |
\end{itemize} |
|
148 |
|
|
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}. |
|
150 |
|
|
151 |
|
|
152 |
\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 |
|
|
162 |
\paragraph{} Poznámka: Je tedy zřejmé, že tento workflow přesně koreluje s navrženou stukturou repozitáře projektu. |
|
163 |
|
|
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} |
doc/internal/literatura.bib | ||
---|---|---|
1 |
@misc{Example, |
|
2 |
author = {Autor}, |
|
3 |
key = {}, |
|
4 |
title = {Název}, |
|
5 |
year = {2022}, |
|
6 |
howpublished = "Dostupné na \url{google.com}" |
|
7 |
} |
doc/internal/smernice/assets/aswi_branches.drawio | ||
---|---|---|
1 |
<mxfile host="app.diagrams.net" modified="2023-02-27T18:57:08.934Z" agent="5.0 (X11)" etag="xBrTJXhf0yV0iBiW_cQ9" version="20.8.23" type="device"><diagram name="Page-1" id="c_o0WdvzdA73kFaHCeJq">5VnbUtswEP2aPLbjO8kjJKF0Cm2BzgB9U2zFVitbRlFu/fquY8l3kwC5TeAF60hay+fsrrRKx+yHiy8cxcEN8zDtGJq36JiDjmHomqXDvwRZSkR3jBTxOfEklgP35B9WUyU6JR6elAYKxqggcRl0WRRhV5QwxDmbl4eNGS2/NUY+rgH3LqJ19IF4IkjRrq3l+BUmfqDerGuyJ0RqsAQmAfLYvACZw47Z54yJ9Clc9DFN2FO8pPMuW3qzhXEciU0m3MbXV99uuw8/fvvPCPHL57vB9JMyM0N0Kr9YrlYsFQWcTSMPJ1a0jnkxD4jA9zFyk945qA5YIEIKLR0ex4TSPqOMr+aaHsLdsQv4RHD2Fxd6HLeLR2Po8TnyCHyD6otYhKWhe7kINBUMILlUzAVetJKgZ9SCU2IWYsGXMERNUGpIfzS6sj3PxbWVuEFBWFNNRNKh/Mx2zjk8SNpfIcEGCoAV8He8nv0tMGQ4ZYbMXgNDDQTZu+KnV6fDgxCVTcZFwHwWITrM0Yuyy+ZjrhmLJVV/sBBLmW+kfxWIBLL48rHYeEqMfbZVc7CQxtPWUrbStSYLfJl++B425S5+KTRltkPcx2Kd/9Tl5JgiQWbldWzfec2DqlMQ5KmkR7M6HpoEq/fqh5HKeqdUq6nnnKNlYUDMSCQmBcs/EyAPaEuvBLRd2Scq47P01zweHtIV5E6Tfcrb/cg4riRodu3jSoK6XufjQ2RBa8PQMg6ZBa3j8l7brG7hxme75r9Wg/9a9o4YsjdgKPLOkwM7tFyKJhPilokpezNeEPFYeC44JrRyv0waO3BLVYqsc0unWagN08jrNoa1md+pnmHTz5SzXtgSjIohq2oo5aFmaFu7g9PgPQ4VSZXAVut0s7rCeZ4mBRVobWqrvyLk+PL/au5IAXeYYgSxKXFY4qg6FrD0VQquOC8Eqyi7a7ngKRQ1FQhR4keJz4MPYsAvktAnUICey46QeB5tSxzloEiWWCixNK3X07Tt5BS9ciqwtPqO6DTVTbvaEc9afSIT7wZNEkobZT1K/bagExzfjkunbqtOHpkpPQZ4VpCp0HG6QpndIwsoleMLSv3CEEDeCWtgrL/r2K8G9TroaxhTHCZ8nbAQ1gaXTvsVor69fMdzAMYYiSmHs8Jl/w6aI44iNzhhYaqXB0ZdGL2pktidMk0byrtKibZTU9stU1YMv7v6fWtVe5jywX5r+WBZFUPafssHvdd6BslOhMMopTZOF/GRjozVk0h2AXio5GvUTyL1EN/jfUp2NFME6WcN9ylGA0VGdvHyCpKgmf8qmMZA/uOqOfwP</diagram></mxfile> |
doc/internal/smernice/doc.tex | ||
---|---|---|
1 |
\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 |
\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 |
\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 |
\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 |
|
|
61 |
\section{Verzovací systém Git} |
|
62 |
\paragraph{} Tato sekce se týká verzovacího systému Git (potažmo repozitáře Gitlab). |
|
63 |
|
|
64 |
|
|
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 |
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 |
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 |
\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 |
|
|
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í. |
|
104 |
|
|
105 |
\subsubsection{Obecná pravidla pro vytváření \textit{issues}} |
|
106 |
\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 |
\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 |
|
|
113 |
\end{itemize} |
|
114 |
|
|
115 |
\subsubsection{Možné fáze \textit{issues}} |
|
116 |
\begin{itemize} |
|
117 |
\item Backlog - analogie s TODO |
|
118 |
\item In progress |
|
119 |
\item To test (dev) - testování \textbf{vždy provádí jiný vývojář(tester)!} |
|
120 |
\item Code review |
|
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í |
|
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 |
\item Done - Issue hotova, uzavřena |
|
125 |
\end{itemize} |
|
126 |
|
|
127 |
\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 |
|
|
129 |
|
|
130 |
\paragraph{Typy issues} |
|
131 |
\begin{itemize} |
|
132 |
\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 |
\item Change request - vyžádaná změna od zákazníka/uživatele, která byla již dříve implementována |
|
138 |
\end{itemize} |
|
139 |
|
|
140 |
\paragraph{Typy priority} |
|
141 |
\begin{itemize} |
|
142 |
\item \textbf{Lowest} |
|
143 |
\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 |
\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 |
\end{itemize} |
|
148 |
|
|
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}. |
|
150 |
|
|
151 |
|
|
152 |
\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 |
|
|
162 |
\paragraph{} Poznámka: Je tedy zřejmé, že tento workflow přesně koreluje s navrženou stukturou repozitáře projektu. |
|
163 |
|
|
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} |
doc/internal/smernice/literatura.bib | ||
---|---|---|
1 |
@misc{Example, |
|
2 |
author = {Autor}, |
|
3 |
key = {}, |
|
4 |
title = {Název}, |
|
5 |
year = {2022}, |
|
6 |
howpublished = "Dostupné na \url{google.com}" |
|
7 |
} |
Také k dispozici: Unified diff
Updated folder structure