5 sposobów szukania pomocy, gdy utknąłeś w projekcie

30.01.2020

Artykuł

Bez względu na to, czy dopiero rozpoczynasz swoją przygodę z programowaniem, czy masz już kilka lub kilkanaście lat doświadczenia, zawsze podczas pracy nad projektem trafisz na problem, który może na pierwszy rzut oka wydawać się trudny do przejścia. Nie ma jednak powodów do obaw, gdyż właśnie dzięki takim chwilom budujesz swoje własne doświadczenie.

1. Pozwól sobie na komplikacje

Problemów przede wszystkim nie możesz się bać. Potraktuj każdy z nich jako kolejną szansę na udowodnienie samemu sobie, że dasz radę i tym razem. Pozwól na to, aby utknięcie w projekcie było wyzwaniem, a nie oznaką bezradności czy niekompetencji.

Na samym początku daj sobie określony czas na rozwiązanie napotkanego problemu. Jeśli rozwiązanie samo nie przychodzi, skorzystaj z metody gumowej kaczuszki. Więcej o tej metodzie przeczytasz w tym artykule. Opowiedz jej w szczegółach co się stało, starając się nie używać słów typu „coś” oraz „jakiś”. Mówienie o problemie i jego szczegółach spowoduje, że zrozumiesz go lepiej i być może zaobserwujesz coś, co zostało przeoczone wcześniej. Może się okazać, że rozwiązanie czeka w zasięgu ręki.

jak-szukac-pomocy-w-projekcie-infoshareacademy
Źródło: wikimedia.org

2. Być może ktoś przed Tobą mierzył się z podobnym problemem

Jeśli żółty przyjaciel nie podpowie niczego sensownego, w kolejnym kroku sprawdź, czy są osoby, które z czymś podobnym się już mierzyły. Wykorzystaj najpierw zasoby Internetu. Skorzystaj z ulubionej wyszukiwarki, starając się jak najbardziej zawęzić wyniki wyszukiwania.

Przykładowo, gdy utknięcie w projekcie spowodował powtarzający się komunikat o błędzie – wpisz go w polu wyszukiwania. Z biegiem czasu prawdopodobnie zaobserwujesz, że bardzo dużo wyników będzie prowadzić do jednej niezwykle znanej strony.


Źródło: imgflip.com

Równie dobrym sposobem na poszukiwanie rozwiązania w zasobach Internetu, może okazać się przeglądanie publicznie dostępnego kodu źródłowego aplikacji opensource’owych, podobnych do tego, nad czym aktualnie pracujesz. Nieocenione w tym przypadku jest zdobywanie umiejętności analizy kodu napisanego przez inne osoby.

3. Stackoverflow lekiem na zło

Stackoverflow.com to jeden z najpopularniejszych serwisów internetowych, które zrzeszają ogromną społeczność programistów chętnych do pomocy. W dużym procencie przypadków możemy odnaleźć tam dobre sugestie, a najczęściej gotowe rozwiązania naszych problemów. W żadnym wypadku nie wahaj się dodawać nowych pytań w serwisie, jeśli nie udało się uzyskać pożądanej odpowiedzi.

Po pierwsze, zaobserwujesz jak szybka jest reakcja i siła społeczności, a po drugie podszlifujesz na dłuższą metę swój angielski, który jest niezbędny w codziennej pracy programisty. Pamiętaj jednak też, aby nie ufać ślepo każdej uzyskanej odpowiedzi i aby starać się chłodno ocenić czy znaleziona odpowiedź ma sens. Kluczowe jest to, aby rozumieć w najmniejszym detalu, dlaczego zasugerowano takie a nie inne podejście. Pamiętaj, aby nie kopiować rozwiązań, których nie rozumiesz.

4. A może koledzy z zespołu poratują?

Jeżeli nadal nie udało się odnaleźć rozwiązania bądź dysponujesz niepewną lub nie do końca zrozumiałą odpowiedzią pochodzącą z Internetu, zaangażuj innych i porozmawiaj z bardziej doświadczonymi osobami w zespole, w którym pracujesz. Opowiedz o problemie, przedstaw koniecznie uzyskane efekty dotychczasowych poszukiwań.

Pamiętaj, że wbrew pozorom, koleżanki i koledzy o większym doświadczeniu lubią pomagać innym, w szczególności osobom młodszym stażem. Uszanuj jednakich czas i zamiast odrywać ich nagle od bieżącej pracy, umów się na konkretną godzinę na rozmowę o swoim problemie. Gwarantuję, że takie podejście będzie świadczyć o Twoim profesjonalizmie.

Rozmowa o potencjalnych rozwiązaniach i dopytywanie o ewentualne szczegóły kogoś z większym doświadczeniem zmusza go do myślenia i nierzadko powoduje, że sam odkrywa aspekty, o których mógł nie wiedzieć wcześniej. To jest symbioza. Każdy z Was z takiej rozmowy wyniesie coś dobrego.

5. Przewietrz umysł, spróbuj jeszcze raz

Czasami jednak rozwiązanie problemu może wymagać czasu. Odejście od biurka i krótki spacer na świeżym powietrzu może okazać się kluczem do sukcesu. Jeśli do wykonania masz jeszcze inne zadania, spróbuj na chwilę pozostawić nurtujący problem i zająć się czymś innym. Czasami odpoczynek dla umysłu od konkretnego zadania również może dać zaskakujące efekty.

W pamięci mam jeden dość jeden osobliwy przypadek, z którym nie mogłem sobie poradzić przez dość długi czas. Wiele lat temu utrzymywałem aplikację webową, która stworzona była w PHP w frameworku Symfony. Klienci z Rosji zgłaszali na przełomie roku notorycznie błędy związane z niepoprawnymi godzinami. Przeczucie podpowiadało: “strefy czasowe”. Po ich weryfikacji i aktualizacji aplikacji błąd występował dalej.

Wraz z zespołem szukaliśmy, dlaczego nie jesteśmy w stanie wywołać lokalnie błędu i ostatecznie okazało się, że powód był zupełnie inny. Rząd rosyjski zlikwidował niewiele wcześniej czas zimowy w Moskwie i było to odnotowane w wersjach PHP zainstalowanych na naszych komputerach, ale już nie na serwerze. Problem został rozwiązany zupełnie przypadkowo, kiedy to w ramach odpoczynku od problemu, czytając wiadomości ze świata, trafiłem na artykuł opisujący fakt zmiany stref czasowych na terenie Rosji.

Należy jasno podkreślić, że radzenie sobie z faktem utknięcia w projekcie nie ma jasno określonych metod postępowania. Można posiłkować się sprawdzonymi metodami, które nie zawsze dadzą rezultat, jednak otwiera to pole do ciągłego pobudzania naszej kreatywności. Właśnie dzięki temu praca programisty jest niesamowita.

Myślisz o rozpoczęciu nauki?
Sprawdź zdalny kurs UX Bootcamp

Autor:

Marcin Kwiatkowski - autor artykułu i trener w infoShar Academy

Marcin Kwiatkowski

Full-Stack developer w Bright Inventions i Team Lead z ponad 10-letnim doświadczeniem w branży IT. Trener w infoShare Academy. Absolwent wydziału ETI na Politechnice Gdańskiej. W ciągu lat pracy dostarczał oprogramowanie stworzone w różnych technologiach, głównie webowych. Zwolennik zwinnego podejścia wytwarzania oprogramowania.