Sztafeta IT#4 – Łukasz Szydło

lukasz

Od poprzedniego odcinka Sztafety IT minęło trochę czasu, ale w końcu udało nam się dokończyć rozmowę z naszym kolejnym gościem – Łukaszem Szydło! Będzie o tym, kim tak naprawdę są programiści i co odróżnia ich od robotników. Zachęcamy do lektury!


AM: Cześć Łukasz! Dziękujemy, że zgodziłeś się wziąć udział w naszej Sztafecie:). Na początek standardowe pytanie – czym zajmujesz się w świecie IT?

 

ŁS: Generalnie pomagam firmom lepiej tworzyć oprogramowanie. Odbywa się to w różnych formach. Prowadzę szkolenia oraz konsultacje, robię prezentacje, pomagam w wystartowaniu projektów itp. Temat, w którym się specjalizuję, to architektura oprogramowania, na którą składają się zarówno elementy miękkie (praca zespołowa, prowadzenie zespołów) jak i techniczne (Domain Driven Design, Continuous Delivery, Evolvable Architecture itp).

 

AM: Czy uważasz, że mając styczność zarówno z aspektami miękkimi i technicznymi, patrzysz inaczej na pracę programisty, niż gdybyś „siedział” tylko po jednej stronie?

 

ŁS: Zdecydowanie tak. Uważam, że w nasza profesja bardzo ucierpiała przez narzucenie nam metafory „linii produkcyjnej”. Metafory, w której każdy jest odpowiedzialny za swój mały fragment i nie musi się przejmować niczym innym. Firmy powoli zaczynają rozumieć, że tworzenie oprogramowania to proces twórczy, a programista to nie „śrubokręt”. My programiści, też musimy to zrozumieć.

 

AM: Jak w takim razie postrzegasz pracę programisty? Skoro nie jest on „śrubokrętem”, to jaką rolę pełni w swojej pracy?

 

ŁS: Żeby odpowiedzieć na to pytanie musimy najpierw zdefiniować to, na czym polega praca programisty. Większość osób rozumie ją jako „pisanie kodu” + „rozwiązywanie problemów” i oczywiście mają rację, te czynności składają się na naszą pracę, ale czy są najważniejsze? Czasami słyszę opinię, że programiści to stoczniowcy naszych czasów. Oni budowali statki my budujemy aplikacje. Ale czy na pewno? Zróbmy mały eksperyment. Proszę sobie wyobrazić taką sytuację. Skończyłaś właśnie pisać artykuł. Zajęło Ci to X godzin i pies go zjadł :) Jak długo zajmie Ci odtworzenie tego artykułu?

 

AM: Na pewno krócej niż stworzenie go za pierwszym razem…

 

ŁS:Właśnie, a kiedy stoczniowcowi ktoś zniszczy statek to on go musi odbudowywać tyle samo czasu – tak samo górnik ,kiedy ktoś mu ukradnie tonę węgla. To jest właśnie fundamentalna różnica pomiędzy czynnościami twórczymi i odtwórczymi. Tak jak w przypadku pisania artykułu musiałaś najpierw zebrać i przyswoić jakieś informacje i dopiero wtedy mogło rozpocząć się pisanie. Stąd ta różnica w czasie. Odtworzenie artykułu to proces odtwórczy nie wymagający wcześniejszej nauki. Tak samo jest w przypadku programowania. Żeby stworzyć wartościowy kawałek kodu najpierw musimy zrozumieć problem który chcemy rozwiązać, nauczyć się go. Dopiero wtedy jesteśmy w stanie coś napisać. Zaryzykuję stwierdzenie, że im lepiej dziennikarz rozumie temat, o którym pisze, tym lepszy artykuł. Podobnie jest w pracy programisty. Im lepiej rozumiemy dziedzinę problemu tym lepsze jesteśmy w stanie stworzyć rozwiązanie. I tu dochodzimy do momentu, gdzie możemy zacząć rozmawiać o roli programisty. Większość z nas uważa, że w naszej pracy najważniejsze są umiejętności techniczne, bo dzięki nim tworzymy dobry kod. Moim zdaniem umiejętności techniczne są bardzo ważne, ale najważniejsze są umiejętności pomagające nam zrozumieć dziedzinę i problemy, które mamy rozwiązać. Bez nich możemy znależć się w sytuacji kiedy stworzyliśmy przepiękne ferrari, ale co z tego, skoro biznes chciał coś, czym można orać pole.

 

AM: Zastanawiam się teraz, czy sami programiści są świadomi swojej twórczej roli w tym procesie… Szczególnie ci, którzy jeszcze studiują lub dopiero wkraczają na rynek pracy. Myślisz, że są oni przygotowani do takiego podejścia?

 

ŁS: Wydaje mi się, że większość programistów zapytana, czy ich praca jest twórcza odpowie: tak. Problem w tym, że większość będzie miała na myśli twórczość z perspektywy technicznej (frameworki, algorytmy itp.). Na pytanie „po czym poznajesz, że Twój program dobrze realizuje oczekiwania użytkowników?” dużo trudniej jest uzyskać od programisty dobrą odpowiedź. Stąd moja odpowiedź na Twoje pytanie brzmi: raczej nie. Z drugiej strony jeśli nawet ta świadomość by istniała to bez tego samego nastawiania po stronie biznesu nic się nie zmieni.

 

AM: Czy starasz się wobec tego w jakiś sposób dzielić swoim podejściem z innymi ludźmi z branży? Jak myślisz, w jaki sposób najlepiej zmienić to błędne nastawienie?

 

ŁS: Kładę duży nacisk podczas szkoleń, czy pracy z zespołami, na aspekty miękkie i twórcze. Staram się wtedy między innymi przekonywać programistów do hipotezy, że im lepiej rozumiesz dziedzinę tym lepszy napiszesz kod. Moje działania są oczywiście bardzo lokalne. Myślę, że największy wpływ na krzewienie tych idei mają relacje i opowieści pracowników firm, w których to podejście jest stosowane. Chociaż kto wie, może powinniśmy zrobić jakąś kampanię społeczną dla programistów :) Motto mogło by brzmieć: „Rozumiem co piszę” ;)

 

AM: Świetny pomysł :D Bardzo dziękuję za ciekawą i uświadamiającą rozmowę! Komu chciałbyś przekazać naszą wywiadową sztafetę?

 

ŁS: Ja również bardzo dziękuję. Przekazuję pałeczkę Mariuszowi Gilowi. Do zobaczenia na konferencjach!

 


Poprzednie odcinki Sztafety:

 

 

Sztafeta IT#4 – Łukasz Szydło