BIZNES INFRASTRUKTURA

Zarobki deweloperów rozwiązań w chmurze dopiero wystrzelą w górę, ale oczekiwania są równie wysokie

Na rynkach rozwiniętych ten trend jest już dostrzegalny, w Polsce można zaobserwować zaledwie symptomy. Pewne jest jednak to, że przed nim nie uciekniemy. Wzrost adopcji chmury w przedsiębiorstwach, migracja aplikacji na platformy w chmurze i konieczność rozwoju nowych, natywnych aplikacji generuje zapotrzebowanie na inżynierów oprogramowania o szerokich, niespotykanych dotychczas kompetencjach. A ponieważ takich osób jest relatywnie niewiele – ich wynagrodzenia rosną w zawrotnym tempie.

Przeanalizujemy w tym artykule ewolucję roli inżynierów oprogramowania, patrząc na dzisiejsze wymagania stawiane programistom w chmurze jak i na możliwości rozwoju zawodowego, w tym wynagrodzenia oraz sposoby budowania kompetencji w obszarze platform rozwoju aplikacji w chmurowych. Deweloperzy aplikacji napotykają problem, ponieważ nowe technologie ewoluują w szybszym tempie niż kiedykolwiek wcześniej, szczególnie w dziedzinie przetwarzania w chmurze, tworzenia rozbudowanych aplikacji webowych i na urządzenia przenośne. Szczególnie obecnie w epoce ekspresowej adopcji chmury w przedsiębiorstwach rozwój aplikacji wymaga umiejętności biznesowych, operacyjnych, znajomości narzędzi i umiejętności integracyjnych, czyli kompetencji które dotychczas znajdowały się tradycyjnie poza silosem o nazwie „development”. Nie jest zatem zaskoczeniem, że brakuje kandydatów z pełną listą umiejętności, których zazwyczaj oczekują pracodawcy. Ponadto ok. 75% ekspertów ds. technologii uważa, że pracodawcy i rekruterzy są zbyt skupieni na ocenie umiejętności technicznych w wyniku czego odrzucają kandydatów z dużym potencjałem choć bez pełnego spektrum doświadczenia technicznego, zgodnie z globalnym raportem Harvey Nash Technology Survey 2017.

Może to zabrzmieć jak żart, ale oczekiwania wobec inżynierów oprogramowania w chmurze obejmują kompetencje z dotychczas odmiennych obszarów, takich jak zarządzanie projektami, projektowania baz danych w tym architektury dla przetwarzania big data, projektowanie, rozwój i integracja aplikacji i praca w środowiskach rozproszonych. Przykładowe oczekiwania w stosunku do kandydata mogą obejmować: J2SE/J2EE, certyfikacje Hadoop dla konkretnych produktów, doświadczenie z konkretnym oprogramowaniem do zarządzania danymi w chmurze, bazy danych NoSQL jak MongoDB czy Apache Couch DB lub inne, zaciąganie danych (data ingestion), mapowanie danych, katalogowanie danych, konkretne technologie sieciowe jak REST czy Grails, mile widziana znajomość innych języków niż Java (Python).

Wynagrodzenie deweloperów w chmurze

Podstawowym problemem w określaniu zapotrzebowania na specjalistów, nie tylko deweloperów, w obszarze chmury jest… brak przejrzystej i jednoznacznej definicji chmury. Nie tyle w zakresie technologii co podziału kompetencji w IT. Problem ten jest globalny, nie tylko specyficznie polski i zwracają na to uwagę raporty dotyczące zatrudnienia.

Jeśli ktoś spełnia omawiane interdyscyplinarne wymagania to wynagrodzenie jest całkiem dobre. Badania Harveya Nasha pokazują wynagrodzenie dewelopera w chmurze w wysokości od 80 tys. do 100 tys. USD w Stanach Zjednoczonych i globalnie (na rynkach rozwiniętych) na stanowiskach stałych. Wymieniony już raport zaznacza jednak, że głównym rynkiem w chwili obecnej jest konsulting i kontraktorzy, dla których stawki dzienne wahają się od 550 do 800 USD. Z kolei serwis Payscale w obszarze rozwoju aplikacji w chmurze wykazuje wynagrodzenie roczne na poziomie ok. 130 tys. USD dla starszych architektów chmury i deweloperów chmury w Stanach Zjednoczonych. Jednak duże organizacje prowadzące zaawansowane projekty w chmurze potrafią zaoferować kandydatowi na poziomie „senior” nawet 160 tys. USD rocznie.

Trendy zza oceanu docierają do Polski tradycyjnie z opóźnieniem, ale już teraz widać zwiastuny opisanych wyżej zmian. Dzieje się tak ponieważ spora część działających na polskim rynku firm tworzących oprogramowanie pracuje dla klientów amerykańskich i już teraz poszukuje i zatrudnia kandydatów spełniających omawiane oczekiwania. Również w Polsce inżynierowie oprogramowania w chmurze mogą liczyć na wynagrodzenia raczej przewyższające przeciętną na rynku. Już młodszy specjalista może liczyć na wynagrodzenie 10 tyś zł. lub powyżej. Wynagrodzenia specjalistów z poziomem doświadczenia średnio- zaawansowanym zawierają się zazwyczaj w widełkach 15-20 tys. zł miesięcznie, przy czym z reguły są to kontrakty B2B. Ofert dla osób na poziomie „senior”, wymagających doświadczenia na wielu platformach chmurowych, kwalifikacji w obszarze DevOps i kierowania zespołem jak i w obszarach big data (Hadoop, platformy zarządzania danymi) nie ma jeszcze zbyt wiele, jednak jeśli się zdarzają to poziom wynagrodzenia zdecydowanie przekracza 20 tys. zł miesięcznie, niezależnie od formy zatrudnienia.

Czytaj również: Ile zarabiają specjaliści od chmury? Top 6 kompetencji przyszłości.

Kompetencje programisty chmury

Jeśli chodzi o preferowane kompetencje w obszarze platform chmurowych to nie jest zaskoczeniem, że numerem jeden jest AWS, zaraz potem Azure i coraz częściej Google Cloud Platform. Jednak rosnąca liczba firm rekrutujących deweloperów chmury wykazuje podejście agnostyczne, tzn. posiadanie doświadczenia na którejkolwiek z wiodących platform chmury publicznej wraz z certyfikacją jest wystarczające. DevOps to kolejny bardzo pożądany zestaw umiejętności, jak również znajomość i/lub doświadczenie w prowadzeniu projektów, najczęściej w metodykach zwinnych. Ekonomiczne i biznesowe realia naszych czasów wyraźnie faworyzują programistów, którzy potrafią robić więcej niż pisać kod. Spójrzmy zatem na listę umiejętności i obszarów doświadczenia dla poszukujących pracy w rozwoju aplikacji w chmurze:

umiejętności standardowe:
  • .NET, w szczególności Microsoft Azure i / lub Java w szczególności J2EE
  • powyższe preferowane w kombinacji z językami skryptowymi – Python, Perl niekiedy PHP
  • usługi sieciowe i interfejsy API – RESTful i SOAP.
  • agile – praktyka w metodykach zwinnych
  • wzorce projektowe i UML.
  • programowanie obiektowe (podstawowa umiejętność).
  • Hibernate i obsługa schematów baz danych
nowe obszary rozwoju:
  • języki programowania alternatywne do powyższych, w szczególności Ruby on Rails i Scala
  • Hadoop i HDFS do obsługi dużych zbiorów danych, a także znajomość narzędzi Hadoop, takich jak Hbase czy Hive
  • umiejętności ciągłej integracji i testowania oraz diagnostyki w czasie rzeczywistym (testowanie jednostkowe nie jest wystarczającą umiejętnością w przypadku chmury)
  • PaaS oraz znajomość podstawowych platform usługowych (np. Hadoop as a service)
  • rozwój aplikacji zorientowany na usługi, architektura mikrousługowa
  • platformy infrastruktury jako usługi (IaaS): Amazon Web Services, Azure, GCP, Rackspace, Hewlett-Packard Enterprise, VMware, IBM Cloud etc.
  • Technologie DevOps (CFEngine, Zookeeper, Ansible, Chef, itp.)
  • HTML5
  • wirtualizacja infrastruktury

Ta lista pokazuje, że z jednej strony specjaliści od oprogramowania poszukujący pracy w chmurze muszą z pewnością być wszechstronni. Z drugiej strony, wymienione wymagania dotyczące umiejętności nie są dziś rzadkością i można je nabyć w codziennej praktyce w obszarze IT w organizacji, zatem praca nad wystarczającą ilością projektów IT może pomóc na ścieżce do bardziej lukratywnych i przyszłościowych stanowisk w dziedzinie technologii chmurowych. Dodatkowo niedobór programistów w chmurze powoduje powstanie wielu podstawowych stanowisk deweloperskich w tym obszarze, które zapewniają szkolenie dla kandydatów z wewnątrz organizacji. Zdobycie doświadczenia dzięki praktycznej pracy jest najlepszą drogą do rozwoju ścieżki kariery w kierunku rozwoju oprogramowania w chmurze. Warto z takich szans skorzystać.

Czytaj również: Szkoła chmury. Poznaj architekturę AWS, Azure i GCP.