6 nástrojů pro úspěšně fungující vývoj
Vývoj to je především souhra procesů a nástrojů. V tomto článku se podíváme na pět základních nástrojů, které musí mít každý softwárový tým, který chce úspěšně fungovat. Všechny tyto nástroje fungují ve vzájemné kooperaci a proto se jejich přínos zároveň násobí.

Source repository
Repositoř zdrojových souborů a správa, plus jejich verzování je dneska základ. Kdo by také dnes neznal značky jako, CVS či SVN. Při výběru repositoře pro zdrojáky doporučuji zohlednit jeden velice důležitý faktor a to podporu v IDE. Command line klient sice není k zahození, ale komfort poskytovaný v IDE je k nezaplacení.
Buildovací systém
Buildování projektu je to, co chceme mít maximálně automatické, protože automatické rovná se bezbolestné. Co by měl být schopný buildovací systém udělat?
- checkout zdrojových souborů včetně závislostí mezi jednotlivými komponentami
- checkout knihoven třetích stran z centrálního úložiště
- vlastní buildování do finální podoby (JAR, WAR, EAR atd.)
- build API dokumentace (JavaDoc)
Z těch obecnějších požadavků je to určitě možnost integrace s nástroji třetích stran jako jsou například různé analyzátory kódu. Velice užitečnou vlastnost představuje možnost vygenerování projektových souborů do IDE. Jako prověřená dvojice v mnoha open source projektech se jeví Maven 2 a Ant.
Continuous Integration systém
Dedikovaná mašina se speciálním softwarem jehož jediným úkolem je kontinuálně volat buildovací systém a jeho výsledky podstupovat automatickým testům. Výsledky testů, problémy při buildu a další užitečné statistiky reportovat vývojářskému týmu. Co bychom měli od CI systému vyžadovat.
- možnost integrace se zvoleným buildovacím systémem
- distribuovatelný build (vlastní úlohu je možné distribuovat na jiný stroj)
- spolupráce se zvoleným soruce repostiory sytémem (tagování zvolených buildů např. milestone, RC, final build)
- integrace s IDE (možnost spouštět buildy, sledovat průběh, zobrazovat logy)
- možnost reportování skrze mail či instant messanging (ICQ, Jabber)
- plánovač (scheduler) buildů, ruční pouštění buildu
- webové rozhraní pro správu
Issue tracker
Nástroj pro reportování a správu problémů a vylepšení. Klasickým příkladem budiž Bugzilla. Mezi základní vlastnosti musí patřit issue management, což znamená stavy s kterých přechází issue v průběhu času. Další neméně důležité vlastností jsou notifikace při změnách, snadná obsluha přes webové rozhraní a silné vyhledávání.
K nadstavbám, které se ocení postupem času musím zmínit opět integraci s IDE a se source repoitory systémem. Při integraci se source repository systémem je užitečné vidět jaká revize souvisí s jakým bugfixem.
Správa dokumentů
Pro správu dokumentů všeho ražení, od analýz až po zápisy z jednotlivých porad je potřeba systém, který bude nenáročný na údržbu a bude v něm možné jednoduše vytvářet dokumenty a ty mezi sebou vzájemně odkazovat. Základní požadavky.
- snadná tvorba i pro BFU (Běžný Franta Uživatel) bez nutnosti vlastni speciální program, nejlépe přes prohlížeč
- distribuovatelné s otevřeným formátem (žádné dokumenty proprietárního ražení WORD sdílené pře síť)
- správa historie verzí (diff, logování změn)
Ideálním řešením je použití libovolné implementace WIKI.
Statické analyzátory kódu
Statické analyzátory kódu slouží k odhalování potenciálních problémů dříve než mohou nastat a k počítání statistik, které poskytují užitečné informace o zdrojovém kódu. Z informacím, které mohou poskytnout bych jmenoval, pokrytí API testy (takzvaný code coverage), často se opakující kód a nebo nevyužitý (mrtvý) kód, dodržování code convention atd.
Opět platí, že tyto nástroje by měly být integrovatelné s IDE a buildovacím systémem a o jejich spouštění by se měl starat CI server, který by měl zároveň jejich výsledky reportovat.
Související články
Související články
Související epizody CZ Podcastu
- #261 · Leadership
O vedení lidí a týmů.