Dzisiejszym tematem jest dociekliwość programisty. Cecha, niezależna od technologii, nakierowująca między innymi programistów, na odpowiednie tory. Pomagająca poznać prawdziwe potrzeby klienta, zdobyć wiedzę, czy ograniczyć ilość pracy potrzebnej do osiągnięcia celu. Jest nie do przecenienia w codziennej pracy i poza nią. Dlaczego pytanie „Dlaczego?” jest aż tak istotne? Właśnie na to pytanie postaram się dziś odpowiedzieć. Zapraszam.

Bo klient nie wie czego chce

Ileż to razy, podczas pisania kodu, nachodziły mnie myśli o deficycie sensu. Brak logiki stawał się na tyle znaczący, że wchodziłem na wyższe poziomy absurdu. Na początku kariery wahałem się co powinienem zrobić w takiej sytuacji. Brnąć w to dalej, czy może wstać i powiedzieć ‚Dość, to jest głupie!’. Teraz już nie mam wątpliwości. Żadne z powyższych rozwiązań nie jest dobre. Ponieważ denerwowanie się nad czymś takim jest bezproduktywne i prowadzi do frustracji. Lepiej zatem wstać od komputera, wziąć herbatę, spojrzeć przez okno. Zastanowić się spokojnie nad celem klienta i zadać sobie pytanie „dlaczego jest mu to potrzebne?”. Jeżeli nie uda mi się odpowiedzieć to przynajmniej jestem pewien, że nie ma na co czekać. Idę wtedy do klienta i pytam „dlaczego tak”. Dzięki takiej rozmowie klient zmieni zdanie, bo zostanie nakierowany na lepsze rozwiązanie, albo co równie prawdopodobne, wytłumaczy mi dlaczego tak jest i wszystko nabierze sensu. W końcu to on jest specjalistą w swojej branży.

Bo można się wyrwać z impasu

Podczas rozmowy na temat projektu, jakiegoś problemu, czy biblioteki. Istnieje prawdopodobieństwo, że dojdzie do impasu. Ponieważ wiadomo, że każdy z nas ma inną wiedzę, doświadczenie i umiejętności. A my jako ludzie, często, nie znamy intencji drugiej strony. W takiej sytuacji dobrze zadane „dlaczego” pozwala na popchnięcie dyskusji do przodu. Takie pytanie działa pobudzająco na obie strony oraz pozwala na znaczne podniesienie poziomu dyskusji i zrozumienie idei drugiej osoby.

Bo można robić mniej

Jak to mniej? Nie raz spotkałem się z hura-optymizmem i mega zapaleniem do pisania kodu. Zwłaszcza, na początku kariery. Każdy pomysł jaki wpada do głowy wydaje się być najlepszym i najgenialniejszym. A skoro taki jest to szkoda czasu i należy go zrealizować czym prędzej. Podczas takiego procesu powstaje masa kodu, czasem nawet dobrej jakości, ale może być z nim jeden problem. Mianowicie często okazuje się, że jest absolutnie niepotrzebny. Zatem co jest najlepszą rzeczą jaką można zrobić, aby tego uniknąć? Należy przed napisaniem pierwszej linijki zadać sobie pytanie „dlaczego i czy ten kod trzeba pisać?”.

Bo pozwala na lepsze zrozumienie bibliotek

Cały czas używam jakąś bibliotekę, czy framework. Nic w tym dziwnego, bo przecież nie ma sensu wymyślać koła na nowo, a użycie czegoś istniejącego pozwala oszczędzić masę czasu. Ale z drugiej strony, przy pewnym skomplikowaniu projektu, pojawiają się dziwne, niewidoczne na pierwszy rzut oka, błędy. Bardzo często są one spowodowane niepoprawnym użyciem narzędzi. W takiej sytuacji, należy się zatrzymać, zastanowić. I zadać sobie pytanie „Dlaczego ta biblioteka została tak zaimplementowana?” oraz „Czy używamy jej zgodnie z przeznaczeniem?”. Bardzo często właśnie takie podejście pozwala na dogłębne poznanie obcego kawałka kodu i poprawę błędu w „poprawny” sposób.

No koniec

Zatem zadawajmy pytanie „dlaczego”. Otwiera ono masę drzwi, rozwiązuje problemy, edukuje. Dodatkowo pozwala na zwiększenie jakości kodu podczas review. Czy zgadzasz się ze mną ze należy być dociekliwym? Jeżeli tak do dlaczego? Czy udało Ci się oszczędzić masę czasu i pracy dzięki prostemu pytaniu, jeżeli tak może się pochwalisz w komentarzu? Zapraszam do dyskusji.



Podobało Ci się?

Zapisz się i nie przegap kolejnych postów.


6 Komentarzy

Radek Maziarka · 2018-01-08 o 21:24

Bardzo fajny post :) dodam go sobie do Evernota do listy materiałów o tym dlaczego zawsze warto dociekać głębszej prawdy niż zakładać z góry najprostsze rozwiązanie.

    Jerzy Wickowski · 2018-01-11 o 07:24

    @Radek. Toż to miód na me uszy.

Piotr · 2018-02-02 o 10:21

Ciekawy artykul , w zasadzie jego zastosowanie ma wiecej obszarow niz tylko programowanie … pozdrowienia.

    Jerzy Wickowski · 2018-02-02 o 11:33

    @Piotr: Dzięki

Dodaj komentarz

Twój adres email nie zostanie opublikowany.

This site uses Akismet to reduce spam. Learn how your comment data is processed.