Próbka kodu od pracodawcy

Co myślicie o pomyśle, żeby w trakcie postępowania rekrutacyjnego poprosić potencjalnego pracodawcę o próbkę kodu? Byłoby to interesujące dla was? Czy jako pracodawcy bylibyście skłonni pokazać wasz kod?

Pytam, bo odbyłam ostatnio kilka rozmów, i zdarzały się przypadki np. takie: ‘- Jesteśmy świetną firmą, działamy Agile, wdrażamy Rails best practices! - A czego używacie do testowania? - Yyy… Testowania? Testy są niepotrzebne!’
Albo: ‘- Nasz kod jest prototypem i nie ma pokrycia testami. Chcemy żeby był lepszy. 60% kodu jest nieużywane. I mamy mnóstwo kawałków zakomentowanych, może się jeszcze przydadzą.’
Myślę, że w niektórych przypadkach próbki kodu diametralnie zmieniłyby moją chęć/niechęć do pracy w danej firmie.

A może próbki kodu są niepotrzebne, może to kwestia zadania odpowiednich pytań pracodawcy?

Myślę, że to by nie było złe, ale czy nie wymaga to podpisywania jakiś umów o poufności czy coś takiego? Ja zawasze dopytuje ewentualnego pracodawcę

  • czego używacie do testów (celowo nie pytam czy testują staram się z góry zakładać, że tak)
  • jak wygląda wasz deployment
  • czy używacie środowisk ‘stage’
  • z kim będę pracował, ile osób w zespole itp.

Bardzo fajny pomysł, nie wpadłem na to wcześniej. Oczywistości, o które warto jednak zapytać.

Ahahahahahaha :smiley:

Pomyślałbym że byliśmy na interview w tej samej firmie, ale Ty zdaje się operujesz na wyspach, a nie w Warszawie :wink:

Co do brania kodu od pracodawcy: ja tego nie potrzebuję (oraz tworzy to jakieś głupie sytuacje z podpisywaniem NDA czy innych umów), dobrze zadane pytania (jak np. powyższe) wystarczają żeby się zorientować czy firma naprawdę uprawia Railsy i Agile, czy tylko udaje że to robi.

Trochę zakładam, że skoro pracodawca czasem spodziewa się próbki kodu (czyli albo pokazuję coś, co zostało napisane w pracy, albo robię własne projekty), to może też pracodawca jest w stanie pokazać jakiś swój fragment, bez zabaw w papierkologię?

@tomash - rzeczywiście obie przykładowe firmy były w UK.

Z mojego punktu widzienia (pracodawcy) słusznie zakładasz. Najgorsze co możesz usłyszeć to ‘jesteśmy pod NDA, niestety się nie da’.

Jeśli jednak to jest dobry pracodawca to skieruje Cię na swoje konto na Github i podpowie gdzie i czego szukać :slight_smile:

oj, wejdź na Githuba na konto danej organizacji. Popatrz co ma organizacja w publicznych repozytoriach, czy to są forkowane projekty istniejące, czy własne rozwiązania. Spójrz na praw - członkowie organizacji. Przejrzyj ich repozytoria. Powinno mówić wiele.

@hubertlepicki a jak nic nie ma na githubie to co to mowi? :slight_smile:

@squil: Też przyszło mi to do głowy (i też w momencie pracy na Wyspach, zbieg okoliczności czy raczej “na Wyspach prawdopodobieństwo trafienia na gówniany kod jest większe” ? :wink: ) Chociaż teraz jak patrzę z perspektywy czasu na wszystkie firmy gdzie pracowałem, to jednak widząc większość ich kodu PRZED podjęciem pracy raczej bym jej nie podjął :smiley: ( i był bezrobotny, nie zdobył doświadczenia etc. słowem nie wyszłoby mi to na dobre, więc może lepiej nie patrzeć, zrazimy do siebie tylko pracodawcę (szczególnie tego, który myśli że jest taki super edżajl i w ogóle de best ruby rockstar pipol). Lepiej przyjąć ten gówniany kod na klatę w stylu supermana i go zdepatalogizować :slight_smile:

Jest też inny wymiar tego problemu: większość kodu nawet tego, który sami pisaliśmy X miesięcy temu wygląda źle po pewnym czasie czy tego chcemy czy nie bo cały czas udoskonalamy nasze umiejętności i inaczej patrzymy na pewne problemy i rozwiązania. Raczej nie liczyłbym na to, że trafimy na firmę, która pokaże nam “Proszę oto nasz super idealny kod do przejrzenia, jest błyszczący i idealny i pieścimy go codziennie i wygładzamy i nie znajdziesz w nim baboli” - może takie firmy istnieją gdzieś w wyidealizowanym świecie, w rzeczywistym raczej o nie ciężko (co nie zawsze znaczy, że firma jest be).

Tzn. wszyscy pracodawcy, którzy nie mają konta na GitHubie są źli ? :slight_smile: Poza tym, nie wydaje mi się, żeby większość firm trzymała wewnętrzne projekty (czyt. te na których się spędza większość czasu w firmie i na których przyjdzie nam pracować a nie te 5% czy 10% opensource’owe dla pokazania community jak bardzo ich kochamy) na otwartych kontach na GitHubie. IMHO pierwotne pytanie, które zadała @squil jest przydatne ale nie może być podstawą do jednoznacznego rozstrzygnięcia “dobra/zła firma” czy zaakceptowania/odrzucenia oferty pracy przez nas.

Po roku depatologizowania jakiegokolwiek kodu:
a) wzrasta samoocena
b) bardzo wzrasta szacunek do ładnego kodu i chęć tworzenia takowego
c) zaczyna się rozumieć idee testowania

A zatem: Popieram!

Jak nie, to znaczy że się za mało rozwijamy :slight_smile:

Do depatologizowania złego kodu przez rok trzeba mieć wysoki próg bólu.

Przyjąć na klatę to jedno, ale później trzeba pracodawcy tłumaczyć co to jest agile i właściwie to czemu piszę te głupie testy przez większość dnia. Osobiście nie zawsze czuję się na siłach.

Zdecydowanie się zgadzam. To chyba jedyny sposòb sprawdzenia rozwoju :slight_smile:

Ale tego czy pracodawca praktykuje agile nie stwierdzisz po kodzie (no chyba że będzie rewelacyjnie przykryty testami), takie rzeczy trzeba wyciągnąć w trakcie rozmowy.

Generalnie mój problem polega na tym, że określenie “agile” jest trochę marketingowe, i każdy rozumie pod tym coś innego. Więc pytanie “czy działacie w agile” ma średnio sens. Widząc paskudny kod wiadomo, że agile i testy to tylko hasła, natomiast rzeczywiście fakt, że kod jest porządny, jeszcze o niczym nie świadczy. Stąd się zastanawiam - ile można się dowiedzieć z próbki kodu, a ile z odpowiednich pytań.

Edited:

[color=silver][del]Agile może być faktycznie zbyt ogólnym terminem.[/del][/color]
A gdyby tak zapytać: “Czy korzystacie z metodologii SCRUM?”. Możliwe odpowiedzi:

  • Tak.
  • Nie, ale używamy…
  • WTF?!

Agile Manifesto or GTFO

No chyba że firma wyznaje Half Arsed Agile Manifesto, ale wtedy także GTFO :wink:

Z próbki kodu dowiesz się rzeczy, których się nie dowiesz z pytań i vice versa.

Bo ja wiem? Brak konta na Github nic nie przesądza na niekorzyść pracodawcy.

Jeśli jednak dostaniesz link do Githuba a tam jest kilka projektów firmowych oraz kilku(nastu) członków organizacji, z których każdy ma po kilka(naście) otwartych repozytoriów, z których niemal wszystkie mają zajebiste testy, to wiesz, że chcesz pracować z takimi ludźmi :slight_smile:

A już na serio: rekrutacja zaczyna się od oczarowania pracownika. Zobacz jaka zajebista firma, jakie wspaniałe benefity, wszyscy mają iPhone’y (lub HTC Desire HD). Sporo programistów, zwłaszcza niedoświadczonych, na tym poprzestaje. A przecież po tańcu godowym człowieka od HR jest czas dla potencjalnego pracownika. I wtedy trzeba zadać wszystkie pytania:

  • jak często Wasi pracownicy biorą nadgodziny?
  • czy często bierzecie projekty z ciasnym deadline?
  • czy często zdarza się Wam odmawiać klientowi implementacji głupich pomysłów?
  • jakie techniki agile wykorzystujecie na co dzień?
  • czy mogę zobaczyć przykłady Waszych testów? (zobaczenie kodu testowego wystarcza a nie zdradza za dużo szczegółów implementacji i nie powinno łamać NDA)
  • czy mam dużą dowolność wyboru czasu i miejsca pracy (o ile klientowi to nie przeszkadza)?

Takie pytania są na miejscu i świadczą o doświadczeniu kandydata. W dobrej firmie spodziewają się ich i chętnie na nie odpowiedzą.

Nie róbmy z agile złotego cielca, błagam.

Tak pracuje 99% małych i średnich firm, tylko nie jest do tego dorabiana ideologia.

W ten sposób to przyciągniesz programistów świeżo po maturze. Profesjonalistę z benefitów to przyciągnie raczej forma współpracy i pakiet socjalny (opieka zdrowotna, karnety sportowe itd.), telefon to on już przecież ma w abonamencie za złotówkę (oraz to zaledwie gadżet).

Natomiast lista pytań do zadania firmie – REWELACJA, przyklejcie ten temat :slight_smile:

Anegdotka: byłem kiedyś na rozmowie w jednej firmie, która oferowała bardzo fajne warunki (w sensie stawki) i oczywiście na początku rozmowy dwóch prowadzących opowiadało mi jaka to super firma, a jakie fajne projekty robią, a jak świetnie się u nich programuje. Kiedy już skończyli i przyszła pora na moje pytanie, zapytałem “jakiego stosu rozwiązań używacie do testowania”. Usłyszałem w odpowiedzi że nie piszą testów, co lepsze z dorobionym ideolo (bo pisanie testów wydłuża czas pisania projektu, a poza tym “jak kod działa to działa”) i już wiedziałem, że raczej nie istnieją pieniądze gotowe mnie przekonać do pracy w tej firmie :smiley: