Projekt

Obecné

Profil

Stáhnout (9.02 KB) Statistiky
| Větev: | Revize:
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}