Czy zatrudniasz już programistę w stylu Indiana Johnes?

Posted on

programming7

Witam

Dzisiaj chciałbym poruszyć temat programistów z Indii, których kod widziałem na blogach pisząc aplikację w WPF MVVM. Nazwałem ich Indiana Johnes, dlaczego, dowiesz się czytając dalej.

Sporo się namęczyłem pisząc tą aplikację, a to głównie dzięki trafianiu na blogi indyjskich programistów. To prawda, że są oni tańsi niż amerykańscy koledzy, ale jakość ich kodu jest na prawdę bardzo niska.

Rozwiązania programistów z Indii przypominają budowanie zapadek, pułapek, spadających kamieni przez starożytnych budowniczych, dlatego porównałem ich do legendarnego bohatera filmu, myślałem jeszcze nad MacGyverem, ale on miał chyba wyższy poziom. Zamiast zrobić coś jak się należy, robią to drogą naokoło. Owszem ich rozwiązania działają, ale nie tak jak powinny. Samo rozwiązanie prostego problemu jest OK, ale gdy staje się ono częścią większej całości, nie spełnia wymagań i oczekiwań co do jakości, nie działa jak powinno.

Moja opowieść tyczy się pracy z DataGridem. Niestety po wielu ciężkich bojach, moja aplikacja tworzyła dwa obiekty zamiast jednego. Działo się to dlatego, że używałem DataGridTemplateColumn a w nim texboxa zamiast DataGridTextColumn o sprawialo, że tworzyły mi się dwa obiekty, które nie były odpowiednio modyfikowane przez kolumny datagrida. Dodatkowo te kolumny były osobno bindowane i obsługiwane były zdarzenia każdej z tych kolumn osobno. Dopiero na amerykańskim blogu znalazłem odpowiedź, że DataGrid automatycznie tworzy obiekty jeśli wszystko jest odpowiednio zbindowane. Po zamianie kolumn na DataGridTextColumn i podobne, udało mi się poprawnie połączyć dane z DataGrida z View Modelem. Wszystko teraz działa poprawnie. Widać znaczną różnicę między programowaniem w Indiach, gdzie praca jest tania, a programowaniem w Ameryce, gdzie jakość jest znacznie wyższa. Oczywiście, nie żałuję, że przeszedłem tą drogę i zobaczyłem kod indyjskich kolegów oraz amerykańskich oraz poznałem problemy z tym związane. Wiele słyszałem o tym, że programiści w Chinach czy Indiach są znacznie słabsi merytorycznie, ale nigdy sam się o tym nie przekonałem. Oczywiście, w USA mogą zdarzyć się przeciętni koderzy, tak jak w Indiach dobrzy, ale to są marginesy. Większość jest zgodna z tym co opisałem.
Dla mnie liczy się to, że doszedłem do tego co jest nie tak, nauczyłem się, by nie ufać blogom tanich programistów z Indii oraz by takich nie zatrudniać, a także by zwracać uwagę na kod programistów oraz ich umiejętności, a także wiedzę.

Dlatego mam pytanie do czytających to rekruterów. Czy zatrudniają Państwo już dobrych programistów czy tych przeciętnych? Czy płacą Państwo jak w Indiach czy jak w USA?

Jak pisałem na swoim blogu nie raz, wielu kierowników nawet nie wie, że są kiepscy, bo gdyby wiedzieli pewnie by sami się nie wychylali tak jak indyjscy programiści, którzy tworzą swoje wpisy na blogu w celu reklamy samych siebie. Tak dzieje się głównie w Radomiu. Opisałem nawet jedną z takich firm na blogu. Ich projekt za parę lat się zawali, bo był źle napisany od podstaw. Ale cóż, kierownictwo się nie zna, na razie wszystko działa, więc pieniądze idą równo dla koleżków z branży. Ze mną oczywiście firma nie przedłużyła umowy, bo chciałem zarabiać zbyt dużo, według nich oczywiście. Pracownicy ładnie się uśmiechają do szefa, podlizują a za parę lat z uśmiechem na ustach przejdą do innej firmy, bo w tej już się nic nie da zrobić, projekt umrze, nie będzie możliwości by go dalej rozwijać, bo ile można pracować z kodem typu zapadka, dźwignia, tu coś kliknij to, wywoła to masę czynności ze sobą powiązanych w sposób nieuporządkowany… Masakra. Nie wiem czy rozumiesz co dokładnie chcę napisać. Na pewno nie chcę wskazać wprost błędów tych firm, bo mi za to nie płacą.

Jedyne co mogę wskazać, to fakt iż firmy szukają taniej siły roboczej. Piszą na forach, że jeśli dobry programista nie wykona pracy za tyle ile oni chcą to znajdą studenta, który to zrobi. Owszem, w przypadku małych projektów, studenci rozwiążą problem taniej, tak jak indyjscy programiści. W złożonych projektach jednak potrzebne jest dogranie wszystkich elementów zgodnie ze sztuką a to już są znacznie wyższe koszty – przeszkolenia pracownika lub zapłacenia programiście dobrych pieniędzy za jego wiedzę, doświadczenie i poprawnie pisany kod.

Ja oczywiście cały czas się uczę, gdy wracam do swojego kodu pisanego rok wcześniej, dzisiaj wiem jak go napisać inaczej, lepiej. Jestem już myślę w środku stawki programistów. Do czołówki mi brakuje, ale mam potencjał, potrafię już rozpoznać niektóre różnice w jakości kodu, wiem w którą stronę podążać.

Nie mam zamiaru też poprawiać cudzego kodu, tym bardziej za śmieszne pieniądze. Jeśli decydujesz się na taniego programistę, Twoja sprawa, bierz odpowiedzialność za jego niepowodzenia. Jeśli chcesz od podstaw tworzyć aplikację w zespole programistów w perspektywie czasu 3-5 lat, zatrudnij tych średnich do zadań mniej wymagających i najlepszych do projektowania, nie przeciętnych jak Indiana Johnes czy Chińczycy, bo projekt ukończony poprawnie nie będzie. Podobna sytuacja miała miejsce w czasie wyborów. Programowałem i ja w jednej firmie, która wygrała przetarg dla rządu i wiedza ich była marna. Konkurowali ceną. Nie wiem czy w końcu udało im się stworzyć tą aplikację, gdyż zarabiałem tak mało, że szybko odszedłem. W czasie wyborów była zapewne taka sama sytuacja – tani programiści nie napisali jak należy aplikacji przez co się wykrzaczała. Jej wiarygodność była niska, dlatego komisja musiała liczyć głosy ręcznie. Teraz widzisz ile kosztuje dobry programista. Firma pewnie już nie wygra żadnego przetargu. Popieram tutaj propozycje Platformy Obywatelskiej, która chce zerwać z zasadą, że wygrywa najtańsza oferta. Całkiem słusznie, gdyż nikt dobry i normalny nie napisze tanio dobrego oprogramowania.

Pozdrawiam


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *