Analiza - czas na myślenie

Wzrastająca złożoność produktów informatycznych wymusza coraz większe zespoły i coraz bardziej złożone procesy. Szczególnie istotną rolę w procesie pełni analiza, zaś w zespołach - analityk. Co charakteryzuje dobrego analityka? Czym wspomaga się on w swojej pracy? Czy bycie analitykiem to coś, czego każdy może się nauczyć, czy też wymaga to wrodzonych talentów?

Wzrastająca złożoność produktów informatycznych wymusza coraz większe zespoły i coraz bardziej złożone procesy. Szczególnie istotną rolę w procesie pełni analiza, zaś w zespołach - analityk. Co charakteryzuje dobrego analityka? Czym wspomaga się on w swojej pracy? Czy bycie analitykiem to coś, czego każdy może się nauczyć, czy też wymaga to wrodzonych talentów?

Tradycyjny model projektu informatycznego - od zebrania wymagań po wprowadzenie na rynek gotowego produktu - widzi rolę dla analityka jedynie na początku procesu. Tak rozumiany analityk zajmował się zebraniem wymagań, wstępnym ich przetworzeniem na język zrozumiały dla projektantów i później programistów. Ewentualnie mógł jeszcze zostać włączony na etapie weryfikacji oprogramowania, gdzie - wraz z użytkownikiem - oceniał, czy rzeczywiście wykonano to, czego klient potrzebował.

Rola ta w ostatnich kilku latach zmieniła się bardzo. W ślad za krystalizacją ról uczestników projektu, standaryzacją procesów w firmach informatycznych i coraz większymi wymaganiami dotyczącymi jakości rola analityka ewoluuje w stronę mniej techniczną, a bardziej procesową. Analityk to dziś nie tylko osoba, która potrafi rozmawiać z klientem i rysować diagramy. To aktywny uczestnik procesu w każdej jego fazie. Zwykle to właśnie analityk jest kluczową postacią w decyzjach dotyczących architektury systemu, jego struktury oraz narzędzi. To on określa sposoby weryfikacji produktu (i to nie tylko produktu finalnego, ale także np. produktu zespołu projektowego); często jest też autorem testów i obszernych fragmentów dokumentacji.

Posłużmy się przykładem i wyobraźmy sobie system wymiaru czynszu dla spółdzielni mieszkaniowej. W tradycyjnie rozumianej inżynierii oprogramowania obowiązkiem analityka będzie ustalenie podstaw wymiaru czynszu i zawarcie tego w dokumentacji analitycznej przygotowanej na potrzeby projektu. Pójdzie więc do działu czynszów w spółdzielni mieszkaniowej i postara się wydobyć od osób tam pracujących jak najwięcej szczegółów. Sporządzi dokument, diagramy komponentów, klas, itd.; narysuje najważniejsze elementy interfejsu użytkownika i kluczowe fragmenty algorytmów. Tak przygotowaną dokumentację odda projektantom, w razie potrzeby wyjaśniając i doprecyzowując poszczególne elementy.

Nowocześnie rozumiany analityk będzie miał znacznie większą odpowiedzialność. Przeprowadzi więc rozmowy ze specjalistami ze spółdzielni mieszkaniowej, ale jednocześnie zapozna się z obowiązującym prawem.

Doprowadzi do spotkania w gronie projektantów i programistów. Opisze testy jednostkowe (unit tests) oraz funkcjonalne. Przeanalizuje komunikację z użytkownikiem pod kątem prostoty, przyjazności i ergonomii.

Na koniec dokona ostatecznej weryfikacji produktu przed przekazaniem go klientowi. Będzie także uczestniczył w konsultacjach z projektantem i specjalistami ds. zapewnienia jakości, gdzie poszczególne produkty analizy (np. diagramy) będą weryfikowane pod kątem technicznym oraz zgodności ze standardami jakości.

Na przykład w projekcie IACS rolą analityka jest spajanie i kontrolowanie całości pewnego obszaru działań, zwanego tu "grupą problemową". Miłosz Rokita, analityk odpowiedzialny w tym projekcie m.in. za windykacje, musi pełnić rolę integratora między wieloma uczestnikami procesu. Typowy cykl pracy analityka opisuje tak: "Podstawą są spotkania, gdzie dyskutujemy z pracownikami merytorycznymi odbiorcy na temat uwarunkowań organizacyjnych, prawnych i finansowych. Bezpośrednio po spotkaniach następują konsultacje z analitykami zajmującymi się innymi obszarami analizy, na które nowo pozyskane informacje mają wpływ. Konsultacje z zespołem projektowym obejmują techniczne możliwości implementacji. Wspólnie staramy się dobrać jak najlepsze rozwiązania. Następnie, wyposażeni w wiedzę dziedzinową i techniczną, ponownie przeglądamy diagramy modelu analitycznego systemu, poszukując potencjalnych wąskich gardeł. Na koniec budowane są scenariusze testów, które, przeprowadzone w odpowiedniej fazie, pozwolą wykryć ewentualne zagrożenia dla poprawności i wydajności całości implementacji". Jak widać "całość pewnego obszaru działań" jest rozumiana dosłownie - rolą analityka jest wiedzieć na dany temat po prostu wszystko.

Analityk i zmiana

Szczególną rolę pełni analityk w momencie zmiany. Zmiana oczywiście może wynikać z kilku powodów - np. zmiany prawa, wykrycia błędu, zmiany założeń itd. Prawidłowe zarządzanie zmianą w procesie budowy oprogramowania to niezmiernie trudna rzecz, a rola analityka jest tutaj kluczowa.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200