Programowanie – sztuka czy rzemiosło?

25/05/2021

Programista według Wikipedii, to osoba pisząca programy komputerowe w języku programowania, inaczej developer, koder. Co naprawdę się kryje w zawodzie programisty? Czy programowanie ogranicza się tylko do pisania kodu? Czy programiści uważają siebie za twórców czy rzemieślników? Zapytałam jednego z naszych Lead Developerów – Roberta Kuśmierka o jego perspektywę.

Zawód programisty - sztuka czy rzemiosło?
Robert, jak zaczęła się Twoja przygoda z programowaniem? 

Pomysł, żeby wejść na tę drogę, w moim przypadku, zrodził się raczej w sercu niż w głowie. Nie była to racjonalna i przemyślana decyzja, poprzedzona głęboką analizą, budowaniem strategii i wytyczaniem kamieni milowych w równych odstępach między momentem uzyskania dyplomu ukończenia przedszkola a pierwszym odcinkiem emerytury. To było raczej coś w stylu – z zewnątrz wygląda intrygująco, nie mam pojęcia na czym to dokładnie polega, sprawdzę i przekonam się na własnej skórze. To co odkryłem w środku urzekło mnie, zafascynowało i przesądziło o tym, że “zostałem”.

Zawód programisty jest bardzo pojemny, dla niektórych ta rola ogranicza się do pisania kodu, inni upatrują w niej sztukę. Jak Ty postrzegasz swoją profesję? 

Patrząc na człowieka z łopatą w ręku, mogę myśleć o nim jak o kimś, kto kopie rowy albo kimś, kto buduje katedrę. Termin “programista” moim zdaniem reprezentuje bardziej tę pierwszą perspektywę. Jest ogromnym spłyceniem i uproszczeniem, dlatego za nim nie przepadam. Kiedy zdecydowałem się rozpocząć przygodę z oprogramowaniem, zacząłem stopniowo odkrywać jak szeroka i głęboka jest to dziedzina.

Tworzenie oprogramowania jest dla mnie przede wszystkim kunsztem. Tak, tak, jest takie słowo w języku polskim, choć jego angielski odpowiednik “craftsmanship”, mi osobiście bardziej odpowiada. Jest ciągłą nauką nowych technik i narzędzi, nieustannym ćwiczeniem i doskonaleniem. To droga bardzo wymagająca, ale dająca też niesamowicie dużo satysfakcji. 

Jest też Nauką przez duże “N”, ciągłym podważaniem status quo, eksperymentowaniem, stawianiem i weryfikowaniem hipotez, analizowaniem i wyciąganiem wniosków oraz nieustannym korygowaniem przyjętego wcześniej kursu.

Tam, gdzie dziedzina, dla której budujemy system informatyczny jest złożona, tworzenie oprogramowania staje się sztuką – umiejętnością nazywania, opisywania rzeczywistości w sposób możliwie prosty i czytelny. Wymaga zdolności rozwijania rozwiązania nie do stanu, w którym niczego nie można już do niego dodać, ale do takiego, w którym niczego nie można z niego odjąć.

No dobrze, a gdzie w tym wszystkim jest miejsce na inżynierię? Z badania Stack Overflow wynika, że 62% developerów to absolwenci kierunków technicznych (computer science, computer engineering, software engineering). 

Kiedy rozmiar budowanego systemu rośnie do dziesiątek, setek czy tysięcy elementów (komponentów, serwerów, itp.), tworzenie oprogramowania staje się inżynierią. Wymaga tworzenia rozwiązań w taki sposób, aby były odporne na awarie i potrafiły się same naprawiać. Wymaga umiejętności poruszania się w świecie, gdzie 2+2 nie zawsze równa się 4, gdzie 2+2 to 4 z bardzo dużym prawdopodobieństwem. Wymaga projektowania rozwiązań w taki sposób, aby pomimo swej złożoności dało się je w łatwy sposób używać i kontrolować. Wymaga projektowania defensywnego, czyli takiego, które uniemożliwia użycie produktu w niewłaściwy sposób – przypadkowo lub celowo.

Zapytałam w krótkiej sondzie naszych pracowników z czym kojarzy im się programowanie: ze sztuką, rzemiosłem czy inżynierią. Zdecydowanie wygrało podejście inżyniera. Czy taki wynik Cię zaskakuje?

Na pytanie, które zadałaś w ankiecie nie ma dobrych ani złych odpowiedzi. Moim zdaniem jej wynik wskazuje po prostu na indywidualne doświadczenia ludzi wynikające z charakteru przedsięwzięć, w których brali udział. Tak jak wspomniałem, tworzenie oprogramowania ma wiele oblicz – jest jednocześnie rzemiosłem, inżynierią i sztuką. To, który z tych aspektów staje się dominujący zależy od specyfiki budowanego rozwiązania oraz od tego, co nakręca ludzi. 

Warto tu zauważyć, że inżynieria jest tym aspektem tworzenia oprogramowania, na który zwykle kładzie się największy nacisk, bo ewentualne niedociągnięcia w tym obszarze są najbardziej dotkliwe dla użytkowników końcowych.

Ponadto, większość rozwijanych u nas rozwiązań, to duże i złożone systemy, co powoduje, że w naturalny sposób aspekt “inżynierii” staje się w ich tworzeniu dominujący.

Z drugiej strony, jeśli ktoś ma duszę inżyniera, to niezależnie od charakteru projektu, będzie się skupiał bardziej na wyzwaniach inżynieryjnych. W związku z tym, wynik ankiety może nam też powiedzieć co nieco, o ludziach, którzy u nas pracują – o tym, czego oczekują i co ich napędza.

Pracujesz w tym zawodzie od wielu lat, przeszedłeś różne role w zespole, miałeś do czynienia z wieloma metodykami, domenami, małymi i dużymi systemami. W ASC uczestniczyłeś zarówno w projektach budowy systemów core’owych jak i lekkich, web’owych aplikacji. Jak myślisz, co decyduje o sukcesie projektów, w których na co dzień pracujecie?

Tworzenie oprogramowania to gra zespołowa. To wymiana doświadczeń, łączenie perspektyw i zderzanie pomysłów. Tu nie ma miejsca dla samotnych wojowników ninja. Chyba każde większe rozwiązanie informatyczne zaczęło się od zapaleńca (czasem dwóch lub trzech), który zaczął coś dłubać w garażu, a następnie potrafił przekonać do swojego pomysłu i skupić wokół siebie innych ludzi, by wreszcie stać się dla nich liderem wytyczającym kierunek rozwoju. Tak powstał np. Linux – najpopularniejszy obecnie system operacyjny o otwartym kodzie, git – najpopularniejszy system kontroli wersji, github – największa platforma hostingowa dla projektów informatycznych, wyszukiwarka Google czy Facebook. 

Ta sama zasada sprawdza się także u nas w ASC. Najlepsze produkty są tworzone przez te zespoły, których członkowie potrafią ze sobą efektywnie współpracować. Gwiazdorska obsada nie gwarantuje sukcesu.

Wielu osobom programowanie kojarzy się wyłącznie z tworzeniem kodu. Czy tylko na tym polega praca Programisty

Budowanie systemów informatycznych to także niesamowity akt stwórczy. Nie chodzi tu o tworzenie samego oprogramowania, bo o tym wspomniałem już wcześniej, ale o to, w jaki sposób zmienia ono nasz świat. Software daje nam, ludziom, ogromną władzę nad otaczającą nas rzeczywistością. W jednym małym przycisku w aplikacji potrafimy zakląć moc wysyłania natychmiastowych wiadomości do ludzi mieszkających w dowolnym miejscu na świecie, zmiany temperatury w mieszkaniu, zamówienia pizzy z dostawą do domu czy wystrzelenia satelity. Oprogramowanie pozwala nam też okiełznać złożoną rzeczywistość, której nie sposób objąć “gołym rozumem” – sekwencjonować DNA, analizować nastroje społeczne na podstawie miliardów wpisów przepływających w sieciach społecznościowych czy przewidywać pogodę.

Brzmi jak duża odpowiedzialność…

Zdecydowanie. Tworzenie oprogramowania to ogromna odpowiedzialność. To od nas zależy, jakie informacje pojawią się na pierwszej stronie wyników wyszukiwania. To od nas zależy niezawodność systemów bankowych, samolotów bezzałogowych czy systemów podtrzymywania życia. To od nas zależy, jak zachowa się autonomiczny samochód, kiedy przed maskę wybiegnie mu dziecko goniące za piłką, podczas gdy sąsiednim pasem z naprzeciwka jedzie karetka, a z prawej, chodnikiem spaceruje trzymająca się za ręce para.

Hmm, nie współgra to ze stereotypowym obrazem programisty – w memach są obrazowani jako dziwacy zamknięci w piwnicy, ubrani w koszulę w kratkę…

Dla tych, którzy przegapili schyłek okresu rewolucji przemysłowej lub świadomie wybrali “niebieską pigułkę”, tworzenie oprogramowania pozostanie zwykłym handlem bądź produkcją (w zależności od tego jaką szkołę kończyli) – wynajmowaniem ludzi na godziny, ustawianiem ich przy taśmie, wsypywaniem wymagań z jednej strony i wlewaniem kawy z drugiej, a następnie oczekiwaniem aż z tyłu wypadnie kawałek kodu. Kiedy zdarzy mi się na kogoś takiego trafić, czasami pytam z uśmiechem: ja zmieniam świat za pomocą oprogramowania. Jaka jest Twoja super-moc?

Rozmawiała: Małgorzata Panasiuk-Kanabus, HR Team

Dołącz do naszego zespołu – zobacz oferty pracy dla programistów!

Zarejestruj się na webinar:

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych dla potrzeb procesu realizacji zgłoszenia (pokaż więcej) przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa), zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”). Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne, ale konieczne do obsługi zgłoszenia oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych w celach marketingowych (pokaż więcej)przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa)oraz otrzymywanie informacji handlowych drogą elektroniczną na adres e-mail i numer telefonu podany przeze mnie, zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”), oraz Ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną. Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

 

Watch for free

Enter your contact details to receive a link to the recording:

I voluntarily consent to the processing of my personal data for the purposes of the application process (show more) by Altkom Experts sp. z o.o. and Altkom Software & Consulting sp. z o.o. (51 Chłodna Street, 00-867 Warsaw), in accordance with Regulation 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of individuals with regard to the processing of personal data and on the free movement of such data ("RoDO"). I am aware that providing the above personal data is voluntary, but necessary to handle the request, and that I have the right to access the content of my data and the possibility of correcting it, and that my consent may be revoked at any time. Please contact the Altkom Data Protection Officer: iodo@altkom.pl.

I voluntarily consent to the processing of my personal data for marketing purposes (show more)by Altkom Experts sp. z o.o. and Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warsaw) and receiving commercial information by electronic means to the e-mail address and telephone number provided by me, in accordance with Regulation 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of individuals with regard to the processing of personal data and on the free movement of such data ("RODO"), and the Act of 18 July 2002 on the provision of electronic services. I am aware that providing the above personal data is voluntary and that I have the right to access and correct my data and that my consent may be revoked at any time. Please contact the Altkom Data Protection Officer: iodo@altkom.pl.

 

Zarejestruj się na webinar:

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych dla potrzeb procesu realizacji zgłoszenia (pokaż więcej) przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa), zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”). Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne, ale konieczne do obsługi zgłoszenia oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych w celach marketingowych (pokaż więcej)przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa)oraz otrzymywanie informacji handlowych drogą elektroniczną na adres e-mail i numer telefonu podany przeze mnie, zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”), oraz Ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną. Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

 

Zarejestruj się na webinar:

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych dla potrzeb procesu realizacji zgłoszenia (pokaż więcej) przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa), zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”). Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne, ale konieczne do obsługi zgłoszenia oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych w celach marketingowych (pokaż więcej)przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa)oraz otrzymywanie informacji handlowych drogą elektroniczną na adres e-mail i numer telefonu podany przeze mnie, zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”), oraz Ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną. Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

 

Zarejestruj się na webinar:

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych dla potrzeb procesu realizacji zgłoszenia (pokaż więcej) przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa), zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”). Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne, ale konieczne do obsługi zgłoszenia oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych w celach marketingowych (pokaż więcej)przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa)oraz otrzymywanie informacji handlowych drogą elektroniczną na adres e-mail i numer telefonu podany przeze mnie, zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”), oraz Ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną. Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl