Ciekawy i przerażająco ortodoksyjny jest świat ludzi związanych z IT, szczególnie patrząc z boku. Zastanawiałem sie ostatnio będąc na uczelni jak wygląda "świat" deweloperów skupionych wokół Ruby okiem innych programistów. Dla przeciętnego polskiego programisty pracującego w korporacji programując w delphi bądź php, to banda kolesi uważających, że są cool chodząc wszędzie ze swoimi macbookami i iphonami na których są skaczące gadżety. Ulubionym ich hobby jest rozmowa na temat tego jak można zrobić bloga w 15 minut. Ci goście spotykają się później ma konferencji z ludzmi równie cool jak i oni, a podstawową sprawą jest umówienie technik Agile polegających na zrobieniu chaosu i uniknięciu rzetelnego programowania. Ten dramatycznie kolorowy obraz "światka rubiego" tu wygląda śmiesznie, ale w głowach większości z szanującch się powaznych polskich programistów jest on jak najbardziej realny.
Ten "niszowy, egzotyczny i dziwny język" - słowa jednego z profesorów z mojej byłej uczelni, zrobił ostatnio niezłe zamieszanie głównie za sprawą Dhh który z niego ulepił niezły framework RubyOnRails. Dobrze ! bo im wieksze zamieszanie tym ciekawsze rzeczy z niego powstać mogą.
Wracając do tematu, faktycznie świat Agile Methodologies (scrum, xp), połączonym z dającym taką produktywność językiem Ruby, może wyglądać dla takiego kogoś zbyt "cool". Nie wiem dlaczego, ale to bycie cool (w odpowiednim tego słowa znaczeniu) w tej cześci świata jest jakiś dużym problemem. Mówiąc to widze od razu kogoś ubranego w schludny garniturek mówiącego "nie, to jest dziedzinne, ja pracuje w segmencie enterprise, potrzebuje rzetelnych rozwiązań ide programować w Javie". Wiem, że to temat poruszany setki razy ale tak zabawny, że musze to mówić.
Główny jednak problem polega na tym - młody programisto szukający właściwej dla siebie technologii - że ten obraz faceta w fancy koszulce programującego w cool języku jest błędny.
Po pierwsze język ruby to nie ipod, różnica jest taka:
- ipod wygląda pięknie, żeby wykorzystac jego potencjał nie trzeba wielkiej wiedzy, jest prosty, czytaj: po prostu nie da sie tego spieprzyć.
- ruby wygląda pięknie i prosto, ale żeby wykorzystać jego potencjał trzeba naprawde sporej wiedzy i doświadczenia,
czytaj: jeśli jedyne co robisz to pisanie trzy-klasowych frameworków php o sporych mozliwościach, ruby Ci nie pomoze, ani ty nie pomożesz rubiemu, kup książki i się ucz.
Odnośnie tego ostatniego można zauważyć coś jakby spadek średniego "poziomu wiedzy" commmunity. Ale to naturalne i dobre, chodzi tu o fakt otworzenia się tego świata na ludzi - reklama. Kiedy na ircu było ze mna całe 8 osób, które nie mają przyjaciół, nie oglądają słońca, tylko siedza przy komputerze z zainstalowanym Textmate i Rubym, wiadomo, że poziom rozmowy staje się inny niż gdy przychodza młode rządne wiedzy, chcące poznać fajną nową technologie istotny. Ale zwiekszenie community to zwiększenie liczby możliwych pomysłów - czyli funkcja poziomu wiedzy wśród community ciągle faluje.
Ten abstrakcyjny wykres miał z założenia ilustrować, jak zmienia się w czasie średni poziom zadawanych pytań na ircu w zależności od liczby przybywających osób - nie wiem czy to wyszło ale nadaj się napewno na coś w stylu pracy doktorskiej :P
Co do Agile Methodologies to dość skomplikowana sprawa, po pierwsze nie jest tak naprawdę cool (może jest cool ale nie jest łatwe). Po co to wymyślono ? No po to, żeby wyciśnąć z ludzia co sie da i zarobić więcej kasy, być bardziej produktywnym, nie oszukujmy sie takie są realia rynku. O dziwo im coś jest trudniejsze tym z boku wygląda tu na prostsze. Agile wygląda cool, bo tak naprawde wiele firm mówi o sobie "pracuje w Agile", a nic nie ma to z tym wspólnego.
"People look at agile methods as a chinese menu of practices, choose the few that look cool, and ditch the rest. Unfortunately, the parts they leave out are the parts that make Agile work."
Generalnie rzecz biorąc, ktoś kto poszedł na scrum master course i myśli że jest dobrym project managerem, bo przesiedział na krzesełku 10 godzin. Jest tak wiarygodny jak ktoś kto myśli, że będzie lepszym progamistą bo przeszedł z pisania hello world w php do rubiego.
Bycie Agile nie jest łatwe, każda godzina twojego czasu i minuta jest zagospodarowana, przejście na TDD/BDD jest także trudne, większość ludzi trafia szlag i nie dociera do czegoś co naprawde te metody czyni efektywnymi.
Kończąc ten krótki tekst w którym chciałem sie na wszystkich wyżyć. Myślę, że głównym problemem ludzi, którzy krytykują rubiego i nowe "cool" technologie jest fakt, że boją sie je poznać albo po prostu nie maja wystarczającej wiedzy. Jestem raczej przeciwny propagowaniu Rubiego jako czegoś co jest już szybsze od PHP w połączeniu z miliardem różnych benchmarków. Ktoś to jest na tyle ograniczony, że główne kryterium wyboru technologi to wydajność w "teście hello world" powinien w swojej macierzystej technologii pozostać.
Nie przekonuje nikogo do niczego, wybieram technologie, które gwarantują mi produktywność w tym co robie, no i kase kase kase....
Czasem patrząc na ludzi umęczających sie w jakimś dziwnym phpowym frameworku wymyślonym przez ich szefa zastanawiam sie, dlaczego wybierają wciąganie krowy przez tylną klatkę schodową zamiast po prostu kupić karton mleka.
Do czego wszystko sie sprowadza ? Do tego, że trzeba się ciągle uczyć - oczywiste. Nieakceptowalne po prostu powinno być narzekanie i krytykowanie rzeczy, których się nie zna, ale za pięknie by prawdopodobnie to było.
Komentarze