Programowanie ekstremalne w C#.pdf

(443 KB) Pobierz
Programowanie
ekstremalne w C#
Ron Jeffries
Programowanie ekstremalne w C#
Edycja polska Microsoft Press
Tytuł oryginału: Extreme programming adventures in C#
Original English language edition © 2004 by Ronald E. Jeffries
Polish edition by APN PROMISE Sp. z o. o. Warszawa 2005
APN PROMISE Sp. z o. o., biuro: 00-108 Warszawa, ul. Zielna 39
tel. (022) 351 90 00, faks (022) 351 90 99
e-mail: mspress@promise.pl
Wszystkie prawa zastrzeżone. Żadna część niniejszej książki nie może być powielana
i rozpowszechniana w jakiejkolwiek formie i w jakikolwiek sposób (elektroniczny, mechaniczny),
włącznie z fotokopiowaniem, nagrywaniem na taśmy lub przy użyciu innych systemów bez
pisemnej zgody wydawcy.
IntelliSense, Microsoft, Microsoft Press, Visual Basic, Visual Studio i Windows
są zarejestrowanymi znakami towarowymi Microsoft Corporation.
Wszystkie inne nazwy handlowe i towarowe występujące w niniejszej publikacji mogą
być znakami towarowymi zastrzeżonymi lub nazwami zastrzeżonymi odpowiednich firm
odnośnych właścicieli.
Przykłady firm, produktów, osób i wydarzeń opisane w niniejszej książce są fikcyjne i nie odnoszą
się do żadnych konkretnych firm, produktów, osób i wydarzeń. Ewentualne podobieństwo
do jakiejkolwiek rzeczywistej firmy, organizacji, produktu, nazwy domeny, adresu poczty
elektronicznej, logo, osoby, miejsca lub zdarzenia jest przypadkowe i niezamierzone.
APN PROMISE Sp. z o. o. dołożyła wszelkich starań, aby zapewnić najwyższą jakość tej
publikacji. Jednakże nikomu nie udziela się rękojmi ani gwarancji.
APN PROMISE Sp. z o. o. nie jest w żadnym wypadku odpowiedzialna za jakiekolwiek szkody
będące następstwem korzystania z informacji zawartych w niniejszej publikacji, nawet jeśli
APN PROMISE została powiadomiona o możliwości wystąpienia szkód.
ISBN: 83-88440-58-6
Przekład:
Rafał Otocki, Piotr Stokłosa
Redakcja: Marek Włodarz
Korekta: Dorota Wojdanowicz
Skład i łamanie: Marek Włodarz
Druk i oprawa:
Sowa – Druk na życzenie
www.sowadruk.pl
tel. (22) 431-81-40
Programowanie
ekstremalne
Druga część wstępu jest poświęcona wartościom i regułom postępowania, jakimi kieruje
się przedstawiona w tej książce koncepcja XP (programowania ekstremalnego).
Koncepcja XP w kontekście tej książki
To nie jest książka o programowaniu ekstremalnym. Odpowiada ona raczej na pytanie,
po czym poznać praktykującego wyznawcę koncepcji XP. Część przedstawionych tutaj
faktów wywodzi się wprost z wiedzy o programowaniu ekstremalnym, a część z ogólnej
wiedzy, którą gromadzono przez lata, a w przypadku niektórych osób przez wiele lat.
Po członkach zespołu pracującego nad projektem XP oczekuje się tego samego: postę-
powania w zgodzie z wyspecjalizowanymi wartościami i wskazówkami metodyki XP oraz
roztropnego łączenia tych zasad z innymi nabytymi już umiejętnościami. Jeśli to nie wystar-
czy, musimy zyskać nową wiedzę i umiejętności, co niniejszym czynimy.
Właśnie to jest rze-
czywisty motyw przewodni tej książki: jak konstruować użyteczne oprogramowanie, gdy niewiele
wiemy i musimy się jeszcze wiele nauczyć.
Cechy programowania ekstremalnego
Kent Beck, założyciel ruchu Extreme Programming, powiedział kiedyś, że „koncepcja XP
to społeczność programistów oparta na prostocie, wymianie informacji (komunikacji),
reagowaniu na uwagi i odwadze”. Zapoznajmy się z tymi cechami i dowiedzmy, jaki mają
wpływ na naszą postawę wobec projektów. Po krótkim zapoznaniu się z wymienionymi
wartościami przyjrzymy się podstawowym wskazówkom i regułom postępowania w kon-
cepcji XP.
Prostota
Niektóre szkoły rozwoju oprogramowania cechuje dość wysoki stopień złożoności. Oma-
wiają one mnogość faz, rytuałów, planów i kroków. Koncepcja XP w odróżnieniu od tego
kładzie nacisk na „najprostszy proces, jaki jest możliwy do wykonania”. Nie ma tutaj eta-
pów, dokumentacji ani punktów. Okoliczności mogą czasami zmuszać do włączenia pew-
nych elementów zwiększających złożoność projektu, a jeśli tak, należy to zrobić i zrobić
to dobrze. Parafrazując Einsteina, projekt XP powinien być „tak prosty jak to możliwe, ale
nie prostszy”.
xvii
xviii
Programowanie ekstremalne
Komunikacja
W większości projektów udział bierze więcej niż jedna osoba, a sukces projektu jest w znacz-
nym stopniu uzależniony od komunikacji między tymi osobami niezależnie od tego, czy
są programistami, czy pełnią inną rolę w tym projekcie. Programowanie ekstremalne kładzie
duży nacisk na kontakt bezpośredni. Ten warunek ma swoje częściowe odzwierciedlenie
w samej prostocie, ale tylko dlatego, że komunikacja osobista jest znacznie skuteczniej-
sza jeśli chodzi zdobywanie i dzielenie się wiedzą niż chłodniejsze metody komunikacji,
do których należy na przykład pisanie. Udokumentowanie wzajemnego układu zbiorowego
może okazać się pożądane, ale później. Najważniejsza jest wspólna ocena, a tę najlepiej
uzyskiwać przez częsty kontakt osobisty.
Otwartość na spostrzeżenia
Usilne zabiegi, do których należą projekty programistyczne, przynoszą efekty tylko wtedy,
gdy podlegają nieustannemu nadzorowi kierowniczemu, polegającemu na odnotowywaniu
osiągniętych wyników i obserwowaniu postępów. Koncepcja XP kieruje się zasadą przyj-
mowania uwag. Wspomniana wcześniej cecha komunikacji bezpośredniej stanowi szybki
i skuteczny nośnik tego typu sprzężeń zwrotnych. Dla uzyskania faktycznego obrazu stop-
nia rozwoju oprogramowania w koncepcji tej w dużej mierze korzysta się ze zautomatyzo-
wanych testów. Z kolei wyniki testów przeprowadzanych na bieżąco przez użytkowników
pozwalają ustalić stopień spełnienia ich rzeczywistych potrzeb, a skrócone do minimum
cykle rozwoju oprogramowania pomagają oszacować faktyczny postęp i umożliwiają sku-
tecznie przewidzieć ostateczny termin i postać produktu.
Odwaga
Cechy komunikacji i szybkiej reakcji na uwagi pozwalają osobom biorącym udział w pro-
jekcie odważnie myśleć o przyszłości tego projektu. Koncepcja XP zwraca szczególną uwagę
na znaczenie odwagi: odwagi nieunikania prostych przedsięwzięć, otwartej i nieustannej
komunikacji oraz zaufania do pozostałych członków projektu.
Nie jest to odwaga ślepa, lecz świadoma i całkowicie oparta na umiejętności podejmo-
wania szybkich reakcji i niczym nie zakłóconej komunikacji. Poziom naszej odwagi jest
doskonałym barometrem umiejętności życia w zgodzie z własnymi zasadami.
Zgodność wartości
Im dojrzalszy zespół programujący ekstremalnie, tym usilnej próbuje on kierować się
wartościami koncepcji XP. Członkowie takiego zespołu dostosowują swoje postępowanie
w dążeniu do prostoty, płynnej wymiany poglądów, otwartości i odwagi.
Programowanie ekstremalne
xix
Reguły postępowania przy programowaniu
ekstremalnym
Programowanie ekstremalne, pielęgnując wartości prostoty, komunikacji, otwartości
i odwagi, kieruje się wieloma kluczowymi regułami postępowania, z których trzynaście
zostanie tutaj opisanych. Oprócz samych reguł omówione zostaną najlepsze sposoby
ich stosowania z odniesieniem do procesu programowania ekstremalnego.
Spójność zespołu
Reguła spójności zespołu wzywa wszystkich członków, czyli programistów, menedżerów,
klientów i użytkowników, do stworzenia jednej całości. Reguła ta wymusza wspólną pracę
i utożsamianie się w sensie psychologicznym, a nawet fizycznym. Idealną sytuacją jest
przebywanie całego zespołu w czasie pracy w jednym miejscu.
1
Reguła spójności zespołu była pierwotnie określana mianem reguły „klienta na miej-
scu”, co podkreślało szczególną rolę ścisłej współpracy między grupą zgłaszającą zapotrze-
bowania na oprogramowanie (Klient) a osobami bezpośrednio biorącymi udział w jego
powstawaniu (Programista). Kiedy klienci i programiści tworzą prawdziwą wspólnotę,
wówczas przepływ informacji jest płynny i natychmiastowy. Trudno sprzeciwiać się stwier-
dzeniu że wspólna praca rodzi zaufanie i harmonię między tymi dwiema połowami jed-
nego projektu.
Nie można przecenić znaczenia tej reguły w osiąganiu wartości prostoty, wzajemnej
komunikacji i otwartości na spostrzeżenia. Ułatwia ona prowadzenie konwersacji w prze-
ciwieństwie do domagania się stosu pisemnych materiałów. Dzięki temu, że członkowie
są razem, ich wymiana zdań nie podlega ograniczeniom czasowym, a to służy budowaniu
swoistego przymierza.
Planowanie
Regułę planowania w koncepcji XP zwykło się nazywać „planem gry” dla złagodzenia
wydźwięku tego słowa i przypomnienia, że planowanie jest działaniem, które przynosi
najlepszy efekt tylko wtedy, gdy jest realizowane ochoczo i regularnie. Nad planem w kon-
cepcji XP zawsze pracuje cały zespół, a nie jedna osoba z zespołu lub spoza niego. Reguły
te w połączeniu ze sobą tworzą specyficzną wiedzę każdego członka zespołu – wiedzę
klienta o jego priorytetach i potrzebach, wiedzę menedżera o zasobach czasowych i finan-
sowych budżetu oraz wiedzę programisty o sposobie realizacji zadania i o czasie, jaki jest
niezbędny do osiągnięcia celu.
Całościowy obraz projektu w koncepcji XP zamyka się w tzw. „planie publikacji”, który
analizuje wymagania w stopniu wystarczającym, żeby ustalić i zdefiniować wszystkie
żądane elementy funkcjonalne w formie tzw. „postulatów”. Mając w ręku tego typu osza-
cowanie, klienci i menedżerowie mogą wspólnie stworzyć najlepszy z możliwych harmono-
gram z uwzględnieniem najważniejszych celów i wielkości budżetu. Oczywiście, taki plan
1
Mówiąc „idealny,” mamy na myśli dokładnie to, co słowo to oznacza. Najnowsze badania na Uni-
versity of Michigan dowodzą, że fizyczna integracja zespołu przekłada się na dwukrotnie lepszą
izolacjiwydajność niż praca w odseparowaniu.
Zgłoś jeśli naruszono regulamin