Czym jest IBM Engineering - Jazz ?

Materiał promocyjny Ułatwienia w komunikacji między zespołami, zwiększenie przewidywalności projektów, integracja narzędzi, obniżenie ryzyka zawsze było wyzwaniem w projektach. Czy już jesteśmy gotowi, aby robić to efektywnie?. Nie ma jasnej odpowiedzi na to pytanie, ale już wiemy, jak to zrobić z IBM Engineering Jazz.

Wytwarzanie oprogramowania to zawsze złożony i rozbudowany proces, który uważa się za sztukę, naukę, rzemiosło, wymagające tajemnej wiedzy i lat doświadczenia. Często najbardziej niedocenianym obszarem we wszystkich realizowanych projektach IT jest ich wymiar społecznościowy, opisujący, jak ludzie pracują ze sobą przy realizacji wspólnych oraz osobistych celów. Duże przedsięwzięcie jest zależne nie od jednej, a wielu współpracujących i komunikujących się ze sobą osób, w określonym oczywiście porządku – wszystko po to, by końcowy produkt był jak najwyższej jakości. Zespołowe opracowywanie oprogramowania przypomina grę w zespole muzycznym. W obu przypadkach niezbędna jest równowaga między umiejętnościami indywidualnymi i współpracą w zespole.

Aby ułatwić zarządzanie całym procesem, IBM stworzył platformę integracyjną nazwaną Jazz. Dzięki odpowiedniemu podejściu do zagadnienia, praca zespołu może być efektywna na różnych etapach cyklu wytwórczego oprogramowania. Nazwa nawiązuje do faktu, iż muzycy zmieniają swoje uczucia w muzykę, nato miast w przypadku branży IT chodzi o zmianę sztuki dostarczania oprogramowania w będącą bardziej transparentną i produktywną.

Wizja

Platforma Jazz jest inicjatywą firmy IBM, która powstała, aby pomóc zespołom w celu osiągnięcia jak najlepszych wyników w pracy Autorzy,wykorzystując dobre praktyki współpracy z obszaru muzyki, przekształcili je tak, aby były możliwe do zastosowania w procesie wytwarzania oprogramowania, czyniąc je bardziej spójne, wydajne i przejrzyste.

Na fundamenty platformy Jazz wpływają trzy elementy:

  • architektura integracji dla cyklu życia produktu,
  • wsparcie portfolio produktów
  • społeczność.

W przeciwieństwie do monolitycznych i zamkniętych produktów przeszłości, platforma Jazz jest otwarta i przeznaczona dla każdej osoby zainteresowanej, która chce poprawić cykl życia oprogramowania i przełamać bariery między narzędziami. Produkty Jazz są uosobieniem innowacyjnego podejścia bazującego na otwartych, elastycznych usługach internetowych, a także najlepszych praktykach zgodnych ze standardami Open Web i OSGi Alliance.

Platforma Jazz została zaprojektowana tak, by dostarczać organizacjom elastyczność umożliwiającą przygotowanie własnego, idealnego środowiska dostarczania oprogramowania, używając preferowanych narzędzi. Co więcej, pozwala elastycznie rozwijać środowiska organizacji wedle własnych wymagań, własnym tempem, zamiast stać na drodze integracji narzędzi. Platforma definiuje wspólny zbiór usług Jazz Foundation, które można wykorzystać w dowolnym narzędziu implementującym to podejście.

Uwzględnia ona również zdefiniowane w OSLC - Open Services for Lifecycle Collaboration specyfikacje, a także niezależne od dostawców zestawy protokołów współdzielenia informacji pomiędzy narzędziami.

Praca zespołowa

Projekt Jazz składa się ze wspólnej platformy i zestawu narzędzi, które umożliwiają wszystkim członkom zespołu rozwojowego łatwiejszą współpracę. Odzwierciedla to pogląd, że najważniejszym elementem w rozwoju oprogramowania nie są jednostki, nie proces, ale współpraca zespołu. W tym celu platforma udostępnia rozszerzalną architekturę zaprojektowaną z myślą o zwiększeniu poziomu współpracy, produktywności i przejrzystości produkcji oprogramowania.

Została ona dostosowana do potrzeb zespołów pracujących w zróżnicowanych lokalizacjach, uzupełniając tą wiedzę dodatkowo o informacje dotyczące użytkowników, projektów i procesów z elementami automatyzacji. Odpowiednie podejście do współpracy i zastosowanie najlepszych praktyk z obszaru inżynierii oprogramowania pozwoliło na skrócenie cyklu powstawania oprogramowania, podniesienie jakości oraz usprawniło samo zarządzanie projektem.

Na razie platformy IBM Engineering Jazz zostały stworzone trzy produkty:

  • Engineering DOORS Next – rozwiązanie dedykowane do poprawnego definiowania wymagań przy zastosowaniu tekstu oraz rozbudowanych elementów graficznych. Narzędzie umożliwia zapisywanie wyrafinowanych potrzeb biznesowych w jednoznaczne wymagania, co na dalszych etapach prac nad produktem wpływa bezpośrednio na poprawę jakości czy usprawnienia samego procesu wytwórczego.
  • Engineering Workflow Management (Team Concert) – wspólne środowisko pracy dla programistów, projektantów, architektów i kierowników projektów. Dedykowane narzędzie pozwalające w jednym miejscu na zarządzanie pracą, kontrolę źródeł, zarządzanie systemem budowania, wsparcie dla planowania iteracji oraz proces planowania, obejmuje zwinne metodyki, m.in. Scrum oraz Eclipse Way.
  • Engineering Test Management (Quality Manager) – oparty o interfejs www system zarządzania procesem testowania dla decydentów oraz specjalistów ds. jakości. Dostarcza konfigurowalne rozwiązanie do planowania testów, przepływu kontroli, monitorowania i raportowania, realizacji testów czy zarządzania środowiskami testowymi.
Czym jest IBM Engineering - Jazz ?

Jazz to nie tylko społeczność praktyków rozwijających oprogramowanie, którzy pomagają innym, to także wpływ klientów i społeczności na kierunek rozwoju produktów przez wczesne, ciągłe i bezpośrednie rozmowy lub wymiany poglądów.

Po dołączeniu do społeczności na stronie jazz.net, można komunikować się z zespołami projektowymi, śledzić postęp budowy produktów, kamienie milowe, przekazać informacje o tym, co działa, a co nie oraz zgłaszać i śledzić defekty.

Każda z osób ma pełną przejrzystość szczegółowych planów, stanu, postępu budowy samej platformy lub komercyjnych produktów IBM Engineering. Korzyść, jaka płynie z tej przejrzystości i dostępności do danych, to przede wszystkim fakt, iż istnieje możliwość stania się jednym z decydentów wpływających na ich rozwój. Częste dostarczanie trafnych opinii pozwoli zrozumieć i wpłynąć na kierunek kolejnych wydań i priorytetów, zanim decyzje zapadną. Celem takiego podejścia jest stworzenie środowiska pracy, które pomaga zespołom współpracować, być innowacyjnymi i tworzyć oprogramowanie wysokiej jakości. W związku z tym, skupiono się na fundamentach współpracy w zespole, automatyzacji procesów i raportowania cyklu życia oprogramowania. Narzędzia Jazz odzwierciedlają założenia, że najważniejszym obiektem nie jest tu jednostka czy proces, a współpraca. Zauważa się również, że zespół to nie tylko grupa programistów wraz z ich menedżerami, ale także pozostali, którym zależy na sukcesie inicjatywy, czyli klienci, sponsorzy. Celem narzędzi jest więc umożliwienie przejrzystości zespołów i projektów dla ciągłej współpracy, która pozwala na promowanie przełomowych innowacji, budowę spójności zespołu, wykorzystanie zasobów, talentów i poza przedsiębiorstwem.

Automatyzacja

Badania pokazują, że prawie wszystkie organizacje chcą zmniejszyć liczbę biurokratycznych przeszkód stojących na drodze rozwoju oprogramowania, automatyzując żmudne i podatne na błędy zadania oraz uciążliwe do utrzymania operacje na danych. Jednak oni również muszą utrzymać i poprawiać proces spójności i zarządzania oraz zwiększać wgląd w rzeczywisty postęp projektu. Celem Jazz jest automatyzacja procesów przepływów pracy i zadań, dzięki czemu organizacje mogą przyjąć odpowiednią liczbę zasad rozwoju w tempie, które ma dla nich sens. Otrzymujemy więc poprawę wsparcia i wykonywania procesów, włączając w to procesy zwinne (Agile) oraz sformalizowane (Rational Unified Process), redukcję żmudnych i czasochłonnych czynności manualnych, przechwytywanie informacji o postępach, wydarzeniach, decyzjach i zezwoleniach bez dodatkowego wprowadzania danych.

Raportowanie

Uzyskanie szybkiego dostępu do informacji opartych na faktach jest niezbędne do planowania dalszej pracy. Zbyt często raporty na temat stanu rozwijanego oprogramowania wiążą się ze żmudną pracą wymagającą wysiłku ludzi odpowiedzialnych za sprawozdania, co wymaga czasu, a to powoduje, że raporty są mniej aktualne. Jazz koncentruje się na dostarczaniu raportów w czasie rzeczywistym, które umożliwią wgląd w programy, projekty i użyteczność zasobów, co znacząco pomaga zespołom projektowym. Identyfikuje i rozwiązuje problemy znacznie wcześniej w cyklu życia oprogramowania, zamiast szacowanych wartości, przedstawia metryki bazujące na faktach, co zwiększa efektywność podejmowanych decyzji, a także pozwala na odpowiednie wykorzystanie metryk do poprawy prac zespołu.

Architektura i implementacja Jazz

Architektura Jazz oparta jest na zasadach będących kluczem do porzucenia podejścia stosowanego w przeszłości. Wszystkie te zasady pozwalają zespołom na korzystanie z sieci WWW, by uzyskiwać dostęp do procesów czy artefaktów w ramach całego procesu wytwórczego.

Oto kilka przykładowych idei:

  • Oddziela się wdrażanie narzędzi od definicji i dostępu do danych; semantyka danych nie opiera się na sekretnej wiedzy wbudowanej w kod produktu.
  • Jazz może mieć dostęp i integrować dane tam, gdzie się one znajdują – nie ma potrzeby importowania i eksportowania danych pomiędzy narzędziami i repozytoriami.
  • Zakłada się, że istnieje otwarty, elastyczny, rozproszony model danych. Nie zakłada się natomiast, że istnieje jeden model danych, który jest centralnie zarządzany, ani że każde narzędzie musi rozumieć cały model danych w celu udziału w projekcie.
  • Pozwala narzędziom na to, by zostały zaimplementowane w dowolnym języku programowania na dowolnej platformie. Jednocześnie nie narzuca wzorca implementacji przywiązanego do konkretnego języka programowania czy technologii platformy.
  • Obsługuje wiele technologii klienckich. Interfejs użytkownika jest wyborem dla różnych narzędzi Jazz. Wspiera także oprogramowanie bazujące na Eclipse czy Microsoft Visual Studio. Inne platformy mogą zostać łatwo zintegrowane, zależnie od żądania
.

Standard OSLC (Open Services for Lifecycle Collaboration) to inicjatywa przemysłu mająca na celu umożliwienie interoperacyjności narzędzi i zasobów różnych dostawców. Zwykle klienci korzystają z narzędzi od różnych dostawców w celu wychwytywania i zarządzania danymi w całym cyklu życia oprogramowania. Dane te są zazwyczaj dostępne za pomocą narzędzi, przy pomocy których zostały one stworzone, lub przez dostęp do bazy danych używanej przez to narzędzie. Brak wspólnych protokołów dla wszystkich zasobów sprawia, że trudno jest zarządzać oprogramowaniem.

Czym jest IBM Engineering - Jazz ?

Architektura platformy definiuje zestaw usług zwanych Jazz Foundation Services (usługi podstawowe Jazz), które mogą korzystać z podstawowych funkcji platformy do realizacji ogólnych zadań między narzędziami różnych dostawców, w tym do administracji projektami, użytkownikami, bezpieczeństwa, współpracy, zapytań.

Usługi te umożliwiają narzędziom implementować swe własne funkcjonalności tak, że będą one dobrze współgrać z innymi narzędziami.

W centrum architektury integracji Jazz znajduje się Jazz Team Server. JTS realizuje fundamentalne usługi Jazz opisane przez JIA, które umożliwiają współpracę grupom narzędzi. Jazz Team Server może składać się z jednego lub większej liczby fizycznych serwerów, które działają jako jeden serwer logiczny.

W celu ułatwienia wdrażania produktów zgodnych z JIA dostarczono odpowiednie zestawy narzędzi Jazz. Należą do nich: biblioteki specyficzne dla danego języka umożliwiające dostęp do różnych usług Jazz Foundation oraz dla usług specyficznych dla domeny.

Większość poziomów integracji JIA jest osiągalnych w dowolnym języku programowania zdolnym do przetwarzania zapytań HTTP oraz danych w formacie XML. Oznacza to, że frameworki Jazz mogą być rozwijane przez kogokolwiek i gdziekolwiek.

Podsumowanie

IBM Rational wraz z partnerami oferuje produkty współdziałające z Jazz Integration

Architecture. Jednak nie każdy produkt Jazz zawiera każdy element z JIA oraz całe podejście Jazz, bowiem całe podejście ciągle ewoluuje. W praktyce, opisywana elastyczność łączenia wersji i tolerancji różnych stopni złożoności jest jedną z najważniejszych pozytywnych cech platformy oraz Jazz Integration Architecture.

Aktualnie w ofercie znajdują się następujące produkty:

  • IBM Engineering DOORS Next
  • IBM Engineering Workflow Management (Team Concert)
  • IBM Engineering Test Management (Quality Manager)

Pozostałe produkty z portfolio IBM Rational w przyszłości prawdopodobnie zostaną wcielone do platformy Jazz, co przyczyni się do jeszcze silniejszej ich integracji. Lista produktów z pewnością będzie też poszerzona o dodatkowe nowe projekty

Ciekawe linki

O autorze:

Bartosz Chrabski (CTO, SmarterProcess) - pracuje w branży IT od 15 lat. Posiada międzynarodowe doświadczenie w zakresie analizy biznesowej i inżynierii wymagań, zarządzania jakością i zarządzania projektami. Przez wiele lat odpowiedzialny w IBM za oprogramowania IBM Rational, a następnie IBM Engineering. Obecnie współpracuje z IBM jako partner biznesowy w obszarze technologii IBM Engineering wspierając organizacje m.in. w planowaniu i realizacji procesów analitycznych oraz czynności zarządzania jakością na przestrzeni całego cyklu życia rozwiązania. Zdobyte doświadczenie wykorzystuje jako podstawę do rozwoju własnych metod doskonalenia procesów wytwarzania kładąc nacisk przede wszystkim na transparentność, efektywność i spójność procesów z celami biznesowymi przy jednoczesnej elastyczności i uniwersalności zastosowanych rozwiązań. W latach 2020 i 2021 nagrodzony tytułem IBM Champion, który jest przyznawany najbardziej doświadczonym ekspertom z zakresu oprogramowania IBM.