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 |
|
|
\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 |
f314eab4
|
HarryHeres
|
\paragraph{} V rámci řízení projektu bylo ustanoveno, že se tým bude \textbf{pravidelně} scházet v on-site/online formě \textbf{každé úterý od 13:00 do 14:00} (tzv. \textit{weekly-standups; případně každý čtvrtek v závislosti na možnostech všech 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 |
|
|
\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.
|
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á, 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).
|
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ů (\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}.
|
84 |
|
|
|
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.
|
90 |
|
|
|
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ů:
|
94 |
|
|
\begin{itemize}
|
95 |
|
|
\item Každá \textit{issue} bude obsahovat krátký, nicméně dostatečně deskriptivní popis, čeho konkrétně se týká
|
96 |
|
|
\item Každá \textit{issue} bude \textbf{jednoznačně identifikovatelná} za pomocí tzv. \textbf{labelů} (specifikováno dále)
|
97 |
|
|
\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)
|
100 |
|
|
|
101 |
|
|
\end{itemize}
|
102 |
|
|
|
103 |
|
|
\paragraph{Jednotlivé fáze úkolů}
|
104 |
|
|
\begin{itemize}
|
105 |
|
|
\item Backlog - analogie s TODO
|
106 |
|
|
\item In progress
|
107 |
f314eab4
|
HarryHeres
|
\item To test (dev) - testování \textbf{vždy provádí jiný vývojář/tester!}
|
108 |
|
|
\item Code review
|
109 |
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í
|
110 |
|
|
\item To test (prod) - otestování na produkčním prostředí
|
111 |
|
|
\item To deploy (prod) - končí schválením merge requestu do \textbf{masteru}
|
112 |
|
|
\item Done - Issue hotova, uzavřena
|
113 |
c9a22ab3
|
HarryHeres
|
\end{itemize}
|
114 |
|
|
|
115 |
00c2c634
|
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é budou součástí větší úpravy).
|
116 |
|
|
|
117 |
|
|
|
118 |
c9a22ab3
|
HarryHeres
|
\paragraph{Typy issues}
|
119 |
|
|
\begin{itemize}
|
120 |
00c2c634
|
HarryHeres
|
\item Epic - velký logický blok, který obaluje novou funkcionalitu nebo velké množství úprav
|
121 |
|
|
\item Feature - nová funkcionalita (zejména front-endové změny)
|
122 |
|
|
\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
|
123 |
|
|
\item Task - základní úkol (ideálně atomický); využití na rozdělení ticketu do menších podúkolů
|
124 |
|
|
\item Bug - Chyba, kterou je nutno opravit
|
125 |
|
|
\item Change request - vyžádaná změna od zákazníka/uživatele, která byla již dříve implementována
|
126 |
c9a22ab3
|
HarryHeres
|
\end{itemize}
|
127 |
|
|
|
128 |
|
|
\paragraph{Typy priority/urgentnosti}
|
129 |
|
|
\begin{itemize}
|
130 |
|
|
\item \textbf{Low} - nevyžaduje velkou pozornost (příkladem mohou být nekritické části aplikace, ,,nice to have(s)''),
|
131 |
|
|
\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 |
|
|
\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í)
|
134 |
|
|
\end{itemize}
|
135 |
|
|
|
136 |
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}.
|
137 |
|
|
|
138 |
c9a22ab3
|
HarryHeres
|
|
139 |
00c2c634
|
HarryHeres
|
\section{Aplikace pro řízení projektů - Jira}
|
140 |
|
|
\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.
|
141 |
|
|
Pro sjednocení vývojového procesu byl vytvořen následující projektový workflow:
|
142 |
|
|
|
143 |
|
|
\begin{figure}
|
144 |
|
|
\centering
|
145 |
|
|
\includegraphics[width=\linewidth]{assets/jira_workflow.png}
|
146 |
|
|
\caption{Projektový workflow v systému Jira}
|
147 |
|
|
\end{figure}
|
148 |
c9a22ab3
|
HarryHeres
|
|
149 |
00c2c634
|
HarryHeres
|
\paragraph{} Poznámka: Je tedy zřejmé, že tento workflow přesně koreluje s navrženou stukturou repozitáře projektu.
|
150 |
c9a22ab3
|
HarryHeres
|
|
151 |
|
|
|
152 |
|
|
% \cite{Example}
|
153 |
|
|
|
154 |
|
|
|
155 |
|
|
% \clearpage
|
156 |
|
|
% \section{Závěr}
|
157 |
|
|
|
158 |
|
|
% \newpage
|
159 |
|
|
% \bibliographystyle{unsrt}
|
160 |
|
|
% {\raggedright\small
|
161 |
|
|
% \bibliography{literatura}
|
162 |
|
|
% }
|
163 |
|
|
|
164 |
|
|
\end{document}
|