IT2.0 #9 Mity i stereotypy w świecie twórców oprogramowania (Część 2) – czyli w ile minut 6 piekarzy upiecze chleb?

While knowledge is limited, your imagination is endless.

IT2.0 #9 Mity i stereotypy w świecie twórców oprogramowania (Część 2) – czyli w ile minut 6 piekarzy upiecze chleb?

Mity i stereotypy - programowanie

Dzisiaj dokończę temat rozpoczęty w ostatniej audycji i powiem o 7 kolejnych mitach i stereotypach dotyczących zawodu Programistki/Programisty/Twórcy oprogramowania.
Powiem m.in. o tym czy:

  • 6 piekarzy zrobi chleb w 10 minut;
  • Programiści/Programistki to samotnicy pracujący po nocach, którzy nie muszą się znać na testowaniu;
  • Znając świetnie język programowania zrobię świetny projekt;
  • Oraz czy nie jest dla mnie za późno z nauką programowania, na które będę skazany do końca życia;

Programista pracuje sam

Czasami jesteśmy jedyną osobą, która tworzy aplikację od początku do końca. Wiele takich projektów realizowałem i ma to zarówno swoje wady jak i zalety. Sytuacje takie nie są tym czego powinniśmy oczekiwać jako coś co domyślnie nas czeka. Zazwyczaj duże projekty realizowane są w zespołach. Mniejszych lub większych. Zlokalizowanych w jednym fizycznym miejscu np. biurze lub w wielu lokalizacjach gdzie część zespołu może pracować z biura a część pracowników pracuje zdalnie np. z własnego domowego zacisza. Najczęściej przy tworzeniu oprogramowania nie pracujemy sami i dodatkowo oprócz swoich współpracowników pracować musimy z wszystkimi tymi dla których produkt robimy. Zarówno użytkownikami jak i klientami. 

W tym zawodzie raczej nie będziesz pracował sam, choć często nad rozwiązywaniem przydzielonego problemu będziesz musiał spędzić sporo godzin sam na sam ze swoim zadaniem.

Programista nie musi się znać na testowaniu

Opisując rolę testera w zespole napisałem, że:

Pierwszym testerem oprogramowania jest zawsze programista, który tworzy kod. Czasami jest też ostatnim, jeżeli zespół nie posiada dedykowanej osoby w tej roli.

Każdy programista powinien przynajmniej w jakimś stopniu rozumieć i znać zasady testowania aplikacji.

Wspaniale jest gdy nasz kod działa bezbłędnie. Niemniej jednak bardzo często bez dogłębnego testowania pojawia się bardzo dużo zaskakujących sytuacji, które powodują błędne działanie systemu. Musicie uwierzyć mi na słowo, że:

znalezienie błędu samemu jest dużo mniej kosztowne niż gdy znajdą go inni.

Programiści pracują po nocach

Kolejny stereotyp, który w głowie rysuje nam człowieka spędzającego setki godzin przed komputerem i piszącego nudny kod. Możemy sobie dorzucić też wizję człowieka pracującego w strasznych warunkach np. w piwnicy, ze stertą niezdrowego jedzenia na biurku obok klawiatury. I pewnie jak zaczniemy szukać to gdzieś znajdziemy taką osobę i krzykniemy w głębi duszy wiedziałem. Niemniej jednak warunki pracy większości pracy znacznie odbiegają od takiego stereotypu.

Warunki pracy w większości firm IT są bardzo dobre lub wręcz celujące.

Któż nie słyszał o mitycznych kanapach, grach wideo czy miejscach do krótkich drzemek w pracy. To nie jest wcale mit i obecni pracodawcy z korzyścią dla przyszłych pracowników walczą o to aby pracownicy dobrze czuli się w siedzibie firmy. W grę wchodzą nie tylko benefity fizyczne w pracy lecz także dodatkowe możliwości związane z zarządzaniem godzinami pracy. Praca z domu, lub w wybranych godzinach czasu już nie jest czymś ekstrawaganckim w tym zawodzie. Co czyni ten zawód bardzo atrakcyjnym zarówno dla osób ceniących swoją niezależność jak i tych, które chcą w pewien sposób dostosować rytm pracy do własnej sytuacji rodzinnej. 

Im więcej programistów, tym szybciej zrobimy projekt

Przypomina mi się teraz taka zabawna zagadka:

Jeżeli piekarz robi jeden chleb w godzinę to w ile czasu sześciu piekarzy zrobi chleb?

Chciałbym odpowiedzieć że w 10 minut. Ale dobrze wiemy wszyscy, że to nie jest prawda. Nie każde zadanie da się w sposób prosty podzielić lub zrównoleglić. Podobnie jest z wytwarzaniem oprogramowania. Jesteśmy w stanie pewne etapy podzielić pomiędzy grupę osób, lecz grupa ta nie jest grupą nieskończoną. Skupiając się na etapie implementacji (kodowania, programowania) sytuacja będzie trochę analogiczna do naszych piekarzy. Nic nie da nam zwiększenie ilości programistów, gdy praca nad jednym repozytorium kodu będzie niemożliwa oraz komunikacja między programistami będzie zajmowała większość czasu pracy.

Niezależnie od przyjętej metodyki, gdy patrzę przez pryzmat doświadczenia, efektywne zespoły powinny liczyć od 3 do 6 programistów.

W przypadku większych projektów możemy tworzyć więcej małych grup realizujących odrębnę elementy całego systemu.

Wystarczy mi znajomość języka programowania aby świetnie programować

Osobom zajmującym się tworzeniem oprogramowania nie wystarczy tylko znajomość języka programowania aby tworzyć wspaniałe aplikacje. Język programowania jest narzędziem, które pomaga nam dojść do celu. Nawet świetna znajomość języka programowania nie pomoże nam jednak rozwiązać problemu.

Mogę nawet śmiało powiedzieć, że na samo programowanie koncepcji składa się z dwóch etapów.  Pierwszego będącego koncepcją naszego rozwiązania. Tutaj znajomość języka programowania nie jest zupełnie potrzebna. Wystarczy kartka papieru i ołówek. Możemy zrobić opis obrazkowy lub słowny tego jak nasze rozwiązanie problemu będzie funkcjonować tak aby w drugim etapie zająć się wyłącznie kodowaniem danej koncepcji z wykorzystaniem języka programowania. Może zaskoczy Cię to, że najważniejszy jest etap pierwszy.

Zrobienie świetnego kodu wymaga doskonałej koncepcji.

Dlatego warto spędzić nawet czasami 80% czasu na koncepcję po to aby nasze rozwiązanie zakodować  bezproblemowo w 20% czasu. 

Częstym błędem na początku naszej nauki programowania jest to, że zabieramy się za kodowanie bez jakiejkolwiek koncepcji. Co prawda nie jest to niemożliwe aby stworzyć rozwiązanie w ten sposób. Niestety zwłaszcza gdy jesteśmy mniej doświadczeni sprawia to, że spędzamy znacznie więcej czasu nad budowaniem poprawnego i stabilnego rozwiązania. W tym przypadku zasada „pomyśl zanim zrobisz” sprawdza się wręcz idealnie.

Trzeba zacząć uczyć się programować bardzo wcześnie

Znamy zapewne kilka historii o genialnych młodych twórcach oprogramowania, którzy zaczęli tworzyć aplikacje w wielki kilkunastu lat a ich aplikacje słynne były gdy ledwo ukończyli osiemnaście lat. Promują one często model, w którym jedynym sposobem aby zostać świetnym twórcą oprogramowania jest rozpoczęcie nauki programowania w bardzo młodym wieku. Fantastyczne historie kreowane na potrzeby magazynów, które muszą czymś zaciekawić czytelników. Może i takie historie czasami są prawdziwe.

Tworzenie oprogramowania to nie sport wyczynowy. I możemy rozpocząć trening programowania nawet w wieku znacznie wykraczającym poza ramy średniego wieku końca kariery sportowca wyczynowego.

Nigdy nie jest za późno aby się rozwijać. Tworzenie oprogramowania to praca umysłowa. Zatem śmiało można powiedzieć, że na naukę programowania nigdy nie jest za późno. Wiele osób obecnie pracujących w tym zawodzie zaczęło w innych profesjach. Często spędzili kilka, kilkanaście lub kilkadziesiąt lat robiąc co innego, po czym postanowili przebranżowić się na twórcę oprogramowania. Historie wielu osób, które poznałem i znam pokazały mi, że nie ważne jest co robiliśmy w przeszłości, lecz ważne jest to czego naprawdę chcemy i co zrobimy aby stać się świetnym twórcą oprogramowania.

Tworzenie oprogramowania to głównie programowanie do końca życia

Myśląc o tworzeniu oprogramowania w głowach wielu ludzi pojawia się wizja programowania. Co za tym idzie wiele osób myśląc o tej profesji zastanawia się czy jak zdecydują się na tą drogę to będą „skazani” na programowanie do końca życia. Jeżeli tylko chcemy programować to faktycznie możemy zdecydować się na tą ścieżkę skupić się na doskonaleniu swoich umiejętności w tym obszarze.

Niemniej jednak samo wytwarzanie oprogramowania to nie tylko programowanie / kodowanie. Jest tu dziesiątki dodatkowych możliwości rozwoju zawodowego.

Od stanowisk menadżerskich po stanowiska związane z architekturą oprogramowania czy też strategią rozwoju danej aplikacji. To od nas zależy w jakim kierunku chcemy podążać.

Z autopsji znam wielu byłych programistów/programistek, którzy obecnie zarządzają zespołami. I w drugą stronę, wielu byłych menedżerów/menadżerek, którzy zdecydowali się wrócić na ścieżkę programisty po wielu latach pracy w innych obszarach wytwarzania oprogramowania. 

Możliwości są wręcz nieograniczone co sprawia, że nawet dziesięć lat spędzonych w zawodzie nie powinno dać nam znudzenia, jeżeli tylko sami chcemy eksperymentować i spróbować czegoś innego w obszarze wytwarzanie oprogramowania.

Podsumowanie

Wyrzućmy z głowy stereotypy i mity bo często zniekształcają one nam rzeczywistość. Mam nadzieję, że pomogłem Ci przynajmniej ogólnie zrozumieć świat twórców oprogramowania, który z każdej strony otoczony jest, często krzywdzącymi mitami i stereotypami.

Przemek


Materiały źródłowe

Udostępnij ten post:
fb-share-icon

Tags: , , , , , , , , ,

2 komentarze

  1. Daniel pisze:

    Dzięki. Właśnie slucham Cie na Google Podcast i jeden wątek, mianowicie wieku wejścia do IT niezmiernie trafił do mnie, bo sam jestem już stary(31) a marzę by wstrzelić się w branże. 2lata kodowałem jako freelancer, pozniej troche życie zmienilo plany. Chciałbym wstrzelić się do jakiegoś software house jednak właśnie stereotyp o wieku troszkę moje zapędy hamował.
    Dziękuję.

    • Przemek pisze:

      Cześć Daniel, bardzo Ci dziękuję za Twój komentarz. Tak jak powiedziałem w odcinku…to nie sport wyczynowy :)… choć i w sporcie nie ma granic… niemniej jednak pracuję i pracowałem z ludźmi w różnym wieku i różnymi doświadczeniami zawodowymi (ps. przy mnie jesteś młodzieniaszek 😂😁👍🏻). Każdy z nich wniósł coś wspaniałego do zespołu, ale najpierw sami przełamali te stereotypy, co było najtrudniejsze. Pamiętaj, też o tym, że niejako zawsze wniesiesz unikalną wartość w postaci poprzednich doświadczeń co będzie w późniejszym etapie bezcenne! Ps. Daj znać o postępach i ew. jak będziesz potrzebował pomocy. Postaram się pomóc na tyle na ile będę mógł! Powodzenia! Pasji i wytrwałości … nie poddaj się bo potem będziesz żałował, że nie spróbowałeś 👍🏻

Możliwość komentowania została wyłączona.