Sprzedawcy srebrnych kul cz.1 - Do przerwy 1:1

Jaka jest różnica między metodologiem oprogramowania a terrorystą? Zasadnicza - z terrorystą można negocjować! - Ken Orr

Jaka jest różnica między metodologiem oprogramowania a terrorystą? Zasadnicza - z terrorystą można negocjować! - Ken Orr

Nie lubię dwóch rzeczy. Wstawać wcześnie rano i wracać do pracy po wakacjach. Wypoczęty i dotleniony umysł ma skłonność do popadania w zbytni optymizm i idealizowania szarej rzeczywistości. Wszystko wydaje się łatwe, oczywiste, jednoznaczne i spójne wewnętrznie. Weźmy pierwszy z brzegu przykład: metodyki produkcji oprogramowania. Każdy się zgodzi, że bardziej opłacalne jest tworzenie lepszego oprogramowania niż gorszego. Każdy rozumie, że wymaga to pewnej dojrzałości i wysiłku. Dojrzałość to wynik doświadczenia i ciągłego doskonalenia powtarzalnych czynności, procesów, projektów. Z powtarzalności rodzi się nowa jakość. W wymiarze osobowym nazywamy ją profesjonalizmem. W wymiarze organizacyjnym - procesem wytwórczym. Udokumentowany i uogólniony na sensownym poziomie proces wytwórczy to metodyka, gotowa do zastosowania w nowych przedsięwzięciach. Mamy metodykę - mamy dobre oprogramowanie! Tego uczymy naszych informatyków na studiach i mądrze nazywamy "podejściem inżynierskim". Najpierw przygotuj sobie warsztat pracy, potem ją zaplanuj i wykonaj zgodnie z planem.

Powakacyjny spokój serca burzą jednak ludzie, którzy temu klasycznemu lub raczej tradycyjnemu podejściu przeciwstawiają zupełnie nowe idee. To reprezentanci "protestanckiego" nurtu w inżynierii oprogramowania, którzy obwieścili światu swoje nowe credo - Agile Manifesto. Nie proces, ale człowiek. Nie procedura, ale kreatywność. Nie planowanie, a odgadywanie przyszłości. Nie kierowanie, a partycypacja. Nie specyfikacja, a działające oprogramowanie. To tylko niektóre z kontrowersyjnych haseł nowej reformacji. I o ile ścieranie się poglądów może być bardzo zajmujące, a nawet można na tym czasem nieźle zarobić, o tyle dzisiaj interesuje nas, co z tego wynika dla setek tysięcy ludzi zarabiających na chleb, tworząc takie czy inne oprogramowanie.

Chaos pojęciowy i brak wyraźnych autorytetów, a także nieudane próby godzenia racji obu stron podsycane przez różnych "proroków nowej wiary" wywołują u zwykłych wytwórców oprogramowania i ich klientów zrozumiałą frustrację prowadzącą najczęściej do radykalizacji i narodzin postaw fundamentalistycznych. W dzisiejszym świecie targanym konfliktami szykuje się kolejna "wojna religijna". Wojna totalna, w której każdy musi się po jednej ze stron opowiedzieć? Metodyki "twarde" czy "miękkie"? Tradycyjne czy "żwawe"? Co będzie odpowiednie w moim projekcie? Czy uratuję go, stosując zarządzanie agile? Co wybrać: CMM, SPICE, ISO 9000, 12207, 20926? A może XP, ASD, DSDM? To tylko niektóre "wilcze jamy" wykopane na polu bitwy między zwolennikami tradycyjnej inżynierii oprogramowania a młodym pokoleniem "ekstremalnych barbarzyńców".

Pozostańmy jeszcze przez chwilę neutralni i sięgnijmy po fakty. Raport Cutter Consortium e-Project Management Advisory Service Executive Update z 2001 r. przedstawia wyniki badań przeprowadzonych wśród ponad 200 menedżerów IT firm reprezentujących następujące regiony świata: 33% Ameryka Północna, 20% Europa, 10% Australia, 8% Indie, 8% Azja. Pozostałe firmy pochodziły z Afryki, Ameryki Południowej i Bliskiego Wschodu. Profil firm poddanych badaniu obejmował w 39% firmy produkujące oprogramowanie, w 11% firmy z sektora usługi finansowych, w 9% firmy konsultingowe, w 6% administrację i w 5% firmy telekomunikacyjne.

Przychód powyżej 1 mld USD rocznie zadeklarowało 13% firm, 100 mln - 1 mld USD 17%, 5 mln - 100 mln USD 33% firm, a pozostałe osiągnęły przychód poniżej 5 mln USD.

Raport dotyczy wykorzystania różnych metodyk w praktyce wytwarzania oprogramowania. Spośród metodyk tradycyjnych najpopularniejsze są: Rational Unified Process (51% firm), CMM i pochodne (27%) oraz ISO 9000 (26%). Wiele firm deklaruje jednoczesne wykorzystywanie powyższych metodyk w różnych kombinacjach i wariantach. Spośród tak zwanych lekkich metodyk największą popularnością cieszą się: Extreme Programming (38%), Feature-Driven Development (23%), Adaptive Software Development (22%) oraz Dynamic System Development Method (19%).

A więc remis. Chwileczkę, a co z "szarą strefą". Raport nazywa tak metodyki określane przez respondentów badania jako "wewnętrzne o charakterze metodyk lekkich bądź ekstremalnych". Do posiadania takich metodyk przyznaje się aż 54% firm! Istnieje zatem ogromna liczba nie nazwanych metodyk konstruowanych na potrzeby konkretnych systemów, projektów, wdrożeń i zastosowań. Są one twórczą kompilacją praktyk stosowanych przez lokalne zespoły projektowe. Czasem są to narzucone przez korporacje standardy, czasem najlepsze praktyki wytwórcze, czasem najgorsze. Nie to jest jednak najważniejsze. Cieszy fakt, że na podium zasłużenie znaleźli się RUP, XP i "zdrowy rozsądek". Otuchą napawa fakt, że to właśnie on każe firmom porządkować swoje metody wytwarzania oprogramowania, ale w sposób adekwatny do potrzeb, wymagań i czasu trwania konkretnego projektu, a także kryterium sensowności ekonomicznej. Dzisiaj, aby przeżyć, trzeba przede wszystkim spełniać wymagania klientów i robić to taniej, szybciej i lepiej niż konkurencja. I to nawet za cenę odwiezienia R-ką do szpitala naczelnego metodyka firmy!

Informatycy, a szczególnie inżynierowie oprogramowania muszą zapamiętać i często powtarzać sobie dewizę Thomasa Huxleya: "Największym złudzeniem człowieka jest przekonanie, że w życiu metodą lub rozumem można nadrobić brak wrodzonego rozsądku"! Mam nadzieję, że mój pamiętnik przyda się wszystkim, którzy stracili już wiarę, że to możliwe.

Na koniec słowa wyjaśnienia pod adresem czytelników, którzy są słabiej obeznani z klasyką horroru każącą wierzyć, że jedynie srebrna kula wystrzelona z rewolweru w serce wilkołaka jest władna odebrać mu życie. Całe pokolenia informatyków szukają owych przysłowiowych "srebrnych kul", aby pokonać wyłaniające się z mroku zjawy przeszłości, teraźniejszości i przyszłości. Czy można jednak pokonać potwora, którego samemu konsekwentnie i z miłością się tworzy? Czy można sprzeniewierzyć się sobie i zabić samego siebie? Ale o tym, następnym razem.

Tomasz Byzia jest dyrektorem ds. rozwoju firmy Premium Technology.


TOP 200