Návrh a Implementace Rozšíření Do Systému Phabricator
Total Page:16
File Type:pdf, Size:1020Kb
Masarykova univerzita Fakulta informatiky Návrh a implementace rozšíření do systému Phabricator Diplomová práce Lukáš Jagoš Brno, podzim 2019 Masarykova univerzita Fakulta informatiky Návrh a implementace rozšíření do systému Phabricator Diplomová práce Lukáš Jagoš Brno, podzim 2019 Na tomto místě se v tištěné práci nachází oficiální podepsané zadání práce a prohlášení autora školního díla. Prohlášení Prohlašuji, že tato diplomová práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Lukáš Jagoš Vedoucí práce: Martin Komenda i Poděkování Srdečně chci na tomto místě poděkovat vedoucímu mé diplomové práce RNDr. Martinu Komendovi, Ph.D. za cenné náměty a odborné vedení. Dále chci poděkovat Mgr. Matěji Karolyi za všestrannou po- moc při implementaci praktické části práce a Ing. Mgr. Janu Krejčímu za zpřístupnění testovacího serveru a technickou podporu. iii Shrnutí Diplomová práce se zabývá nástroji pro projektové řízení. V teore- tické části jsou vymezeny pojmy projekt a projektové řízení. Poté jsou představeny vybrané softwarové nástroje pro projektové řízení a je provedeno jejich srovnání. Pozornost je zaměřena na systém Phabrica- tor, který je v práci detailně popsán. V praktické části je navrženo rozšíření Phabricatoru na základě analýzy potřeb a sběru požadavků. Výsledkem je rozšířující modul po- skytující přehledné informace o úkolech z pohledu času a náročnosti, čímž zefektivní jejich plánování a proces týmové spolupráce. iv Klíčová slova projektové řízení, Phabricator, PHP, reportovací modul, SCRUM v Obsah 1 Projektové řízení 3 1.1 Projekt a projektové řízení ..................3 1.2 SW nástroje pro projektové řízení ...............4 1.3 Přehled nástrojů z oblasti řízení projektů ...........6 1.3.1 Phabricator . .6 1.3.2 Redmine . .6 1.3.3 Easy Project . .7 1.3.4 Jira . .7 1.3.5 Zoho projects . .7 1.3.6 @Task . .7 1.3.7 Microsoft project . .8 1.3.8 ProWorkflow . .8 1.4 Srovnání nástrojů .......................8 1.5 Cíle práce ........................... 10 2 Phabricator 11 2.1 Konfigurace Phabricatoru ................... 12 2.2 Možnosti rozšíření funkcionality Phabricatoru ........ 13 2.2.1 Přidáním zdrojových kódů do programového adresáře: . 13 2.2.2 Vytvořením knihovny: . 13 2.3 Přidání CSS a Javascript souborů .............. 14 2.4 Schéma databáze ....................... 16 2.5 Uživatelská pole ........................ 17 2.5.1 Základní uživatelská pole . 17 2.5.2 Pokročilá uživatelská pole . 19 2.6 Nástroje pro vývoj Phabricatoru ............... 20 2.6.1 Arcanist . 20 2.6.2 Libphutil . 20 2.6.3 DarkConsole . 21 2.6.4 Multimeter . 22 3 Analýza požadavků 23 3.1 Správa projektů a úkolů .................... 23 3.1.1 Projekt . 23 vii 3.1.2 Fáze . 24 3.1.3 Úkol . 24 3.1.4 Uživatel . 24 3.2 Organizace a metodika práce Webstudia ........... 24 3.3 Specifikace požadavků ..................... 27 3.3.1 Požadavky od Webstudia . 27 3.3.2 Požadavky od uživatelské komunity . 27 4 Návrh řešení 31 4.1 Vytíženost pracovníka .................... 31 4.2 Strom úkolů .......................... 32 5 Implementace 33 5.1 Struktura projektu ...................... 33 5.2 Práce s databází ........................ 35 5.2.1 SQL dotazy . 35 5.2.2 LiskDAO . 36 5.2.3 ORM . 37 5.3 Internacionalizace a lokalizace ................ 38 5.4 Ladící nástroje ......................... 38 5.5 Testování ........................... 39 5.5.1 Jednotkové testy . 39 5.5.2 Funkční testy . 39 5.5.3 Akceptační testy . 40 6 Závěr 41 Literatura 43 A Přílohy 47 A.1 Obsah ............................. 47 viii Seznam tabulek 1.1 Srovnání nástrojů pro projektové řízení 9 3.1 Funkční požadavky Webstudia 28 3.2 Nefunkční požadavky Webstudia 29 3.3 Požadavky od uživatelské komunity 30 ix Seznam obrázků 1.1 Projektový trojimperativ [3] 4 2.1 Příklad definice uživatelských polí 19 3.1 ER diagram zachycující vztahy mezi projekty, úkoly a uživateli. 23 3.2 Kanban tabule 24 5.1 Adresářová struktura projektu 34 6.1 Statistika o vytíženosti pracovníka 42 6.2 Strom úkolů zobrazující naplánované a odpracované hodiny na jednotlivých úkolech a jejich podúkolech 42 xi Úvod Diplomová práce se zabývá nástrojem Phabricator, který je určen pro projektové řízení. Řízení projektů se stává stále důležitější disciplínou. Tato disciplína může být velmi komplexní a náročná, jelikož závisí na mnoha faktorech. Proto se v dnešní době většina z nás neobejde bez softwarových nástrojů, které nám práci při řízení projektů usnadňují. Vybraným softwarovým nástrojům se věnuje teoretická část práce. Nástroje jsou zde srovnány na základě požadavků, které jsou na ně uživateli kladeny. Pozornost je zaměřena na již zmíněný nástroj Phab- ricator, kterému se věnuje celá praktická část. Práce je psána ve spolu- práci s Webstudiem - oddělením Institutu biostatistiky a analýz (IBA) Lékařské fakulty, které nástroj používá k práci. Phabricator je obecným řešením, tudíž některé jeho vlastnosti neodpovídají specifickým uži- vatelským požadavkům. Cílem práce je navrhnout rozšíření systému, které bude na základě analýzy těmto požadavkům vyhovovat. 1 1 Projektové řízení V úvodu kapitoly jsou definovány pojmy projekt a projektové řízení, které jsou klíčové pro další části diplomové práce. Další část se zabývá softwarovými nástroji pro řízení projektů. Popisuje základní rysy, které by měly nástroje obecně nabývat, diskutuje motivaci pro jejich použití a jejich hlavní přínosy. Poté jsou představeny konkrétní nástroje z této oblasti. V závěru kapitoly jsou nástroje srovnány. 1.1 Projekt a projektové řízení Projekt můžeme definovat jako vynaložené úsílí k vytvoření jedineč- ného produktu, služby nebo výsledku v rámci časového intervalu [1]. Projekt končí, pokud jsou naplněny jeho cíle nebo naopak může být ukončen, pokud cíle není možné splnit nebo již neexistuje potřeba pro projekt. Výsledek projektu může být jak hmotný, tak nehmotný. Ačkoli se některé prvky a aktivity mohou vyskytovat opakovaně v různých pro- jektech, je výsledek každého projektu jedinečný. Jako názorný příklad můžeme uvést stavbu budovy. Přestože se na stavbu použije stejný materiál a dokonce bude stavební práce provádět stejný tým, budovy mohou být zcela odlišné. Záleží totiž na mnoha dalších aspektech, na- příklad na okolí stavby, stavebním návrhu, momentálních okolnostech atd. Dle Schwalbe [2] má projekt následující rysy: 1. Má jedinečný účel, který by měl být definován jeho cílem. 2. Je dočasný, tzn. má jasně definovaný začátek a konec. 3. Je realizován postupně nebo iterativní formou. Projekty jsou na začátku zpravidla definovány obecně, postupem času se rozpracovávají detaily. 4. Vyžaduje různé zdroje, ať už jsou to např. lidské zdroje, hard- ware nebo software. 5. Měl by mít primárního zákazníka nebo sponzora, který bude určovat směr projektu. 3 1. Projektové řízení 6. Zahrnuje nejistotu. V některých případech je těžké definovat cíl přesně, určit jak dlouho bude projekt trvat, jaké budou finanční náklady apod. Projekt je ovlivněn třemi základními parametry či omezeními: ∙ Rozsah ∙ Náklady ∙ Čas Vztah mezi těmito parametry se označuje jako projektový trojimpera- tiv (viz obr. 1.1). Obrázek 1.1: Projektový trojimperativ [3] Vrcholy trojimperativu jsou na sobě vzájemně závislé, změnou jed- noho parametru ovlivníme zbylé dva. Pokud například zkrátíme čas při zachování rozsahu projektu, musíme pro zachování kvality pro- jektu zvýšit náklady apod. Projektové řízení je aplikování znalostí, dovedností, nástrojů a tech- nik při realizaci činností projektu za účelem dosažení projektových požadavků. 1.2 SW nástroje pro projektové řízení Softwarem pro řízení projektů se rozumí aplikace, která poskytuje jednotlivci nebo týmu lidí nástroje usnadňující řízení projektu [4]. Tyto nástroje poskytují relevantní informace k projektu. Zpravidla nabízí 4 1. Projektové řízení plánování časových a finančních zdrojů, zadávání a přiřazování úkolů k projektům, kontrolu kvality, hlášení o problémech a chybách. Dále mohou poskytovat prostředky pro správu dokumentace a pro spolu- práci lidí podílejících se na projektu. Cílem nástrojů je zvýšit efektivitu poskytnutím jasnějšího pohledu na vývojový cyklus, zlepšením ko- munikace, koordinací činností apod. Níže jsou uvedeny uživatelsky žádané vlastnosti, které poskytují dnešní nástroje pro projektové řízení [4]: 1. Webové rozhraní - k aplikaci se přistupuje pomocí webového prohlížeče, který funguje jako tenký klient a uživatel nemusí instalovat žádný software. 2. Uživatelské role a oprávnění - každému uživateli je možné při- dělit roli s příslušnými právy, na základě kterých je mu v apli- kaci umožněno provádět určité akce. 3. Správa zdrojů - aplikace umožňuje spravovat zdroje potřebné k projektu. Každému zdroji lze přiřazovat důležitost a jeho dostupnost. 4. Sledování času (Time tracking) - informace o času stráveném na jednotlivých úkolech nebo celých projektech. 5. Plánování úkolů - každému úkolu je možné přiřadit osobu zodpovědnou za jeho řešení a nastavit datum dokončení úkolu. 6. Centralizovaná databáze dokumentů - možnost uložení růz- ných druhů dokumentů na jednotné úložiště přístupné všem oprávněným uživatelům. 7. Správa verzí - sledování změn v průběhu času v souborech souvisejících s projektem a možnost obnovení konkrétní verze souboru. 8. E-mailová notifikace - zasílání e-mailových zpráv informují- cích o změnách stavu projektu. 9. Reporting - poskytování informací o stavu projektu. Mohou to být např. informace o finančním rozpočtu, nákladech,