Gdzie szukać wiedzy, gdy StackOverflow milczy
Nie od dziś wiadomo, że StackOverflow to najlepszy przyjaciel programisty.
Społeczność programistów chętnie sięga do tego forum, by znaleźć rozwiązanie nurtującego problemu, lub by udzielić innym swojej pomocy. Szukając wiedzy i rozwiązania problemu, zazwyczaj swoje pierwsze kroki kierujemy nie do dokumentacji, lecz do wujka G., licząc na to, że wcześniej ktoś oprócz nas już zmagał się z takim problemem.
W życiu każdego programisty prędzej czy później przychodzi jednak taki moment, że w poszukiwaniu rozwiązania naszego problemu udajemy się do wyszukiwarki, opisując nasz problem, lecz żaden z wyników nie pomaga nam znaleźć rozwiązania. StackOverflow milczy…
Przestarzała technologia
Sytuacje takie zdarzają się bardzo często, gdy korzystamy z niszowego oprogramowania. Wiele technologii, które nie są bardzo popularne i nie opierają się na topowych językach programowania, takich jak Java, C#, Python, Ruby etc., mają swoje zamknięte ekosystemy. Rozwiązań problemów z nimi związanych próżno szukać w Google.
Podobna sytuacja dotyczy przestarzałych technologii. Mimo szybkiego rozwoju informatyki i powstawania nowych narzędzi, języków i frameworków ułatwiających programowanie, wiele systemów korzysta z technologii, które nie są dzisiaj już tak bardzo popularne. Gdy miały swoje lata świetności, nikt nie słyszał jeszcze o StackOverflow, a programiści, którzy z nich korzystali, rozwiązań swoich problemów musieli szukać w inny sposób.
Bardzo często zdarza się też, że pomimo iż programujemy w topowych technologiach, napotykając przeszkodę, nie możemy znaleźć pomocy w Internecie, ponieważ nasz problem jest bardzo nietypowy i nikt dotąd się z nim nie mierzył.
Jak poradzić sobie w takich sytuacjach? Gdzie szukać pomocy? Jeśli którakolwiek z opisanych sytuacji spotkała też Ciebie – zachęcam Cię do przeczytania tego artykułu.
Szukanie wiedzy u producenta/dostawcy
Gdy sieć nie zna odpowiedzi na nasze pytanie, a najbardziej popularne fora milczą, dobrą praktyką jest zaprzyjaźnić się z manualem i helpem od dostawcy naszej technologii. Takie podejście jest szczególnie przydatne, gdy korzystamy z technologii niszowych. Po stronie dostawcy oprogramowania, zwłaszcza tego służącego do tworzenia softu, stoją też inni programiści, a sam help potrafi być bardzo rozbudowany i odpowie nam na większość naszych pytań.
Niektórzy dostawcy do swojego oprogramowania dostarczają też manuale/treningi i przykłady rozwiązań. Często korzystamy z nich tylko na początku naszej pracy z nowym narzędziem. Sam jednak zauważyłem, że czasem warto do nich wrócić – wiele z tych gotowych rozwiązań poruszało tematykę problemów, które napotykałem w pracy jako programista.
Bardzo często zdarza się też, że gdy firma, w której pracujemy, kupuje jakieś oprogramowanie, to w pakiecie z nim otrzymuje również wsparcie techniczne w rozwiązywaniu problemów. Może nie jest to jakieś przełomowe odkrycie, ale kontakt z takim suportem pomaga rozwiązać wiele problemów. Kilka razy zdarzyło nam się zespołowo wyrywać sobie włosy z głowy, poszukując rozwiązania jakiegoś problemu, co prowadziło do tworzenia wielu linii kodu i pisania własnych bibliotek. Po kontakcie ze wsparciem ze strony dostawcy okazywało się, że ten problem jest im znany i istnieją już dobre praktyki dotyczące tego, jak sobie z nim poradzić.
Kolejną rzeczą, którą warto się zainteresować w przypadku korzystania z niszowej technologii, są dedykowane fora. Często wspierane są one przez samego dostawcę oprogramowania i częściej niż na StackOverflow znajdziemy odpowiedź na nurtujące nas problemy.
Warto też wspomnieć o innym – bardzo ciekawym sposobie radzenia sobie z podobnymi problemami. Często, gdy korzystamy z gotowych bibliotek lub oprogramowania open-source, napotykając przeszkodę, szukamy pomocy w sieci. Dobrą praktyką jest otwarcie źródła i analiza kodu oprogramowania, z którego korzystamy. W ten sposób możemy zrozumieć działanie i intencję autora, zapoznać się z komentarzami będącymi dokumentacją kodu i przy okazji znaleźć rozwiązanie naszego problemu.
Szukanie i uzupełnianie wiedzy na zewnątrz
Co jednak zrobić, gdy wszystkie metody poszukiwania odpowiedzi zawodzą? Warto w takiej sytuacji założyć własny wątek na forum. Podejmując taki krok, przyczyniamy się do rozwoju wiedzy udostępnionej w sieci. Z pewnością znajdzie się niejedna osoba, która spotkała się już takim problemem i wskaże nam właściwą ścieżkę, lub razem z nami spróbuje go rozwiązać.
Nie należy jednak zapominać o jednej ważnej kwestii – jeśli uda nam się rozwiązać problem samodzielnie – warto podzielić się z innymi sposobem, w jaki do tego doszliśmy.
Szukanie wiedzy wewnątrz organizacji
Warto również szukać odpowiedzi na nurtujące nas pytania wewnątrz swojej organizacji. Znalezienie eksperta w danej dziedzinie i posiłkowanie się wiedzą kolegów to najlepsze sposoby na szybkie zdobycie wiedzy. Pracując w dużej organizacji, w której programistów danej technologii jest więcej, dobrze jest zawiązać gildię developerów i regularnie spotykać się jako Community of Practice. W trakcie takich spotkań warto dzielić się problemami i sposobami ich rozwiązywania. To znacząco pomoże poprawić i wyrównać stan wiedzy wśród współpracowników.
Z własnego doświadczenia wiem też, że najlepszym sposobem na znajdowanie rozwiązań i poszerzanie horyzontów jest code review. Dzięki przeglądaniu kodów innych deweloperów możemy poznać sposób ich myślenia i często nieszablonowe rozwiązywanie wszelkich problemów.
Podsumowanie
Mam nadzieję, że po przeczytaniu tego artykułu rozwiązywanie problemów będzie dla Ciebie chociaż trochę łatwiejsze. StackOverflow jest bardzo pożytecznym narzędziem, ale jak widać, można poradzić sobie również wtedy, gdy zamilknie, nie odpowiadając na nasze zapytanie. Systematyzowanie wiedzy oraz dzielenie się nią jest kluczem do sukcesu.