Różne oblicza IT


IT, IT-DLA-ZIELONYCH / czwartek, 9 stycznia, 2020

IT stało się obecnie bardzo popularne. Kusi na każdym kroku, za każdym zakamarkiem, na niemalże co drugim bilbordzie i reklamach szkół programowania. Jednych przyciąga różnorodność, innych zamiłowanie do technologii, jeszcze innych warunki pracy. Jedno jest pewne- chętnych na zmianę branży nie brakuje. Podobnie jak możliwości na zdobycie dodatkowych kwalifikacji. Problem pojawia się tylko w momencie, gdy mentalnie podjeliśmy już decyzję i jesteśmy gotowi stanąć do boju. Do boju, z tym że.. w którą stronę?

Dzisiaj postaram się przybliżyć Wam różne oblicza branży IT. Chciałabym, abyście w jednym miejscu znaleźli większość najbardziej popularnych obecnie odcieni tego świata. Powinno pomóc Wam to rozeznać się w tym, co macie do wyboru, wkraczając w świat Information Technology.

No to ruszamy 😉 Zaczniemy od najbardziej utartego, a zarazem poprawnego szlagiera. „Jestem programistą” aka developerem. Większość osób z tym właśnie zawodem utożsamia branżę IT. Na pozór może wydawać się to słuszne, ponieważ jakby nie patrzeć, czesto związane jest to z programowaniem. „Jestem programistą” brzmi jednak tak samo enigmatycznie jak „jestem nauczycielem”. Odnośnie nauczyciela od razu zapytalibyście- nauczycielem czego? Czego, kogo uczysz,? Pracujesz w klasach 1-3, w szkole średniej, być może wcześniej pracowałeś w gimnazjum, tudzież jesteś nauczycielem akademickim? Odnośnie tematyki wachlarz możliwości również jest ogromny. Podobnie w IT. Warto więc doprecyzować.

Programista.

W artykule o podstawowych typach aplikacji już mogliście poczytać o różnych obszarach IT. Dzisiaj będziemy podążać tą ścieżką również, tylko z perspektywy poszczególnych profesji. Programista może pisać aplikacje webowe. Ich przykładów szukajcie w Internecie. Wtedy nazywamy go Web Developerem. Jednak jeszcze wśród nich obowiązuje rozgraniczenie na frontendowców, backendowców i tak zwanych fullstackowców. Ma to związek z częścią aplikacji, w której się oni specjalizują. Jak sama nazwa wskazuje, frontendowiec będzie pisał frontend, backendowiec backend, a fullstack? To i to. Jeśli pojęcia frontend i backend wymagają u Was odświeżenia, zajrzyjcie tutaj. Frontendowiec jednak frontendowcowi nie równy. To, że zna Reacta nie zawsze oznacza, że będzie znał również Angulara lub View.js i na odwrót. Jeśli jesteś project managerem, koniecznie zawsze dopytaj.

Oprócz Web developmentu mamy także aplikacje mobilne dedykowane urządzeniom mobilnym- smartfonom, tabletom, smart watch’om. Programiści aplikacji mobilnych piszą oprogramowanie właśnie na nie. Zazwyczaj rozróżniamy ich po platformach, w jakich się specjalizują- na przykład iOS lub Android.

Programista może być też specjalistą od baz danych, może kodować rozszerzoną (AR- ang. augmented reality) lub wirtualną (VR- ang. virtual reality) rzeczywistość. Może również tworzyć gry. Gry na konsolę, RPG, typu multiplayer? Wybierzcie sami!

Co dalej? Inną opcją jest również przygotowywanie oprogramowania dla telewizorów- na przykład takich z Androidem. Trochę moglibyśmy podciągnąć to pod mobile, jednak ani to mobile ani na przykład Android nie jest całkowicie ten sam.

Idąc calej -czy słyszeliście o sztucznej inteligencji (ang. AI- Artificial intelligence)? Coraz częściej jej elementy znajdujemy w otaczającej nas rzeczywistości. Patrząc na tendencje, będzie jej coraz więcej, a algorytmy i heurystyki nią rządzące domagają się kompetentnych osób, które by za nimi stały.

Swoją drogą, czy programować można tylko Software? Nie zapominajmy o oprogramowaniu przygotowywanym specjalnie dla Hardware’u. Taki software nazywamy firmware’em. Dzięki niemu masz BIOS w laptopie. Powstają inteligentne samochody pozwalające na automatyczną regulację świateł, zarządzające wbudowanymi sensorami itp.

Architekt oprogramowania.

Jako architekt oprogramowania będziesz projektować systemy IT, wyznaczać stos technologiczny aplikacji i kierunek, w którym ma sie ona rozwijać.Jest to jedna z bardziej naturalnych ścieżek rozwoju, gdy wychodzimy z roli programisty. Jednak nie tak prosto nim zostać. Oprócz umiejętności technicznych i analitycznych konieczne będą zdolności liderskie, gdyż jako architekt będziesz prowadzić jeden bądź wiele zespołów programistycznych. Dodatkowo wielokrotnie będziesz miał okazję rozmawiać z klientem i szeroko pojętymi ludźmi z biznesu (stakeholderzy, przedstawiciele innych zespołów i wykonawców, użytkownicy końcowi), co wymaga wysokich umiejętności komunikacyjnych. Czy to brzmi jak plan na przyszłość? Sam zdecyduj.

Data scientist.

Danologia (ang. data mining) to dziedzina, która zdobywa coraz większą popularność. Tak zwany data scientist specjalizuje się w przetwarzaniu danych i pozyskiwaniu z nich informacji. Nieobce mu będą technologie BigData. Obecnie świat zalewa coraz większa ilość danych, zbieramy i logujemy (zapisujemy) wiele. Dane te są często niekompletne, uszkodzone lub redundantne. Wymagają oczyszczenia i wyłuskania z nich cennej wiedzy. To właśnie zadanie dla specjalistów tego typu.

Tester oprogramowania.

Ten zawód nie dla wszystkich jest oczywisty. Wiele osób myśląc o IT ma przed oczami tylko i wyłącznie programowanie. Jest to bardzo zastanawiające. Szczególnie, gdy uświadomimy sobie ogromną wagę roli testerów. Dbanie o jakość wytwarzanego oprogramowania, z angielskiego QA (Quality assurance) to ich rola. Testują, aby już na etapie developmentu wychwycić jak najwięcej błędów, sprawdzić przypadki brzegowe. Dać programistom poczucie bezpieczeństwa mówiące, że nie są sami, a tylko brak podejmowania działania jest gwarancja bezbłędności. Czy tester nie programuje? Jak najbardziej może. Najbardziej popularne role w zakresie QA to tester manualny i automatyczny. Testerzy manualni sprawdzają działanie aplikacji korzystając z niej, tak jak końcowy użytkownik. Podążają według napisanych wcześniej przypadków testowych. Testerzy automatyczni automatyzują- programują przypadki testowe, które później mogą być automatycznie uruchamiane w celu sprawdzenia działania aplikacji. Przygotowanie takich testów zajmuje więcej czasu, ale koniec końców później możemy wielokrotnie z nich korzystać, bez konieczności klikania ręcznie. Oczywiście tutaj należy wziąć również pod uwagę zmienność aplikacji. Utrzymywanie napisanych testów i ich dostosowywanie do zmieniającego się kodu aplikacji i jej sposobu działania może kosztować bardzo dużo.

Analityk biznesowy.

Bardzo istotnym elementem każdego projektu jest logika biznesowa. Co to takiego? Jest to opis funkcjonowania danego biznesu, jego reguły działania. Myśląc o projektach z branży IT należy przede wszystkim pamiętać o tym, że nie tworzymy aplikacji dla samego tworzenia. Chyba, że się uczymy. Natomiast komercyjnie na pewno nie. Każda z nich ma swój cel i ma służyć dobru danego biznesu. Jeśli pochodzisz z innej branży, zapewne wszystko obracało się wokół zagadnień właściwych właśnie jej. To znaczy pracując jako konstruktor spotykałeś się z nośnościami belek, właściwościami stosowanych materiałów, projektami na obrabiarki itp. Z kolei w przemyśle biotechnologicznym miałeś do czynienia z odczynnikami, reakcjami chemicznymi i próbkami. Interesowały Cię zasady działania tych reakcji, sposoby postępowania biologów, prawidłowości, które rządzą procesami. W IT każdy następny realizowany projekt może dotyczyć zupełnie innej branży. Jednego dnia zajmujesz się aplikacją dla restauracji, innego stroną internetową popularnego kanału telewizji, jeszcze innego próbujesz zrozumieć zasady pakowania palet w magazynach, ponieważ nowa aplikacja AR (ang. augmented reality) ma to usprawnić. To wszystko – reguły funkcjonowania danego biznesu – nazywamy logiką biznesową (ang. business logic). Specjaliści, którzy zajmują się zbieraniem i porządkowaniem tej wiedzy przekaształcając ją w modele biznesowe zrozumiałe dla techników to analitycy biznesowi.

Product Owner.

Jest właścicielem produktu. Wybitnie ze świata agile. Odpowiada przed stakeholderami za dostarczenie systemu zgodnego z wymaganiami. Bywa nazywany analitykiem biznesowym ze świata Agile. Jego rola jest jednak znacznie szersza. Definiuje i udoskonala wizję produktu. Przyczynia się do jej klaryfikacji na podstawie zbieranych wymagań i kontaktów z różnymi stakeholderami, ale także, co bardzo ważne, tę wizję TWORZY. Dba o to, aby w obliczu wielu różnych zależności i pomysłów, projekt nie zboczył z obranego kursu. Planuje Releasy i wydania kolejnych wersji oprogramowania, przygotowuje user stories. Dba również o to, aby posiadaną wiedzę biznesową propagować również na zespół developerski. Omawia z nim historyjki użytkownika i planuje kolejne sprinty. Odpowiada za stan backlogu produktu. Jak widzicie, jest to bardzo trudna i odpowiedzialna rola, wymagająca doskonałych umiejętności komunikacyjnych i prezentacyjnych, a także szerokiej wiedzy biznesowej.

Scrum Master i Scrum Coach.

Obecnie coraz częściej odchodzi się od kaskadowego modelu dostarczania oproramowania (nastepujące po sobie kaskadowo fazy projektowania, implementacji, testowania i wdrożenia) na rzecz metodyk bardziej zwinnych (ang. agile). Nie należy przy tym twierdzić, że model kaskadowy (ang. Waterfall) jest całkowicie zły- dla niektórych zastosowań jest przeciwnie idealnym, najlepiej pasującym modelem. Dla wielu innych przypadków jednak tak nie jest. Jednym z frameworków wpisujacych sie w Agile jest Scrum. Więcej o nim samym przeczytacie w niezliczonej ilości artykułów i tutoriali dostępnych online. Nie będę tutaj wchodzić w szczegóły, gdyż nie jest to przedmiotem tego artykułu. Natomiast- Scrum w IT jest bardzo popularny. A jeśli Scrum to i Scrum Master, stojący na straży reguł i wartości Scruma, dbający o dobrą atmosferę pracy, wspierający w rozwiązywaniu problemów i konfliktów.

Menadżer projektu.

Menadżer projektu to jedna z bliższych obecnie mi ról. Mogłabym ją określic mianem wielkiego ogarniacza. Budżet, dobór osób do zespołu i jego zespołu, planowanie priorytetów i zadań, organizacja pracy, relacje z klientem, terminy. A wszystko to odnośnie projektów z IT. Do tej roli na wagę złota okażą się kompetencje właściwe wszystkim menadżerom niezależnie od branży. A więc zdolności przywódcze i negocjacyjne, bardzo wysoki poziom komunikatywności i umiejętności organizacyjne. Osobiście mimo wszystko uważam, że mimo jak najlepszych kompetencji menadżerskich, zrozumienie tego, co tak naprawdę dostarczamy, w kontekście produktu i aplikacji technicznej, może się bardzo przydać. Również w rozmowach z deweloperami. Stąd właśnie blog, który obecnie czytasz 😉

UI/UX Designer.

Kiedyś panowało przekonanie, że dobra aplikacja powinna przede wszystkim wyglądać. Ładne obrazki wydawały się być wystarczające. Przynajmniej w mentalności większości osób. Obecnie odnoszące sukcesy aplikacje przyjazne dla użytkowników i dostosowane do ich potrzeb powstają dzięki wysokiej klasy specjalistom od User Interface i User Experience. Szczególnie rola tych ostatnich u osób starej daty budzi zdziwienie. Otóż UX specjaliści to osoby, które towarzyszą powstawaniu produktu od samego początku, w zasadzie jeszcze wcześniej niż do gry zostają włączeni programiści. Zaczynają od badań UX, które mają na celu jak najbardziej precyzyjne ustalenie potrzeb użytkowników, poznanie ich zwyczajów i problemów, z którymi na co dzień się spotykają. Istotne przy tym są dobre zdolności komunikacyjne i umiejetność zbierania oraz analizowania, grupowania pozyskanych informacji. Następnie na bazie takiego researchu UX designer przygotowuje archetypy użytkowników (tzw. Persony), szkicuje interfejs użytkownika aplikacji i jej workflow, ewaluuje to z użytkownikami i ostatecznie przygotowuje finalne maski UI do implementacji dla deweloperów. W późniejszym etapie UX i UI designerzy są również obecni w procesie wytwarzania oprogramowania. Weryfikują gotowe zaimplementowane części aplikacji oraz przeprowadzają tak zwane User UX testy, czyli testy ewaluujące zrozumienie i intuicyjność aplikacji przez użytkowników końcowych.

Specjalista od cyberbezpieczeństwa.

Obecnie coraz trudniej znaleźć nam w świecie materialnym instytucję lub produkt/zjawisko, które nie miałoby swojego odpowiednika w sieci. Udział technologii i kontaktów online w naszej rzeczywistości stale rośnie. Jednocześnie coraz więcej firm i osób jest świadomych niebezpieczeństw czyhajacych na nich w cyberświecie. Nic więc dziwnego, że chcą uszczelnić swoje systemy bezpieczeństwa. Być może jest to kierunek dla Ciebie?

Inżynier Devops.

Czym zajmuje się inżynier devops? W definicji samego „devops” czytamy, że jest to zbiór praktyk na pograniczu developmentu i operacji związanych z technologiami informacyjnymi. Celem jest skrócenie cyklu developmentu poprzez usprawnienie procesów związanych między innymi z integrowaniem kodu. Jeśli interesują Cię zadania z pogranicza programowania (raczej w kontekście skryptów usprawniających pracę) i prac administracyjnych, idź w tym kierunku. Przyczynisz się do skrócenia czasu wprowadzania zmian w oprogramowaniu i weryfikowania poprawności ich tych.

Architekt Internetu Rzeczy.

Specjaliści z zakresu IoT (ang. Internet of Things) już są i z pewnością będą coraz bardziej poszukiwani. Samą koncepcje IoT powinniście kojarzyć z wyposażaniem przedmiotów w układy elektroniczne pozwalające im na dodatkowe funkcjonalności. Wśród nich możemy wymienić przede wszystkim zbieranie, analizowanie, przetwarzanie i przekazywanie danych za pomocą sieci. Jest to dziedzina z pogranicza programowania, informatyki i elektroniki. Jako architekt IoT będziesz zajmował się projektowaniem, programowaniem i testowaniem tego rodzaju rozwiązań. Gdzie je znaleźć? Spójrz na nasze coraz bardziej inteligentne domy (rolety, odkurzacze, czajniki do gotowania wody), urządzenia do monitorowania stanu zdrowia u osób chorych i starszych, inteligentne miasta i tym podobne.

Administrator sieci, inżynier sysops/netops.

Pojęcie administartora sieci obecnie stało się bardzo szerokie. Czasami będzie się odnosić do administartorów zarządzających siecią firmy i jej infrastrukturą. Innym razem będziemy myśleć bardziej o inżynierze sysops jako o administratorze sieci na przykład backboneowych bądź też o osobie zajmującej się działaniem hostingu w firmach hostingowych. Jeśli z kolei ta osoba konfigurowałaby i sprawdzała działanie sieci przełączników nazwalibyśmy ją bardziej inżynierem netops. Generalnie uważam, że dla osób będących dalej od detali tematu wszystkie te trzy role są bardzo zbliżone. Czasami zadania te kryją się nawet pod rolą inżyniera devops. Postanowiłam je stąd zakwalifikować do jednej grupy.

Specjalista do spraw sprzętu hardware+firmawe).

Jest to pojęcie ponownie bardzo szerokie. W małych firmach jako jedyny naczelny informatyk będziesz prawdopodobnie zajmować się wszystkim związanym jakkolwiek z informatyką. Począwszy od przygotowania sprzętu dla nowych pracowników z działającym oprogramowaniem, podłączania i konfiguracji drukarek i tym podobne. Duże firmy dysponują zazwyczaj całymi zespołami dedykowanymi zarządzaniu sprzętem i problemom technicznym.

Specjalista do spraw aplikacji biznesowych CRM.

Oprogramowanie CRM (ang. Customer Relationship Management) to software mający za zadanie przede wszystkim wspierać i ulepszać relacje biznesowe z klientami danej firmy z uwzględnieniem wzrostu w sprzedaży. Jednym z założeń systemów CRM jest agregacja danych pochodzących z wielu różnych systemów komunikacji, co składa się na całą historię relacji z klientem. Na tej podstawie możliwe jest później planowanie sprzedaży, raportowanie i decydowanie o przyszłych posunięciach. Przykłami dużych graczy w zakresie aplikacji CRM są rozwiązania oferowane przez Salesforce i SAP.

I na tym poprzestaniemy. Jeśli widzicie jakieś inne profesje w IT, dajcie koniecznie znać w komentarzu!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.