2006 05 Antywzorce w zarządzaniu projektami informatycznymi [Inzynieria Oprogramowania]


Inżynieria
oprogramowania
Antywzorce w zarządzaniu
projektami informatycznymi
Stefan Turalski
rtykuł o zarządzaniu projektami informa-
tycznymi w czasopiśmie dla deweloperów? Wymagania klienta
ACzyżby i już tutaj sięgały macki wszechmoc-
nych menadżerów? Otóż nie, artykuł ten jest adre-
Architektura
sowany do Ciebie  dewelopera, biorącego udział
w projekcie informatycznym.
Na co dzień żyjesz w świecie pełnym wyzwań, być
Projekt
może tworzysz przełomowe rozwiązanie lub utrzymu-
jesz starożytny system informatyczny. Musisz doko-
Kodowanie
nywać cudów w piątkowy wieczór i uczyć się podczas
snu. Na biurku wśród stosów dokumentacji, gdzieś pod
kubkiem od kawy leży ponowienie ponowienia proś-
Testowanie
by o wykorzystanie zaległych urlopów. Realizujesz za-
danie, do którego potrzeba 1.4241 dewelopera. Brzmi
Rysunek 1. Elementy przykładowego procesu
znajomo? Jeśli tak, ten artykuł jest właśnie dla Ciebie.
wytwarzania oprogramowania
Postaram się wskazać najczęściej pojawiające się błę-
dy w zarządzaniu projektami. Tematyka poruszona w zachowania ludzkie prowadzące do powstawania
artykule to antywzorce projektowe, złe praktyki rozpo- złych praktyk to między innymi duma, lenistwo, za-
znawane i opisywane od lat. Jeśli chcesz wiedzieć, dla- chłanność, pycha czy ignorancja.
czego tak wiele projektów kończy się niepowodzeniem, Wzorce projektowe często kojarzone są jedynie
a idolem dla większości z Nas jest Dilbert i Chuck Nor- z konstrukcjami programistycznymi. Antywzorce projek-
ris  zapraszam do lektury. towe omówione poprzednio, dotyczyły głównie zadań
związanych z tworzenia oprogramowania. Nie można
Antywzorce projektowe jednak zapomnieć, iż wzorce i antywzorce w projektach
Podstawowe informacje dotyczące antywzorców za- informatycznych napotykamy na każdym etapie. Czy
warłem w artykule  Antywzorce projektowe (SDJ 2/ to podczas zbierania wymagań, tworzenia architektury
2006), dla przypomnienia jednak  kilka podstawo- systemu, kodowania, czy też w zarządzaniu projektem.
wych faktów.
Antywzorzec to opis złej praktyki  błędu popełnia- Błędy w zarządzaniu projektami
nego na tyle często, iż został zidentyfikowany, nazwa- Nim przejdziemy do omówienia poszczególnych antyw-
ny i udokumentowany. Podczas gdy wzorce projektowe zorców projektowych, pragnę poprosić Cię o jedno. Je-
prezentują poprawne rozwiązania pewnych klas pro- śli zauważysz, iż w Twoim projekcie wystąpił antywzo-
blemów, antywzorce wykorzystujemy w celu identyfika- rzec, porozmawiaj o tym z członkami zespołu. Zgłoś to
cji błędów w sztuce. Okazuje się, że człowiek jest na ty- menadżerowi i nie poddawaj nawet jeśli nie spotkasz
le skomplikowany, iż łatwiej zapamiętuje przykłady ne- się z pozytywną reakcją. Podstawowy antywzorzec to
gatywne niż pozytywne  z tego też powodu antywzor- brak świadomości istnienia antywzorców. Być może
ce są poręcznym narzędziem dydaktycznym. brzmi to enigmatycznie, zauważ jednak, iż gdy potra-
Antywzorzec nie byłby przydatny, gdyby zawie- fisz zidentyfikować błąd, potrafisz się przed nim ustrzec
rał tylko opis błędu. To, czego potrzebujemy i co zo-  wszak po to właśnie opracowuje się antywzorce!
stanie zaprezentowane również w niniejszym arty-
kule, to przykłady działań, które należy podjąć, aby  Don't Worry, Be Happy
naprawić popełniony błąd. Większość antywzorców Tytuł piosenki Bobby'ego McFerrin'a świetnie oddaje
jest efektem konkretnej postawy członków zespołu, stan jaki panuje w wielu projektach informatycznych.
w którym go zidentyfikowano. Poprzednio opisane Pośpiech, lenistwo lub brak doświadczenia w prowa-
dzeniu projektami, stwarza sytuacje, w których nikt nie
pomyślał o zastosowaniu choćby podstawowych za-
Autor pracuje na stanowisku - projektant oprogramowa-
sad zarządzania procesem wytwarzania programowa-
nia w firmie Silicon & Software Systems Polska. Z za-
nia. Antywzorzec ten, zwany też inaczej  nil desperan-
interesowaniem przygląda się rozwojowi technologii IT,
dum (łac. nie ma powodu do rozpaczy) jest dość łatwo
dawno już straciwszy nadzieję, że jest w stanie ogarnąć
zidentyfikować. Jeśli słyszysz lub być może sam nie-
tą dziedzinę wiedzy.
Kontakt z autorem stefan.turalski@gmail.com dawno wypowiedziałeś magiczne zaklęcie  Powiedz
mi, czego chcesz, a ja to zakoduję - masz do czynienia
46
www.sdjournal.org
Software Developer s Journal 5/2006
Antywzorce w zarządzaniu projektami informatycznymi
z tym antywzorcem. Myślisz, że nie potrzebujesz projektu syste- Można zaryzykować stwierdzenie, że jeśli podejmiemy się
mu? Nie ma potrzeby kłopotać klienta i spotykać się w celu prze- zarządzania projektem i zatrudnimy menadżera, niemal w 100%
dyskutowania wymagań? Piszesz doskonały kod, który nie po- pewne jest, iż podejmie on, choć jedną nieracjonalną decyzję.
trzebuje testów? Proszę powiedz, że na żadne pytanie nie odpo- Nie ma ludzi nieomylnych i kontrola samego procesu zarządza-
wiedziałeś twierdząco. nia też jest konieczna. W przeciwnym przypadku otrzymamy
Niestety, brak świadomości istnienia procesu wytwarzania projekt, który stanie się typowym zródłem antywzorców w zarzą-
oprogramowania prowadzi do przekroczenia kosztów budowy dzaniu. Akcje zapobiegawcze w tym przypadku sprowadzają się
rozwiązania informatycznego, zerwania kontraktu, czy też stwo- praktycznie do podnoszenia kwalifikacji menadżerów. Wraz ze
rzenia nikomu nie potrzebnego systemu. zbieraniem doświadczenia, osoby kierujące projektem zdają so-
Przykładem może być tu projekt dotyczący stworzenia Intra- bie sprawę z najczęściej popełnianych błędów i potrafią ich uni-
netu w pewnej firmie. Projekt został zaplanowany na 2 tygodnie, kać. Z punktu widzenia programisty warto zaznaczyć, iż to wła-
deweloperzy, aby lepiej współpracować pojechali kodować do śnie Nas często pyta się o oszacowanie czasu projektu  jeśli
siedziby klienta. Po 2 miesiącach stworzono zalążek systemu, zrobimy to zle, lub przeoczymy pewne zadania, z pewnością za-
który pracownicy klienta przeklinali, bo chociaż był piękny, to pra- płacimy za to w przyszłości.
cował bardzo wolno. Nikt nie przewidział, że zespół klienta to po-
nad 2 tysiące pracowników, znacznie obciążających serwer Intra- Marsz ku klęsce
netu. Co więcej, mimo, że deweloperzy twierdzili, iż spełnili wy- W znanej większości menadżerów książce Edwarda Yourdon'a
magania klienta, ten nie chciał zapłacić uzgodnionej kwoty. Ja-  Death March , autor opisał i zdefiniował grupę projektów z góry
ko powód podał brak 75% wymaganej funkcjonalności. Czy tylko skazaną na niepowodzenie. Podana definicja zakłada, iż projekt
zbiegiem okoliczności było to, że pozostałe 25% zostało wykona- skazany na klęskę to taki, w którym brakuje ponad 50% zasobów.
ne perfekcyjnie i pracowało na potrzeby działu HR, z którym są- Z pewnością powierzono Ci nie raz zadanie, które powinno wy-
siadował pokój programistów? Na całe szczęście tego typu sytu- konać kliku programistów To przykład braku prawidłowego osza-
acje zdarzają się dość rzadko. cowania kadry potrzebnej do realizacji projektu. Analogicznie,
Większość menadżerów ma już świadomość istnienia pro- o 50% za niski budżet lub zadeklarowany czas trwania projektu
cesu zarządzania projektem informatycznym, a i dla dewelo- krótszy od porównywalnych projektów o 50%, prowadzi do fiaska
perów znajomy jest Rysunek 1. danego przedsięwzięcia. Podobne założenie dotyczy także celów
Jeśli jednak nie wiesz, czym jest proces wytwarzania opro- projektu, które często nie tylko trochę, ale nawet o ponad 50%
gramowania, ten artykuł Ci nie pomoże. Temat ten stanowczo mają przewyższać standardowo opracowywane rozwiązania.
wymaga zgłębienia i jest zbyt rozległy, aby poruszyć go na tych Doświadczenie uczy, iż niemal każdy projekt informatyczny
kilku stronach. Nie muszę chyba mówić, że to będzie także Two- to marsz ku klęsce, według definicji Yourdon'a. Nie należy, więc
ja wina, jeśli np. nie przetestowane rozwiązanie zostanie (w naj- od razu załamywać rąk. To co potrafi dobry menadżer projektu,
lepszym przypadku) zwrócone do kosztownych poprawek. Je- to identyfikacja tych zasobów, które są krytyczne i stwarzają ry-
śli więc posiadasz odpowiednie doświadczenie, nie zgadzaj się zyko w projekcie. Następnie z wykorzystaniem dostępnych środ-
na łamanie podstawowych zasad i dobrych praktyk wytwarza- ków, ryzyko to można próbować minimalizować.
nia oprogramowania. Podstawowy antywzorzec rozwiązuje się Przykładem może być mała firma programistyczna, która
bardzo prosto  należy wprowadzić proces zarządzania projek- choć posiada bardzo niewielkie środki zobowiązała się stwo-
tem. Niestety bez pracy nie ma kołaczy lub jak mawiają Anglosa- rzyć złożony system o bardzo specjalistycznej funkcjonalności
si  No pain, no gain . (nie trzeba chyba wspominać, iż o dziedzinie problemu, któ-
ry miał wspierać system, w zespole programistów nikt nic nie
Nieracjonalne zarządzanie wiedział). Jedyne, co przemawia na jej korzyść to czas projek-
Załóżmy, że dysponujemy kierownictwem zespołu rozumieją- tu, który jest dość luzno określony.
cym, że planowanie jest potrzebne. Konieczne jest upewnie- W takim przypadku, sprawny menadżer może zapropono-
nie się, że menadżerowie nie popełniają podstawowych błędów wać klientowi dostarczanie kolejnych modułów, jako wyników ko-
w planowaniu. Śledzenie projektu na każdym z etapów prac jest lejnych etapów projektu. Firma miast narażać się na kredyt, bę-
niewątpliwie potrzebne, jednak nikt nie potrafi poprawnie osza- dzie miała stałe zródło dochodów, mały zespół łatwiej przetestu-
cować zadań zależnych od specyfikacji wymagań klienta, które je, zaprojektuje, wykona i wdroży niewielkie moduły. Korzyść zaś
jeszcze nie zostały dostarczone. z przyrostowego wytwarzania oprogramowania, to w tym przy-
Błędy w zarządzaniu projektem zdarzają się zawsze, mogą padku możliwość szybkiej reakcji na potrzeby klienta, który prze-
przyjąć rozmiar antywzorców opisanych poniżej, takich jak Marsz cież niekoniecznie musi posiadać całą oczekiwaną funkcjonal-
ku klęsce, czy Zamrożenie w fazie analizy. Najczęściej powodu- ność od razu. Najważniejsze w przypadku zidentyfikowania
ją je tzw.  Trudni ludzie , których obecność w projekcie jest tak- antywzorca  marsz ku klęsce jest odpowiednie zidentyfiko-
że jednym z antywzorców. Nie potrafiąc lub nie znając specyfi- wanie przyczyny marszu. Gdy nic innego już nie pomaga, pro-
ki projektu podejmują błędne decyzje. Nowy menadżer w projek- ponuję uciekać. Marsz trwa często do kilku lat, w zależności
cie, który realizuje pewne zadania niespełna od roku, może błęd- od zasobów organizacji. Niestety kadra kierownicza, która nie
nie alokować ludzi. Brak mocy decyzyjnej może powodować, iż potrafi odpowiednio zareagować i zapobiec skutkom marszu,
przez kilka pierwszych miesięcy tworzy się dokumenty zamiast przyczyni się tylko do klęski projektu.
rozpocząć kodowanie. Na efekty nie trzeba długo czekać. Sys-
temy, które powstawały w przeciągu kliku tygodni nie są odpo-  Mushroom management
wiednio przetestowane, najczęściej dlatego, iż menadżer nie za- W kolejnej kultowej już niemal książce  The Soul Of A New
łożył tego typu zadania. Machine Tracy Kidder opisuje projekt informatyczny, w któ-
Software Developer s Journal 5/2006 www.sdjournal.org
47
Inżynieria
oprogramowania
rym udział biorą młodzi deweloperzy oddzieleni od oczekiwań bez kompleksowej wiedzy o dziedzinie problemu. Możemy mieć
klientów. Hodowla grzybów, jak potocznie można przetłuma- do czynienia ze szczególnie mocnym przywiązaniem do pewnej
czyć anglojęzyczną nazwę antywzorca, to sytuacja niestety technologii, pochodzącej z poprzedniego projektu menadżera, a
nazbyt częsta w projektach. nie adekwatnej do potrzeb aktualnego projektu. Zachowania te-
Kierownictwo projektu, architekci, specjaliści analizujący go typu blokują postęp prac projektowych lub jak sugeruje na-
wymagania klientów, tworzą dokumentację oraz modele opi- zwa antywzorca  zamrażają je.
sujące przyszły system. Sami programiści, czyli autorzy roz- Nawet w sytuacji, gdy projekt wyszedł poza fazę analizy, za-
wiązania nie są dopuszczani do rozmów z klientem. Skutkiem zwyczaj długą i dostarczającą bardzo dokładnej wiedzy, anty-
tego dostarczone rozwiązanie często nie dostarcza oczekiwa- zwozrzec ten może ujawnić się ponownie. Czasem podczas pro-
nej przez klienta funkcjonalności. jektowania, implementacji lub testowania, okazuje się że analiza
Często programiści padają także ofiarą dość swobodne- nie przewidywała pewnych sytuacji lub po prostu jest sprzeczna
go traktowania dokumentacji projektowej przez samego klien- z rzeczywistymi wymaganiami klienta. Menadżerowie, którzy już
ta. Osobiście byłem świadkiem projektów, w których klient od- poświęcili zasoby projektu na wykonanie analizy, najczęściej bę-
rzucił przedstawione mu rozwiązanie, mimo iż wcześniej zaak- dą bronili już istniejących założeń. A przecież proces wytwarza-
ceptował przygotowaną dokumentację. Bardzo prostą akcją za- nia oprogramowania zakłada zmiany. Jeśli więc pojawi się ko-
pobiegawczą jest opracowanie prototypu systemu. Przy możli- nieczność ich wprowadzenia, należy odpowiednio na nie zare-
wościach oferowanych przez nowoczesne środowiska i techno- agować, szacując wpływ zmiany na już istniejący system. Pod
logie, przygotowanie tego typu przykładowego rozwiązania, nie żadnym pozorem nie można stwierdzić, iż raz wykonana analiza
pochłania dużych zasobów, a jest nieocenione w trakcie rozmów jest już dziełem ostatecznym.
z klientem. Aby uniknąć sytuacji, gdy programista pisze program Jeśli jako programista zauważasz tego typu błędy w za-
dla siebie, a nie dla użytkownika, należy go oswoić z problemem. rządzaniu projektem, zwróć proszę uwagę kierownictwu. Do-
Mimo, iż nasze środowisko jest postrzegane przez pryzmat ste- brze wykonana analiza to analiza, którą można zmieniać.
reotypów, programista nie może być izolowany od klienta i od je- Panujące obecnie podejście obiektowe do projektowania
go potrzeb. Jeśli odpowiednio wcześnie nie zasygnalizujesz, że programowania z definicji jest przygotowane na rozszerzanie.
brakuje Ci jasnej wizji systemu, nie mówiąc już o szczegółach re- Coraz popularniejsze podejście architektur zorientowanych
alizacji poszczególnych procesów  sam przyczynisz się do po- na usługi (ang. Service Oriented Architecture) również zakła-
rażki tego projektu. da, iż rozwiązanie  kompletny system informatyczny, zosta-
nie oparte o zestaw usług podatnych na zmiany (z tego to po-
Zamrożenie w fazie analizy wodu usługa najczęściej prezentuje jedynie interfejs, ukrywa-
Brak fazy analizy w projekcie informatycznym jest niemal niewy- jąc szczegóły implementacyjne).
obrażalny. Wszak, zarówno klient jak i zespół budujący rozwią- Nie należy więc dążyć do zamknięcia fazy analizy i jej za-
zanie informatyczne musi uzgodnić zakres funkcjonalności two- mrożenia. Wręcz przeciwnie, w dobrze zarządzanym projek-
rzonego systemu. I choć nieczęsto można mówić o doskonale cie, faza analizy istnieje w tle. Każda zmiana wynikająca czy
przeprowadzonej analizie, istnieją projekty, w których za cel po- to z zmiany wymagań klienta, czy to z dostrzeżonych niespój-
stawiono sobie stworzenie idealnego zbioru wymagań funkcjo- ności lub luk w analizie, powoduje powrót do już poczynionych
nalnych oraz projektu systemu. Projekty, w których faza analizy założeń i ich rewalidację.
przeciąga się, są szczególnie niebezpieczne, gdyż najprawdopo- Podsumowując, faza analizy jest niewątpliwie kluczowa i bar-
dobniej nigdy nie przejdą w fazę implementacji systemu. Szcze- dzo ważne jest prawidłowe jej przeprowadzenie. Należy, jednak
gólnie dobrze znają ten antywzorzec osoby, które miały okazję pamiętać, aby nie przesłoniła nam ona celu, jakim jest stworze-
pracować w projektach wielokrotnie rozpoczynanych całkiem od nie rozwiązania informatycznego. A podczas prowadzenia prac
nowa. Przyczyną może być tu zmiana kierownictwa lub główne- projektowych należy zapewnić dobre zarządzanie zmianami
go celu projektu. wpływającymi na już poczynione założenia.
Faza analizy służy do nakreślenia wizji przyszłego systemu,
w możliwe dokładny sposób. Nie należy jednak kierować się za- Plan
sadą, iż jeśli raz dokonaliśmy analizy systemu nigdy już nie wró- Każdy kto pamięta czasy poprzedniego ustroju (PRL u),
cimy do tej fazy. Doświadczenie uczy, że dobrze przeprowadzo- z pewnością wie czym jest PLAN. Kto zaś nie pamięta, wy-
na analiza, to nie ta, która dostarcza kompleksowej wiedzy o bu- starczy, że rzuci okiem na kroniki filmowe z poprzedniej epoki.
dowanym rozwiązaniu, w tym o najmniejszych jego szczegółach. Plan na kilka lat, pomagał zarządzać całym krajem. Scentrali-
Dobra analiza to taka, która pozwala na łatwe wprowadzanie zowane centrum dowodzenia, najpierw plan taki tworzyło, na-
zmian, które z pewnością pojawią się w przyszłości. stępnie go egzekwowało, tzn. wymagało jego wykonania. Re-
Jak widzimy na Rysunku 1. projekt informatyczny można
traktować zgodnie z modelem wodospadowym, w którym kolej-
Bibliografia
ne fazy następują po sobie. Doświadczony menadżer wie jed-
nak, że budowanie systemu informatycznego to proces przyro-
l
AntiPatterns: Refactoring Software, Architectures, and Projects
stowy. Po wykonaniu pracy, np. w fazie implementacji lub testo-
in Crisis
wania, być może będziemy musieli powrócić do faz początko-
l
William J. Brown, Raphael C. Malveau, Hays W. McCormick
wych w celu weryfikacji pierwotnych założeń.
III, Thomas J. Mowbray  AntiPatterns in Project Management
l
Menadżerowie mogą nalegać na dostarczanie im kompletnej William J. Brown, Hays W. McCormick III, Scott W. Thomas
l
http://c2.com/cgi/wiki?AntiPattern
analizy systemu przed podjęciem prac projektowych. Być może
kierownictwo projektu boi się podjąć decyzję o realizacji systemu
48
www.sdjournal.org
Software Developer s Journal 5/2006
Antywzorce w zarządzaniu projektami informatycznymi
alna realizacja była najczęściej nierealna, a raportowane po- a zespołem wykonującym powierzone zadanie. Również we-
stępy i wyniki istniały jedynie na papierze. wnątrz zespołu, pomiędzy osobami pełniącymi różne role, do-
Sytuaja podobna ma niestety miejsce w wielu projektach kumentacja umożliwia zapisanie podjętych decyzji, ich uza-
informatycznych. Z własnego doświadczenia mogę przywołać sadnienie oraz stanowi punkt odniesienia w przyszłych dys-
taką oto historię. kusjach.
Menadżer projektu, niekoniecznie dysponujacy wiedzą in- W sytuacji, gdy tworzenie dokumentów przybiera formę
formatyczną zbudował zręby planu. Podlegli mu kierownicy ze- głównego celu projektu, mamy do czynienia z antywzor-
społów zdefiniowali grupy zdań, wreszcie programiści wyodręb- cem. Programiści powoli zapominają jak wygląda kod, pro-
nili pojedyńcze zadania. Oczywiście dzieło takie było nie do za- jektanci są coraz bardziej sfrustrowani wprowadzaniem ko-
akceptowania przez zarząd firmy wykonującej projekt. Plan prze- lejnych poprawek do pieczołowicie wersjonowanych doku-
kraczał terminy, zakładał szkolenia oraz powiększenie zespołu. mentów. Jedynie menadżerowie cieszą się, że coś się dzie-
Zasiedliśmy więc do planowania raz jeszcze. Tym razem kosz- je w projekcie, że są efekty. Klient, zaś od czasu do czasu
ty się zgadzały, a kilka zadań sprytnie ukryliśmy tak, że projekt występuje z zapytaniem, jak postępują prace Jednak szyb-
został zaakceptowany. Gdy po prawie dwóch tygodniach wystar- ko milknie przywalony setkami stron oraz prośbami o ko-
towaliśmy, okazało się, że w planie nie przewidziano połowy za- mentarze. Jedyny plus istnienia tego typu projektów to sys-
dań. Natomiast metodę oszacowania czasu wykonania pozosta- tem hyperlinków, na którym opiera się Internet. Gdyby nie
łych zdań z powodzeniem można byłoby wykorzystać w syste- tomy dokumentacji i konieczność szybkiego odwoływania
mach gier losowych. się pomiędzy stronami, zapewne nigdy nieprędko wymyślo-
Plan w projekcie jest tylko narzędziem, pomagającym no by tego typu rozwiązanie.
oszacować koszt i czas. Za pomocą spisanych zadań, ułożo- Gdy czujesz, że już tak dalej nie możesz, że przeno-
nych w piękny wykres Gantta, nie oszczędzimy pieniędzy ani szenie dokumentów do nowego szablonu już Cię nie cie-
tez nie wstrzymamy czasu. Jeśli menadżer projektu naciska szy, a funkcje popularnych pakietów biurowych znasz le-
na wykonanie planu, kiedy widzisz, że zdania uległy zmianie, piej niż język programowania, którym zarabiasz na życie
musisz to zasygnalizować.  czas powiedzieć dość! Zaproponuj kierownikowi, iż za-
Głównym zadaniem menadżera w projekcie jest zapewnienie miast kolejnego dokumentu  do 20 stron stworzysz pro-
dobrej komunikacji między osobami zespołu i zarządzanie pla- totyp. Jeśli jesteś projektantem, może zaproponujesz do-
nem projektu. To ta osoba jest odpowiedzialna za aktualizowanie świadczenie architektoniczne. Nie musisz przecież znać
danych i śledzenie postępów w projekcie. Jeśli nie otrzyma sy- szczegółów działania wszystkich warstw aplikacji, zawsze
gnału o zmieniających się wymaganiach klienta, lub o przeciąga- można stworzyć moduły symulujące działanie jeszcze nie
jacym się czasie wykonania szczególnie skomplikowanego zda- zaprojektowanych elementów.
nia, nie jest w stanie prawdłowo zareagować, w tym międy inny- Przede wszystkim nie pozwól, aby wycięto więcej drzew
mi oszacować ryzyka powodzenia projektu. Jeśli więc menadżer tylko na potrzeby kolejnego dokumentu, którego nikt nie prze-
projektu igoruje zgłaszane problemy z wykonaniem planu, jego czyta. Jeśli wiesz, że dokumentacja, którą przyszło Ci pisać,
kompetencje należy postawić pod znakiem zapytania. nie zostanie przeczytana zgłoś to kierownikowi projektu. An-
Odważę się stwierdzić, że nie istnieje projekt w którym nie tywzorzec ten naprawdę łatwo rozwiązać, a wspomniane two-
było problemów z oszacowaniem prawdłowego czasu i wysił- rzenie prototypowych implementacji naprawdę bardzo po-
ku jaki będzie potrzebny do stworzenia systemu informatycz- może zarówno w prowadzeniu projektu jak i w rozmowach
nego. Zawsze należy być otwartym na zmiany w planie pro- z klientem.
jektu, odpowiednio zarządzać terminami, kierować się tym, że Oczywiście są sytuacje, w których wykonanie dokumen-
dostarczony ma być system informatyczny (lub jego kompo- tacji jest konieczne. Większość projektów dotyczących admi-
nenty) a nie doskonale zrealizowany plan. nistracji publicznej musi zapewniać łatwość zmiany firmy do-
Nawiązując do wstępu tej seksji, wszyscy wiemy jak za- starczającej rozwiązanie, stąd wszelkie dokumenty projek-
kończył się projekt PRL. Obecnie coraz więcej projektów towe są pieczołowicie przygotowywane i analizowane. Lecz
wykorzystuje narzędzia służące do zarządzania czasem nawet i w tym przypadku, nikt nie podejmuje się sporządza-
oraz planowania, nie jest jednak ważne to czy się te narzę- nia interpretacji np. ustaw, które wpływają na realizację zadań
dzia wykorzystuje, ale jak się to robi. Plan w projekcie jest w programie. Jeśli np. Twój zespół buduje światowej klasy kom-
narzędziem, które ma pomóc w realizacji celu, nie jest ce- ponent do zarządzania hodowlą słoni afrykańskich, musisz do-
lem samym w sobie  należy o tym pamiętać eliminując ten kładnie opisać API. Należy oprócz kodu dostarczyć przykłady,
antywzorzec. ich opis słowny, może także prezentacje multimedialne. Jednak
mija się z celem np. pisanie esejów o samej hodowli słoni  klient
Projekt  drukarnia najprawdopodobniej zna temat dużo lepiej niż Ty.
W każdym projekcie nadchodzi moment tworzenia dokumenta- Budując rozwiązanie informatyczne zawsze patrz na cel,
cji. Zbieramy wymagania użytkowników, projektujemy rozwiąza- który masz osiągnąć, dokumentacja jest tylko jednym z narzę-
nie, proponujemy interfejs użytkownika. Tworzymy coraz więcej dzi, które ma Ci w tym pomóc.
dokumentów, czytanych bądz też nie przez kierownictwo i klien-
tów. Jednak, gdy programiści, testerzy, projektanci skupiają się Marudy
tylko na tworzeniu dokumentacji, projekt zmienia się w efektow- Jak już zapewne zauważyliście niemal wszystkie akapity do-
ną fabrykę makulatury. tyczą zachowań ludzi biorących udział w projektach. Jednym
Pewien poziom dokumentacji jest jak najbardziej koniecz- z bardzo powszechnych zachowań jest narzekanie na realizo-
ny w celu zapewnienia sprawnej komunikacji między klientem wany projekt. Brak entuzjazmu, nadziei na sukces jest bardzo
Software Developer s Journal 5/2006 www.sdjournal.org
49
Inżynieria
oprogramowania
częsty, szczególnie wśród programistów, którzy mieli za sobą W szczególnie niebezpiecznych przypadkach mamy do
kilka projektów. Nawet ciekawy projekt, wykonany w techno- czynienia nawet z sabotażystami. Osoby takie potrafią rozsie-
logii, której się dopiero uczymy, z bogatym sponsorem, czy- wać plotki np. o redukcji zatrudnienia, powodując, iż członko-
li marzenie każdego programisty, może stać się koszmarem, wie projektu zmieniają miejsce pracy. Tego typu zachowanie
gdy wciąż powtarzamy sobie, że to się nie uda. Mówimy  mia- na całe szczęście jest dość sporadyczne i ma na celu głównie
ło być tak pięknie, a wyszło jak zawsze  jednak czy mamy nieuczciwą eliminację konkurencji.
podstawy, aby tak mówić już przy pierwszym niepowodzeniu? Nie życzę też nikomu pracować z osobami broniącymi
Z pewnością nie  utrzymanie dobrych morali i zarządzanie swojej pozycji w firmie. Istnieją projekty widma, które tak na-
zasobem w postaci Ciebie  programisty, to obowiązek kierowni- prawdę nie mają celu. Prowadzone jest fikcyjne raportowanie,
ka projektu. Czy będzie to piątkowe wyjście na miasto, czy zaję- klient otrzymuje sprzeczne komunikaty, efekty ciężkiej pracy
cia z budowania zespołu (ang. team-building), a może pizza za- programistów są pieczołowicie testowane, po czym nigdy nikt
mówiona na koszt firmy w tą szczególnie ciężką noc przed odda- ich nie wykorzystuje. Cel  ochrona kadry zarządzającej, po-
niem produktu  wszystko ma na celu jedno, podtrzymanie du- siadającej poparcie kierownictwa firmy.
cha zespołu. W przywołanej już książce  The soul in the New Temat problemu trudnych osobowości z pewnością można
Machine , autor słusznie zauważa, że to ludzie są najważniejsi rozwijać. Każdy z Nas ma też zapewne w sobie, choć część
w projekcie. Dobrze przeszkoleni, zadowoleni z wykonywanych cech tego typu osób. Tylko odpowiednie kontrolowanie wła-
zadań, pracujący w zgranym zespole, są wydajni. snych emocji i skupienie się na celu projektu może przynieść
Zespół marud, rzadko odnosi sukces i choć pracują ty- powodzenie przedsięwzięcia.
le samo czasu, używając tych samych technologii, wykonu- Muszę jednak zmartwić tych, którzy szukają podpowiedzi,
je znacznie gorszą pracę. Czujesz, że już powinien być piątek jak rozwiązać problem  trudnych współpracowników. Stosowa-
i siedzisz w pracy za karę, idz do menadżera  jest przecież nych rozwiązań jest naprawdę wiele, jednak tego typu osoby są
także po to, aby zmienić ten stan rzeczy. Jeśli Twój przełożo- odporne na wszelką krytykę i sugestie. Spotkałem się z sytuacją,
ny jeszcze nie wie, że zadowolony pracownik to dobry pra- gdy dla pewnego menadżera stworzono specjalny odrębny dział,
cownik, być może czas mu to uświadomić. Tylko w taki spo- w nim miał stanowisko z bardzo ważną i ledwo mieszczącą się
sób można naprawić, antywzorzec  marudy . na wizytówce nazwą. W przypadku sprawnie zarządzanych or-
ganizacji, trudne osobowości konfrontuje się ze sobą, np. powie-
Trudni ludzie rzając im prowadzenie wspólnego projektu. W niektórych przy-
Często w projekcie trafiają się osoby, które ogólnie moż- padkach wystarczy szczera rozmowa, w innych odseparowanie
na określić jako trudne. Czy to zwolennik jednej konkret- problemu, którym zajmuje się trudna osoba  tak, aby nie parali-
nej technologii, który podważa sensowność rozwiązań pro- żowała ona prac całego zespołu.
ponowanych przez inne osoby. Może to być osoba egocen- Gdy jednak tego typu metody nie odnoszą skutków, pozo-
tryczna, która w każdym działaniu musi widzieć personalną staje polecić naszą czarną owcę agencji rekrutacyjnej. Pozby-
korzyść. Zdarzają się także programiści introwertycy, któ- cie się z zespołu tego typu osoby, która najczęściej szczęśli-
rzy cierpią po każdym zgłoszeniu błędu do modułu, który wa jest, gdy otwierają się przed nią drzwi do kariery, jest naj-
był ich dziełem. lepszym rozwiązaniem problemu.
Trudne osoby są wszędzie, mogą nimi też być osoby kie-
rujące projektem. Zazwyczaj osoba taka wprowadza niezdro- Wiedza plemienna
wą atmosferę w zespole, doprowadzając do podwyższania Z pewnością znasz projekty, które mimo braku formalnej fazy
i tak już dużego stężenia stresu towarzyszącego projektom in- projektowania odniosły sukces. Stworzenie portalu internetowe-
formatycznym. go w przeciągu tygodnia przez zespół sprawnych programistów,
Każdy zna sytuacje, gdy prowadzenie projektu utrudnia- z wykorzystaniem praktyk XP jest jak najbardziej możliwe. Ktoś
ły nadplanowe inspekcje kodu, nadzorowanie każdej minuty rozszerza tego typu system o moduł integrujący z jednym zró-
pracy pracowników. Dostęp do zasobów sieciowych ograni- dłem danych, ktoś inny zapewnia mechanizmy synchronizacji ze
czony do kilku podstawowych stron, zablokowane narzę- starszym, ale wciąż używanym systemem firmy. System się roz-
dzia do komunikacji interpersonalnej (ang. Instant Messa- rasta, początkowo prowadzony mały projekt, wymyka się spod
ging), tego typu ograniczenia swobody pracowników, wpro- kontroli, ale że wszyscy pracują w zgranym zespole, nikt nie wi-
wadzają niekorzystna atmosferę pracy.  Trudni ludzie na dzi potrzeby dokumentowania zmian, czy też tworzenia projek-
stanowiskach kierowniczych najczęściej nie zauważają pro- tu lub choć ogólnej architektury. Pewnego dnia do projektu przy-
blemu dziwiąc się tylko iż zespół staje się coraz mniej efek- chodzi nowa osoba  i okazuje się, iż nie znając zastanych me-
tywny, ma kłopoty z wymianą wiedzy, a z czasem z podsta- chanizmów nie jest w stanie rozpocząć pracy. Nikt, sam przecież
wową komunikacją. obciążony poprawianiem wciąż wychwytywanych błędów, nie
Zachowań tego typu osób nie sposób uniknąć, chcąc bu- ma czasu, aby pomóc świeżemu członkowi zespołu.
dować własną karierę lub promują z uporem narzędzia, które Napotykamy kolejny antywzorzec w zarządzaniu projekta-
poznali w poprzednich projektach, a nie są adekwatne do pro- mi. To co z początku było atrakcyjne, czyli szybkie budowanie
blemu. Wszak nawet prosty system F-K może być polem do rozwiązania informatycznego oraz rozszerzanie jego możliwo-
popisu i można go zrealizować z wykorzystaniem rozproszo- ści bez obciążenia dokumentacją, mści się, gdy należy doko-
nej bazy XML. Z drugiej strony, może natrafiłeś na osobę, któ- nać zmian w systemie, lub wprowadzić do prac nową osobę.
ra odkąd nauczyła się posługiwać narzędziami CASE w celu Trudno jest, bowiem wskazać wszystkie zależności pomiędzy
budowania diagramów ERD, nie może się przełamać i wyko- istniejącymi komponentami nie posługując się przy tym doku-
rzystać możliwości UML a. mentacją architektoniczną...
50
www.sdjournal.org
Software Developer s Journal 5/2006
Antywzorce w zarządzaniu projektami informatycznymi
Wiedza, którą posiadają najczęściej tylko osoby bezpo- dów w komunikacji. Nie ma gorszej sytuacji od tej, gdy jed-
średnio zaangażowane w projekt, musi być przenoszona do na ze stron myśli, iż jest w pełni zrozumiana tylko dlatego,
postaci formalnej. Samo spisanie i udokumentowanie proce- iż widzi nieśmiałe potrząsanie głową (na której widać ozna-
sów zachodzących w aplikacji powoduje najczęściej popra- ki rwania włosów).
wienie kilku do kilkuset błędów. Nie mówiąc już o zaletach
związanych z ułatwionym rozszerzaniem systemu oraz jego Podsumowanie
konserwacją. Powyżej przeprowadzone rozważania nie wyczerpują oczy-
Warto zauważyć, że nowy członek zespołu projektowe- wiście tematu. Problem błędów w zarządzaniu projektami,
go może obawiać się o swój wizerunek i przez długi czas nie wykrycia antywzorców i wskazania prawidłowych rozwią-
przyzna się, że nie rozumie jak system działa. Co więcej oso- zań to niewyczerpany materiał na wiele książek. Punkt wi-
ba, którą oddelegowano do wprowadzenia nowego programi- dzenia uczestnika projektu  programisty, architekta, teste-
sty w zadanie może posługiwać się nieznaną mu terminolo- ra  jest szczególnie ważny. Musimy zdać sobie sprawę z te-
gią lub opisywać wykorzystywanie technologii dotąd niezna- go, że większość ludzi niemal naturalnie wychwytuje działa-
nej programiście? nia błędne i tylko lenistwo, duma, czasem brak asertywno-
Mamy tu do czynienia z kolejnym antywzorcem. Nowy ści powoduje, iż tkwimy w potrzasku. Skutkiem tego pracuje-
członek zespołu nawet, jeśli dotąd programował jedynie my w projekcie, w którym rozpoznajemy Antywzorzec. Stresu-
w C++ wykorzystując bibliotekę Qt do generowania GUI, je to Nas, demotywuje, w efekcie zniechęca do pracy. W nie-
będzie nadzwyczaj często przytakiwał osobie tłumaczą- długim okresie to my możemy stać się powodem powstawa-
cej zaawansowane wykorzystanie Windows.Forms i plat- nia kolejnych problemów, a cały projekt będzie coraz bliżej
formy .NET. klęski niż sukcesu.
Jeśli jesteś w tej sytuacji, powiedz, że czegoś nie rozu- Pamiętając o tym oraz o tych kliku wskazówkach, któ-
miesz. Skorzystasz z wiedzy zespołu, a zespół zyska no- re starałem się przekazać w tym tekście, proszę o odrobi-
wego kolegę  przecież każdy lubi poczuć, iż jego dzieło nę zaangażowania. Nie twierdzę, że zebrane tu uwagi wy-
lub wiedza, są przydatne. czerpują temat. Poruszają go jednak choćby pobieżnie, do-
Nie pozwól, aby wiedza czy to merytorycznie dotyczą- starczając Ci podstawowej wiedzy do identyfikacji antyw-
ca projektu, czy ogólnie dostępna, ale Ci nie znana by- zorców.
ła zamknięta wewnątrz plemienia. Starszyzna projekto- Jeśli więc wiesz, jak możesz poprawić nie tylko swój kod,
wa ma obowiązek podzielić się wiedzą, aby uniknąć błę- ale i otoczenie, czemu tego jeszcze nie zrobiłeś? n
Księgozbiór
Telefonia VoIP Multimedialne sieci IP
Autorzy: Marek Bromirsk
Wydawnictwo: BTC
ISBN: 83-60233-07-1
Ocena: 4
Gdy po raz pierwszy dostałem i zobaczyłem tę książkę zachwyciło mnie jej wydanie, gru-
ba oprawa, 250 stron tekstu ale chwile pózniej mój zachwyt przerodził się w przerażenie.
Po przeczytaniu spisu treści, który pełen jest niezrozumiałych dla początkujących skrótów
i nazw, pomyślałem  nie przebrnę przez tę książkę. Mile się zaskoczyłem, gdy okazało się,
że autor, wykładowca Politechniki Warszawskiej i Instytutu Aączności, opisuje wszystko
w sposób zrozumiały i interesujący z pewną dozą humoru, czyniąc lekturę bardziej przystęp-
ną. Książka ta, a jest to raczej monografia, opisuje systemy: H.323, SIP, współpracę mię-
dzy tymi systemami a także przenoszenie danych przez zapory ogniowe. Protokół H.323 zo-
stał potraktowany najdokładniej, jako podstawowy system służący do realizacji usług multimedialnych czasu rzeczywistego
w sieci pakietowej oraz IP; począwszy od modelu OSI, przez architekturę systemu a kończąc na mechanizmach sterowania
jakością oraz usługami dodatkowymi. Podobnie system SIP (Session Initiation Protocol), który jest typowym mechanizmem
sygnalizacyjnym warstwy aplikacyjnej, opis jego doskonale uzupełnia się z H.323. Dzięki rozdziałowi pt. Przenoszenie da-
nych przez zapory sieciowe zrozumiałem mechanizmy rządzące się w tego typu połączeniach a także poznałem sposoby
omijania pewnych niedogodności. Telefonia VoIP prezentuje całe  zaplecze technologiczne wykorzystywane przez Voice
over IP. Książka jest bogato ilustrowana a także zawiera sporą ilość schematów i wykresów, które pomagają w zrozumieniu
materiału bądz, co bądz nie łatwego. Książkę mogę śmiało polecić: początkującym, którzy nie mieli bladego pojęcia o Vo-
IP, średnio i zaawansowanym, którzy wiedzą, z czym to się je a także studentom, którzy mają monogram z tego lub podob-
nego systemu.
Zrecenzował: Konrad Synoradzki
http://www.btc.pl/


Wyszukiwarka