Projekt

Obecné

Profil

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