
System, który obsługuje zamówienia w hurtowni, działa od lat i nikt nie wyobraża sobie bez niego dnia. Teraz trzeba dodać do niego nową formę płatności, przenieść go na nowe serwery i sprawić, by nie zwalniał w szczycie sezonu – a wszystko bez zatrzymywania pracy firmy. Tym zajmuje się specjalista do spraw rozwoju oprogramowania systemów informatycznych. Nie zawsze pisze aplikacje od zera: częściej utrzymuje, poprawia i rozbudowuje oprogramowanie, z którego codziennie korzystają setki ludzi. Analizuje wymagania, projektuje zmiany, programuje, testuje i dba o dokumentację.
Większość programistów nie tworzy nowych aplikacji, tylko rozwija te, które już istnieją. Systemy księgowe, magazynowe, bankowe czy szpitalne żyją latami, a w tym czasie zmieniają się przepisy, potrzeby użytkowników i sprzęt, na którym działają. Specjalista do spraw rozwoju oprogramowania dba o to, by system nadążał za tymi zmianami. Musi zrozumieć kod napisany przez innych, często dawno temu, i wprowadzić w nim poprawki tak, by nie zepsuć niczego, co działało dotąd. Taka praca przypomina remont domu, w którym cały czas ktoś mieszka i nie może się nawet na chwilę wyprowadzić.
Kluczowe pojęcie to wymagania – funkcjonalne, czyli co program ma robić, i niefunkcjonalne, czyli jak szybko, jak bezpiecznie i dla ilu użytkowników ma działać. Specjalista rozmawia z użytkownikami, by dowiedzieć się, czego naprawdę potrzebują, bo to nie zawsze to samo, o co proszą. Czasem zamiast nowej funkcji wystarczy poprawić istniejącą, a czasem prośba o drobiazg odsłania poważniejszy problem w całym procesie.
Każda zmiana w systemie przechodzi drogę od pomysłu do wdrożenia. W dużych zespołach te etapy wykonują różne osoby, a w mniejszych firmach specjalista zajmuje się nimi samodzielnie, przechodząc płynnie od rozmowy z użytkownikiem do pisania kodu i testów, a potem do wdrożenia nowej wersji na serwerach. Typowo jego praca obejmuje:
Wykres pokazuje szacunkowy, typowy podział czasu specjalisty rozwijającego istniejący system.
Samo pisanie kodu to tylko około jednej trzeciej pracy – reszta to myślenie, sprawdzanie i rozmowy.
🕗 Rano zespół spotyka się na krótkiej odprawie: każdy mówi, nad czym pracuje i co go blokuje. Potem specjalista wraca do zadania – nowego raportu dla działu sprzedaży. Najpierw czyta istniejący kod i sprawdza, skąd system bierze dane, potem pisze zmianę i testy. W południe przychodzi zgłoszenie z produkcji: użytkownicy nie mogą zapisać zamówień. Trzeba przejrzeć logi, odtworzyć błąd na środowisku testowym i przygotować szybką poprawkę, a później opisać, co się stało, żeby problem się nie powtórzył.
Po południu czas na przegląd kodu kolegi i rozmowę z analitykiem o następnym etapie projektu. Dzień kończy się aktualizacją zadań i krótką notatką w dokumentacji, żeby jutro – albo za rok – ktoś inny wiedział, dlaczego coś zrobiono właśnie tak. Raz na kilka tygodni zespół wydaje nową wersję systemu i omawia, co poszło dobrze, a co trzeba poprawić.
Specjalista posługuje się językami programowania, bazami danych i SQL, systemami kontroli wersji oraz narzędziami do automatycznego budowania i testowania aplikacji. Musi rozumieć, jak działają serwery, sieci i systemy operacyjne, w tym Linux, bo oprogramowanie nie działa w próżni. Ponieważ technologie szybko się zmieniają, ważniejsza od znajomości jednego języka jest umiejętność szybkiego uczenia się nowych narzędzi i czytania dokumentacji, najczęściej po angielsku.
Ciekawostka: w bankach, ubezpieczeniach i administracji wciąż działają systemy napisane w językach, których nie uczy się już na większości studiów. Specjaliści potrafiący je utrzymywać i stopniowo przenosić na nowsze technologie są bardzo poszukiwani – to dowód, że w informatyce opłaca się także cierpliwość do starego kodu.
Najczęściej prowadzi przez studia informatyczne, choć w zawodzie spotyka się też absolwentów matematyki, automatyki czy fizyki, którzy nauczyli się programować. Na studiach poznaje się algorytmy, bazy danych, inżynierię oprogramowania i pracę w zespole projektowym. Rzadko trafia się od razu na samodzielne stanowisko – pracodawcy cenią doświadczenie na pokrewnych stanowiskach, np. programisty aplikacji, testera czy analityka systemów. Typowa ścieżka wygląda tak:
✅ Co daje satysfakcję:
⚠️ Co bywa trudne:
To zawód dla osób, które lubią logiczne myślenie, nie zrażają się błędami i potrafią doprowadzić zadanie do końca. Kto dobrze rozumie zarówno technikę, jak i potrzeby użytkowników, może z czasem zostać architektem systemów albo liderem zespołu. Ważna jest też umiejętność pracy w grupie, bo duże systemy zawsze rozwija wiele osób.
