Tworzenie oprogramowania jest jak religia

Oryginalny post: Software Development: It's a Religion

Autor: Jeff Atwood

Jest poniedziałek, a Steve Yegge wciąż nienawidzi metodologii Agile. Jak bardzo jej nienawidzi? W przybliżeniu nienawiść ta jest warta 11000 słów. Myślę, iż mógłbym założyć domową wytwórnię poradników opartych na wpisach Steve'a. Oto moja skompresowana wersja ostatniego jego wpisu:

  • Steve nie miał zamiaru promować procesu wytwarzania oprogramowania firmy Google jako tej Jedynej Właściwej Metody. To tylko jedna z możliwych alternatyw metodologii Agile.
  • Metodologia Agile tylko dlatego się sprawdza, ponieważ jakakolwiek metodologia się sprawdza, jeśli posiada się rozsądnie utalentowanych inżynierów, którzy odpowiednio się starają.
  • Nie ma empirycznego czy naukowego sposobu na to, aby udowodnić, że metodologia Agile jest lepsza od jakiejkolwiek innej metodologii wytwarzania oprogramowania. Tak więc, promowanie metodologii Agile jest przesądem.

Kluczowe jest tu kilkukrotne powtarzanie słowa "przesąd". W swoim poprzednim wpisie odniósł się do metodologii Agile jako religii:

Tak więc konsultanci, którzy stracili swoich głównych klientów, byli pewnego dnia w barze i jeden z nich (L. Ron Hubbard) powiedział: "Fuchy opłacane za linie kodu są kiepskie. Wiesz, gdzie leżą prawdziwe pieniądze? Zapoczątkuj swoją własną religię." I tak oto narodziły się Extreme Programming oraz Scjentologia.

Steve przez "religię" rozumie coś złego.

bar code jesus

Ale tworzenie oprogramowania jest i zawsze było religią. Łączymy się w grupy ludzi, którzy wierzą w te same rzeczy, których do końca nie można dowieść. Java kontra .NET. Microsoft kontra Google. Języki typowane statycznie kontra typowane dynamicznie. Możemy oszukiwać siebie, że jesteśmy "informatykami", ale kiedy ostatnio postawiłeś hipotezę i sprawdziłeś ją, aby coś udowodnić? Jesteśmy zbyt zajęci rozwiązywaniem problemów klienta w wybranym narzędziu, niedowiarku!

Podstawowy kulturowy problem z przesądami powstaje wtedy, gdy ludzie nie wiedzą, jak rozróżnić rzetelne źródła weryfikacji od nierzetelnych, więc traktują oni coś nienaukowego jak naukę. Jeśli nie rozpoznają, ani nie przyznają się do bycia przesądnymi, bez skrupułów starają się propagować swoje przekonania względem CIEBIE.

Czy Steve Yegge udowodnił, że metodologia wytwarzania oprogramowania, którą praktykuje Google jest jakkolwiek lepsza od metodologii Agile przez duże A? Nie, ale w głębi duszy wierzy, że tak jest. W tej sprawie można powiedzieć, że jest religijny. Nie ma nic złego w religii, która głosi konkretne zasady inżynierii. Jeśli jesteś fanatykiem metodologii kościoła Google, staniesz się lepszym programistą. Kiedy Steve głosi chwałę metodologii Google w sposób tak wymowny, powoduje, iż inni programiści bardziej entuzjastycznie podchodzą do tego, co robią, co czyni ich lepszymi programistami. Zanim się zorientujesz, cały zespół jest już podniecony, ponieważ wszystko idzie zgodnie ze świetnym planem, w który wszyscy wierzą — niezależnie od tego, czy jest to Agile przez duże A, Google, Scrum, czy cokolwiek innego.

Aby programiści działali efektywnie, muszą wierzyć w to, co robią. To, czy dane przekonanie da się udowodnić naukowo bądź empirycznie jest całkowicie bez znaczenia. Są to podstawy czynnika ludzkiego. Steve tak zapalczywie chce udowodnić własny ateizm metodologiczny, że podważa własną istotę rzeczy. Według Jefa Raskina wszystko jest religią:

Systemy komputerowe wykazują wszelakie zachowania, które sprzyjają powstawaniu przesądów. Próbujesz czegoś i to nie działa, więc próbujesz jeszcze raz — w ten sam sposób — i tym razem działa, albo i nie. Jest to losowe wzmacnianie wiary. Efektywność większości praktyk programowania i zarządzania nie jest zatem mierzalna. Dla przykładu, zasady "extreme programming" są dla mnie rozsądne i używałem ich długo przed tym, jak nabyły tę obecną, absurdalna nazwę. Ludzie, którzy ogłaszają ideę są także tymi, którzy stworzyli paradygmat. Większość znanych wyników nie stanowi nawet ślepej próby, a już na pewno nie podwójnej ślepej próby. Rzadko rozumiemy, w jakikolwiek sposób, procesy zachodzące podczas, gdy pracujemy z komputerami. Używamy megabajtów kodu napisanego przez kogoś innego, który jest nienajlepiej udokumentowany, niewystarczająco przetestowany i używany na sposoby, które nie zostały przewidziane przez twórców.

Religia metodologii nie jest groźna sama w sobie. Zawsze istnieje ryzyko prześladowań na tle religijnym, ale naprawdę groźni ludzie to wariaci religijni, którzy nie zdają sobie sprawy z tego, że nimi są. Nie lubię odwoływać się do przezwisk, ale jak Steve mógł tego nie wiedzieć:

Natomiast zamiast wymieniać wszystkie nie-Agile'owe zespoły i firmy, jako szczególne przypadki, ustanówmy pewną zasadę: większość dobrych programistów z całego świata nie używa metodologii Agile. Po prostu pracują ciężko, pozostają lekcy i tworzą wspaniałe rzeczy. Większość programistów wciąż nie ma pojęcia, czym jest Agile. Pomyśl o tym!

  1. Czym dokładnie "pozostawanie lekkim" różni się od metodologii Agile? Czy Agile nie jest przypadkiem Kościołem Lekkości? Steve może się nie zgadzać z pewnymi doktrynami danego kościoła (programowanie w parach, itp) i to jest w porządku. Nikt nie modli się dokładnie w taki sam sposób, jak również nie każdy jest fanatykiem. Ale zawsze posiadasz pewien zbiór wspólnych, podstawowych wierzeń. A lekkie rozwijanie oprogramowania jest, oczywiście, rdzeniem wiary w Agile.
  2. Prawdą jest, iż większość programistów nie używa metodologii Agile w wytwarzaniu oprogramowania. Ale nie z wyboru. Nie mieli go danego. Zazwyczaj tkwią w organizacjach, które nie pozwalają im na luksus "pozostawania lekkimi". Są robotnikami w fabryce kiełbasek.
  3. Steve mówi o "pozostawaniu lekkim" tak, jakby to była najłatwiejsza rzecz na świecie, jakby to był stan łaski, z którym programiści oraz firmy się rodzą. Mówienie programistom, aby pozostawali lekkimi, to jak mówienie komuś z depresją, żeby się nie martwił.

Nie jestem pewien, dlaczego Steve czuje się niepewny, jeśli chodzi o traktowanie tworzenia oprogramowania jako religii, zbioru wspólnych wierzeń z nikłymi "podstawami naukowymi, czy rozumowaniem". Ponieważ z pewnością jest on jednym z najlepszych ewangelistów, jakiego kiedykolwiek czytałem.

Data publikacji oryginału: 9 października, 2006

0 komentarze:

Prześlij komentarz

Related Posts with Thumbnails