Jak znaleźć programistę, z którym da się dogadać

Jeżeli nigdy jeszcze nie współpracowałeś z programistą, pewnie prędzej czy później ci się to przydarzy.

Wpadniesz na pomysł, którego nie da się zrealizować, podpinając do WordPressa kolejne wtyczki. Może postanowisz stworzyć nowy Facebook? Może mobilną wyszukiwarkę wolnych miejsc parkingowych? A może robot do koszenia trawnika?

Będziesz potrzebował programisty. I wtedy okaże się, że to piekielnie trudne. Gdzie takiego kogoś znaleźć? Jak z nim rozmawiać? W jaki sposób sprawdzić jego umiejętności?

Postanowiłem zapytać o to najbardziej komunikatywnego programistę, jakiego znam. Prowadzi blog Devstylevlog pod tym samym tytułem oraz podcast Devtalk. Ma misję naprawienia wszystkiego co złe w polskim świecie IT. Nazywa się Maciej Aniserowicz.

Linki do osób i firm wymienionych w tym
odcinku podcastu

Prezent dla słuchaczy

Kwestionariusz potrzeb rekrutacyjnych
Jak lepiej przygotować i przeprowadzić rekrutację? Zapisz się do Klubu MWF i pobierz brief rekrutacyjny Chcę to 

Podcast do czytania

Marek Jankowski: Cześć, Macieju. Powiedz, co ostatnio czytałeś.

Maciej Aniserowicz: Cześć. Zwykle czytam książki fantastyczne, żeby oderwać się kompletnie od wszystkiego. Najlepiej uczę się na własnych porażkach i doświadczeniach – to z nich czerpię wiedzę. Przeczytałem jednak kilka pomocnych książek, wśród nich była niedawno klasyka klasyk, którą każdy zna, czyli Finansowego ninję. Bardzo żałuję, że Michał Szafrański nie wydał tego 10 lat temu, bo wtedy moje życie mogłoby potoczyć się nieco inaczej.

Jestem w tym samym klubie – gdybym przeczytał ją przed wzięciem kredytu hipotecznego, to moje życie mogłoby potoczyć się zupełnie inaczej.

Z mniej znanych tytułów mogę polecić książkę Davida Rocka pt. Twój mózg w działaniu. Delektuję się nią już od trzech lat – idzie mi dość topornie, ale jest naprawdę genialna, opisano w niej sposób, w jaki działa ludzki mózg. Skąd się bierze np. stres, jakie hormony za niego odpowiadają, jakie związki chemiczne wydzielają się w tym czasie w mózgu i jak zareagować, by się go pozbyć.

To działa tak, że możemy np. zjeść czekoladę i zmniejszyć swój stres?

Zjeść czekoladę akurat nie, ale możemy np. rozejrzeć się po pokoju, wskazywać palcem różne przedmioty i nazywać je inaczej, niż faktycznie się nazywają. Czyli krzesło nazywasz telewizorem, telewizor szynką, a sufit – samochodem.

Wiesz, dlaczego to działa? Bo jak ktoś cię obserwuje, to przestaje mieć problem z tym, że jesteś zestresowany, a zaczyna mieć z tym, że jesteś niezrównoważony [śmiech].

W książce opisane zostały procesy zachodzące w mózgu: on wtedy głupieje i zapomina o stresie. Wszystko zostało fajnie przedstawione w formie scenek wziętych z życia, zaprezentowano kilkadziesiąt historii przydarzających się bohaterowi w pracy czy w domu i opisano procesy zachodzące wtedy w jego mózgu. Bardzo polecam tę książkę. Dostałem ją od kolegi ze słowami: „Uważaj, ona zmieni twoje życie” i wydaje mi się, że faktycznie może tak być. Tak więc ostrożnie, ale warto.

Spotkaliśmy się dziś po to, żeby porozmawiać o dość trudnej, lecz koniecznej, relacji między przedsiębiorcami a programistami. Zaczęliśmy tę rozmowę na Twitterze, gdzie napisałeś, że jak każdy potrzebuje lekarza, tak przedsiębiorcy potrzebny jest czasem prawnik i programista. W pierwszej chwili pomyślałem: „E, naciągane, gość siedzi w tym świecie i koloryzuje”, ale po głębszym zastanowieniu dostrzegłem w tym sens. Dlaczego twoim zdaniem tak jest, czy w tych czasach nie da się już żyć bez programisty?

Oprogramowanie jest wszędzie – w lodówkach, telefonach, głośnikach, nawet w żarówkach. Jeśli przedsiębiorca ma jakiś pomysł, to potrzebuje kogoś do jego realizacji. Analogia z prawnikiem i lekarzem dotarła do mnie, gdy sam wpadłem na pomysł, który chciałem zrealizować – usiadłem wtedy i w dwa tygodnie stworzyłem portal internetowy. Naszła mnie myśl, że gdybym nie umiał programować, byłaby bieda – wszystko zatrzymałoby się na etapie idei, musiałbym szukać osoby, która mi to wykona. Jako programista jestem w tym zakresie niezależny, daje mi to swobodę, której brakuje osobom nietechnicznym – one często mają za to lepsze pomysły.

Czy zawsze powinniśmy korzystać z usług samodzielnego programisty? Może lepiej jest znaleźć firmę, której zlecę takie zadanie?

To dość skomplikowana kwestia. Znalezienie samodzielnego programisty, który zajmie się wszystkim, często jest trudne lub wręcz niemożliwe. Do zrealizowania nawet dość prostego systemu potrzebujemy kogoś znającego się na bazach danych, programisty potrafiącego napisać stronę działającą po stronie serwera, innego od kodu działającego w przeglądarce, czyli tzw. Client-Side Code, grafika, który ogarnie to od strony wizualnej – to co najmniej cztery–pięć osób. Do tego często w firmie jest jeszcze project manager do zarządzania tymi ludźmi. Po zaangażowaniu firmy do takiego zadania otrzymamy wszystko w pakiecie – cały zespół ludzi otrzyma od nas wytyczne i dostarczy gotowy produkt.

Znalezienie programisty kojarzy mi się z szukaniem współpracownika lub pracownika, a to w praktyce przypomina rekrutację i od razu zapala się czerwona lampka – taką osobę będzie trzeba nadzorować, więc muszę znaleźć kogoś, kto będzie mi pasować. W drugim przypadku sprawa jest prosta – znajduję firmę zajmującą się takimi rzeczami, zlecam jej zadanie, dostaję gotowe rozwiązanie, rozliczamy się i załatwione.

[Śmiech]. W idealnym świecie – tak. Niestety z firmą możemy mieć takie same problemy, jak z samodzielnym programistą. Większość projektów informatycznych upada bez względu na to, czy realizują je firmy, czy pojedyncze osoby – często jest to spowodowane nie brakiem kompetencji, lecz problemami z komunikacją, samym pomysłem i jego wdrażaniem, marketingiem itd. Jednak żeby coś mogło upaść, wcześniej musi zostać zrealizowane. Firma oferuje nam zestaw kompetencji w całym zespole – trudno jest o freelancera, który byłby w stanie samodzielnie stworzyć gotowy system.

Z firmą możemy mieć takie same problemy, jak z samodzielnym programistą

Na szczęście ja byłem w stanie zająć się moim projektem niemal kompleksowo – nie stworzyłem tylko wyglądu, bo tym się nigdy nie parałem. Ale taka sytuacja też stwarza ryzyko, bo jeśli szedłbym ulicą i wpadł pod autobus, to nikt tego projektu ode mnie nie przejmie, a w firmie – owszem. Nie jest też powiedziane, że komunikacja z firmą będzie stała na dobrym poziomie. Uważam więc, że ryzyko jest podobne bez względu na to, którą drogą pójdziemy.

Wynajęcie firmy może być prostsze, ale pewnie będzie też sporo droższe, bo czym innym jest opłacenie jednej osoby, a czym innym całego zespołu wraz z managerem, księgowym i innymi pracownikami. To dwa różne budżety.

Czyli jeszcze nie zaczęliśmy, a już piętrzą się problemy.

No tak. Prawie do wszystkiego potrzebny jest programista – to duży problem obecnej cywilizacji, który prawdopodobnie w jakiś sposób zostanie rozwiązany. Już teraz można coraz więcej zrobić samodzielnie. Mimo że jestem programistą, też czekam na czasy, gdy będzie można usiąść i zrobić własnoręcznie wiele rzeczy. To już się dzieje, ale jeszcze nie doszliśmy do tego punktu.

Weźmy pod lupę hipotetyczny projekt i przyjrzyjmy się procesowi, przez który powinniśmy przejść. Co chcemy stworzyć? Rozbudowany serwis internetowy? Coś bardziej skomplikowanego niż blog na WordPressie?

Niestety, zwykle klienci wymagają „czegoś takiego jak Facebook, ale trochę innego” [śmiech]. Zanim zaczniemy kogokolwiek szukać, musimy wiedzieć, co chcemy zrobić, i sporządzić pełną listę wszystkich wymaganych funkcji naszego serwisu z opisem, co chcemy osiągnąć – już samo to jest dużym wyzwaniem. To nie może być pół strony zapisanej informacjami, że projekt ma być „taki jak Facebook/WordPress, tylko że ze zmianami”.

Swego czasu zgłaszało się do mnie wiele firm i przedsiębiorców z prośbą o wycenę jakiegoś projektu. Sam proces wyceny u mnie już kosztuje, ponieważ zajmuje mi kilka wieczorów. Często trzeba się domyślać, czego ludzie potrzebują, bo nigdzie tego nie spisali. To główny problem w komunikacji – jedna osoba denerwuje się, że druga nie rozumie jej wymagań.

Czy ja, jako przedsiębiorca, powinienem samodzielnie opracowywać taki pomysł? A może lepszym rozwiązaniem jest zaproszenie programisty do współpracy, jeszcze zanim zdecyduję się powierzyć zlecenie komuś z zewnątrz? Specjalista mógłby mi powiedzieć, jakich informacji ode mnie potrzebuje oraz co jest możliwe do zrobienia, a lepsza znajomość moich wymagań pomogłaby mu potem ogarnąć całość od strony technicznej.

Ten pomysł jest jak najbardziej dobry, ale trzeba mieć świadomość, że taka usługa także kosztuje. Przedsiębiorcy często wychodzą z błędnego założenia, że płaci się tylko za sam fakt programowania, a spędzanie wraz z nimi czasu przy pisaniu specyfikacji i myśleniu nad projektem jest częścią rozmów przygotowawczych.

Przecież żadna firma nie spędzi z nami tygodnia na pisaniu specyfikacji bez wystawienia nam na koniec faktury. Nie przygotuje się tego w pół godziny – trzeba to od razu zrobić dobrze, a to niestety też kosztuje.

W różnych branżach są tego rodzaju problemy. Jeśli klient chce dowiedzieć się, co może mu zaproponować firma zajmująca się – powiedzmy – budową stoisk targowych, zanim zdecyduje się na skorzystanie z usługi, będzie chciał zobaczyć projekt hipotetycznego stoiska. Czy w przypadku programistów nie powinno być podobnie? Chcąc zlecić komuś robotę, powinienem móc upewnić się, że wykonawca da radę ją wykonać.

Tak. Tylko że bardzo niebezpieczni są programiści deklarujący się po kwadransie rozmowy, na kiedy projekt będzie gotowy. Tego nie da się przewidzieć. Jeśli przychodził do mnie klient ze zleceniem, spędzałem godzinę lub więcej na myśleniu, co to ma robić i ile czasu mi to zajmie. Na tej podstawie podawałem widełki kosztowe i czasowe.

Jeśli miałem zbyt mało informacji, mogłem określić, że projekt będzie gotowy 6–12 miesięcy od chwili podpisania umowy, a koszty wyniosą np. 10 000–120 000 zł. Przyznaję, że w takiej sytuacji ludzie bardzo często pisali mi, że jestem niepoważny, i się żegnali. Po prostu im więcej znam szczegółów, tym precyzyjniej jestem w stanie określić widełki czasowe i cenowe.

Gdzie szukać programistów lub firmy, którym mógłbym zlecić taką robotę?

Najlepiej spytać o opinię znajomego, który korzystał z takich usług i był zadowolony. Łatwo jest trafić na wykonawcę, który nie wywiąże się ze swoich zobowiązań. To sytuacja smutna dla przedsiębiorcy, a dobra dla dostawców oprogramowania bardziej dbających o jakość. Ja najbardziej lubiłem, gdy ktoś przychodził do mnie po nieudanej współpracy z kimś innym. Dostawałem wtedy więcej swobody i byłem na lepszej pozycji.

Żyjemy w takiej dekadzie, że zapotrzebowanie na fachowców z tej dziedziny jest ogromne. Programiści są z reguły słabi – łatwo jest trafić na kogoś, kto nie będzie w stanie spełnić oczekiwań klienta.

Co zrobić, jeśli żaden z moich znajomych nie ma takich doświadczeń i nie może mi nikogo polecić? Jak znaleźć dobrego specjalistę, biorąc pod uwagę, że wielu programistów jest słabych?

Dobrego programistę znajdziemy w Internecie – może prowadzić jakiś blog, występować na konferencjach. Najprościej jest wziąć firmę, ale też nie da nam to gwarancji sukcesu – możemy co najwyżej łatwiej dochodzić odszkodowań. Jeśli szukamy samodzielnego programisty, to problemem może być duże obłożenie dobrych programistów robotą.

Możemy też wystawić ofertę na portalu ogłoszeniowym. Kiedyś królowały strony, na których można było zlecić komuś wykonanie strony za 100, 200, 500 czy 1000 zł. Prawdopodobnie nadal można działać w ten sposób, lecz trzeba zdawać sobie sprawę, że dostaje się to, za co się płaci. Jeżeli ktoś ma niski budżet, nie dostanie towaru wysokiej jakości.

Dostajemy to, za co płacimy. Nie otrzymamy wysokiej jakości towaru w niskiej cenie

Wśród wykonawców istnieje przekonanie, że od polskich klientów raczej się ucieka, wielkim szczęściem zaś jest zyskanie klienta zagranicznego. Po latach doświadczeń mogę powiedzieć, że to niestety prawda. Nawet jeśli ktoś ma pomysł na duży biznes, bardzo często trzeba się z nim użerać jak z babą na rynku przy kupnie ziemniaków – walczyć o każde pięć złotych, raportować każdą minutę spędzoną nad projektem itd. Jakaś doza zaufania jednak powinna się tu pojawić.

Może to po prostu efekt mocniejszego sparzenia się przez polskich przedsiębiorców…?

Nie wydaje mi się. Wróćmy jeszcze do poszukiwań – moim zdaniem świetnym sposobem na znalezienie programisty jest wybranie się w miejsce, gdzie tacy specjaliści się spotykają. Warto wybrać się na konferencję lub spotkanie grupy programistycznej – w każdym większym mieście takie wydarzenia odbywają się regularnie.

Można przenudzić się godzinę–dwie na prezentacjach i zostać na tzw. after party, by wypić z tymi ludźmi piwo i trochę porozmawiać. Pozwoli nam to bez żadnych zobowiązań nawiązać pierwsze kontakty. Nawet jeśli za pierwszym razem nie znajdziemy w tym miejscu nikogo chętnego, to może akurat ktoś kogoś poleci – programiści w miastach znają się wzajemnie i wiedzą, kto akurat może poszukiwać nowego projektu.

Rozumiem, że w pewnych sytuacjach może to być dobra droga dla kogoś, kto choć odrobinę ogarnia świat programistów. Wy między sobą rozmawiacie na trochę innym poziomie, używacie pojęć, które obaj znacie. Ale jeżeli ja szukam programisty, to trafiam na barierę – boję się, że mogę nie zrozumieć, o czym on do mnie mówi.

Sam przez lata zmagałem się z problemem komunikacji z nieprogramistami i długo musiałem się uczyć, żeby zacząć się z nimi dogadywać. Jednak w idei pójścia na takie spotkanie chodzi nie o zrozumienie czegokolwiek, lecz o samą obserwację, w jaki sposób zachowuje się grupa programistów. Celem jest wypatrzenie lidera: kogoś kierującego całym meet-upem, któregoś z prelegentów albo człowieka, którego inni słuchają. Najlepszym wyjściem jest zagadanie do takiej osoby, krótkie przedstawienie pomysłu, poinformowanie, że szukasz wykonawcy, i prośba o polecenie kogoś – taki człowiek prawdopodobnie nie zarekomenduje nikogo słabego.

Mnie też czasem ludzie zadają takie pytania. Często odpowiadam, że akurat nie mogę nikogo polecić, bo wiem, że wszyscy znani mi dobrzy programiści są w danej chwili zajęci.

Czy mam jakąś możliwość sprawdzenia takiego programisty, zanim zacznę z nim pracować? Rozumiem, że mogę mieć zaufanie do jego profesjonalnych umiejętności, ale chodzi też o to, jak będzie nam się układała współpraca, czy będę w stanie się z nim porozumieć, czy będzie słowny, terminowy itd.

To ponownie jest problem komunikacji. Istnieje wiele fałszywych stereotypów, że siedzimy w piwnicach w koszulach w kratę i tylko warczymy, pijemy kawę i wypluwamy kod. To nieprawda. Przez ostatnich 10 lat wiele się zmieniło, ale nadal część programistów boi się świata zewnętrznego. Niestety, trzeba szukać takiego, z którym będziesz w stanie się dogadać – usiądziesz przy stole i porozmawiasz, niekoniecznie o kodowaniu. Wiadomo, że technicznych rzeczy nie będziesz w stanie zrozumieć jako nieprogramista, bo gdybyś rozumiał, to sam byś to sobie zakodował.

To tak, jakbym słuchał rozmowy dwóch kardiochirurgów i martwił się, że nie rozumiem, co oni robią w sercu.

Fajne porównanie – w szpitalu też nie wiemy, kto będzie nas operował. Dużo słyszymy o różnych przypadkach i nie jesteśmy w stanie zweryfikować, czy ta osoba faktycznie coś umie. Jeśli chodzi o programistów, to jakąś możliwość weryfikacji mamy w Internecie – wielu z nich prowadzi blogi, na które możemy wejść, niekoniecznie po to, by cokolwiek zrozumieć.

Czasem wystarczy poczytać komentarze i zobaczyć, w jaki sposób autor komunikuje się z czytelnikami, czy osoby komentujące nie wytykają programiście błędów – pozwoli nam to zweryfikować choć pobieżnie, czy ta osoba wie, o czym mówi. Na blogach często można też znaleźć portfolio zrealizowanych projektów – możemy się skomunikować z jego byłymi klientami i spytać ich, jak przebiegała współpraca.

Jeżeli mamy już wybraną konkretną osobę, to co dalej? Jeśli mam genialny pomysł na drugiego Facebooka, to czy powinienem wymagać od programisty podpisanego własną krwią cyrografu, że niczego nikomu nie powie? Rozumiesz mój stres – wyjawiam mój genialny pomysł komuś, kto wie, jak go wcielić w życie. Jeśli on nie podejmie się zlecenia, a za tydzień zrobi ten projekt samodzielnie, to ja zostanę na lodzie.

Poruszyłeś teraz dwa istotne problemy, przez które odrzucałem 90% takich zapytań w ciągu pierwszych kilku maili. Pierwszy z nich dotyczy pomysłu – ludzie myślą, że wpadli na genialny pomysł, i chcą deklaracji na piśmie, że nikomu niczego nie powiem. Ja nic takiego nie podpiszę, bo mogę się komuś niechcący wygadać z jednego prostego powodu – moim zdaniem same pomysły są bezwartościowe.

Świetny pomysł może być wart np. 1000 zł, świetne wykonanie – też 1000 zł. Tylko ich połączenie może być wycenione na milion. Świetny pomysł zepsuty kiepską realizacją nie jest nic wart, podobnie jak świetna realizacja słabego pomysłu.

Świetny pomysł zepsuty kiepską realizacją jest bezwartościowy

Nie możemy się za bardzo przywiązywać do pomysłów – ja mam ich 10 tygodniowo. Samym pomysłem nie zawojujemy świata. Facebook też nie był odkrywczy, a Google nie był pierwszą wyszukiwarką.

Drugą sprawą jest częste oczekiwanie ogromnego zaangażowania i pasji od wykonawcy. Miałem taką sytuację: przyszedł do mnie przedsiębiorca z pomysłem i oczekiwał, że będę z nim siedział całymi dniami i gilgotał się wizją fantastycznego projektu. Proponował część udziałów w zamian za mój wkład. Nie zgodziłem się, moja stawka jest ustalona. Gdybym chciał mieć start-up, sam bym go założył, prawdopodobnie miałbym też równie dobry pomysł. Jeśli szukasz wykonawcy, to mogę go wykonać, ale nie oczekuj, że będę jarał się tym razem z tobą i wspólnie prowadził firmę.

Całe życie unikam biznesu, zakładania firm, start-upów itp., bo w ogóle mnie to nie kręci. Jeśli miałbym to robić, zrobiłbym to samodzielnie, opierając to na własnym pomyśle. Wielu programistów ma takie samo podejście – chcą programować, a nie zajmować się wszystkim wokół. Przedsiębiorcy często chcieliby zaangażowania programistów w całość przedsięwzięcia – nie każdego coś takiego jara.

Rozumiem, choć twoje podejście wydaje mi się odrobinę zbyt liberalne. Chciałbym powierzyć komuś pomysł, który w moim mniemaniu jest bardzo cenny. Ty nie chcesz żadnych tajemnic i nie widzisz problemu w wygadaniu się przez przypadek. Podobnie z zaangażowaniem – jeśli kupię od ciebie godzinę, to poświęcisz mi godzinę i nie mam co liczyć na większy udział czy jaranie się pomysłem. Czego więc mogę i powinienem wymagać od programisty?

Żeby rzetelnie zrobił to, do czego się zobowiązał. Produkt ma działać tak, jak ty chcesz, i ma zostać zrobione to, co zostało ustalone.

Czyli trochę jak z maszyną?

Nie – jak z każdą inną usługą. Jeśli najmuję fachowca, który ma mi wyłożyć kafelki na balkonie, to nie oczekuję, że będzie się jarał moimi pięknymi kafelkami. Chcę, żeby przyszedł, położył kafelki i poszedł. Jeśli poszukujemy współpracowników, to zakładamy firmę i budujemy zespół, nie bierzemy freelancera – on jest freelancerem po to, żeby mógł co pół roku robić nowy projekt, z jego perspektywy to jest fajne.

Jaką umowę powinniśmy spisać z taką osobą? Przy każdym stworzonym przez kogoś projekcie informatycznym trzeba później dłubać – zmieniają się systemy, pojawiają się aktualizacje, nowe wymogi i miliard innych rzeczy. Taki projekt nigdy nie będzie finalnie zamknięty.

Żaden projekt informatyczny nie jest skończony, zawsze jest przy nich coś do roboty – nawet przy tych, które odnoszą sukces. Jednak trzeba zdawać sobie sprawę z tego, że freelancer czy firma mają też inne zadania. Jeśli masz zamiar budować przedsiębiorstwo na jednym produkcie, to najlepiej zatrudnić kilka osób, które będą siedzieć nad tym przez cały czas.

Przedsiębiorcy czasem pytają, co będzie, jak coś się zepsuje – dlatego umowa zawsze musi być. Zdarzało mi się robić projekty w ogóle bez umowy oraz takie, w których w umowie zawarliśmy tylko imię, nazwisko, przewidywany termin i wynagrodzenie, pomijając zakresu obowiązków – ten miał dopiero zostać ustalony. To jest droga prosto do piekła. Nawet jeśli robimy zlecenie dla kumpla, powinniśmy sporządzić umowę, w której zawrzemy wszystkie szczegóły i specyfikację – wtedy robimy tylko to, na co się zgodziliśmy. Warto pamiętać, że umowę spisujemy na złe czasy, a nie na dobre.

Umowa zawsze musi być – spisujemy ją na złe czasy, nie na dobre

Wizja projektu zawsze może się zmienić w trakcie realizacji, lecz taki scenariusz również powinien być przewidziany w umowie. Dobrym pomysłem jest robienie projektów etapowo – kolejne kroki ustalamy po zamknięciu danego etapu. Ważne jest też zawarcie w umowie wszystkich terminów, kwoty, płatności oraz konsekwencji w przypadku opóźnień.

W warunkach współpracy powinna też się znaleźć informacja o okresie gwarancji – mogą to być np. trzy miesiące od chwili zakończenia prac. Jeśli coś się w tym czasie zepsuje – trzeba to naprawić. Nie dotyczy to jednak zmiany zdania czy nowych pomysłów zleceniodawcy – te są już kolejnym zleceniem.

Miałem kiedyś taki problem, że klient mocno zbił moją stawkę godzinową i obiecał, że odrobię to sobie po starcie gotowego projektu. Po zakończeniu prac i upłynięciu gwarancji klient wrócił do mnie z pomysłem na zmiany. Gdy wyceniłem mu to czterokrotnie wyżej niż podczas naszej standardowej współpracy, stwierdził, że chyba oszalałem, i spytał, czemu tak drogo. Odpowiedziałem, że przecież mi obiecał, że sobie to odbiję – i właśnie teraz to robię.

Wydaje mi się, że z mojej strony nie było to nieuczciwe – tak się przecież umawialiśmy – jednak on chyba się nie spodziewał, że będę o tym pamiętał. Dlatego najlepiej ustalić stabilne warunki na cały czas trwania współpracy, bo jak przyjdzie co do czego, to będzie problem. Zwłaszcza że klient jest uwiązany do programisty.

W branży budowlanej, gdy skorzystasz z usług np. hydraulika, to po przyjściu spojrzy on na toaletę i powie „Jezu, kto panu to zakładał?! Przecież to w ogóle nie tak powinno być!”

Programista mówi tak o każdym kodzie.

Otóż to! Czy mogę jakoś zapewnić sobie spokój, który pozwoli mi sądzić, że inny programista będzie potrafił kontynuować projekt?

To jest duży problem – każdy projekt można zrealizować w wielu technologiach. Każdy programista w czymś się specjalizuje, więc jeśli jeden stworzył projekt, to wybór kolejnego będzie ograniczony do osób znających się na konkretnym języku programowania. Dobry programista będzie w stanie pracować z czymkolwiek.

Odrzuciłem kiedyś jeden z projektów, mimo że klient był fajny, idea – również. Kod był jednak zbyt kiepski, szkoda mi było życia na pracę z czymś takim. Dowiedziałem się, że wcześniej robił to jakiś student, czyli nacisk był położony na cenę, a nie jakość. Trzeba to przepisać na nowo, ale ostatecznie się tego nie podjąłem.

To trochę nierówna walka – nie jesteś w stanie zagwarantować sobie ani jakości danego programisty, ani możliwości przejęcia tego później przez kogoś innego. Dlatego tak ważna jest moim zdaniem komunikacja – programiści to nie są zwierzęta, które mają tylko dostarczyć nam produkt – dobrze jest porozmawiać, spotkać się i przekonać, czy dany człowiek jest w porządku.

Gdy oddaję jakiś projekt i nie chcę się nim dłużej zajmować, pomagam znaleźć wykonawcę, który pociągnie to dalej. Dzięki temu klient nie zostanie na lodzie. Wszystko zależy od danego człowieka, dlatego dobrze jest się poznać. Zwłaszcza że taka współpraca często trwa miesiącami albo latami.

Współpraca z programistą trwa miesiącami lub latami, dlatego dobrze jest się poznać

Czy istnieje jakaś niewielka rzecz, która pomogłaby przedsiębiorcy w kontakcie z programistami i polepszyła jakość relacji oraz końcowego produktu?

Tak! Taką rzeczą jest pójście na programistyczne spotkanie, o którym mówiłem wcześniej, serio. Musimy rozmawiać, bo większość problemów wynika z błędów w komunikacji, niezrozumienia i własnych antypatii.

Przedsiębiorcy są przez programistów zwani biznesem. Nawet w obrębie jednej firmy działy wymyślające, co ma być zrobione, są tym złym biznesem chłoszczącym nas po plecach i chcącym wycisnąć coraz więcej. Z drugiej strony są HR-y pieszczące programistów. A sami programiści siedzą sobie w środku i robią swoje.

Biznes z kolei widzi programistów jako tych dopieszczanych, których jest ciągle zbyt mało i którzy słabo pracują, nigdy nie jest się z nich zadowolonym. To wszystko wynika z braku komunikacji. Są firmy, w których działa to świetnie – one dbają o kontakt między biznesem a programistą. Współpraca nigdy nie wygląda tak, że wystarczy stworzyć programiście specyfikację i kolejny raz spotkać się za pół roku, gdy wszystko będzie gotowe. Trzeba trzymać kontakt, rozmawiać co jakiś czas, a ja sugeruję rozmowy na żywo, nie tylko mailem.

Znam paru programistów – ludzi, którzy np. opiekują się sieciami w firmach. I oni sami mówią czasem, że ich praca jest tym lepsza, im mniej mają roboty. Ich zadanie polega na sprawieniu, by wszystko działało. Jeśli nic złego się nie dzieje, to dobrze świadczy o nich i ich pracy.

Tak, takie osoby najlepiej wykonują swoją pracę, gdy nie pracują.

To wpływa też na negatywny odbiór świata IT przez otoczenie, bo to są ci ludzie, którzy siedzą i się obijają.

Programiści akurat nie, ale środowisko IT długo i ciężko pracowało na taki odbiór. Zdaję sobie z tego sprawę i wcale się nie dziwię, że jesteśmy nielubiani. W swoim wąskim zakresie staram się to zmieniać i widzę jakiś postęp.

W świecie IT są certyfikaty. Czy nie można by było nadawać certyfikatów programistom, którzy mówią ludzkim głosem?

[Śmiech]. Wiesz, to jest kwestia pięciu minut rozmowy – od razu widać, czy człowiek potrafi się porozumieć, czy nie. Często programista zupełnie nie potrzebuje takiej umiejętności. Same certyfikaty w świecie IT są moim zdaniem nic niewarte – sam mam ich kilka i wiem, jak to zwykle wygląda. Dostaje się dokładną instrukcję, idzie na egzamin, na który zna się odpowiedzi, dostaje certyfikat i tyle. Można w ten sposób weryfikować specjalistów, czy coś potrafią, ale to nie jest dobra droga.

Nic nie zastąpi zwykłej komunikacji. Nie wiem, czy w jakikolwiek sposób możemy pomóc przedsiębiorcom poszukującym programistów – tym, co mogę poradzić, jest po prostu poznanie się, rozmowa i nacisk na komunikację. To jest taki sam człowiek, który też ma własne życie – nie oczekujmy, że rzuci wszystko i będzie nagle częścią naszego biznesu, ale jednocześnie wymagajmy i nie zadowalajmy się byle czym.

Wielkie dzięki. Myślę, że to pomogło ludziom, bo to trochę odczarowanie programisty, pokazanie, że to po prostu człowiek, który chce wykonać swoją robotę i zrobić to jak najmniejszym kosztem własnym.

Może niskim kosztem, ale programistom też bardzo zależy na jakości. Satysfakcja ze zrobienia czegoś fajnego i działającego cały czas w Internecie jest czymś wspaniałym. To uczucie, dla którego warto było uczyć się latami. Dlatego zależy mi na tym, żeby to działało. Ale niekoniecznie muszę włożyć całe moje serce w biznes klienta. Wielu programistów dba o to, by produkt był dobrze zrobiony od strony technicznej.

Wielkie dzięki!

Dziękuję bardzo.

Na stronie zostały wykorzystane linki afiliacyjne. Jeżeli wejdziesz przez nie na stronę sprzedawcy i dokonasz zakupu, sprzedawca podzieli się ze mną częścią swojej marży (nie wpływa to na twoją cenę). Wymieniam wyłącznie te produkty i usługi, z których rzeczywiście korzystam i jestem z nich zadowolony.

Przeskocz do: