Redmine - tímové projekty efektívne a elegantne

Redmine - tímové projekty efektívne a elegantne
Každý programátor sa určite stretol s problémami, ktoré so sebou prináša riadenie stredne veľkého až väčšieho projektu. Existuje niekoľko aplikácií, ktoré sa snažia uľahčiť vívoj. V tomto článku si predstavíme open-source projekt Redmine, ktorý môže byť ďalším členom vo vašom tíme.

Dobré plánovanie ako aj zohratý tím sú základom pre úspešný projekt. Dnes je veľmi ťažké vyvíjať projekt samostatne. Je dopyt po čoraz väčších a zložitejších projektoch, u ktorých je požiadavka za relatívne krátke časové obdobie dospieť k výsledku. Aj preto došlo k rozvoju rôznych agilných metodík a s tým ruka v ruke k vývoju rôznych pomocných programov. Použiť dnes systémy ako SVN, Git a im podobné sa stáva rutinou. Je dôležitá komunikácia s členmi tímu ako aj s koncovými zákazníkmi.

Ako webovú aplikáciu pre podporu vývoja som osobne veľmi dlhú dobu používal Flyspray. Tento systém sa používa napríklad v projekte Archlinux, kde slúži na hlásenie chýb (pre to bol aj navrhnutý). Žiaľ posledná verzia je z mája 2009 a dnes poskytujú mnohé systémy funkcie, ktoré sú minimálne o krok vpred. Takýmto systémom je i Redmine. Redmine je napísaný v Ruby, čo môže byť pre veľa čitateľov dosť veľká prekážka. Mnoho hostingov poskytuje len PHP a Ruby vo svojej ponuke uvádzajú za nemalý príplatok. Ak však nájdete hosting, ktorý Vám vyhovuje alebo máte k dispozícii vlastný server, Redmine vás určite nesklame. Celý systém je distribuovaný pod licenciou GPL v2. Zdrojové kódy je možné nájsť na domovskej stránke projektu.

Čo dostanem do vienka?

Na domovských stránkach projektu je možné si vyskúšať Redmine demo. Samotná konfigurácia na andministrátorskej úrovni je veľmi jemná. V systéme môžete naraz pracovať nezávisle na niekoľkých projektoch. Pre každý projekt je možné pridať užívateľov, ktorým môžu byť pridelené rôzne práva ako aj prístup k jednotlivým projektom. Každý projekt môže disponovať modulmi, ktoré sa dajú v adminitrátorskej sekcii voliteľne povoliť, prípadne zakázať. Nechýba ani webová nadstavba väčšiny verzovacích systémov, ktorá je skutočne prehľadná. Na domovskej stránke je možné ďalej nájsť niekoľko pluginov, ktorými je môžné do systému vniesť rozširujúcu funkcionalitu. Redmine disponuje podrobnou dokumentáciou, ak vám teda predsa len niečo nevyhovuje alebo si plánujete Redmine rozšíriť, určite tu zábrany žiadne nehľadajte.

Redmine je preložený do niekoľkých jazykov, medzi ktorými nájdete slovenčinu i češtinu. Preklady sú kvalitné, no pri prvotnej inštalácii sú preložené niektoré časti (ako napríklad fázy projektu), ktoré neskôr nie je možné hromadne zmeniť späť na anglické (len ručne). Osobne uprednostňujem anglický preklad, preto aj v texte nájdete anglické výrazy z inštalácie Redmine.

Zavolajte inštalatéra! - krátky úvod do inštalácie

Redmine je možné stiahnuť z domovskej stránky projektu. Aktuálna stabilná verzia je 1.3.0 vydaná 10.12.2011. Niektoré distribúcie (napríklad Ubuntu, Gentoo) majú Redmine obsiahnutý vo svojich repozitároch. Pokiaľ ste stiahli archív z oficiálnych stránok, archív stačí rozbaliť do požadovaného priečinku a môžete začať s konfiguráciou. Na stránkach Redmine je možné ďalej nájsť podrobne popísaný postup ako vytvoriť záznam v databáze ako aj celý postup inštalácie.

Redmine je možné spustiť pomocou nástroja WEBrick. Nie je však bezpečné prevádzkovať na ňom Redmine, primárne je určený na developerské účely. Riešením je využiť web server Mongrel. Pokiaľ administrujete Apache, pravdepodobne siahnete po module passenger (mod_rails). V prípade využitia passenger však dojde k mierne väčšiemu zaťaženiu serveru než u WEBrick (osobný postreh).

Na stránkach projektu je inštalačný proces popísaný skutočne podrobne, preto odporúčam oficiálnu Wiki.

Hello, Redmine! - prvé spustenie

Po úspešnej inštalácii sa môžeme pustiť do objavovania prekvapení, ktoré pre nás pripraví Redmine. Po prvom prihlásení ako administrátor sa pred nami zobrazí úvodná stránka. Na hornej lište sú k dispozícii základné sekcie ako Home, My page, Projects, Administration a Help. V pravej časti lišty názov administrátora, My account a Sign out.

V sekcii My account sú k dispozícii základné nastavenia užívateľa ako napríklad nastavenie mena, priezviska, e-mailu, jazyka a časovej zóny. V prípade doinštalovania prípadných pluginov, práve sem môžu byť pridané základné nastavenia pluginu, ktoré si môže každý užívateľ meniť. Položka obsahujúca vaše prihlasovacie meno vás odkáže na stránku so súhrnom informácií o vás - posledné aktivity, či projekty ktorých sa účastníte.

Položkou Help vás Redmine odkáže na domovskú stránku projektu, konkrétne Wiki, kde je spísaných množstvo užitočných rád a návodov do prehľadných sekcií. Ak budete riešiť nejaký problém, určite sa nezabudnite sem pozrieť.

Pod názvom Projects sa nachádza zoznam projektov, do ktorých máte oprávnenie nahliadnúť, prípadne sa u nich priamo podieľať na vývoji.

My page obsahuje informácie o užívateľovi. Nájdete tu úlohy, ktoré vám boli pridelené, alebo vami nahlásené chyby v jednotlivých projektoch. Odkazom Home sa dostanete späť na svoju úvodnú stránku, kde nájdete zoznam posledných projektov alebo zoznam posledných noviniek zo všetkých zainteresovaných projektov.

Preskočili sme voľbu Administration. Táto položka je samozrejme dostupná len užívateľom s administrátorskými právami. Samotná administrácia je rozdelená do niekoľkých podsekcií, ktoré zaručujú prehľadnú správu systému.

Ticho, pracujem! - základná práca na projekte

Pred tým ako prejdeme k administrácii, popíšeme si nástroje, ktorými je možné spestriť každodennú rutinu. Redmine disponuje modulmi, ktoré je možné voliteľne povoliť pre každý projekt osobitne. Využitím týchto modulov získavate všetky potrebné informácie o projekte na jednom mieste veľmi prehľadne.

Po vybratí voľby Project a zvolením projektu sa dostávame do užívateľskej časti. V sekcii Overview získa užívateľ základný prehľad o projekte. Zaujímavejšou voľbou je však Activity, kde sa nachádzajú posledné novinky ako aj prehľad aktivít na fóre, wiki či priamo v repozitári zoradené chronologicky. Disponujete tak pekným prehľadom o udalostiach, ktoré pravdepodobne vyžadujú vašu pozornosť.

Čitatelia, ktorí v minulosti pracovali so systémami zabezbečujúce bug tracking uvítajú sekciu Issues (v slovenskom preklade Úlohy). Tu je Redmine priam stelesnená dokonalosť. Každá úloha môže nadúbudať rôzny stav či prioritu. Ďalej môže byť zaradená prehľadne do kategórie a k určitej verzii vyvíjaného programu. Môžete zadať časový interval úlohy ako aj odhadovaný čas v človekohodinách určený pre riešenie. Úlohu je možné priradiť ku konkrétnemu riešiteľovi. Zmenu stavu úlohy stupňujete pomocou percent, pričom je možné uviesť odpracovaný čas. Systém priebežne počíta človekohodiny pre daný projekt a o akýchkoľvek zmenách úlohy môžete byť informovaný pomocou e-mailu. Úlohy sa dajú ďalej členiť do podúloh a priraďovanie sesterských úloh je samozrejmosťou.

Pokiaľ využívate modul Repository, naviac môžete zviazať váš commit s niekoľkými issue pomocou kľúčových slov, ktoré si môžete sami zadať. Implicitne sa využívajú refs alebo closes a číslo issue. Napríklad

refs #42 #33
pre spojenie s issue 42 a 33. Krátky súhrn s odkazom na commit sa následne zobrazí pri danej issue.

Z vytvorených úloh je v sekcii Gantt generovaný Ganttov diagram a v sekcii Calendar je k dispozícii jednoduchý kalendár. Tu mi chýba len export pre následné importovanie udalostí do svojho obľúbeného kalendára. Naviac si môžete nechať zobraziť Roadmap, ktorá vám súhrnne napovie koľko percent projektu je ešte potrebne implemenentovať a koľko dní vám na to zostáva. Samozrejme ide o odhad na základe dokončených a nedokončených úloh (issues) a ich predpokladaného času na dokončenie.

V sekcii News sú chronologicky usporiadané novinky o projekte. Tieto novinky sú zasielané prostredníctovom e-mailu a zobrazujú sa v sekciách s prehľadmi o projektoch. U novinkách je možné viesť diskusiu pridávaním komentárov. Je však nutné priamo vybrať danú novinku, čo môže viesť k ľahkému prehliadnutiu komentárov pri bežnom čítaní. Zasielanie komentárov na e-mail si samozrejme môžete vyžiadať.

Ďalšou vymoženosťou Redmine je Wiki. Veľmi jednoducho si môžete vytvoriť vlastnú s poznatkami. Tu hodnotím veľmi pozitívne spôsob formátovania textu. Namiesto zápasenia s HTML má Wiki vlastnú a jednoduchú syntax. Naviac sa môžete elegantne odkazovať do repozitára, konkrétneho riadku v zdrojovom kóde, dokumentov, konkrétnej verzii, komentáru vo fóre či iných častí Wiki. Nemusíte sa obávať ani prípadnej migrácie, Redmine si všetky adresy uchováva vrámci svojej internej štruktúry.

Pokiaľ u vás vzbudilo pozornosť spomenuté fórum, môžete sa s ním zoznámiť výberom položky Forums. Tu je môžné vytvoriť niekoľko fór a jednotlivé príspevky tak jednoducho členiť do kategórií. Nájdete tu všetky intuitívne možnosti, ktoré by ste od jednoduchého fóra očakávali. Citovanie príspevkov, nahrávanie príloh, zasielanie príspevkov na e-mail, uzamknutie témy, či vytvorenie sticky témy, to všetko vám Redmine ponúka otvorene ako na dlani. Aj tu sa využíva formátovanie špecifické pre Redmine spolu so všetkými svojími vymoženosťami. Ako perličku na torte Redmine pri detekcii súboru, ktorý je výstupom diff, automaticky zadaný diff zobrazí vizuálne.

Sekcia Files a Documents sú jednoduchým prehľadom dokumentového skladu vášho projektu. Ide o bežný upload súborov, ktoré môžete priradiť k jednotlivým verziám projektu.

Kto očakával sekciu, ktorá by bola webovou nadstavbou repozitára, práve nastal ten správny čas predstaviť si modul Repository. Redmine aktuálne umožňuje integráciu s verzovacími systémami SVN, CVS, Git, Mercurial, Bazaar a Darcs. Jednotlivé commity sú pekne vizuálne zobrazené a môžete sa jednoduchým spôsobom pohybovať v adresárovej štruktúre repozitára. Na zobrazovanie informácií jednotlivých commitov ani na históriu zmien vívojári Redmine nezabudli. Naviac vás môže potešiť jednoduchá generovaná štatistika aktivity jednotlivých autorov na projekte, či počet zmien za mesiac vynesené do grafu.

Šéfom som tu ja! - administrácia Redmine

Ako už bolo spomenuté, administrátorská sekcia je členená na niekoľko základných podsekcii. Pre ich podrobné porozumenie opäť odporúčam výborne spracovaného sprievodcu vo Wiki na oficiálnych stránkach. My sa spoločne pokúsime v administrátorskej sekcii zorientovať a urobiť si prehľad ponúkaných možností.

Prvou podsekciou je položka Projects, kde nájdeme správu projektov. Každý projekt môže mať dva stavy - aktívny a archivovaný. V prípade archivovaného projektu nie je možné do projeku vstúpiť ani ho upravovať. Práve v tejto časti administrátorskej sekcie sa naskytá možnosť vytvoriť si svoj prvý projekt. Pri vytváraní projektu stačí vyplniť niekoľko základných informácií o projekte (názov, identifikátor, popis...). Redmine naviac umožňuje vytvorenie verejného projektu (je prístupný i neprihláseným užívateľom) ako aj projektu pre uzavretú skupinu. Pri vytváraní projektu si môžete vybrať spomedzi modulov, ktoré chcete spolu s projektom prevádzkovať, členov s ktorými na projekte spolupracujete a nakonfigurovať špecifické nastavenia jednotlivých modulov pre váš projekt (napríklad sekcie fóra a pod.). Medzi projektami môžu byť závislosti typu otec - syn, vznikne tak stromová štruktúra projektov.

V ponuke administrátorskej sekcie je ďalšou možnosťou administrácia užívateľov a správa skupín. Tieto dve sekcie spolu úzko súvisia. V sekcii Users môžete spravovať existujúcich užívateľov ako aj vytvárať nových. V obecných nastaveniach Redmine si sami vyberiete, akým spôsobom sa užívatelia do systému môžu zaregistrovať. Pokiaľ pracujete na malom firemnom projekte, pravdepodobne uprednostníte možnosť manuálneho pridávania užívateľov a tým zakážete registráciu užívateľa mimo administrátora alebo jednoducho povolíte užívateľské konto na vyžiadanie. V sekcii Groups si môžete svojich kolegov rozčleniť do skupín a skupine ako celku nastaviť prístupové práva k daným projektom.

V Redmine existujú užívateľské role. Takýmto jednoduchým mechanizmom môže manážer zabrániť tomu, aby napríklad tester nepublikoval novinky, pokiaľ to je nežiadúce. Tu autori Redmine skutočne nešetrili a práva môžete nastaviť s maximálnou jemnosťou.

Administrátorská sekcia disponuje tzv. Trackers. Oficiálna príručka definuje tracker ako iný typ úlohy. V podstate ide o mechanizmus, ktorý umožňuje triediť úlohy do Roadmap či Changelog. Tým Redmine umožňuje automatické vytváranie changelogu pre každú verziu vyvíjaného produktu zvlášť. Podobne si môžete definovať vlastné úrovne úloh a nim následne definovať workflow, ktorý používate pri vývoji.

Pokiaľ sa vám škála možností pre konfiguráciu Redmine zdá primalá a chceli by ste si vytvoriť vlastné špecifické nastavenie, vhodným prostriedkom je podsekcia Custom fields. Tu môžete pridať vyplňovacie pole do modulov. Mnohé pluginy využívajú práve tento mechanizmus pre svoju konfiguráciu.

Enumerations poskytujú možnosť pre definovanie kategórii dokumentov v dokumentovom slade (sekcia Documents), nastavenie priorít úloh a typov činností. Pri zaznamenávaní odpracovaného času si môžete vybrať činnosť, ktorú ste prevádzali. Takýmto jednoduchým spôsobom si spresníte prehľad koľko času ste strávili napríklad testovaním a koľko programovaním.

Dostávame sa k posledným položkám administrátorskej sekcie. Odkazom Settings sa dostaneme k základným nastaveniam Redmine (nastavenie e-mailu, základným nastaveniam repozitárov, implicitného jazyka, časovej zóny a pod.). Ak využívate LDAP, pravdepodobne uvítate fakt, že ho Redmine natívne podporuje. Korektnú inštaláciu pluginov môžete overiť v sekcii Plugins. Základné informácie o Redmine a informácie spojené s korektnou inštaláciou Redmine samotného nájdete v časti Information.

Dobrá rada nad soľ a soľ nad zlato - užitočné tipy a triky

Osobne mám s prevádzkou Redmine pozitívne skúsenosti. Redmine nahradil u mňa starú inštaláciu Flyspray. Pocítil som mierne vyššiu záťaž na strane serveru, no v porovnaní s Flyspray mi Redmine ponúka výrazne viac.

Veľmi som si obľúbil plugin "Diff Emails" od Kah Seng Tay, ktorý zasiela e-mail o každej zmene v repozitári s krátkou informáciou o zmene a s časťou diffu. Redmine však automaticky nekontroluje zmeny v repozitári a notifikácia je zaslaná až v momente, keď niekto vyžiada kontrolu aktualizácii v repozitári. K tejto kontrole dochádza až po vstupe do sekcie Repository, čo celý proces načítania mierne spomalí. Riešením je ako ináč cron a vypnutie kontroly aktualizácii pri vstupe do sekcie Repository. Učiníte tak vypnutím voľby Autofetch commits v Settings - Repositories.

Do /etc/crontab stačí pridať riadok:

*/5 * * * * user rake -f /cesta/redmine/Rakefile RAILS_ENV=vasa_instalacia_redmine redmine:fetch_changesets
pre kontrolu zmien každých 5 minút.

Kde ja končím, vy začínate... - záver

Pokiaľ hľadáte flexibilnú webovú aplikáciu pre manažment projektu, či projektov dúfam, že vám toto stručné zoznámenie s Redmine pomohlo. Redmine ponúka intuitívnu konfiguráciu a prehľadnú správu projektu, ktorá môže byť slušným základom pri tvorbe kvalitného softwaru. Moduly pokrývajúce komunikáciu s tímom až po hlásenie chýb sú na jednom mieste a vy sa môžete plne venovať vývoju. Osobne som nenašiel podobný open-source projekt, ktorý by dosahoval v tejto kategórii kvality Redmine.

Výhody

  • Podporuje riadenie viacero projektov naraz
  • Jemná konfigurácia prístupových práv pre členov
  • Prehľadná konfigurácia
  • Moduly projektu
  • Spolupravuje s väčšinou známych verzovacích systémov
  • Open-source

Nevýhody

  • Vyžaduje Ruby on Rails (pre niekoho nevýhoda)
  • Napriek prehľadnej konfigurácii je potrebný nejaký čas na zoznámenie
  • Možné mierne vyššie zaťaženie serveru v porovnaní s PHP riešeniami
Užitočné odkazy:
    • dakujem! 04.02.2012 | 09:14
      Avatar chatpall   Používateľ
      Pekny clanok!!!
      NERUSTE TENTO UCET!!!
    • Dik 04.02.2012 | 12:58
      Avatar Tomáš Srnka Barz čo, už asi všetko  Administrátor
      Dik za clanok, prave sme minuly tyzden preberali na co prejdeme vo firme - vyhral Redmine :-).
      Dlho som robil linuxos.sk, neskôr založil vpsFree.cz, posledných pár rokov ako tech. riaditeľ vo Websupporte
      • Re: Dik 27.02.2012 | 09:24
        Matfej   Návštevník
        kompletne riesenie redmine + poradenstvo
        www.d2u.sk/services/web-application/redmine/
        • Re: Dik 27.02.2012 | 10:08
          Avatar Tomáš Srnka Barz čo, už asi všetko  Administrátor
          Dik, ale ja myslim, ze este na jeden redmine pri tych par sto virtualoch sa miesto najde :).
          Dlho som robil linuxos.sk, neskôr založil vpsFree.cz, posledných pár rokov ako tech. riaditeľ vo Websupporte
    • re: 04.02.2012 | 22:35
      Avatar uid0 Debian  Používateľ
      v debiane je balicek. mne sa tiez redmine pozdava. keby som potreboval nieco svoje, tak je to moja prva volba, inak je jednoduchsie asi zacat pouzivat github.
      Debian. apt-get into it…
    • Redmine 13.04.2012 | 20:41
      Avatar Miroslav Bendík Gentoo  Administrátor
      Pred pár mesiacmi som začal používať na riadenie projektov Redmine. Musím uznať, že je to fakt skvelý softvér, ktorý vyzerá po nainštalovaní témy A1 úplne luxusne. Ako server sa dá bezproblémov používať kombinácia thin a nginx.
    • redmine 20.06.2012 | 18:40
      Rado   Návštevník
      Redmine trochu inak som nasiel aj na www.mxhosting.eu/35-projektovy-manager-redmine, nemam este skusenost ale nie som moc zbehly v server veciach tak by som to skusil.
    • lepsie je pouzit 21.09.2012 | 16:50
      aa   Návštevník
      cvs | svn