Projekt

Obecné

Profil

Stáhnout (8.84 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
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
    \item To test (dev) - testování \textbf{vždy provádí jiný vývojář/tester!}
108
    \item Code review
109
    \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
\end{itemize}
114

    
115
\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).
116

    
117

    
118
\paragraph{Typy issues}
119
\begin{itemize}
120
    \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
\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
\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

    
139
\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

    
149
\paragraph{} Poznámka: Je tedy zřejmé, že tento workflow přesně koreluje s navrženou stukturou repozitáře projektu.
150

    
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}
(2-2/3)