software oczami pracowników
28

Software House oczami pracowników. Jak wygląda praca w takim miejscu?

Software house to w wolnym tłumaczeniu "dom oprogramowania" - tyle, że osobie niezaznajomionej z tym tematem mało to mówi. Można domyśleć się, że chodzi tutaj o tworzenie software'u, gdzie udział w procesie tworzą różni ludzie o przeróżnych specjalizacjach. Nie wyczerpuje to całkowicie tego tematu - sporo kwestii pozostaje nierozwiązanych, co sprzyja narastaniu różnych mitów na temat takich przedsiębiorstw.

Software house przez niektórych nazywany jest „agencją interaktywną” i takim porównaniom nie należy się dziwić, bowiem sporo obowiązków agencji interaktywnych oraz software house’ów się zazębia. Najważniejsza różnica zasadza się na wyspecjalizowaniu przedsiębiorstw w konkretnych usługach: podczas gdy agencja interaktywna jest nastawiona głównie na realizację celów biznesowych oraz marketingowych dla swojego klienta, tak już software house kładzie większy nacisk na typowo techniczne aspekty – w tym stworzenie gotowego produktu, a przed tym prototypów oraz omówienie z klientem tego, jak w ogóle powinien on wyglądać.

Najprościej mówiąc – software house zaczyna się tam, gdzie kończą się możliwości agencji interaktywnej: te z reguły nie są w stanie tworzyć wysoce zaawansowanych aplikacji z wykorzystaniem technologii webowych (choć nie zawsze). Zdarza się jednak, że i software house’y i agencje interaktywne wchodzą sobie w kompetencje i okazuje się, że granica między nimi jest bardzo płynna.

Software house to nie zbieranina przypadkowych osób

Mówimy głównie o tych dobrze działających przedsiębiorstwach, które tworzą oprogramowanie. Funkcjonowanie takich firm znacząco zmieniło się w ostatnich latach: branża IT chłonie już nie tylko specjalistów w typowych dziedzinach (a zatem przede wszystkim programistów, testerów, techników), ale także pomijanych czasami „humanistów” – osoby „nietechniczne”, ale równie ważne w kontekście realizacji projektów. Project Managerowie to bardzo często ludzie, którzy nie znają żadnego języka programowania, ale mają kompetencje, które pozwalają im zarządzać zespołem pracującym nad konkretnym projektem. Do ich obowiązków należy także kontakt z klientem, „rozliczanie” programistów z roboczogodzin i pilnowanie, by nie przekroczyć ustalonego wcześniej budżetu.

Mało tego, Project Manager często jest odpowiedzialny także za szeroko pojęty marketing – to przeważnie ludzie z dobrym przygotowaniem w tym kierunku. Doskonale znają także „systemy pracy”, m. in. takie frameworki jak Scrum i zajmują się m. in. wdrażaniem ich do zespołów. Dobry Project Manager może stanowić o powodzeniu całego realizowanego projektu: może być przecież tak, że nawet dysponując najlepszymi dostępnymi specjalistami możemy „położyć” konkretne zlecenie tylko dlatego, że leżała organizacja pracy.

W małych społecznościach IT (dajmy na to – Rzeszów) dochodzi do sytuacji, w której specjaliści bardzo często zmieniają miejsce pracy – a pracodawcy wręcz biją się o każdego programistę.

Branża IT to sektor, który charakteryzuje się dość sporą rotacją osobową w firmach. W małych społecznościach IT (dajmy na to – Rzeszów) dochodzi do sytuacji, w której specjaliści bardzo często zmieniają miejsce pracy – a pracodawcy wręcz biją się o każdego programistę. Na porządku dziennym jest „wyławianie” ich w takich serwisach jak Linkedin i wysyłanie do nich zaproszeń z propozycją rozmowy o pracę. Wszystko zależy od aktualnego zapotrzebowania firm i trendów. Załóżmy, że konkretny software house przygotowuje się do ważnego projektu blockchainowego, jednak w tym momencie brakuje mu kilku ludzi. uwierzcie mi, że taka firma zrobi wszystko, aby ich pozyskać – choćby miało się to wiązać z „kradzieżą” pracownika i przydaniu im atrakcyjnych benefitów. Ogromna konkurencja na rynku oraz wysoko cenione umiejętności programistów powodują, że wokół software house’ów oraz innych firm IT tworzy się prawdziwy „rynek pracownika”.

W software house’ie znajdzie się więc miejsce nie tylko dla programistów, ale i marketingowców, którzy będą odpowiadać za pozyskiwanie klientów i kontakt z nimi. Testerzy odpowiadają natomiast za to, by kolejne iteracje tworzonego produktu po pierwsze były zgodne z wytycznymi, a po drugie – najprościej mówiąc żeby po prostu działały. Project manager zaś trzyma zespół pracujący nad produktem w ryzach, a HR-owcy pilnują grafików, rozliczeń i dbają o odpowiedni employer branding. To ostatnie przybiera na znaczeniu: skoro jest ogromna konkurencja w branży IT, sami pracownicy także muszą być przeświadczeni o tym, że pracują w dobrym dla siebie miejscu: nie tylko z punktu widzenia kwestii finansowych. Równie ważne są ścieżki kariery, rozwoju osobistego, benefity i atmosfera w pracy.

Software house oczami CEO. Jak zmieniły się takie przedsiębiorstwa na przestrzeni lat?

Zapytałem CEO zaprzyjaźnionego rzeszowskiego software house’u o to, jak zmienił się rynek w ostatnich latach. Łukasz Hostyński z Concise Software (firmy, której teksty m. in. o blockchainie możecie czytać na Antywebie) podzielił się z nami swoimi wiedzą oraz doświadczeniem w zakresie kierowania tego typu przedsiębiorstwem. Jak według niego zmienił się rynek tworzenia oprogramowania?

software house

Zmienił się bardzo i cały czas się zmienia, taka specyfika tej branży. Dynamika jest coraz większa, a cykle się zawężają (a może po prostu to ja się starzeję ;) ). Działając profesjonalnie od 18 lat na rynku IT brałem udział w tworzeniu wielu różnorodnych projektów, włączając w to pracę jako architekt / programista na początku mojej ścieżki kariery. Pamiętam jeszcze czasy, gdy królowały języki programowania niskiego poziomu i wiele narzędzi trzeba było budować od podstaw (gdyż po prostu ich brakowało), systemy operacyjne czy API, które teraz już nie istnieją, lub są w odwrocie – chociażby takie jak Symbian OS czy BREW.

Nie jest odkrywczym fakt, iż ten rynek ciągle się zmienia. Jakie są jednak nowe wyzwania w kontekście prowadzenia takiego biznesu?

Nowe wyzwania to w tym momencie przede wszystkim zapanowanie, oraz umiejętne zarządzanie oczekiwaniami klientów, którzy w nadmiarze nowoczesnych technologii, oraz możliwych integracji, błądzą trochę we mgle, próbując integrować, oraz rozbudowywać nadmiernie ich produkty. Nasza rola to optymalnie wyprowadzić ich z tej “mgły”, oraz – na ile możemy – ukierunkować na dobre tory, równocześnie odpowiadając na wymagania ich użytkowników.

Łukasz Hostyński, CEO Concise Software

Sytuację firm tworzących oprogramowanie najprościej jest zestawić z tym, jak bardzo zmienił się rynek technologiczny w ciągu ostatniej dekady. Łukasz wspomniał o odwrocie pewnych rozwiązań, co stanowi efekt głębokiej transformacji: na znaczeniu straciły mniej wszechstronne platformy mobilne ustępując miejsca obecnym hegemonom: iOS oraz Androidowi. W jej trakcie należało odpowiednio się do tego przygotować – również prowadzenie software house’u wymaga tego, by ciągle się uczyć, obserwować. Pozyskanie odpowiednich pracowników to nie koniec dobrych przygotowań, ważne jest także to, aby zbudować pożądaną „infrastrukturę” – zaczynając na organizacji pracy, a skończywszy na własnych, autorskich narzędziach, które pomagają we wdrożeniu tworzonych projektów.

Ale software house to nie tylko CEO, zarząd, kadra kierownicza. Wiele mówi się ostatnio o testerach – osobach, które nawet nie mając szerokich kompetencji programistycznych mogą otrzymać zatrudnienie w takim przedsiębiorstwie i zarabiać naprawdę dobre pieniądze – czyli partycypować w ciągłym rozwoju tej branży. Ścieżka dotarcia do momentu, w którym możliwe jest „zaciągnięcie się” to firmy zatrudniającej testerów nie jest jednak absolutnie łatwe: również wymaga to pewnych nakładów pracy oraz… pieniędzy. Testerzy inwestują w siebie czas oraz finanse celem osiągnięcia odpowiednich certyfikatów lub kompetencji w zakresie ewaluowania oprogramowania.

Słowo “tester” w każdej firmie może mieć inne znaczenie jeśli chodzi o zakres kompetencji do niego przypisanych.

Słowo “tester” w każdej firmie może mieć inne znaczenie jeśli chodzi o zakres kompetencji do niego przypisanych. Ale abstrahując od tego wydaje mi się – myśląc wysokopoziomowo – że docelowo zakres kompetencji testera nie zmienia się za szybko, ponieważ cały cykl testowania oprogramowania jak i elementy procesu testowego od lat wygląda podobnie. Mówiąc inaczej, tester ciągle musi umieć wykonać pewne zadania w swojej pracy i zadania te póki co nie zmienią się. Natomiast myśląc o kompetencjach niskopoziomowo, jako o narzędziach testowania, metodologiach i znajomości lub wiedzy o nowych technologiach, sytuacja odwraca się o 180 stopni. Zakres tych kompetencji się zmienia, lub może trafniej – rozszerza się, tak szybko jak szybko rozwija się branża IT, a tego już chyba nie trzeba komentować…

W zasadzie mówi się, że zostać testerem może każdy. W pewnym sensie to prawda, dlatego ja zapytałbym raczej jakie cechy trzeba posiadać, aby zostać dobrym testerem. Dociekliwość i dokładność to podstawa, które sprawią, że jakość testów będzie cały czas stała na wysokim poziomie i nie staną się one tylko kolejnymi zadaniami, które wykonuje się po linii najmniejszego oporu.

Według mnie również dość istotna jest tutaj umiejętność sprawnej komunikacji, oraz posiadanie chociaż minimalnej empatii, aby przekazywanie informacji pomagało tworzyć oprogramowanie bez opóźnień i nie rodziło ewentualnych konfliktów w zespole przy przekazywaniu błędów do programistów. Natomiast jeśli chodzi o pytanie co do kompetencji, to na pewno trzeba wiedzieć jak tworzyć dobrą dokumentację, oraz mieć podstawową wiedzę techniczną dotyczącą testowanego obszaru. Są to jednak elementy, których da się nauczyć i ewentualnie będą miały na początku wpływ na zakres obowiązków testera oraz prędkość jego kariery.

Rafał Grzenia – Software tester w Concise Software

software house

Ta wypowiedź obala właściwie pewien mit na temat software house’ów – właściwie nawet dwa. Po pierwsze, testerzy to nie są „przypadkowe osoby”, które zajmują się „jakimś tam” testowaniem oprogramowania. Z tym również związane są pewne procedury wymagające od pracownika uwagi, dokładności oraz dociekliwości. Oprócz wyuczonych schematów ważne są kompetencje miękkie. Tester cały czas współpracuje z zespołem programistów, a zatem musi mieć pewne zdolności komunikacyjne: od tego jak przedstawi niedomagania testowanego obiektu zależy to, czy uda się rozwiązać konkretny problem. Jeżeli komunikacja w teamie kuleje, albo nie uda się w ogóle zlikwidować usterki, albo zostanie to uzyskane z opóźnieniem.

Tester cały czas współpracuje z zespołem programistów, a zatem musi mieć pewne zdolności komunikacyjne: od tego jak przedstawi niedomagania testowanego obiektu zależy to, czy uda się rozwiązać konkretny problem.

Po drugie – zostanie testerem nie jest łatwe. Praca jako tester również nie należy do najprostszych na świecie. Posiadanie umiejętności to jedno, ale chęci – również w zakresie uczenia się nowych rzeczy to już drugie – wszystko to zaś wymaga naprawdę sporego samozaparcia. I choć testerem może zostać praktycznie każdy, wiele osób rezygnuje z takiej ścieżki kariery. Ci, którzy chcą się nauczyć czegoś nowego, ale nie są do końca pewni swojej decyzji szybko zauważają, że od pierwszych pobranych lekcji w kierunku testowania oprogramowania do otrzymania pierwszej oferty pracy jest całkiem długa i wyboista droga.

Firmowi liderzy. Czym zajmują się osoby kierujące swoimi zespołami?

W dobrze zorganizowanym software house’ie istnieje mocny podział (choć nie wpływa on na „blichtr i splendor” danego pracownika) w kontekście liderów. Jeżeli coś się sypie – wiesz do kogo się zwrócić. Wiadomo kogo trzeba posłuchać, kto wydaje polecenia i czuwa nad tym, by zadowolony był i zespół i ostatecznie klient, który oczekuje doskonale działającego produktu przy okazji najniższej możliwej ceny i najkrótszego czasu wymaganego na jego stworzenie. Lider teamu to osoba, która nie tylko doskonale czuje się w zagadnieniach programistycznych, ale ma również szereg dodatkowych kompetencji:

Pierwszym podstawowym i najważniejszym obowiązkiem bardzo dobrego lidera jest dbanie o zespół a nie o siebie! Sukces dziel z zespołem a porażkę bierz na siebie! Ważnymi cechami którymi musi się legitymować dobry leader jest szczerość i otwartość dla członków zespołu. Uczciwy leader zyskuje zaufanie i szacunek zespołu dzięki temu, że innych traktuje tak jak sam chce być traktowany. W przejrzysty, jednoznaczny i zrozumiały sposób musi komunikować się z zespołem zarówno werbalnie jak i pisemnie.

Choć Marek jest jednocześnie i programistą i liderem zespołu iOS-owego, nie zapomina o miękkich kompetencjach, typowych dla jakiegokolwiek przywódcy. Jakie kolejne obowiązki spoczywają na osobie wyznaczonej jako „najważniejszą głowę zespołu”?

Skuteczny lider jest przekonany o własnych umiejętnościach oraz przekonany o umiejętnościach członków swojego zespołu, które to przekładają się na podejmowanie decyzji wpływając tym samym na cały zespół. (…) Dobry lider zespołu szanuje członków zespołu. Wspiera i zachęca do kreatywnego myślenia, wyrażania swoich pomysłów i własnych decyzji które ich dotyczą. Zachęca również zespół do samokrytyki zarówno w zakresie umiejętności, samorozwoju oraz nie wykluczając organizacji pracy wewnątrz zespołowej czy nawet całej organizacji w rozumieniu firmy w której pracują, tworzą i rozwijają ją tym samym. Takie podejście owocuje nie możliwym do oszacowania wkładem w rozwój miejsca w którym wszyscy pracujemy, co dalej przekłada się na coraz to efektywniejszą realizacje powierzonych zadań wykorzystując tym samym najnowsze nowinki ze świata IT.

W zespołach zdarzają się także konflikty. Z tymi lider również musi dawać sobie radę:

Kolejnym i bardzo ważnym atrybutem skutecznego lidera jest umiejętność pomagania członkom zespołu w zrozumieniu powierzonych im zadań i celów. Dobry lider pomaga w zorganizowaniu skutecznego planu działania potrzebnego do realizacji wspomnianego celu i zadania. Dobrej jakości lider musi być bardzo dobrym negocjatorem aby skutecznie wyegzekwować realizacje powierzonych zadań i dostarczyć wysokiej jakości produkt. Skuteczna umiejętność negocjacji przydaje się również do gładkiego i polubownego rozwiązywania konfliktów czy to wewnątrz zespołu czy na wyższej warstwie organizacyjnej.

Marek Wrzosowski, iOS Software Engineering Manager w Concise Software

Skąd wziąć klientów dla software house’u? Czyli dlaczego „marketingowcy” są ważni dla takich przedsiębiorstw

Klienta należy pozyskać, udowodnić mu, że nasze usługi są mu potrzebne, skłonić go do współpracy i w tej współpracy trzeba go utrzymać. Za to odpowiada nieco inny zespół, ściśle współpracujący z zarządem / kierownictwem, realizujący zadania, które napływają głównie z góry. To właśnie ludzie związani z marketingiem w firmie są odpowiedzialni za to, by znalazł się ktoś, kto postanowi skorzystać z usług software house’u.

Sprzedaż usług w Software House to zupełnie inna bajka. W większości branż sprzedajesz tzw. pudełko, czyli gotowy produkt lub usługę, do której dział marketingu przygotował Ci wszystkie potrzebne materiały. Zapewne masz też listę 1000 możliwych pytań czy obiekcji ze strony klienta, na które odpowiesz 3-4 niepodważalnymi kontrargumentami.

Wcześniej pracowałem w dużej firmie z branży HR, gdzie sprzedawałem gotowy produkt. Jedynym moim zadaniem było powielenie poprzedniego procesu sprzedażowego. I tak w kółko. Po pewnym czasie to zaczyna robić się nudne. W SH jest inaczej. Mało kiedy pojawia się klient, który chce drugi raz to samo. Dla przykładu: kilka miesięcy temu pojawiła się u nas firma, która chciała przeprowadzić proces ICO (Initial Coin Offering). Po jakimś czasie zakończyliśmy cały projekt sukcesem. Niedawno pojawił się kolejny klient z tą samą potrzebą – przeprowadzenia ICO. Kiedy zagłębiliśmy się w szczegóły, okazało się, że nie będzie możliwe powielenie dobrych praktych z poprzedniego ICO, trzeba przygotować wszystko na nowo. Podsumowując, sprzedaż w SH zupełnie różni się od sprzedaży gotowego produktu czy usługi. To właśnie daje mi mega kopa i sprawia, że chce mi się codziennie wstawać i przychodzić do pracy, gdzie czekają na mnie nowe wyzwania!

Jakub Putyło – Head of Growth w Concise Software

Software house’owa sielanka

Dla osoby postronnej może tak to wyglądać. Software house to w przeważającej większości miejsca fascynujące w kontekście pracy samej w sobie. Oczywiście – każdy ma przydzielane obowiązki, ale nikt nie ma pretensji do kolegów, którzy aktualnie nie mogą już dalej zajmować się „kodem” i zwyczajnie chcą trochę odsapnąć. Nie jest więc dziwnym widokiem pokoik, w którym programiści i członkowie innych zespołów grają na konsoli, podsypiają w fotelach wypełnionymi styropianem, albo grają w piłkę na korytarzu. Liderzy zespołów dobrze wiedzą, że praca kreatywna jest niesamowicie ciężka i czasami trzeba się powygłupiać – między innymi po to, aby zacieśnić więzi wewnątrz struktury pracowniczej.

Na porządku dziennym są więc wyjazdy i wyjścia integracyjne „na miasto”, wspólne realizowanie popularnych pasji, wewnętrzne hackathony, na których można zrobić coś obok aktualnie prowadzonych projektów. Dołóżmy do tego atrakcyjne zarobki i wspomniany wyżej „rynek pracownika”, gdzie dba się o to, „by stan osobowy się zgadzał” i także o zadowolenie członków zespołów.

software house

Ciemna strona software house’ów. Czy taka istnieje?

Ze swoimi poszukiwaniami przeniosłem się do Warszawy, gdzie korespondencyjnie skontaktowałem się ze znajomymi działającymi w branży. Tych intencjonalnie zapytałem o to, co im się zwyczajnie nie podoba w ich firmach. Obok „wywalonych deployów”, zostawania po godzinach wskazywali najczęściej na osoby, które zostają liderami „z przypadku”.

Wyobraź sobie że na stanowisko lidera projektu zostaje wyznaczony człowiek, który nic w życiu nie potrafi. Czegoś się nauczył a cała reszta to jego trudny charakter. Do stolicy przyjeżdża z małej miejscowości i nie pozbył się małomiasteczkowej mentalności. Z takimi osobami pracuje się najciężej, zdarzają się donosy „do góry” i wspinanie się po drabince po trupach. Czym większy jest nacisk na współzawodnictwo, tym więcej jest takich przypadków. Niestety, ale nawet najlepszą firmę są w stanie zepsuć nieodpowiedni ludzie na nieodpowiednich miejscach.

Absolutnie nikt nie skarżył się na nawały obowiązków, na wymagających przełożonych – wszystko kręciło się wokół kolegów lub koleżanek, którzy zyskiwali nowe kompetencje i możliwości, czasami nieco niesprawiedliwie. To zaś powodowało pewne patologie w grupach pracowniczych – koledzy zostali odstawiani na boczny tor – liczył się tylko sukces i coraz lepszy wynik. Pracownicy decydowali się na odejścia i konfliktowe koło się zamykało.

Ogólny wizerunek software house’u w oczach ludzi, z którymi się spotkałem, z którymi miałem okazję porozmawiać jest jednak bardzo dobry – niezależnie od miejsca. Oczywiście, nie jest on jednolity dla każdego przedsiębiorstwa – niektóre elementy zauważone przeze mnie będą różnić się od tych obowiązujących w innych firmach. Pewne jest jednak to, że nie dość, że są to ciekawe miejsca do realizowania się zawodowo, to jeszcze można w nich zarobić niezłe pieniądze – nawet, jeżeli nie potraficie programować.