Crucible je další z nástrojů od Atlassianu (kromě již známých nástrojů JIRA a Confluence). Crucible je nástroj na code review. Umožňuje prohlížení zdrojových kódů a vytváření jeho review včetně workflow kolem. Crucible slouží jako komunikační kanál mezi vývojáři nad zdrojovým kódem - vše na jednom místě, vše sledovatelné a dohledatelné.
Přínos efektivního code review je zřejmý, ale často je problém, jak vlastně code review dělat, aby bylo opravdu efektivní. Efektivní code review musí z mého pohledu splňovat tyto podmínky:
- šíření informací všem členům týmu
- vše zpětně dohledatelné
- minimální časová náročnost resp. čím méně času, tím lépe
- nesmí nabourávat vztahy v týmu (není vždy jednoduché být kritický a nikoho se tím osobně nedotknout)
- každý nemůže vždy přijít na osobní setkání, takže se k němu dané informace nedostanou (je pravda, že důležité věci, případně nějaká rozhodnutí jsme zapisovali do interní wiki, ale i tak spoustu informací ze samotného code review nikde zaznamenána nebyla)
- chybí jedno místo, kde lze informace z code review hledat. Něco se řekne na schůzce, něco se pošle mailem a pak je problém se k některým tématům vracet, dohledávat je
- samotná kontrola zdrojového kódu probíhá ručně, často náhodným výběrem několika tříd. Chybí nástroj, který vás v tomto podpoří, přidá do toho trochu nějaký systém.
- vždy bylo nutné mít zdrojový kód v repository, aby si ho někdo další mohl prohlížet
Máme teď tedy v týmu nástroj, který umožňuje komukoliv a kdykoliv založit požadavek na review vybrané části kódu a tím získat zpětnou vazbu. Když si člověk uvědomí, že žádné API není hned v první verzi dokonalé, že je potřeba získávat zpětnou vazbu na svoje návrhy a svoji práci, tak máme nástroj, který nám s tím dokáže pomoci.
Standardně součástí Crucible je i FishEye, což je taková hodně komfortní prohlížečka zdrojových kódů v repositářích. Za FishEye je ale nutné platit nemalé peníze navíc, tak zatím používáme samotné Crucible - chybí několik zajímavých pohledů do repositářů, ale z pohledu samotných review se nic nezměnilo.