Jazz je přizpůsobitelná a rozšiřitelná platforma pro týmovou spolupráci, určená pro bezproblémovou integraci úloh v rámci životního cyklu softwaru.
Vývoj softwaru v týmu se podobá skupinové hudební produkci. Každý hudebník musí hrát svůj part a zároveň dodržovat společnou harmonii a rytmus. Hudebníci si musejí smluvit způsob komunikace a musejí sledovat smluvené signály, které si vyměňují. V opačném případě se vystoupení nemůže zdařit. Nezbytnou podmínkou je úzká vzájemná spolupráce a virtuozita jednotlivců. Obdobně se vývojáři softwaru musejí zaměřovat na sestavování kvalitního kódu a koordinovat své aktivity tak, aby veškeré součásti do sebe dobře zapadly.
Integrovaná vývojová prostředí (IDE), například Eclipse, se osvědčují při zvyšování produktivity jednotlivců. Nicméně vývojáři se při zápisu kódu aktivně zapojují do práce svých týmů. Zde přichází platforma Jazz se svým přenesením důrazu z produktivity jednotlivce na produktivitu týmu.
Představme si práci, kterou musí tým vynaložit na sledování a opravu hypotetické programové chyby. Práce související s opravou programové chyby cestuje v rámci týmu. Začíná u Mikiho, který objevil a zdokumentoval problém, jsou přesunuty k Rikimu, který přezkoumal příchozí zprávy o chybách a určil, že má opravu provést Suzan. Suzan chybu opravila a věc vrátila zpět k Mikimu k ověření. Vlastní oprava chyby rovněž cestuje v týmu, od Suzan, která opravila problém v proudu zdrojového kódu, k Mikimu, který ověří opravu v příslušném sestavení.
Tyto cesty jsou křehké. Toky v rámci týmu se mohou přerušit, dojde-li k vrácení chyby, aniž by byla aktualizována zpráva o chybě, nebo pokud neexistuje odkaz pro připojení chyby do konkrétního proudu zdrojového kódu nebo sestavení. Tyto poruchy mohou vést ke zmatkům v rámci týmu a nepříznivě ovlivnit průběh realizace projektu. Situaci zhoršuje skutečnost, že případná porucha nemusí být členům týmu bezprostředně patrná. Dochází rovněž k překrývání práce v konkrétní oblasti (například zápis kódu pro vlastní softwarový produkt) s prací, která se provádí primárně v souvislosti s údržbou koordinace vlastního týmu (např. označování chyb jako opravených).
Třebaže integrované vývojové prostředí integruje více nástrojů, vývojář musí nadále provádět spoustu opakujících se úkonů dokumentace ručně. Jde o práci, která je zásadní pro účinnou spolupráci týmu, avšak zároveň o práci, kterou lze velmi snadno zapomenout nebo provést chybně. Bylo by vhodnější, kdyby Zuzana prostě oznámila integrovanému vývojovému prostředí, že nyní pracuje na opravě určité chyby. Po dokončení opravy a otestování daného případu by pouze označovala dokončení práce. Bez další akce z její strany by systém potvrdil změněné soubory a přidružil by je ke zprávě o chybě, aktualizoval by poznámky k sestavení a označil zprávu o chybě jako uzavřenou. Pokud by nástroje automatizovaly dokumentaci tímto způsobem, zvýšilo by to účinnost práce týmu zajištěním spolehlivosti důležitých propojení mezi zprávami o chybách a potvrzováním zdrojového kódu. Zároveň by došlo ke zvýšení účinnosti práce jednotlivých členů týmu automatizací obtěžujících úkol dokumentace, které jsou nad to náchylné na chyby.
Jazz je platforma spolupráce týmu pokrývající celý životní cyklus softwaru, která je navržena pro podporu úplní integrace úloh v rámci všech fází životního cyklu softwaru (výše uvedený příklad se dotýká pouze menšího počtu běžných úloh uprostřed životního cyklu). Platforma Jazz je navržena s důrazem na možnosti doplňování v klientu i na serveru a k rozšiřování kapacity v rozsahu od velmi malých týmů až po instalace ve velkých podnicích. Zahrnuje pojem řízení procesu s podpůrnými nástroji, přičemž tyto nástroje rozumějí procesu vývoje týmu a pomáhají členům týmu pohybovat se v tomto procesu bez překážek.
Účelem platformy Jazz není pouhá integrace stávajících izolovaných nástrojů, ale i zajištění platformy, jež umožní sestavování integrovanějších funkcí nástrojů životního cyklu, než bylo dosud možné. Jsou-li vývojové nástroje integrovány v rámci celého životního cyklu tímto způsobem, je možné provádět činnosti zcela nedostupné při použití slepovaných řešení. Integrované komplexní nástroje jako tento pomáhají týmům zvýšit účinnost sestavování softwaru, ba dokonce učinit z činnosti vývoje softwaru zábavu.
Platforma Jazz umožňuje komplexní podporu v rámci kompletního životního cyklu vývoje softwaru. Podprocesem, který se vine všemi fázemi určitého projektu, je proces. Členové týmu se dohodli na dodržování tohoto procesu. Informujete-li platformu Jazz o svém procesu, může týmu pomoci způsoby, které odpovídají právě tomuto specifickému procesu. Tato podpora procesu má (nekonečnou) řadu různých podob: Od průběžné kontroly pravidel přes poskytování nápovědy online k procesu (např. klávesa F1) až po automatizovanou dokumentaci. Platforma Jazz podporuje proces těmito způsoby:
Platforma Jazz je navržena a sestavena pro tyto účely:
Hlavní role platformy Jazz spočívá v poskytnutí nástroje pro autory, který zahrnuje mechanizmy použití a pravidla, jež umožňují uplatnění důsledně integrovaných nástrojů životního cyklu. Tyto mechanizmy jsou odkrývány prostřednictvím vhodně definovaných rozhraní API. Platforma Jazz rovněž poskytuje užitečné stavební bloky a infrastruktury usnadňující vývoj nových nástrojů.