Myśli, porady, tutoriale na temat środowiska Eclipse (i nie tylko)...

wtorek, 8 lipca 2008

IBM Rational Team Concert, czyli programowanie w jazzowych klimatach

Jakiś czas temu pisałem, że IBM otwiera swoją nową platformę Jazz dla wszystkich chętnych.

Była to wówczas wersja beta, od prawie dwóch tygodni dostępna jest już oficjalna wersja tej platformy oraz pierwszego narzędzia, które z niej korzysta, czyli IBM Rational Team Concert (RTC). Ciągle jednak każdy może osobiście wypróbować Jazza, gdyż dostępna jest wersja darmowa Express-C.


Zacznijmy może jednak od możliwości jakie dają nam Jazz oraz RTC. Czym jest sam Jazz? Jest to platforma wspomagająca zespoły programistyczne w realizacji projektów. Jazz skupia się na małych i średnich zespołach wykorzystujących zwinne metodyki, ale jego możliwości pozwalają również na zastosowania w innych warunkach. Najważniejsza funkcjonalność to:

  • Zarządzanie procesem
    W momencie definiowania nowego projektu możemy określić, czy chcemy korzystać z jednego z predefiniowanych procesów - do wyboru mamy Eclipse Way, OpenUp, Scrum, Agile Process oraz Simple Team Process (a także Cloudburst Sample Process, który służy wyłącznie do celów edukacyjnych). Po wyborze procesu możemy ten proces dostosować jak tylko nam sie to podoba. Oprócz takich rzeczy jak liczba kamienii milowych (ang. milestones), iteracji (ang. iterations), możemy definiować w jaki sposób ma się odbywać rozwój oprogramowania w poszczególnych fazach, np. możemy określić, że w czasie tzw. gry końcowej (ang. end game) każda zmiana kodu w repozytorium wymaga zatwierdzenia przez kierownika. Możemy określać kto może wykonywać poszczególne czynności w czasie trwania projektu, które czynności sa zabronione, a które wymagają zatwierdzenia. Możemy również definiować dodatkowe ograniczenia, np. że każda zmiana wprowadzana do repozytorium musi mieć przyporządkowaną jednostkę pracy (ang. work item).
  • Użytkownicy i zespoły
    W ramach naszego projektu definiujemy użytkowników oraz role jakie każdy z nich pełni (role te potem mają odzwierciedlenie przy precyzowaniu procesu). Użytkownicy mogą być podzieleni na zespoły, np. możemy mieć zespół zajmujący się interfejsem użytkownika, inny od komunikacji z bazą danych, a jeszcze inny od logiki biznesowej. Każdy zespół może definiować swoje własne procesy, według których chce podążać - można oczywiście też narzucić zespołom pewne wytyczne, których nie będzie można zmienić.
    Co więcej, RTC znacznie ułatwia pracę zespołów rozproszonych - zespoły takie nie są już traktowane jako coś wyjątkowego, ale jako normalność. Jakie ułatwienia znajdziemy w RTC? Chociażby możliwość integracji Jabbera, możliwość podglądu, kto w zespole nad czym pracuje, jak wygląda jego/jej obciążenie, jest również system powiadomień o zmianach (np. że ktoś właśnie dodał coś do repozytorium, albo że jakiś build sie nie powiódł). Wszystko to jest widoczne w specjalnym widoku Team Central, który daje nam podgląd na to co się dzieje w zespole.
  • Kontrola wersji
    Jazz oferuje własny system kontroli wersji (ang. version control system). Oprócz podstawowej funkcjonalności umożliwia on m.in. wstrzymywanie zmian (ang. suspend) - wyobraźmy sobie sytuację, gdy pracujemy nad nowa funkcjonalnością, nagle dzwoni to nas kierownik projektu, że klient odkrył krytyczny błąd, który musi być natychmiast naprawiony (bo inaczej oczywiście klient zrezygnuje z naszego produktu). Kierownik oczywiście nie zrozumie, że chcielibyśmy najpierw dokończyć to co robimy aktualnie, zapisać zmiany do repozytorium i dopiero później możemy się zająć błędem. Jazz daje nam możliwość wstrzymania zmian (stan naszego kodu wróci do ostatniego pobranego z repozytorium), wprowadzenia poprawek do starego kodu, zapisanie zmian do repozytorium oraz późniejszy prosty powrót do wprowadzonych przez nas wcześniej już zmian. Dodatkowo dzięki kilku poziomom, na których trzymany jest kod, możemy dzielić się swoja praca z innymi członkami zespołu bez potrzeby zapisywania naszych zmian do centralnego repozytorium, np. jeśli chcemy aby ktoś nam pomógł w znalezieniu błędu. Trzeba też dodać, że wszystkie zmiany zapisywane do repozytorium łączone są w zbiory zmian (ang. change sets), które później mogą być dołączane do różnych artefaktów (np. do jednostek pracy, buildów, itp.) oraz w prosty sposób przeglądane i cofane w razie potrzeby.
    Nasz kod możemy podzelic na komponenty, aby w łatwy spssób wydzielać kod, który później może być reużywany. Możemy tez tworzyć tzw. zrzuty (ang. snapshots) naszego kodu, do kórych możemy później w prosty sposób powracać.
  • Jednostki pracy, czyli zarządzanie zadaniami
    Jazz jako zadanie traktuje tzw. jednostki pracy (ang. work items), które mogą być odpowiednio dostosowywane do naszych potrzeb (jest to powiązane z zarządzaniem procesem), np. możemy określić jakie rodzaje jednostek pracy są nam potrzebne (np. defekt, nowa funkcjonalność, itp.), w jakich stanach może się znaleźć jednostka pracy (np. otwarty, zamknięty, naprawiony, itp.) oraz kiedy może byc wprowadzona zmiana stanu (np. możemy zdefiniować, że ze stanu naprawiony jednostka pracy może przejśc w stan ponownie otwarty, ale już nie w stan nowy). Możemy też definiować własne zapytania (ang. query) o jednostki pracy, które możemy zapisywać i współdzielić z całym zespołem. W ramach jednostek pracy mogą odbywać się dyskusje, mogą do nich być dołączane inne artefakty (np. zbiory zmian, wyniki buildów, linki, itp.). Jednostki pracy są również traktowane jako elementy podstawowe przy planowaniu kolejnych iteracji oraz przy szacowaniu obciążenia użytkowników.
  • Mechanizm budowania
    Dostępny jest również mechanizm budowania (ang. build) rozwijanych aplikacji (możemy w tym celu wykorzystać popularne narzędzie jak ANT, czy Maven), którego integracja z resztą RTC pozwala na proste wywoływania nowych żądań budowania, wyświetlanie wyników oraz na powiadamiania o wynikach.
  • Raportowanie
    Dzięki RTC (oraz wbudowanemu Birtowi) w łatwy sposób możemy generować raporty dotyczące naszego projektu.
Jeśli chodzi o architekturę to RTC składa się z dwóch podstawowych elementów - z serwera oraz klienta. Serwer do swojego działania wymaga bazy danych (domyślnie dostarczona jest darmowa baza danych Derby, można jednak korzystac równiez z DB2 oraz Oracle'a) oraz serwera aplikacji (domyślnie dostępny jest Tomcat, możemy jednak wykorzystać też Websphere'a). Jako ciekawostkę eclipsową mogę dodać, że serwer zbudowany jest z pomocą Equinoxa. Klient RTC to Eclipse ze zbiorem wtyczek (można zainstalować RTC jako aplikacje RCP, lub też skorzystać z możliwości wykorzystania istniejącej instancji Eclipse'a - sprawdziłem, działa na Eclipse Ganymede). Dodatkowo oprócz klienta desktopowego mamy możliwość dostepu przez interfejs webowy, pełen Ajaxa, bardzo przyjemny i intuicyjny.

IBM Rational Team Concert jest w chwili obecnej dostępny w trzech wersjach:
  • darmowej Express-C
  • oraz dwóch płatnych Express i Standard.
Wersja Express-C dostępna jest w postaci spakowanych plików zip, które wystarczy rozpakować, następnie uruchomić serwer odpowiednim skyrptem (plik startup.bat dla Windowsa oraz startup.sh dla Linuksa), później zostaje jeszcze uruchomić klienta. W przypadku wersji płatnych do instalacji wykorzystywany jest IBM Instalation Manager, który wszystko zanstaluje i pozwalo na proste uruchamianie serwera oraz klienta (możemy dodatkowo zainstalować sobie bazę danych DB2 Express, z którą może pracować nas serwer).

Trzeba przyznać, że już teraz RTC może się pochwalić bardzo wysoka jakością. Bierze sie to chyba stąd, że samo RTC było rozwijane za pomocą RTC, więc błędy były rozwiązywane na bieżąco.

Jazz oraz RTC to nie tylko narzędzie, ale też już spora społeczność. Na forum, które znajdziecie na oficjalnej stronie Jazza na pytania odpowiadają inni użytkownicy, a także programiści Jazza. Na tej samej stronie znajdziecie też materiały szkoleniowe, tutoriale oraz porady w jaki sposób wykorzystac Jazza oraz RTC w 100%.

Z tego co ostatnio ogłosił IBM Rational na IBM Rational Software Developement Conference, to wszystkie jego narzędzia będę wcześniej czy później zintegrowane z Jazzem, aby móc maksymalnie wykorzystywać jego możliwości oraz aby stworzyć pełną zintegrowana platformę do wytwarzania oprogramowania.

Pewnie dość nieudolnie udało mi się opisać funkcjonalność, które niosą ze sobą Jazz oraz IBM Rational Team Concert, dlatego też zachęcam do ściągnięcia darmowej wersji Express-C lub próbnej wersji Standard oraz wypróbowania tego wszystkiego o czym pisałem a także tego, o czym zapomniałem napisać!

Brak komentarzy: