Projekt

Obecné

Profil

Stáhnout (8.73 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
\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}