Blog

Kodowanie to sport zespołowy

Program komputerowy jest jak góra lodowa. Front-end, czyli interfejs użytkownika, to tylko wierzchołek. Znacznie większa część, tzw. back-end, znajduje się pod powierzchnią. Którą z tych warstw ty chcesz się zajmować?

Wszystko, co widzisz na swoim ekranie, wykonał programista front-endu, który odpowiada za cały układ graficzny i kolorystyczny oraz prezentację treści. Na podstawie wytycznych od designerów specjalista ten przygotowuje strony internetowe w taki sposób, by działały płynnie i były przystosowane do każdego typu urządzeń. Od przejrzystości i atrakcyjności elementów wizualnych – takich jak krój czcionki, zdjęcia czy animacje – zależy jakość bezpośredniej interakcji między systemem a człowiekiem.

Osoby spoza świata IT postrzegają oprogramowanie wyłącznie przez tę zewnętrzną warstwę, znaną powszechnie jako interfejs użytkownika. Ale każdy program komputerowy ma też inną część, której – w większości wypadków – zwykły Kowalski nigdy nie zobaczy. Można ją traktować jak swego rodzaju szarą eminencję, działającą dyskretnie, z ukrycia, ale niezwykle skutecznie. To pracujące w tle warstwy logiczne, dzięki którym systemy w ogóle działają. Tworzy je programista back-endu.

Projektowanie front-endu jest kombinacją technologii HTML, CSS i JavaScript. Tworzenie back-endu wymaga znajomości większej liczby języków. Należą do nich PHP, Ruby, Python i .Net.

Nawet jeśli sławę i chwałę zyskuje głównie front-end, to prawdziwymi koniem pociągowym branży jest programista back-endu – i to on dostaje więcej zleceń, ofert pracy i pieniędzy. Bez cienia przesady można powiedzieć, że należy do pierwszej ligi koderów. Ale jest specjalista o jeszcze większym prestiżu, zawodnik software’owej ekstraklasy, którego każdy liczący się producent chciałby mieć na swojej liście płac. To full-stack deweloper, zajmujący się zarówno front-endem, jak i back-endem. Można o nim powiedzieć: człowiek renesansu, wielozadaniowiec lub multiinstrumentalista, bo pracuje nad wszystkimi komponentami i warstwami systemu.

A teraz wyobraźmy sobie, że programiści (bez względu na specjalność) zaprojektowali i wdrożyli piękny kawałek kodu. Każdy ze swoim dziełem obnosi się niczym paw, oczekując sutej nagrody od klienta. Wtedy w paradę wchodzi im jakiś złośliwy tester, który wszystko niszczy. Wskazuje, gdzie deweloperzy odbiegli od projektu, na czym polega ich błąd, wreszcie stwierdza, że z takimi umiejętnościami to tylko krowy pasać. W jego ocenie kod, który jeszcze przed chwilą wydawał się idealny jak ciało Monica Bellucci, w ogóle nie działa. I wszystko trzeba zrobić od nowa.

Tworzeniu oprogramowania często towarzyszy beztroski entuzjazm. I zgoda zespołu co do tego, że powstał doskonały produkt. Tyle że przez silną jednomyślność zbankrutował już niejeden producent softu. Dlatego musi pojawić się ktoś w rodzaju adwokata diabła, który zakwestionuje zadowolenie swoich koleżanek i kolegów, będzie szukał dziury w całym i podsunie alternatywne rozwiązania. W wydawnictwie książkowym taką osobą jest redaktor, który podpowiada autorowi, jak powinien poprawić tekst pod względem kompozycyjnym i stylistycznym. W branży programowania rolę adwokata diabła pełni tester. Przeprowadza swoje próby, znajduje defekty. A po kilku rozmowach i kombinowaniu programiści naprawiają tyle z nich, ile można, aż wszyscy dochodzą do wniosku, że czas ruszyć dalej.

Jak łatwo się domyślić, tester nie jest najbardziej lubianą osobą w grupie projektowej. Ale niekiedy najważniejszą. Dzięki niemu często udaje się przechwycić źle napisane kody – niebezpieczne dla użytkownika, ale też z punktu widzenia reputacji i zysków producenta.