Programista podchodzi do rozwoju jak szachista – Andrzej Krzywda

W ramach wywiadów w książce „Strategie szachowych mistrzów w biznesie” rozmawiam z Andrzejem Krzywdą – założycielem i właścicielem firmy Arkency. Dzisiejszy fragment wywiadu sprawi, że dowiesz się:

  • Jak wygląda perspektywa gracza walczącego o rankingi
  • Czy można uciec od podejmowania decyzji
  • Jak wykorzystuje „poprawianie najsłabszej figury” w biznesie
  • O podobieństwie między programistami a szachistami
  • Czy automatyzacja pozbawia nas odpowiedzialności za procesy

Nasza rozmowa

Andrzeju, osiągnąłeś spektakularne wyniki w tym, co robisz, a równolegle do swojej kariery grasz aktyw­nie w szachy, regularnie inwestując w tę dyscyplinę czas. Wiem, że podchodzisz do tego bardzo ambit­nie – chcesz zdobyć tytuł mistrza międzynarodowego. Dlaczego i jak często grasz w turniejach?

Faktycznie prowadzę biznes i mija już czwarty rok od momentu, gdy wróciłem do aktywnych szachów. Za cza­sów juniorskich grałem dosyć dużo, aż dopadł mnie popularny syndrom: „Dobra, trzeba się zająć pracą i ro­dziną”. Po czasie uświadomiłem sobie jednak, że brakuje mi szachów, szczególnie że grałem rok w rok w drugiej lidze szachowej i dostrzegałem, że moje wyniki są coraz słabsze. Nie da się utrzymać na dobrym poziomie sza­chowym, jeśli się gra tylko raz w roku, stąd więc przy­szła naturalna chęć polepszenia się. Uznałem, że muszę podnieść sobie poprzeczkę – za cel, nie do końca realny, obrałem zdobycie tytułu mistrza międzynarodowego. Szukałem sposobów na wzmocnienie mojej kondycji szachowej, a jednocześnie robiłem wszystko, by zna­leźć na te szachy czas. I pojawiło się ciekawe sprzęże­nie – im bardziej zajmowałem się szachami, tym lepiej układałem swoje zadania w firmie i dzięki temu miałem więcej czasu na granie! Jeśli chodzi o samą aktywność szachową, to dosyć wcześnie zacząłem współpracę ze świetnym trenerem szachowym. Wspólnie z nim doszli­śmy do wniosku, że powinienem grać często. Jeśli ktoś chce się rozwijać na poważnie, musi jeździć na turnieje klasyczne. Oznacza to zwykle tydzień wyjęty z kalenda­rza. Staram się uczestniczyć w zawodach raz na miesiąc, raz na dwa miesiące minimum – według tych wyjazdów ustawiam mój harmonogram szachowo-biznesowy.

(…)

Czego jeszcze nauczyły Cię szachy?

Przede wszystkim mądrego zarządzania treningiem, czyli przygotowywania się do różnych rzeczy. I w bizne­sie, i w życiu bardzo często porywałem się na coś troszkę za wcześnie, bez właściwego przygotowania. Sama roz­grywka szachowa uczy zarządzania sobą w czasie. To coś, co wydaje mi się szczególnie istotne w mojej branży IT. My szachiści zawsze mamy do dyspozycji za mało czasu, a jednocześnie musimy podejmować szybkie de­cyzje. Musimy zrobić ruch, bo inaczej przegramy na czas. I to jest coś, czego uczę się też w biznesie – decyzję trzeba podjąć natychmiast. Czasami się pomylimy, ale ważne, żeby nie robić tak zwanych „podstawek”, które komplet­nie niszczą całą grę, i mieć świadomość, że nie uda nam się znaleźć idealnego ruchu w każdej sytuacji.

Opisujesz koncepcję good enough – robić wystarczają­co dobre ruchy albo przynajmniej takie, które nie doprowadzą do katastrofy w naszym biznesie.

Tak. Dochodzę do wniosku, że moje oddalanie się od per­fekcjonizmu ma na mnie pozytywny wpływ. Szachy nauczyły mnie zgody na to, że nie zawsze będziemy wykonywać idealne ruchy. Ale to nic – ważne, żebyśmy tę partię po prostu wygrali.

A jakie umiejętności szachowe najbardziej przydały Ci się w biznesie?

Gdybym miał wybrać jedną umiejętność, precyzyjną technikę, to byłaby to technika poprawiania najsłabszej figury. Ma ona odniesienie również do biznesu. Jeśli na przykład moja firma składa się z piętnastu osób – warto się przyjrzeć każdemu, by dostrzec, kto odstaje. Po co? By pracownika poprawić. Firma może być przez taką osobę spowalniana, warto więc zastanowić się, jak można taką „figurę” wzmocnić, wprowadzić do góry.

Podam drugi przykład. W firmie działamy na tak zwanych projektach klienckich i najczęściej odbywa się to długofalowo. Mamy bardzo silne relacje z klientami, trwające często po kilka lat. W naszej pracy musimy obserwować wszystkich i czasem skupić się na projekcie klienckim, który jest w jakimś sensie słabszy, bo – dajmy na to – finansowo nie dostarcza nam aż takiej wartości albo powoduje, że morale w firmie są nieco słabsze niż na przykład przy innych projektach. Wynajdujemy więc najsłabszy w danym momencie projekt i na nim skupiamy uwagę. To jest przyzwyczajenie, które na pewno przeniosłem do biznesu z szachów.

Ta metoda była jedną z podstawowych technik szachowych stosowanych przeze mnie w nauce dzieci – poprawiać najsłabiej położoną figurę. To się rzeczywiście świetnie sprawdza w biznesie, bo niezależnie od etapu rozwoju firmy zawsze można coś usprawnić. Dzięki temu zwiększa się czujność i potencjał naszego biznesu. Idźmy teraz w drugą stronę – czy w grze w szachy są elementy, które Ci przeszkadzają w podejmowaniu decyzji zawodowych? Jeśli tak, to jakie?

Myślę, że jest jeden taki główny element – rywalizacja. Szachy uczą nas tego, że abym ja wygrał, przeciwnik musi przegrać. W biznesie czasami ta zero-jedynkowa chęć wygrywania nie jest przydatna. Dużo częściej pojawiają się sytuacje, w których możliwe jest podejście win-win i wcale nie trzeba nikogo ogrywać. Zarówno ja, jak i ktoś inny możemy wygrywać wspólnie – możemy być stałymi partnerami biznesowymi albo działać razem przy jakimś projekcie. Oczywiście w szachach też jest mnóstwo potencjalnej przestrzeni na współpracę, ale nie podczas samego pojedynku. Mogę współpracować z trenerem, z kolegami z drużyny grać sparingi, wspólnie przygotowywać debiuty, pomagać sobie w przygotowaniach do partii. Ale jeśli siedzimy już naprzeciwko kogoś podczas samej rozgrywki – przestrzeń na współpracę zanika. Jestem tylko ja, mój przeciwnik i szachownica pomiędzy nami.

(…)

Przechodząc do kwestii związanej już typowo z Twoją pracą, wytłumacz, proszę, czym jest społeczność Ruby, której jesteś liderem? O co w tym chodzi?

Branża IT, może bardziej konkretnie – branża oprogra­mowania, to kwestia programowania systemów na różne sposoby. Za systemami bankowymi, sklepami interneto­wymi, platformami biletowymi etc. stoi jakiś system, więc oprogramowanie jest dużo ważniejsze w tym mo­mencie niż kiedykolwiek wcześniej. Wsiadasz do auta i masz wszystko zaprogramowane, wyciągasz telefon, który jest po prostu systemem operacyjnym z wieloma programami. Można do tego używać rozmaitych technologii i obrazowo porównam to do stolarza, który do­biera młotki i rozmaite rodzaje drewna do określonych rzeczy – tak samo programiści decydują się na różne języki programowania. Ruby jest językiem szczególnie często używanym do aplikacji webowych, czyli dotyczy wszystkiego, co robimy przez strony internetowe, gdzie istnieją jakieś bazy danych. Ruby najczęściej stosuje się do nowych aplikacji webowych i w tej niszy właśnie działam z ramienia firmy Arkency. Nie jest to język dominujący, plasuje się gdzieś pomiędzy piątym a dziesią­tym miejscem na świecie, jeśli chodzi o popularność języków programowania, przed nim są np. Python, Java czy JavaScript. W pracy zajmujemy się głównie systema­mi bardzo złożonymi, w których obraca się milionami euro, więc nie można sobie pozwolić na jakiekolwiek błędy, bo ktoś może stracić multum pieniędzy. Pracujemy nad dosyć krytycznymi aplikacjami biznesowymi, w któ­rych są bardzo poważne wyliczenia finansowe, i w tej niszy rywalizujemy z innymi, chcemy ją zdominować. Myślę, że nasza firma jest uważana za jedną z najlep­szych na świecie.

Programista podchodzi do rozwoju jak szachista. Ciągle musimy się rozwijać, stale poznajemy nowe technologie, nieustannie pojawiają się nowe urządzenia, z którymi trzeba się integrować, czy inne systemy, z którymi należy się integrować. Ważne, by przypatrywać się swojemu flow pracy – podejmować decyzje, co jest do zoptymalizowania, co robimy zbyt wolno albo za mało dokładnie, co możemy wzmocnić. Moją osobistą misją, jeśli chodzi o świat programowania, jest doprowadzenie do sytuacji, w której programy byłyby pisane lepiej, by kod źródłowy był porządniejszy, byśmy nie musieli się obawiać, że kiedyś przez błędy programistyczne będą na przykład ginęli ludzie.

Co masz na myśli, mówiąc, że będą ginęli ludzie? Rozumiem to tak, że może dojść do sytuacji, gdy na przykład źle zaprogramowany samochód autonomiczny spowoduje wypadek. W jaki sposób można wyeliminować albo zmniejszyć liczbę takich zagrożeń? Czy to jest tylko kwestia kodu? Załóżmy, że będziemy mieć do czynienia z dwoma samochodami autonomicznymi – Teslą Altruistą i Teslą Egoistą. Oba samochody spotkają się na skrzyżowaniu i wiadomo już, że dojdzie do wypadku. Ten pierwszy samochód ma zdecydować, kogo uratuje: pasażera czy ludzi, którzy są na skrzyżowaniu. Zahaczamy tu już o dylematy etyczne. Jakie jest Twoje spojrzenie na tę kwestię?

Te dylematy etyczne są oczywiście straszliwie trudne do rozważania i nawet nie jestem pewien, czy ja się w te dylematy bardzo angażuję. Chciałbym, żebyśmy mogli dojść do sytuacji, gdy jesteśmy w stu procentach pewni, że program wykona nasze polecenia. Taki samochód jest po prostu programem. Mam obawy, że przy niektórych systemach jakość samego programu, ale też procesu tworzenia oprogramowania może doprowadzić do sytuacji, że my nawet nie będziemy mieli dylematu etycznego, kto ma przeżyć, bo ten samochód w jakiejś sytuacji skręci i uderzy w słup – tak po prostu, z powodu błędów wewnętrznych. To, co jest dla mnie intrygujące, to fakt, że społeczeństwo nie docenia istoty sprawy tego, co się teraz dzieje, jeśli chodzi o informatyzację. Jestem wielkim fanem automatyzacji, informatyzacji i tego, że kiedyś będziemy wyręczani przez maszyny, ale też marzy mi się, by było to robione w sposób odpowiedzialny, żebyśmy tworzyli oprogramowanie tak, by ryzyko błędów było jak najniższe.

(…)

Andrzeju, gdybyś miał powiedzieć z perspektywy czasu i doświadczenia – czego programista może się nauczyć dzięki grze w szachy?

W miarę zdobywania kolejnych etapów szachowego roz­woju można się nauczyć podziału na myślenie strategicz­ne i taktyczne. My, jako szachiści, od razu wiemy, o co chodzi. W programowaniu istnieje podobny element co w szachach – taktyka. Dla szachistów bardzo ważna jest analiza własnych partii. Mam wrażenie, że branża komputerowa, programistyczna, nie jest jeszcze przyzwyczajona do takich analiz, jakich dokonują szachiści. W szachach porównujemy się z innymi, korzystając z rankingu Elo. W programowaniu brakuje tej informacji zwrotnej. System działa, więc chyba jest OK. Mamy jeszcze bardzo nierozwinięte systemy przeglądania kodu źródłowego, który piszemy. Programiści mogą się więc nauczyć od szachistów bardzo wielu dojrzałych technik. Dla wielu może to brzmieć absurdalnie, ale na rynku wciąż jest więcej książek szachowych niż informatycznych. Możemy sięgnąć po książkę z 1950 r., napisaną przez Botwinika, i ona wciąż ma w 99% sens. Tymczasem dzisiejsze książki informatyczne dezaktualizują się po pięciu latach. Mówię to z perspektywy kogoś, kto te książki wydaje, więc wiem, jak to działa.

Co jeszcze przychodzi Ci do głowy? Co programiści mogą zaczerpnąć od szachistów?

Nawyk nauki od innych. Wśród szachistów popularne jest analizowanie – przeglądam partie Kasparowa, bo to mój idol; obserwuję partie Aroniana, bo uważam, że gra świetnie; zachwycam się partiami Jana-Krzysztofa Dudy, bo ma dosyć agresywne zagrania; analizuję partie Radka Wojtaszka, bo jest świetnie przygotowany debiutowo i ma dobre końcówki. W programowaniu jeszcze nie dojrzeliśmy do tego, by analizować pracę innych. Ja wielokrotnie zachęcam programistów, którzy trochę grają, by spróbowali więcej, by poszerzali swoje horyzonty. Szachy to dobry sport dla programistów – racjonalny, logiczno-matematyczny – wszystko da się w nim przeanalizować, wytłumaczyć, a programiści tego łakną, bo szukają prawdy logicznej, matematycznej, a te elementy odnajdą w szachach. Pod tym względem szachy są przepiękne!

Andrzej Krzywda

Założyciel firmy Arkency – zdalnej, rozproszonej, samozarządzającej się grupy programistów, realizujących duże projekty informatyczne dla klientów z USA oraz UE; propagator pracy zdalnej oraz asynchronicznej – indywidualnego podejścia do wyboru czasu oraz miejsca pracy; absolwent oraz wykładowca Wydziału Matematyki i Informatyki Uniwersytetu Wrocławskiego. W branży IT działa od 20 lat, współtworzy projekty oraz edukuje innych programistów. Za cel stawia sobie zmniejszenie liczby błędów i nieintuicyjnych zachowań w systemach informatycznych. Od kilku lat realizuje misję szachowego awansu – z poziomu gracza z rankingiem 2100 do poziomu mistrza międzynarodowego (2400). Dotychczas uzyskał jedną normę mistrza międzynarodowego oraz ranking 2296. Prywatnie mąż Gosi, ojciec Antosia i Franka; mieszkaniec uroczej opolskiej miejscowości Lubsza, z której zdalnie zarządza firmą.

Podsumowanie

Uważam, że wnioski, które wysunęły się na pierwszy plan w mojej rozmowie z Andrzejem, to:

  1. Zaangażowanie w królewską grę może być źródłem sprzężenia zwrotnego w innych obszarach życia. Dlatego systematyczna gra w szachy może być nie tylko pasją, ale również strategicznym elementem rozwoju osobistego i zawodowego.
  2. Szachy mogą nauczyć skutecznego zarządzania czasem, podejmowania szybkich decyzji oraz wdrażania w życie zasady „good enough”. Wszystkie te elementy są przydatne także w biznesie, ponieważ pomagają działać efektywnie.
  3. Taktyki stosowane w szachach znajdują zastosowanie również w zarządzaniu zespołem – m.in. poprawianie najsłabszych figur na szachownicy. Analizowanie każdego członka zespołu w celu jego wzmocnienia może przyczynić się do osiągania lepszych wyników przez cały zespół.
  4. Wyzwaniem, które jest związane z szachami, może być element rywalizacji. W sferze biznesowej często mamy możliwość współpracy w biznesie, która może prowadzić do wspólnego sukcesu, podczas gdy szachy są grą o sumie zerowej.
  5. W kontekście branży IT szachy mogą być źródłem inspiracji szczególnie w zakresie analizy strategicznej i taktycznej. Nawyk analizowania cudzych partii warto przenieść np. na grunt analizy cudzego kodu i zastanawiania się, w jaki sposób można by go ulepszyć.
  6. Znaczenie odpowiedzialnego tworzenia oprogramowania jest coraz większe – szczególnie przy obecnym tempie rozwoju technologicznego. Jest to kluczowe przede wszystkim w kontekście bezpieczeństwa – zwłaszcza w przypadku zastosowań krytycznych, takich jak systemy bankowe czy aplikacje biznesowe.

Chcesz dowiedzieć się więcej o tworzeniu strategii z perspektywy ekspertów? Poznaj strategie szachowych mistrzów i wdrażaj je w swoim biznesie. Zrobisz to razem z moją bestsellerową książką, która jest obecnie dostępna w zaktualizowanej wersji II wydania. Więcej dowiesz się pod tym linkiem lub klikając w przycisk poniżej.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Mam dla Ciebie PREZENT!
Wykonaj Pierwszy Ruch.

Strategia w biznesie!
Zapisz się do strategicznego newslettera!

Moje publikacje w Twojej skrzynce plus darmowy fragment
mojej książki dla czytelników newslettera. Zapisz się już
dziś i wykonaj swój Pierwszy Ruch!