Czas czytania: 9 min
Tym razem mam dla Ciebie coś całkiem innego. Niemniej ekstremalnie interesującego.
Wielu z Was pyta jak można wejść do świata IT. Pytanie jest trudne i zawiera w sobie niedopowiedzenie – wejść na jakie stanowisko.
Pomimo, że mam na ten temat swoje zdanie to pomyślałem, że jest lepszy sposób, aby odpowiedzieć na to pytanie w sposób pełniejszy. Postanowiłem zapytać doświadczonych specjalistów na różnych stanowiskach w IT, jakie jest ich zdanie na ten temat.
Każdemu z naszych ekspertów zadałem dwa pytania:
- Która rola w procesie powstawania oprogramowania jest najważniejsza i dlaczego? [Zakładamy, że musisz wskazać jedną – bo tak jest trudniej]
- Jak (według Ciebie) wygląda droga od decyzji po zostanie taką osobą w projekcie? [Jakbyś się do tego zabrał, gdybyś teraz zaczynał]
Poniższe odpowiedzi zostały ułożone alfabetycznie (po nazwisku autora).
Sebastian Andruszczak
Konsultant Biznesowy w Sebastian Andruszczak Consulting
LinkedIn
(1) Najważniejsza rola
Trudno jednoznacznie odpowiedzieć na to pytanie, ponieważ zależy to od wielu czynników takich jak rodzaj i przeznaczenie oprogramowania, model biznesowy, etap rozwoju rynku, czy struktura organizacyjna.
Starając się odpowiedzieć, patrzę w kierunku obszarów, których zagospodarowanie ma szczególnie duży wpływ na powodzenie tego typu projektów. W pierwszej kolejności do głowy przychodzą mi strategia i procesy, następnie zaś komunikacja i technologia.
Szukając konkretnej roli, w której zakres zadań wchodziłyby wymienione powyżej punkty, w pierwszej kolejności – patrząc z poziomu organizacji – przychodzi mi do głowy Chief Product Officer (CPO). Jest to osoba, która z definicji odpowiada za tworzenie świetnych produktów z uwzględnieniem zarówno sygnałów z rynku, jak i z wewnątrz organizacji, strategię komunikacji wartości, implementację procesów mających na celu zapewnienie nieustannego rozwoju produktu, jak również za część przychodowo-kosztową.
(2) Droga do najważniejszej roli
Zacząłbym od zdobywania relewantnych kompetencji i doświadczenia. W przypadku roli CPO ścieżek jest kilka i uzależnione są od konkretnego projektu. Najprostsza byłaby ta oparta o rozwój w strukturach produktowych, czyli Product Specialist, Product Manager i dalej w zależności od struktur organizacji.
W przypadku dużych, działających kilkanaście lat na rynku organizacji, mówimy o około 7-12 latach, aby dojść do takiego poziomu od momentu decyzji, przy założeniu, że jest się na początku swojej kariery. W przypadku start-up’ów myślę, że perspektywa skraca się do 3-5.
Ludwik Bielczyński
Data Scientist/Python developer w YieldPlanet
LinkedIn
(1) Najważniejsza rola
Na pierwszym poziomie, odpowiedź jest bardzo bezpośrednia: programista, ponieważ bez niego nic nie powstanie.
Wchodząc troszkę głębiej, to bardzo ważne poza samym programistą są w malejącej kolejności: product owner, menedżer IT, analitycy oraz testerzy.
W kwestii product ownera, bez jego dobrej wizji produktu, znajomości rynku, czas poświęcony na tworzenie i rozwijanie oprogramowania może być pochłonięty na zadania, które są zwyczajnie nikomu niepotrzebne. W kwestii menedżera IT, bez dobrego nadzoru i organizacji zespołu, wdrażanie kolejnych pomysłów w wieloosobowym zespole może wiązać się z dużym chaosem i inercją. W kwestii analityków, ich ważność zależy od typu produktu oraz branży, ale na pewno ich umiejętność analizy sytuacji i prezentowania danych może pomóc dokonać decyzji opartych na faktach, a nie niepotwierdzonych hipotezach. I na koniec bez żadnych testerów czas poświęcony na testowanie spada na kosztownych programistów.
Podsumowując, wiele zależy od branży, dla której produktu jest tworzony oraz skali projektu.
(2) Droga do najważniejszej roli
Żyjemy w czasach, gdzie dostępność do informacji pozwala nabrać nowe kwalifikacje na poziomie wejściowym dosyć szybko. Jednak nadal nic nie zastąpi doświadczenia.
Po wstępnym przygotowaniu się do nowej roli, znalazłbym jak najszybciej pozycję, która pozwoliłaby mi uzyskać niezbędne doświadczenie do prawidłowego wykonywania funkcji. Dodatkowo dyskusje z osobami, które pracują już w tej roli pozwoliłyby mi zrozumieć, jakie kwalifikacje są niezbędne, a jakich można nabrać później.
Jakub Chomentowski
Lead Developer/Software Architect
Linkedin
(1) Najważniejsza rola
Pomimo założenia, moim zdaniem nie istnieje jedna najważniejsza rola w projekcie wytwarzania nowego oprogramowania. Jeśli jakiejś roli nie mamy wydzielonej to albo brak nam danego elementu w projekcie, albo wykonują ją po trosze inne osoby.
I tak np. rola biznes analityka często nie istnieje w małych projektach, ale wykonują ją programiści lub product owner. Jeśli nie mamy QA – to nie mamy testów albo testujemy cross’owo między członkami zespołu.
Oczywiście kuszące w tym miejscu byłoby powiedzieć, że najważniejsi są programiści. Ktoś ten kod musi napisać. Jednak w dobie, gdy projekty są duże i wymagają różnych kompetencji w większości przypadków potrzeba różnych ról, a programiści nie są w stanie być mistrzami wszystkich kompetencji.
Reasumując, nie ma jednej najważniejszej roli. Najważniejszy jest zespół i to aby wszystkie role ze sobą odpowiednio współpracowały, bo dzisiaj dobre oprogramowanie tworzą zespoły stanowiące coś większego niż tylko sumę swoich składowych.
(2) Droga do najważniejszej roli
Uważam, że nie ma najważniejszej roli, więc nie mogę odpowiedzieć na to pytanie. Mogę jednak odpowiedzieć jaką rolę wybrałbym dla siebie gdybym miał wybierać teraz i jakbym do niej się przygotował.
Nie będę oryginalny gdy napiszę, że po prawie 12 latach pracy w zawodzie, znów wybrałbym rolę programisty. Sądzę, że ze względu na moje cechy osobowościowe i zamiłowania jest dla mnie najlepsza. Każdy powinien szukać drogi dla siebie pod względem swoich zainteresowań.
Jeśli chodzi o drogę do tej roli to też wiele bym nie zmienił. Nadal zrobiłbym studia, gdyż dały mi one doskonały trening w rozwiązywaniu problemów i pozwoliły poznać fantastycznych ludzi. Jedynie co bym dodał to znacznie obszerniejsze dokształcanie we własnym zakresie przy użyciu ogólnie dostępnych źródeł wiedzy i kursów.
Zainteresowałbym się również wcześniej sceną startup’ową, która stwarza dzisiaj bardzo fajne możliwości młodym przedsiębiorcom i osobom zainteresowanym nowymi technologiami.
Jeśli miałbym poradzić komuś, kto chce się kształcić w jakiejś roli związanej z wytwarzaniem oprogramowania to poradziłbym, aby taka osoba zastanowiła się co ją bawi. Czy jest to badanie, projektowanie, testowanie, zarządzanie powstawaniem projektu czy wreszcie samodzielne wytwarzanie przy pomocy słowa pisanego w kodzie. Gdy wybór padnie na coś co nas cieszy i jest zgodne z nami wewnętrznie to kształcenie się w tym kierunku i praca będzie przyjemnością i fantastyczną przygodą. W IT to stwierdzenie jest bardziej prawdziwe niż gdzie indziej, bo wysokie zarobki niemal każdej z ról pozwalają na to, aby rozważyć inne aspekty, jakie będą wiązać się z naszą przyszłą pracą.
Igor Farafonow
CEO w Uxeria
LinkedIn
(1) Najważniejsza rola
Szczerze powiedziawszy nie ma czegoś takiego jak jedna odpowiednia rola w projekcie. Z jednej strony są różne rodzaje projektów. Z drugiej każdy projekt ma inne wymagania wynikające z uwarunkowań biznesowych (zupełnie inaczej podejdziesz do projektu eCommerce, inaczej do projektu bankowego, a inaczej do SaaS).
Dobór zespołu do projektu powinien mieć charakter stricte kompetencyjny: dobierasz ludzi na odpowiedniej kwalifikacji kompetencyjnej i odpowiednim poziomie kompetencyjnym. Z tego punktu widzenia kluczowy (najważniejszy) jest ten co dobiera ludzi.
Warto zauważyć, że często dobór ludzi jest wynikiem wspólnej pracy kilku osób (właściciela biznesowego, właściciela projektu, menedżera projektu, menedżera zespołu, czasem HR).
Z innego punktu widzenia dla powodzenia projektu ważniejsze od dobrego zaplanowania projektu może być jego właściwa egzekucja.
Na prawidłowy dobór wpływa wiele czynników:
- wymagania wynikające ze specyfikacji projektu
- wymagania pochodzace z określonych w projekcie celów i wskaźników (inaczej podejdziesz do doboru zespołu, jeśli krytyczny będzie czas)
- wymagania wynikające z samego procesu, w ramach którego projekt będzie realizowany
- wymagania wynikające z czynników obiektywnych (budżet, dostępne osoby itp.)
Żadna rola nie jest samowystarczalna. Przy doborze kompetencji należy przymyśleć obiektywnie w stosunku do IT, jakie kompetencje będą obiektywnie niezbędne:
- IT (w tym projektowanie i kodowanie), żeby to stworzyć (nadal w dobie AI i samopiszacego się kodu będą potrzebne osoby do jej obsługi)
- biznesowe, by wymyślać i monetyzowac produkty
- organizacyjne, by produkty wdrażać.
(2) Droga do najważniejszej roli
Każda bieżąca ścieżka IT zostanie wcielona poniekąd w jedną z omówionych w pytaniu (1). Z tego powodu, jedyne co polecam ludziom to zahaczenie się możliwie szeroko, w jednej z nich i specjalizowanie się w niej cały czas szukając usprawnień i nowości we własnym modelu pracy.
Krzysztof Jendrzyca
Programista w Brainhub
Blog “Skuteczny Programista“
(1) Najważniejsza rola
Jeśli miałbym wybrać jedną to powiedziałbym, że programista. Tylko taki, który potrafi wziąć odpowiedzialność za największą część procesu.
Dlaczego?
Bo jeśli programista potrafi wcielić się w rolę QA, DevOps’a, Supportu, a przy okazji nie ma problemu z ogarnięciem backlog’a i z rozmowami z klientem, to staje się niepowstrzymaną maszyną dowożącą wartość, każdy będzie go cenił.
(2) Droga do najważniejszej roli
Zacząłbym małymi kroczkami, od przeczytania trzech książek:
- Clean Coder
- Extreme Programming Explained
- Extreme Ownership
Zrobiłbym notatki, a potem zastosowałbym się do każdej rady tam zawartej. Jedna po drugiej. Książka to potężne narzędzie, ale tylko jeśli towarzyszy mu natychmiastowa i zdecydowana implementacja.
Grzegorz Maciaszek
Programista systemów w eService
LinkedIn
(1) Najważniejsza rola
W temacie jaka rola jest najważniejsza… Chciałem coś wymyślić, jednak, koniec końców, nadal uważam że przy wytwarzaniu oprogramowania każda rola w zespole jest tak samo ważna i brak obsadzenia stanowiska będzie dotkliwy dla projektu.
(2) Droga do najważniejszej roli
Uważam, że nie ma najważniejszej roli, a więc nie mogę odpowiedzieć bezpośrednio na pytanie, ale mogę opisać jak wyglądała moja droga do zawodu programisty.
Będzie powiedziane banałem. Jednak czy banał nie jest faktem, prawdą wypowiadaną tak często, że w nikim już nie wywołuje emocji…
Jestem tu gdzie jestem, bo zawsze pasjonowało mnie programowanie. Wiele godzin poświęciłem na rozwój umiejętności i pogłębianie wiedzy. Nie bałem się podejmować trudnych decyzji zawodowych, ryzyka i skoków na głęboką wodę. Wielokrotnie przegrywałem te zakłady. Nie zniechęcając się porażkami, wyciągałem z nich lekcje, zbierałem doświadczenie i wierzyłem że będzie dobrze. Moja podróż dalej trwa 😀
Daniel Moczydłowski
CEO w Appstronauts
LinkedIn
(1) Najważniejsza rola
Product Owner – dla mnie to jest odpowiednik CEO tworzonego produktu.
Jedni powiedzą, że bez programisty nie będzie nic, bez testera będą bugi, bez grafika brzydki design, ale bez dobrego product ownera nie będzie produktu, który będzie odpowiadał na potrzeby przyszłych klientów, a to w dużej mierzy świadczy o tym, czy projekt będzie udany, czy nie.
Podczas mojej kariery zawodowej pracowałem z wieloma projektami i te, które osiągnęly sukces, miały zawsze za sobą świetnego Product Ownera.
(2) Droga do najważniejszej roli
Uważam, że nie ma na to uniwersalnej odpowiedzi, jako, że kompetencje takiego Product Ownera są bardzo szerokie i różnią się w zależności od branży.
Jeśli mielibyśmy skupić się na projekcie, w ramach którego jest rozwijane oprogramowanie np. w branży logistycznej to powinna to być osoba, która ma doświadczenie z tworzeniem oprogramowania (podstawowa wiedza programistyczna to duży plus), ale jednocześnie wiedzę biznesową, zwłaszcza z tej konkretnej branży. Musi mocno rozumieć potrzeby i problemy grupy docelowej oraz być w stanie określić zakres prac potrzebnych do wypuszczenia MVP.
Katarzyna Muzyka
Automation Tester w SDC
LinkedIn
(1) Najważniejsza rola
Proces wytwarzania oprogramowania najczęściej wymaga współpracy wielu osób o różnych kompetencjach. Jeśli mam jednak wskazać rolę, która wg mnie jest najważniejsza, powiedziałabym, że jest to architekt.
Praca na tym stanowisku wymaga szerokiej wiedzy, zarówno technicznej, jak i biznesowej oraz wysokich umiejętności komunikacyjnych, umożliwiających sprawną współpracę z pozostałymi osobami związanymi z projektem. Rola architekta jest niezbędna w każdym większym projekcie, bo tego typu przedsięwzięcia nie mogą sprawnie działać bez odpowiednio zaprojektowanej architektury.
(2) Droga do najważniejszej roli
Biorąc pod uwagę liczne kompetencje potrzebne na tym stanowisku, na pewno w pierwszej kolejności potrzebne jest bardzo dobre zaplecze techniczne. Nie wystarczy tutaj wiedza z zakresu programowania. Konieczna jest też znajomość technologii, narzędzi i metodyk wytwarzania oprogramowania. Zatem chcąc zostać architektem, należałoby:
- poszerzać wiedzę na wszystkich wspomnianych polach,
- być na bieżąco z tym, jak projektuje się systemy
- śledzić informacje o tym, jak robią to inni.
Dopiero taka wiedza umożliwi projektowanie nowych systemów.
Jednocześnie należy rozwijać swoje umiejętności komunikacyjne, ponieważ architekt musi zrozumieć wymagania biznesowe, umieć je zamodelować w wybranych technologiach, a następnie w sposób klarowny przekazać je zespołowi deweloperskiemu.
Paweł Zwierzchowski
Senior Software Test Engineer w Allegro
Fabryka Testów
LinkedIn
(1) Najważniejsza rola
Uważam, że każda rola jest równie ważna – każdy z nas odpowiada za fragment procesu – jedni na początku inni na końcu. Jednak jeśli miałbym wybrać tylko jedną to wskazałbym osobę odpowiedzialną za jakość – i to taką, która bierze udział w procesie od początku.
Rola ta nie tylko zapewnia jakość i zadowolenie klienta, ale też dba o oszczędności firmy i produktu, przy którym pracuje. Tester dobrze znający produkt i wymagania może wiele wnieść już od początku projektowania rozwiązania.
(2) Droga do najważniejszej roli
Droga od decyzji do zostania testerem może być krótka.
Na początek wystarczy spostrzegawczość, upór i trochę wiedzy technicznej – po jakimś czasie zostaniemy testerem manualnym. Kiedy zacznie brakować nam czasu na testy regresji, zaczniemy zastanawiać się nad automatyzacją – tutaj droga jest już trochę dłuższa.
Podsumowując – testerem oprogramowania można zostać szybko, jednak przez cały czas będziemy się rozwijać, zmieniać obszary pracy, poszerzać swoją wiedzę – ciągły rozwój powoduje, że nie będziemy się nudzić.
Podsumowanie
I jak? Dla mnie sztos!
Pomimo mojej niewątpliwej umiejętności perswazji nie udało mi się namówić wszystkich na podanie jednej roli, jednak w każdej odpowiedzi znajdują się propozycje takiej roli.
Uważam, że zestawienie jest bardzo ciekawe i pojawia się w nim pewien trend wskazujący – być może nie jednoznaczenie na role, ale z pewnością na umiejętności, które warto rozwijać, aby stać się “niezastąpioną” (najważniejszą) osobą w projekcie.
Tym razem wnioski pozostawiam Tobie 😀
W przypadku jakichkolwiek pytań – jeżeli coś wydało się ciekawe – jeżeli chcesz, abym coś rozwinął – proszę napisz lub zostaw komentarz! Chętnie odpowiem.