Brakujący element

W dużych projektach deweloperskich największymi problemami są: zarządzanie zadaniami, syntetyczny ogląd całości projektu oraz wiarygodne raportowanie. Właśnie do wsparcia tych obszarów powstało rozwiązanie Microsoft Team Foundation Server.

W dużych projektach deweloperskich największymi problemami są: zarządzanie zadaniami, syntetyczny ogląd całości projektu oraz wiarygodne raportowanie. Właśnie do wsparcia tych obszarów powstało rozwiązanie Microsoft Team Foundation Server.

Duże firmy powstają przynajmniej po części dlatego, że są w stanie szybciej niż inne zautomatyzować kluczowe dla ich działalności obszary biznesu. W większości przypadków automatyzacja ta przyjmuje formę "szytych na miarę" aplikacji rozwijanych przez własne działy rozwoju oprogramowania. Wraz ze wzrostem skali firm nad aplikacjami pracują coraz większe zespoły, a jednocześnie efekt ich prac jest dla firm coraz ważniejszy, ponieważ coraz bardziej na nich polegają.

Zarządzanie procesem dostarczania oprogramowania było głównym motywem prac, które przyświecały Microsoftowi podczas przygotowań do publikacji Team Foundation Server (TFS) - systemu pracy grupowej dla projektów deweloperskich. Głównym składnikiem TFS jest pakiet narzędziowy Visual Studio 2005 Team System (VSTS 2005). Wraz z powstającym Server 2005 i SharePoint Portal Server 2003 VSTS 2005 tworzy platformę do pracy grupowej nad zadaniami w projekcie. TFS posiada także nowoczesne repozytorium kodu system kontroli wersji oparte na SQL Server 2005.

Kliencka część Team System jest rozszerzona o edycję Visual Studio 2005 dostępną w kilku odmianach dostosowanych do poszczególnych ról w projekcie - programisty, testera, architekta. Ostatnio do tej grupy dołączyła wersja Visual Studio Team Edition for Database professionals przeznaczona dla osób zajmujących się głównie strukturą i organizacją bazy danych. Dzięki bezpośredniemu wsparciu dla wszystkich ważnych ról w projekcie, TFS daje firmom szansę na to, by ich projekty deweloperskie były sprawnie zarządzane i lepiej wykorzystywały zasoby. Jednocześnie umożliwia znaczące podniesienie jakości ostatecznego efektu prac deweloperów. TFS to jednak nie tylko rozwiązanie dla informatyków. Wbudowane w TFS raporty (bazujące na usługach SQL Server 2005) dostarczają niezbędnej informacji działom biznesowym sponsorującym budowę rozwiązań informatycznych.

Elastyczne fundamenty

TFS jest platformą bardzo elastyczną, co widać choćby w tym, że pozwala zastosować różne metodyki prac projektowych. W standardowej instalacji dostępny jest wzorzec MSF Agile przeznaczony dla "szybkich" projektów, w których nie jest wymagana formalna dokumentacja procesowa oraz bardziej sformalizowany CMMI. Dostarczane przez Microsoft standardowe szablony projektów także nadają się do modyfikowania. Na podstawie wzorca standardowego można stworzyć nowy szablon, w którym pewne założenia lub etapy zostaną narzucone, bez możliwości traktowania ich fakultatywnie.

Samodzielnie stworzony wzorzec do TFS może definiować np. własne dodatki do IDE, skróty, dodatkowe kwerendy (raporty, widoki danych), narzucać kolejność wprowadzania informacji itp. Poszczególne pozycje na liście zadań (workitems) można także rozbudowywać o dodatkowe elementy (zakładki, pola), albo też dodawać nowe predefiniowane zapytania, definiować cały "roadmap" projektu (w tym spis zadań).

Możliwości edycji właściwości zadań w Team Foundation Server są imponująco bogate, dzięki czemu możliwe jest precyzyjne opisanie zadania do wykonania, a następnie śledzenie zgodności wykonania z ustalonymi założeniami. Definiując iterację, czyli proces przygotowania kolejnej wersji aplikacji, można w TFS wymagać wykonania pewnych określonych czynności. Można określić nawet formę "notatki" wymaganej przy procesie dodawania/aktualizacji źródła do repozytorium. Można także zdefiniować wymaganą strukturę i pracę w ramach zespołu, np. wymusić, by po dodaniu kodu realizującego określoną funkcjonalność tester dodał stosowne testy jednostkowe (częścią Visual Studio jest komponent do generowania testów jednostkowych oraz badania obciążeń systemu).

Programowanie według przepisu

Dzięki integracji TFS z Windows Sharepoint Services można organizować spotkania online. Zadania do portalu można dodawać z poziomu programów Excel lub Project. W jego ramach można też tworzyć dodatkowe zadania, dodawać łącza, np. do zbioru zmian (wersji) kodu, wskazywać wyniki testów itp. Można również dodać po prostu dokument lokalny, który po publikacji zadania zostanie umieszczony w odpowiednim miejscu na portalu.

Każdemu zadaniu przypisana jest historia zmian, wiadomo więc kto i kiedy wprowadzał zmiany w poszczególnych atrybutach. Co więcej, taka historia jest gromadzona w hurtowni danych w SQL Server 2005 i można ją później poddać analizie, np. w celu sprawdzenia skali zmian lub postępu w projekcie. Gdy projekt już trwa, w dowolnym momencie można też wykonać operację odwrotną, czyli porównać zawartość zadań z założeniami wpisanymi do harmonogramu w Project.

Usługi Reporting Services serwera SQL Server 2005 są wykorzystywane w TFS jako narzędzie do generowania i pokazywania wszelkiego rodzaju zestawień. Dzięki temu bez uruchamiania środowiska IDE można zobaczyć, ile wpłynęło nowych zgłoszeń o błędach, ile jeszcze workitems trzeba wykonać itp. Portal ten zawiera także wszelką związaną z projektem dokumentację, którą można edytować, wersjonować, przeglądać historię wprowadzanych zmian itp. Jest też wsparcie dla komunikatora Messenger (sprawdzanie dostępności uczestników projektu). Z TFS można także korzystać nie opuszczając aplikacji Excel.

Duży projekt, pełna kontrola

Microsoft w zarządzaniu kodem źródłowym przez długi czas opierał się na narzędziu SourceSafe, które jako repozytorium wykorzystywało system plików. W projektach angażujących większą liczbę deweloperów takie zarządzanie kodem może być problematyczne, dlatego w Team Foundation Server dostępny jest zupełnie nowy mechanizm kontroli wersji oparty na SQL Server 2005 i technologii Web Services. Definiowanie gałęzi wersji polega nie na fizycznym kopiowaniu plików, lecz na opatrywaniu kodu "etykietami".

Z punktu widzenia zarządzania dużymi projektami ważne jest to, że aby kod mógł być zatwierdzany w innej gałęzi, musi spełnić zdefiniowane wcześniej warunki. Na przykład można wymagać, by przejście pomiędzy gałęzią testową a produkcyjną było możliwe tylko wtedy, gdy skompilowana aplikacja przejdzie wszystkie testy jednostkowe. Zasady mogą zależeć od tego, kto wysyła plik, do jakiej gałęzi, czy nawet jakiego folderu dotyczy. W repozytorium przechowywana jest ostateczna wersja pliku, ale łatwo można się cofnąć do dowolnej starszej wersji.

Korzyści razy trzy

Team System można rozdzielić na 3 główne składowe. Pierwsza to część związana z projektowaniem systemów IT (diagramy logiczne architektury). Zwykle potrzeba taka powstaje, gdy system jest zbyt duży, by jedna osoba mogła ogarnąć wszystkie jego aspekty. Druga składowa to narzędzia dla programisty, w tym zwłaszcza system kontroli wersji i mechanizm zarządzania zadaniami. Pozwala on przekazywać zadania w ramach zespołu, jak również na wzajemne informowanie się członków zespołu o postępach prac. Dodatkowym ułatwieniem dla programisty jest portal, w którym znajdują się wszystkie potrzebne dokumenty, np. spisy wymagań, uwagi, zmiany itp.

Z punktu widzenia testera (oprócz komponentu do generowania i nadzorowania testów jednostkowych) użyteczny jest na pewno mechanizm automatyzacji budowy całego rozwiązania. Pakiety tego rodzaju, jak chociażby Draco .Net czy CruiseControl .Net, pozwalające pobrać dane z serwera kodu źródłowego i skompilować je na docelowej maszynie, są od dawna dostępne dla innych systemów kontroli wersji. Zaletą w przypadku Team System jest to, że można "nałożyć" dodatkowe wymagania do sprawdzenia. Można także zażądać automatycznej statycznej analizy kodu i wykonania testów jednostkowych. Wyniki automatycznie zostaną umieszczone w hurtowni danych i kostkach OLAP na SQL Server 2005. Tym samym można łatwo podejrzeć postęp prac i przyjrzeć się elementom, które sprawiają najwięcej kłopotów.

Najwięcej korzyści z Team System odniesie menedżer projektu, który nie zajmuje się tworzeniem czy nawet nadzorem nad jego tworzeniem, lecz jest odpowiedzialny za postępy prac i wyniki od strony biznesowej. Taka osoba uzyskuje dzięki niemu dostęp do raportów powiązanych z jakością kodu, postępem prac i innymi ogólnymi miarami pozwa-lającymi wnioskować o ryzyku, zasobach, kosztach itp. Co więcej, wszystkie interesujące go dane będzie mógł uzyskać, nie opuszczając Excela lub Outlooka.

Automatyczna kompilacja i testowanie

W ramach infrastruktury TFS można także zdefiniować "serwer buildów". Jego rola polega na kompilowaniu, a potem publikowaniu skompilowanych plików na witrynach dla testerów. Build to jednak nie tylko kompilacja, ale też np. uruchomienie wskazanego zestawu testów jednostkowych, wykonanie statycznej analizy kodu itp. Kreator do definicji buildu tworzy plik XML, który potem może być modyfikowany. Na podstawie konkretnego buildu można nawet definiować automatyczne tworzenie standardowych zadań, np. dla testerów polegających na przejrzeniu wyników standardowych testów.

<hr>Dla COMPUTERWORLD komentuje , Strategy Advisor, Microsoft Polska.

Piotr Cichocki

Piotr Cichocki

Microsoft Visual Studio Team System (VSTS) wnosi do projektów deweloperskich znacznie więcej niż możliwość koordynacji pracy dużych zespołów. VSTS to pierwsze narzędzie w historii produktów narzędziowych Microsoftu, które od początku powstawało z myślą o dużych zespołach deweloperów. Nie jest tajemnicą, że dotychczasowe wersje Visual Studio były przeznaczone dla małych, ewentualnie średnich zespołów. Największe wdrożenie VSTS - obejmujące ponad 2 tysiące osób - odbyło się jak dotychczas w samym Microsofcie, ale wdrożeń dla zespółow od kilkudziesięciu do kilkuset osób jest już całkiem sporo.

W kontekście Microsoft Visual Studio Team System na podkreślenie zasługuje kilka spraw. Przede wszystkim, wraz z premierą VSTS Microsoft ma w ofercie narzędzia dla całego spektrum rynkowych potrzeb: poczynając od darmowych wersji narzędzi z serii Express Edition, które umożliwiają darmową naukę , poprzez komercyjne wersje Visual Studio dla małych i średnich grup deweloperskich, aż po wielkie domy software'owe i duże działy deweloperskie w korporacjach.

Druga ważna nowość polega na tym, że VSTS znacząco rozszerza krąg osób, czy też ról bezpośrednio uwzględnionych w narzędziu, oprócz programisty w szerszym stopniu uwzględniając także architektów, specjalistów baz danych oraz testerów. W VSTS przewidziano znacznie więcej funkcjonalności dla testerów, a ponadto pojawiła się rola programisty baz danych. Dla każdej z tych ról istnieje dedykowana wersja narzędzi Visual Studio. Każdą z tych wersji można przy tym jeszcze dodatkowo wzbogacić specyficznymi dla nich rozszerzeniami firm trzecich. Kolejne osoby korzystające z nowych możliwości VSTS to planiści i kierownicy projektów, którzy otrzymują możliwość sięgania do raportów i harmonogramów oraz śledzenia postępów pracy zespołu.

Należy także wspomnieć iż funkcjonalność VSTS obejmuje cały cykl rozwoju aplikacji.

Od projektowania, poprzez wykonanie i testowanie aż do wdrożenia. Warto zwrócić uwagę na nowości dotyczące tego ostatniego etapu. Przygotowanie do wdrożenia rozpoczyna się już tak naprawdę podczas projektowania aplikacji, za pomocą narzędzia Application Designer mapującego logikę aplikacji na moduły. Inne narzędzie, Deployment Designer, pozwala projektować rozmieszczenie modułów na serwerach, uwzględniać uwarunkowania środowiskowe, jak np. strefy DMZ itd.

Kolejna ważna uwaga jest taka, że narzędzie dla dużych firm, czyli VSTS, nie jest narzędziem wyłącznie dla deweloperów. VSTS to system zarządzania projektami deweloperskimi, w którym przewidziano role i odpowiednie narzędzia także dla osób z biznesu, a więc kierowników projektów, sponsorów, audytorów itp. Te osoby mogą w ogóle nie dotykać kodu, ani narzędzi do - mogą korzystać z VSTS za pomocą raportów publikowanych na witrynach SharePoint lub Project Server, a nawet tylko z Excela lub Outlooka.

VSTS wnosi także do projektów deweloperskich coś więcej, niż tylko same narzędzia i system zarządzania projektem. W VSTS Microsoft zawarł dwa szablony metodologii prowadzenia projektów deweloperskich, które stanowią sprawdzone szkielety procedur postępowania umożliwiające osiąganie dobrych efektów. Pierwszy z nich to, oparty na architekturze referencyjnej, Microsoft Enterprise Architecture szablon Microsoft Solutions Framework for Agile Development, drugi to Microsoft Solution Framework for CMMI. Szablony te możemy dostosowywać do specyficznych wymagań zespołu, możemy też tworzyć własne szablony metodyk prowadzenia projektu.