Ekstremalna jakość

  • Przemysław Gamdzyk,

Liczy się konsekwencja

"XP to wiele zasad, których trzeba konsekwentnie przestrzegać. Ci, którzy próbują wykorzystać tylko pojedyncze elementy, faktycznie mogą się szybko rozczarować. I potem złe odium spada na całą metodologię XP. Liczy się więc przede wszystkim konsekwencja" - twierdzi Andrzej Kubicz. Oczywiście te zasady to nie przykazania, których nie można złamać - to raczej drogowskazy: ich kierunki można modyfikować, ale ważne, by robić to świadomie, by wiedzieć, dlaczego decydujemy się na jakieś odstępstwo. Co ważne, XP jest zorientowane na procesy samego programowania, nie pretenduje do roli kompletnej metodologii prowadzenia projektów IT - nie inaczej jest więc w Krakowie, gdzie zakres stosowania tego podejścia jest dość ściśle określony.

Obecnie podstawowym narzędziem do zarządzania planowaniem i harmonogramowaniem pracy jest Microsoft Project (krakowski ośrodek realizuje ok. 25 projektów jednocześnie), ale prowadzone jest wdrożenie pakietu Primavera, który ma w ramach całej firmy pełnić rolę systemu ERP (w tym obsługa portfela projektów, budżetowanie itd.). Firma stosuje również wiele własnych narzędzi, a także narzędzie Open Source (m.in. JUnit do testowania modułów). "Spora część testowania, zwłaszcza obciążeniowego, realizowana jest zdalnie na serwerach znajdujących się w korporacyjnych centrach danych" - mówi Peggy Rosenthal.

Wyniki prac są na bieżąco raportowane do centrali, w firmie wykorzystuje się dość intensywnie konferencyjne połączenia telefoniczne.

"Lokalizacja oddziału firmy w Krakowie będzie pomagała nam obsługiwać klientów w Europie (jednym z nich jest LOT - przyp. red.). Z czasem nasz ośrodek będzie w coraz większym stopniu kontaktował się z odbiorcami naszych rozwiązań. Planujemy również, by Kraków stał się w przyszłości regionalnym centrum kompetencyjnym naszych produktów dla Europy" - twierdzi Peggy Rosenthal.

Przykazania XP

Sabre wykorzystał twórczo 12 podstawowych przykazań eXtreme Programming, dodając 5 własnych.

I. Zasady planowania

  1. Gra w planowanie: "Klient XP" definiuje biznesową wartość poszczególnych funkcji programu; dysponując informacjami od programisty, jak wiele pracy potrzeba do ich zaimplementowania, ustala priorytety i harmonogramy prac.
  2. Kolejne wersje: Zespoły tworzą prosty system już wkrótce po rozpoczęciu prac, rozbudowując go stopniowo w bardzo krótkich cyklach iteracyjnych.
  3. Klient w firmie: Ekspert z dziedziny, której dotyczy tworzona aplikacja, musi być cały czas łatwo dostępny dla programistów. On podejmuje kluczowe decyzje dotyczące tego, czy implementować określone funkcje i co implementować w pierwszej kolejności, tworzy tzw. scenariusze dla programistów; wreszcie ocenia rezultaty.
  4. Zrównoważona praca: programistów zniechęca się do zbyt długiej pracy po godzinach - chodzi o to, by ich umysły pozostały świeże*.
II. Zasady tworzenia
  1. Prosta konstrukcja: Kod powinien być prosty jak to tylko możliwe, byleby tylko realizował zadane wymagania funkcjonalnie; nigdy nie wolno go komplikować, bazując na hipotetycznych przypuszczeniach, że w przyszłości być może potrzebne będzie wyposażenie aplikacji w dodatkową funkcjonalność.
  2. Rozwój przez testowanie: Programiści najpierw muszą przygotować testy, a dopiero potem napisać kod, który ma być testowany.
  3. Przebudowa: Konstrukcja systemu jest usprawniana przez cały czas trwania projektu. Kod ma być prosty, czysty, łatwy do modyfikacji oraz wolny od powtórzeń - temu ma służyć jego przepisywanie i usprawnianie, a nie tylko dodawanie nowych funkcji czy usuwanie błędów.
  4. Metafory systemowe: Deweloperzy muszą utrzymywać jednolity system nazw i jednakowo opisywać system, co istotnie usprawnia komunikację i wzajemne zrozumienie w zespole.
III. Zasady kodowania
  1. Programowanie w parach: Programiści siedzą przy terminalach i tworzą kod w parach. Skład tych par jest dość często zmieniany (co 10-15 min dokonuje się wzajemnych inspekcji kodu).
  2. Stała integracja: Deweloperzy integrują, kompilują i testują system wiele razy każdego dnia.
  3. Wspólna własność kodu: Cały kod należy do wszystkich programistów i musi być przez nich wszystkich dobrze rozumiany.
  4. Standardy kodowania: Programiści muszą pisać kod, używając tego samego zestawu zasad i wytycznych, jest to dość ściśle uregulowane (co po części wynika z poprzednich punktów, m.in. programowania w parach czy wspólnej jego własności).
IV. Dodatkowe praktyki Sabre

Planowanie

  1. Planowanie w obszarze realizacji projektu.
  2. Zarządzanie żądaniami dotyczącymi zmian w oprogramowaniu.
Zapewnienie jakości
  1. Zarządzanie konfiguracją.
  2. Testy funkcjonalne.
  3. Testy systemowe.
  4. Testy regresyjne.
  5. Śledzenie błędów.
* - wg jednego ze źródeł, 50-proc. zwiększenie liczby godzin pracy (do 60 tygodniowo) skutkuje 20-proc. przyrostem produktywności mierzonej długością kodu oraz 60-proc. zwiększeniem liczby błędów...
IT i Sabre

Sabre to część historii informatyki. Firma powstała jeszcze w latach 50. XX w. dzięki dość przypadkowemu spotkaniu C. R. Smitha, prezesa American Airlines i Blaira Smitha, handlowca z IBM (traf chciał, że siedzieli obok siebie w samolocie). Prezes American Airlines żalił się na kłopoty związane z lawinowo rosnącą liczbą samolotów, tras i przewożonych pasażerów. To wszystko stawało się trudnym do efektywnego opanowania gąszczem informacyjnym. Handlowiec z IBM nie przegapił tej okazji i zaproponował, by do zapanowania nad chaosem wykorzystać najnowsze - wówczas - rozwiązania informatyczne. Tak oto powstało Sabre, początkowo jako joint venture IBM i American Airlines.

Stworzony system rezerwacji miejsc pasażerskich w samolotach, uruchomiony na mainframe, był ogromnym przełomem technologicznym, który na ponad dekadę wyznaczył dalszą drogę rozwojową technologii IT w obszarze oprogramowania, baz danych i systemów transakcyjnych. Samym liniom lotniczym dzięki automatyzacji kluczowego obszaru działalności dał zaś tak daleko idącą przewagę konkurencyjną, że na długi czas American Airlines wzbiła się wysoko ponad inne podmioty działające na rynku pasażerskich przewozów lotniczych.

Stworzony system stał się wzorem dla konkurentów, którzy z pewnym opóźnieniem uruchomili podobne rozwiązania. System Sabre początkowo wykorzystywany wewnętrznie przez American Airlines stopniowo zaczął obejmować swoim zasięgiem podmioty zewnętrzne (biura podróży) aż do klientów końcowych (już w początku lat 80. stając się prekursorem e-commerce). Podobnie zresztą stało się z systemami konkurencji, których właścicielami stawały się niezależne podmioty. Obecnie rynek podzielony jest pomiędzy kilka konkurencyjnych podmiotów (których znaczenie zależy od konkretnego rynku kontynentalnego).

Sabre stał się z czasem dostawcą innych rozwiązań dla branży lotniczej (kontrola przychodów, harmonogramowanie lotów, tworzenie cenników, obsługa lotów, ustalanie harmonogramów pracy załóg lotniczych itd.), jak również systemów rezerwacyjnych w branży turystycznej - także w modelach hostingowych i usług outsourcingowych.

1957 r. Powstaje SABRE (Semi Automatic Business Research Environment), jako wspólne przedsięwzięcie IBM i American Airlines. W budowanym rozwiązaniu technologicznym zostaje wykorzystana przełomowa na owe czasy koncepcja SAGE (Semi Automatic Ground Environment), pierwszego dużego systemu IBM, wykorzystywanego przez armię Stanów Zjednoczonych, pozwalającego na interaktywną pracę w czasie rzeczywistym.

1960 r. Instalacja pierwszego systemu rezerwacyjnego Sabre na dwóch komputerach IBM 7090 (protoplaści mainframe). System przetwarza informacje zebrane z 84 tys. rozmów telefonicznych dziennie, doprowadzając do 30-proc. redukcji czasu pracy, którą musieli wykonywać pracownicy American Airlines.

1964 r. Uruchomienie kosztem 40 mln USD (ówczesnych) rozległej sieci, która stała się elementem największego na świecie komercyjnego systemu do przetwarzania danych w czasie rzeczywistym.

1972 r. Przeniesienie systemu na platformę mainframe S/360.

1976 r. Po raz pierwszy końcówki systemu udostępnione zostają w biurach podróży, co stanowiło ogromny przełom w zakresie automatyzacji przemysłu turystycznego.

1978 r. W systemie zgromadzone zostają dane o ponad milionie tras i taryf.

1984 r. Sabre wprowadza aplikację BargainFinder, pierwsze dostępne narzędzie pozwalające na automatyczną lokalizację najtańszych połączeń (American Airlines musiał sobie w związku z tym poradzić z lawiną procesów sądowych, podejmowanych przez droższą konkurencję).

1985 r. Pojawia się aplikacja easySabre, pozwalająca zwykłym użytkownikom komputerów PC wyposażonych w modemy telefoniczne na łączenie się z centralnym systemem i samodzielne dokonywanie rezerwacji lotów, hoteli czy samochodów z wypożyczalni.

1994 r. Instalacja systemu rezerwacyjnego na potrzeby francuskich kolei TGV i transportu kolejowego w tunelu pod kanałem La Manche.

1989 r. 12 maja superstabilny do tej pory system Sabre zostaje unieruchomiony na 12 godzin - powodem jest błąd w dostarczonych przez producenta sterownikach dysków twardych, który doprowadza do zniszczenia adresów plików.

2000 r. Korporacja AMR, właściciel American Airlines, wydziela Sabre Group jako oddzielną spółkę. Firma jest notowana na giełdzie.

2001 r. Rozpoczyna się migracja masywnego oprogramowania rezerwacyjnego, działającego na komputerach mainframe, do otwartego środowiska zbudowanego na bazie serwerów HP NonStop oraz serwerów linuksowych (głównie z uwagi na kłopoty z konserwacją starego systemu, które doprowadziły do istotnego wzrostu kosztów, a co za tym idzie cen, jakie za korzystanie z systemu musieli płacić jego użytkownicy).

2004 r. Oddział Sabre w Krakowie zwiększa swoją liczebność o ponad 100%.

2005 r. System rezerwacyjny Sabre przetwarza 15 tys. transakcji na sekundę, dysponując bazą o 79 mln połączeń i taryf lotniczych.

Tygodnik Computerworld organizuje 21-22 czerwca br. w Warszawie drugą edycję Konferencji Jakość Systemów Informatycznych. W jej trakcie David Endicott, wiceprezes Sabre Airline Solutions, będzie mówił o metodologiach i sposobach zapewnienia jakości stosowanych przez tę firmę w procesach wytwórczych oprogramowania, w tym o praktycznych doświadczeniach Sabre z eXtreme Programming.

Więcej informacji i rejestracja pod adresem:http://jakosc.computerworld.pl