Jazz jest skalowalną i rozszerzalną platformą umożliwiającą pracę grupową zespołu i zapewniającą bezproblemową integrację zadań w cyklu życia oprogramowania.

Do czego potrzebna jest platforma Jazz?

Tworzenie oprogramowania w zespole jest podobne do grania na instrumencie w orkiestrze. Każdy muzyk musi odegrać swoją część, pozostając w harmonii z innymi członkami orkiestry. Członkowie orkiestry muszą uzgodnić sposób komunikowania się oraz zwracać uwagę na sygnały wysyłane przez inne osoby, w przeciwnym razie występ się nie uda. Wymagana jest zarówno bliska współpraca, jak i wirtuozeria poszczególnych członków. Podobnie twórcy oprogramowania muszą skoncentrować się na zbudowaniu poprawnego kodu oraz skoordynowaniu swoich działań, aby wszystkie fragmenty dobrze do siebie pasowały.

W zintegrowanych środowiskach programistycznych (środowiskach IDE), takich jak Eclipse, udało się zwiększyć wydajność poszczególnych osób. Jednak programiści są równie mocno zaangażowani w pracę zespołową, jak w pisanie kodu. To właśnie jest pole działania platformy Jazz - przeniesienie nacisku z wydajności jednostki na wydajność zespołu.

Argumenty przemawiające za przekazywaniem pracy

Należy wziąć pod uwagę pracę, jaką musi wykonać zespół, aby prześledzić i usunąć hipotetyczny błąd programu. Praca polegająca na poprawieniu błędu programu przepływa w ramach zespołu, począwszy od Michała, który wykrył i zgłosił problem, przez Marka, który przejrzał przychodzące raporty o błędach programu i przydzielił pracę Zuzannie, do Zuzanny, która poprawiła błąd programu, i wreszcie z powrotem do Michała w celu weryfikacji. Sama poprawka błędu programu również przepływa w obrębie zespołu, od Zuzanny, która rozwiązuje problem w strumieniu kodu, do Michała, który weryfikuje poprawkę w procesie budowania.

Przepływy błędów programu

Te przepływy można łatwo zaburzyć. Przepływy w ramach zespołu są na przykład zrywane, gdy poprawka zostanie wprowadzona bez zaktualizowania raportu dotyczącego błędu programu lub gdy nie ma odsyłacza łączącego poprawkę z określonym strumieniem kodu i operacją budowania. Takie zerwania mogą prowadzić do nieporozumień w ramach zespołu i zakłócić postęp prac. Na domiar złego zerwanie może nie być od razu widoczne dla wszystkich członków zespołu. Co więcej, praca związana z daną dziedziną (np. pisanie kodu oprogramowania) przeplata się z zadaniami zależącymi głównie od koordynacji pracy w zespole (np. oznaczaniem błędów programu jako poprawionych).

Chociaż środowisko IDE integruje wiele narzędzi, programista nadal wykonuje ręcznie wiele powtarzalnych działań związanych z rejestrowaniem. Wykonanie tych działań jest niezbędne do zapewnienia efektywności wspólnej pracy zespołu, ale łatwo jest o nich zapomnieć lub wykonać je niepoprawnie. Będzie lepiej, gdy Zuzanna po prostu przekaże środowisku IDE informację, że właśnie pracuje nad poprawieniem określonego błędu programu. Następnie, po zakończeniu poprawki i przypadku testowego, wskaże, że jest gotowa. Bez dalszych działań z jej strony system zatwierdzi zmienione pliki i powiążę je z raportem o błędach programu, zaktualizuje uwagi na temat budowania i oznaczy raport o błędach programu jako zamknięty. Jeśli narzędzia zautomatyzują w ten sposób proces rejestrowania, pomoże to w uzyskaniu większej efektywności zespołu, zapewniając niezawodność ważnych połączeń między raportami o błędach programu i kodem wprowadzanym do repozytorium. Jednocześnie efektywność poszczególnych członków zespołu zostanie zwiększona ze względu na automatyzację nużących i podatnych na błędy obowiązków związanych z rejestrowaniem.

Platforma Jazz wypełnia lukę

Jazz jest platformą wspomagającą pracę grupową zespołu obsługującą pełen cykl życia oprogramowania, zaprojektowaną do obsługi bezproblemowej integracji zadań we wszystkich fazach cyklu życia oprogramowania (wcześniejszy przykładowy scenariusz dotyczy niewielkiej liczby zadań środkowej fazy cyklu życia). Platforma Jazz została zaprojektowana jako rozszerzalna zarówno po stronie klienta, jak i serwera. Można ją skalować w zakresie od bardzo małych zespołów do dużych instalacji korporacyjnych. Obejmuje ona ideę obsługiwanych przez narzędzia wskazówek dotyczących procesu - narzędzia rozpoznają proces projektowania zespołu i pomagają członkom zespołu postępować zgodnie z tym procesem w sposób bezkonfliktowy.

Platforma Jazz została przeznaczona nie tylko do integracji istniejących narzędzi punktowych, ale również w celu udostępnienia platformy, na bazie której można budować dużo bardziej zintegrowane z cyklem życia funkcje narzędzi, niż było to możliwe kiedykolwiek przedtem. Gdy narzędzia programistyczne zostaną w ten sposób zintegrowane w całym cyklu życia, będzie możliwe wykonywanie zadań niemożliwych wcześniej do wykonania, korzystając z zestawu powiązanych ze sobą rozwiązań punktowych. Takie zintegrowane kompleksowe narzędzia mogą pomóc zespołom w bardziej efektywnym budowaniu oprogramowania, a pracę związaną z tworzeniem oprogramowania uczynić bardziej przyjemną.

Jazz jest platformą rozpoznającą procesy

Platforma Jazz została zaprojektowana w celu umożliwienia kompleksowej obsługi w całym cyklu życia tworzenia oprogramowania. Jednym wątkiem, który działa we wszystkich fazach projektu, jest proces, zgodnie z którym zgodzili się postępować członkowie zespołu. Jeśli do platformy Jazz zostaną przekazane informacje o tym procesie, zapewni ona zespołowi pomoc w sposób odpowiedni dla danego procesu. Obsługa tego procesu jest elastyczna i może mieć wiele różnych form, począwszy od sprawdzania reguł w trakcie pracy, przez oferowanie elektronicznej pomocy dotyczącej procesu (np. klawisz F1), do automatycznego rejestrowania. Procesy na platformie Jazz obsługiwane są na następujące sposoby:

Platforma Jazz została zaprojektowana i zbudowana do wykonywania następujących funkcji:

Główną rolą platformy Jazz jest udostępnienie programistom tworzącym narzędzia mechanizmów, które mogą wykorzystać, i reguł, według których mogą postępować, a które prowadzą do tworzenia narzędzi cyklu życia zapewniających bezproblemową integrację. Te mechanizmy są prezentowane za pośrednictwem poprawnie zdefiniowanych interfejsów API. Platforma Jazz udostępnia również użyteczne elementy składowe i środowiska ułatwiające tworzenie nowych narzędzi.