O komunikacji w zespołach, problemach z przestarzałym kodem i wyzwaniach programisty opowiada w wywiadzie dla „Wroclife” ekspert języka Ruby, Hiroshi Shibata, CPO (Chief Productivity Officer) @ GMO Pepabo, Inc.

Hiroshi Shibata, an expert on Ruby language

Fot. Twitter.

Hiroshi Shibata na co dzień jest członkiem głównego zespołu języka programowania Ruby, administratorem strony ruby-lang.org i obsługuje opracowywanie systemu języka Ruby. Jest również głównym inżynierem w GMO Pepabo, Inc. Najbardziej interesuje go wydajność. Wierzy, że rozrywka ma wartość biznesową. Zajmuje się rozwiązywaniem problemów związanych z przestarzałym kodem (ang. legacy code), powoli przeprowadzanymi testami i konfliktami komunikacyjnymi w zespołach. Był prelegentem Code Europe, jednej z najwiekszych konferencji programistycznych w Polsce, która odbyła się we wrocławskiej Hali Stulecia 23 maja 2017.

Małgorzata Burnecka: Hiroshi, zwróciłam uwagę na dwa zagadnienia, które są w kręgu Twoich zainteresowań: przestarzały kod (ang. legacy code) i konflikty komunikacyjne między członkami zespołu. Zaczynając od tego drugiego – jesteś liderem i współliderem wielu dużych projektów. Jakie są trzy główne problemy komunikacyjne, które obserwujesz?

Hiroshi Shibata: Po pierwsze, konflikty między oddziałami, w tym back office. Po drugie, różnice w opiniach i priorytetach product ownerów i kierownictwa. I po trzecie, niepotrzebne spory o styl kodowania, środowisko programowania, takie jak edytor, wybór języka, itd.

Czy istnieją problemy komunikacyjne, które, Twoim zdaniem, dotykają tylko zespoły IT?

Tak. Informatyk musi stworzyć oprogramowanie, które wejdzie na rynek. Ale oprogramowanie to nie przedmiot materialny. Musimy ciężko pracować nad tym, aby to zrozumieć.

Code Europe

Fot. Michał Sawicz

Co dziś znaczy przestarzały kod? Liczysz to godzinach, miesiącach czy latach? Jak szybko się to zmienia?

Michael Feathers powiedział „przestarzały kod to, krótko mówiąc, kod bez testów” w „Working Effectively with Legacy Code”. Uważam tę definicję częściowo za słuszną. Myślę, że kod napisany wczoraj jest już kodem przestarzałym. W związku z tym, że trendy w przemyśle oprogramowania wiążą się z wymaganiami rynkowymi, środowiska informatyczne, w tym cloud mobile/frontend, zmieniają się bardzo szybko. Powinniśmy być na bieżąco ze zmianami, aby zadowolić klienta.

Jakie są źródła głównych problemów związanych z przestarzałym kodem? Czy są one związane raczej z przestarzałymi rozwiązaniami programowania, które przez długi czas nie były obsługiwane? Czy to ma raczej związek ze sprzętem, na którym pracują?

Ich źródłem jest brak strategii zarządzania IT. Musimy chronić naszego klienta przed zdarzeniami zagrażającymi bezpieczeństwu. Przestarzały kod stwarza problemy związane z bezpieczeństwem, ponieważ działał on na przestarzałych systemach operacyjnych, języku i oprogramowaniu middleware.

Jakie jest dzisiaj główne zadanie programisty: optymalizacja istniejących rozwiązań, aby działały szybciej, bardziej wydajnie, itd.; czy szukanie innowacji i zgłębianie nowych zagadnień?

Głównym zadaniem programisty jest czytanie kodu (ang. Code Reading). Czytanie kodu jest dzisiaj niezbędne do optymalizacji, indywidualizacji i wdrożeń. Mamy dużo kodów z GitHub na licencji OSS. A najwięksi gracze, tacy jak Microsoft czy Google, dostarczają swój kod do GitHub. Po pierwsze, wiedzę powinniśmy czerpać od nich.

Code Europe Wrocław

Code Europe odbył się w maju w Hali Stulecia i był jedną z największych konferencji programistycznych w Polsce. Fot. Michał Sawicz

Code Europe Wrocław

Fot. Michał Sawicz