Gdy zaczniesz szukać niezależnego programisty do współpracy, zauważysz, że są wszędzie. Internetowe niezależne targi są wypełnione po brzegi wykwalifikowanymi kandydatami. Oprócz tego musisz znaleźć co najmniej jedną lub dwie (setki) w najbliższym mieście.

Teraz pozostaje ci trudne zadanie polegające na zawężeniu tej puli talentów do tej, która będzie najbardziej efektywna z Tobą. To zniechęca, nawet jeśli masz trochę technicznych zdolności, ale może się wydawać prawie niemożliwe, jeśli tego nie zrobisz. Z drugiej strony łatwo jest myśleć, że względy techniczne są jedynymi, które mają znaczenie. Każdy, kto zatrudnił geniusza, z którym nie można pracować, może ci powiedzieć, jak może być źle.

W tym artykule skupimy się na kilku sposobach, dzięki którym możesz mieć pewność, że uzyskasz najbardziej kompatybilnego partnera.

Sprawdź swoją pracę

Poproś, aby zobaczyć część ukończonej pracy programisty. Zanim zaczniesz oceniać, upewnij się, że rozumiesz części, nad którymi pracował twój potencjalny klient. Poświęć trochę czasu na zbadanie swojego projektu. Zrób notatki, co lubisz i nie lubisz. Może zbudowali aplikację internetową, która jest naprawdę szybka, ale nakłada pewne dziwne ograniczenia na hasło użytkownika. Zapytaj ich, co skłoniło ich do podjęcia tych decyzji.

Wszelkiego rodzaju rozwój oprogramowania, czy to w Internecie, aplikacjach mobilnych czy na komputerze stacjonarnym, to gra w poszukiwaniu najlepszych kompromisów. Słysząc różne kompromisy, przed którymi stanął deweloper, a ich podejście do rozwiązania problemu jest niezwykle cenne w ocenie, w jaki sposób będą rozwiązywać problemy, które napotka twój projekt.

Jeśli znasz się trochę na kodzie, możesz zagłębić się w konto programisty GitHub, aby zobaczyć, co napisał i do których projektów przyczyniły się. Zobacz ich kod pomoże Ci zrozumieć, czy są one dobre dopasowanie z technicznego punktu widzenia. To daje bardziej konkretny pomysł, co lista programistów osiągnięć oznacza w kategoriach umiejętności.

Oto kilka aspektów GitHub freelancera, które na pierwszy rzut oka mogą nie być oczywiste, ale należy zwrócić szczególną uwagę na:  

  • Języki: czy freelancer trzyma się jednego lub dwóch preferowanych języków, czy też gra w wielu różnych językach? Znalezienie specjalisty w zakresie technologii potrzebnych do projektu może szybko przyspieszyć realizację zadań, ale freelancer o szerokim doświadczeniu może zaoferować sugestie dotyczące innych rodzajów narzędzi lepiej dopasowanych do wykonywanej pracy.
  • Komentarze i dokumentacja: jak dobrze dokumentuje się kod? Natura freelancingu oznacza, że ​​w pewnym momencie możesz mieć innych ludzi pracujących nad kodem. Czy ten kod freelancera będzie łatwy w obsłudze? Jeśli nie, oznacza to, że możesz zobowiązać się do nich bardziej, niż chcesz. Niektórzy deweloperzy uważają, że samo-dokumentowanie kodu oznacza, że ​​nie potrzebują żadnych komentarzy. Jeśli nie widzisz komentarzy, jak czytelny znajdujesz kod?
  • Czy przyczyniają się do innych projektów? Jak mogłoby się wydawać sprzeczne z intuicją, często trudniej jest współtworzyć inne projekty open source niż tworzyć własne. Kod innych ludzi może być trudny do zrozumienia, ale jest to niezbędna umiejętność. Jest to szczególnie ważne, jeśli uruchamiasz programistę, aby pracował nad istniejącą bazą kodów. Jeśli przyczyniają się do open-source, jest bardziej prawdopodobne, że napiszą kod, który inni mogą później zachować, ponieważ rozumieją wyzwania, jakie temu stawia.

Dowiedz się, jak (i ​​czego) się uczą

Od najlepszych praktyk do aktualnej technologii, oprogramowanie zmienia się w szybkim tempie. Jeśli skończysz z programistą, który utknął w praktyce i technologii sprzed 10 lat, stracisz narzędzia i techniki, które mogą sprawić, że twój projekt będzie lepszy, szybszy i łatwiejszy w utrzymaniu.

Zapytaj potencjalnych klientów, jak uczą się nowych rzeczy i czego się nauczyli, co pomaga im w ich rozwoju. Co zyskali z nauki? Jakiej następnej rzeczy chcieliby się nauczyć i dlaczego?

Nawet jeśli nie znasz szczegółów ich odpowiedzi, możesz dowiedzieć się, jak ciekawy jest ten programista. Zbyt duża ciekawość może prowadzić do budowania projektów na eksperymentalnych, niesprawdzonych fundamentach, ale generalnie ciekawy programista może przynieść więcej do twojego projektu.

Znajdź kompatybilny komunikator

Komunikacja może spowodować lub rozbić projekt. Upewnij się, że programiści, z którymi współpracujesz, są gotowi i potrafią komunikować się w sposób iz częstotliwością, z którą możesz żyć. Większość programistów ma narzędzia komunikacyjne, które są używane przez współpracowników. Zajrzyj do nich i sprawdź, czy będą dla ciebie skuteczne. Jeśli nie, sprawdź, czy programista jest w porządku, korzystając z alternatywnych narzędzi, które sugerujesz.

To także świetny czas, aby dowiedzieć się, jak często będziesz słyszał od programisty. Jeśli odpowiedź brzmi "raz na końcu każdego etapu", prawdopodobnie będziesz nieszczęśliwy. Jakie są szanse, że programista zrozumie Twój projekt dokładnie w taki sposób, w jaki zamierzasz go po raz pierwszy? Jakie są szanse, że każdy odrębny element, który stanowi ukończony kamień milowy, będzie idealnie na miejscu, tak jak to sobie wyobrażałeś?

Regularne kontrole (przynajmniej raz w tygodniu) mogą naprawić małe nieporozumienia, zanim staną się duże.

Przetestuj je za pomocą projektu

Dzięki tej metodzie nauczysz się więcej, niż w połączeniu z innymi. Zadając pytania i zaglądając do ich kodu, możesz tylko rzucić okiem na to, jak wygląda praca z osobą. Najlepszym sposobem, aby zrozumieć, jak to jest pracować z nimi, jest zrobienie tego. Test to także najlepsza okazja, aby przejść przez techniczne kwestie i na rzeczy, które naprawdę mają znaczenie: Czy będziemy nieszczęśliwi próbując pracować z tą osobą?

Jeśli to możliwe, odłóż mały kawałek swojego projektu i współpracuj z potencjalnym klientem, aby go ukończyć. Jeśli to możliwe, zapłać je, aby to zrobić. Oto kilka fajnych rzeczy dla Ciebie:  

  • daje niski poziom ryzyka, aby przetestować pracę z programistą;
  • pozostawia ci przydatny produkt, nawet jeśli związek nie działa;
  • jeśli możesz pozwolić sobie na uczciwą stawkę, jest to korzystne zarówno dla Ciebie, jak i dla programisty.

Wspominam o tym ostatnim punkcie, ponieważ czasami firmy mają ochotę prosić deweloperów o zbudowanie małego projektu testowego za darmo w celu oceny ich stylu pracy. To nie jest dobry sposób na nawiązanie relacji z Twoim programistą. Jeśli mogą zbudować coś, co będzie dla ciebie przydatne - nawet jeśli na początku nie jest to cały projekt, który chcesz zbudować - czy nie warto za to płacić?

Najlepiej nie przedstawiaj tego deweloperowi jako projekt testowy. Nie musisz kłamać ani oszukiwać ich w jakikolwiek sposób, ale przedstawiaj to jako projekt. W rzeczywistości jest to projekt na razie. Jeśli wszystko pójdzie dobrze, będziesz miał do zaoferowania inny projekt, ale nie zatrzymuj tego. Wpłynie to niekorzystnie na dynamikę relacji. Nikt nie chce być przedmiotem eksperymentów. Jeśli wszystko pójdzie dobrze, programista będzie chciał z tobą pracować nad przyszłymi projektami; nie musisz tego używać na początku, aby utrzymać je na haku.

Podczas tego spotkania, miej oczy otwarte na czerwone flagi. Zastanów się dokładnie nad tym, jakich zachowań nie możesz obejść.

Uważna lustracja się opłaca

Jeśli zbliża się termin zakończenia realizacji projektu i nie masz czasu na wykonanie wszystkich tych kroków, przynajmniej wykonaj projekt testowy. Niech twoja perspektywa zbuduje kawałek większego projektu, w ten sposób twoje ryzyko jest niskie i nie marnujesz czasu. To niezwykle cenne narzędzie, które zapewnia, że ​​jest to związek, który chcesz mieć. Nawet jeśli zawiedzie i będziesz musiał znaleźć kogoś innego, będzie cię to kosztowało mniej czasu i pieniędzy, niż zobowiązanie się partnera do rozwoju, aby zbudował cały projekt tylko po to, aby go pokonać.

Na początku łatwiej jest wybrać kogoś, kogo lubisz i mieć nadzieję na najlepsze. Czasem to może się udać, ale dla dobra twojego projektu powinieneś wchodzić w związki z otwartymi oczami tak bardzo, jak to tylko możliwe.

Przedstawiony obraz, obraz pracy zespołowej przez Shutterstock.