W dzisiejszym tekście skrótowo opiszemy sobie rodzaje firm zajmujących się programowaniem, a przy okazji odniosę się do jednej cechy takich firm jak choćby Wilda Software, która niezmiernie mnie zawsze cieszy, gdy o niej myślę (ta cecha, ale też i firma). I nie tylko mnie - na tę charakteryczną rzecz zwracają uwagę też np. osoby zajmujące się consultingiem dla różnych branż czy specjaliści oferujący opracowywanie strategii marketingowych.
Firmy programistyczne możemy podzielić na kilka głównych kategorii:
- zajmujące się konkretną aplikacją lub ich zbiorem,
- tworzące i oferujące różne oprogramowanie na rynek,
- software house'y tworzące dla klientów z różnych dziedzin,
- software house'y specjalizujące się w konkretnej branży,
- tworzące małe projekty, nierzadko powiązane z działaniami okołomarketingowymi,
- wdrażające i dostosowujące konkretne oprogramowanie (partnerzy technologiczni, autoryzowane serwisy, dystrybutorzy),
- świadczące usługi bodyleasingowe.
Poniżej omówimy sobie każdy z tych rodzajów, przedstawiając bardzo ogólny profil działalności i przykłady tam, gdzie jest to możliwe. Nie będzie to szczegółowa analiza, a raczej uświadomienie osobom spoza branży, że firma programistyczna nie musi być równa innej pozornie tożsamej firmie. Warto zauważyć, że artykuł traktuje o podmiotach oferujących tworzenie lub rozwój oprogramowania - to zawężony obszar w stosunku do ogólnie firm IT, które mogą uwzględniać np. usługi sprzętowe, administracyjne, serwisowe itd. Nie dzielimy tutaj też realizatorów ze względu na rozmiar - wiadomo, że firma mająca 15+ będzie różniła się możliwościami i ceną od takiej posiadającej 60+ specjalistów, a ta z kolei nie będzie mogła być przyrównywana do molocha z setkami czy tysiącami osób.
Należy też pamiętać, że przedstawiony podział nie jest sztywny - wiele spółek łączy cechy pochodzące z kilku obszarów działalności. To oznacza, że nie trzeba zakładać z góry, że wybrana przez nas firma czegoś nie zrobi - warto zapytać, gdyż często może się okazać, że wykonawca może dla nas przygotować dodatkową ofertę lub wskazać zaprzyjaźnionych partnerów, którzy mogą nam pomóc.
Startupy
Rozdziały będę nazywał nieco inaczej niż powyższe punkty i często troszeczkę "clickbaitowo", ale chodzi o to, aby w treściwy sposób nazwać poszczególne typy firm. Mam nadzieję, że mi wybaczycie.
Na pierwszy ogień idą firmy zajmujące się konkretną aplikacją lub ewentualnie całymi systemami wiążącymi wiele programów. Często są to startupy, tzn. innowacyjne firmy, które wyrosły właśnie z chęci wprowadzenia czegoś swojego, zyskały na to budżet (czasami w postaci dofinansowania) i probują podbić kawałek świata. Jak wiemy, jest to trudna sztuka i szacuje się, że znakomita większość (nawet 90%) takich przedsięwzięć po prostu upada, jednak te, którym się udaje, skupiają się później na utrzymaniu i rozwoju takiej aplikacji. Czasem takie firmy stają się naprawdę duże i każdy z nas zna przykłady - Spotify, Netflix, nasz rodzimy XTB czy nawet Google (jako gigant mający pod sobą stowarzyszone ze sobą usługi) to jedne z pierwszych przedsiębiorstw, które każdemu przychodzą do głowy. Ale, oczywiście, samo określenie "startup" najczęściej kojarzy się z małymi zespołami, które w pocie czoła próbują zawładnąć ludzkością ze swojego garażu w Dolinie Krzemowej.
Czasem firmy innego typu również wprowadzają swoje aplikacje na rynek (jak np. my robimy z Feedybackym), ale działa to też w drugą stronę - startupy, które orientują się, że los ich przedsięwzięcia jest bardziej niepewny niż myśleli, mogą zdecydować się na przyjmowanie dodatkowych zleceń od klientów.
Specyfiką pracy w takiej organizacji jest to, że pracownik zajmuje się stricte jedną aplikacją lub nawet konkretnym komponentem całego ekosystemu. To sprawia, że jest w nim całkowicie "zanurzony", przywiązuje się do swojego obszaru i staje się w nim specjalistą, nierzadko śledząc też pozatechniczne aspekty tego, co robi, a nawet będąc swoistym ambasadorem swojego dzieła. Wadą dla niektórych może być to, że pracując przez wiele lat nad jedną aplikacją, taka osoba może się wypalić, "zastać" w danej technologii i zwyczajnie znudzić, choć to zdarza się także w innego rodzaju spółkach. W tego typu firmach mamy też więcej osób zajmujących się kwestiami biznesowymi, marketingowymi itd. - w końcu starają się sprzedać coś na rynek, więc potrzebny jest np. product manager.
Producenci
Nazwa dość dziwna w tym kontekście, gdyż kojarzy się z firmami wytwarzającymi fizyczne dobra. Tym niemniej, trudno tutaj o lepszy termin.
Jest to rozwinięcie poprzedniego punktu, często zresztą zaczynające się od niego i dotyczące firm, które zostały pozytywnie przyjęte na rynku, w związku z czym planują dalszą ekspansję, uruchamiając kolejne usługi lub patronując zewnętrznym aplikacjom. Mogą to być firmy działające w konkretnym segmencie (jak np. Autodesk z narzędziami dla projektantów), ale często ten punkt kojarzy się ze znacznie szerszym zakresem. Tutaj od razu narzuca się Microsoft, który oprócz Windowsa ma w swoim portfolio chociażby Office'a, programy do modelowania, systemy zarządzania bazami danych, wyszukiwarki, przeglądarki, komunikatory, ale też choćby gry.
I właśnie producenci gier mogą być kolejnym dobrym, a nawet lepszym przykładem firm z tego obszaru, gdyż te większe wydają wiele tytułów, czasem pracując równocześnie nad kilkoma i celują w większy segment rynku, zyskując zainteresowanie graczy, a więc klientów. Oczywiście, branża rozrywki elektronicznej już dawno przestała być romantyczna i z czasem stała się po prostu biznesem, często (choć, na szczęście, nie zawsze) nastawionym wyłącznie na zysk, stosując brutalne prawa rynku, o czym co jakiś czas się boleśnie przekonujemy, czytając o przejęciach lub zamknięciu kolejnych studiów.
Wróćmy jednak do pozytywnej strony takich firm - łączą one zalety startupów oraz software house'ów (do których zaraz przejdziemy) z tego względu, że pracując w nich specjaliści mogą poruszać się pomiędzy projektami (oczywiście, w zależności od ustaleń i potrzeb), a jednocześnie mają poczucie, że robią coś, co jest wykorzystywane przez wiele osób. Z drugiej strony, opieranie działalności firmy na proponowaniu swoich produktów rynkowi jest ryzykowne - wymaga doskonałego marketingu, renomy, świetnej analizy biznesowej lub łutu szczęścia. Przypomina to trochę branżę filmową, muzyczną czy literacką.
Software house'y
Dochodzimy do obiecanego we wstępie fragmentu, w którym opowiemy trochę o takich firmach, jak nasza, czyli Wilda Software. Software house'y to firmy, które żyją głównie ze zleceń klientów i tworzą oprogramowanie na zamówienie. To nie oznacza, że nie mogą oferować rynkowi swoich produktów, ale zdecydowanie częściej mamy tutaj do czynienia ze zdobywaniem zaufania w segmencie B2B (rzadziej B2C), spersonalizowaną analizą wymagań oraz architektury, a także niekiedy dostosowania swojej technologii do potrzeb danego projektu. Krótko mówiąc, takie firmy mają wiedzę i środki, aby stworzyć oprogramowanie marzeń klienta, gdzie to ten ostatni jest pomysłodawcą. Jest to usługa bardzo podobna do tych znanych z innych branż - nie należy obawiać się kontaktu z software housem - rozmowa nic nie kosztuje, a tam też pracują ludzie :)
Największa zaleta pracowania w firmie o takim profilu to różnorodność projektów. Muszę Wam się przyznać, że w czasie mojej praktyki programistycznej, dzięki funkcjonowaniu w software housie mogłem dowiedzieć się wielu rzeczy o:
- serwisowaniu i odczycie danych urządzeń drukujących,
- procesie produkcyjnym elementów metalowych, szyb hartowanych, artykułów papierniczych, rur kanalizacyjnych,
- branży reklamowej i kulisach działalności kierownictwa bardzo dużych firm,
- rekrutacji i zagranicznym rynku pracowników,
- formach podpisywania umów,
- zwyczajach japońskiej pomocy technicznej,
- lekcjach jeździectwa,
- moczniku,
- przygotowywaniu długotrwałych i obciążających zasoby renderów 3D,
- domofonach,
- klubach sportowych,
- branży kosmetycznej,
- branży kolekcjonerskiej,
- kontrolerach do gier.
A to zaledwie skrawek obszarów, o których ja bądź moje koleżanki i koledzy mieli okazję porozmawiać lub realizować na przestrzeni wielu lat. Tworząc lub analizując oprogramowanie dla różnych branż, człowiek musi choć w podstawowym stopniu poznać terminologię, którą operuje klient, poczytać o fundamentach działania branży, poznać różne wzory i ogólnie zainteresować się domeną klienta. To nie oznacza, że musimy stać się specjalistami np. w produkcji kolorymetrów i klienci też tego nie oczekują. Ale pragnąc lepiej zrozumieć środowisko, w którym będziemy się obracać, należy choć trochę je zrozumieć, co zresztą często dzieje się samoistnie, podczas realizacji.
Tego typu doświadczenia mają też między innymi wcześniej wspomniane firmy consultingowe czy agencje marketingowe - mamy tutaj do czynienia z bardzo dużą różnorodnością i przekrojem branż, dzięki czemu rzadko dotyka nas nuda, a i człowiek może sie dowiedzieć czegoś nowego. Różne osoby w firmie pracują nad różnymi projektami, wymieniają się doświadczeniami i sprawiają, że wokół jest ciekawiej. Można też swobodniej przechodzić z jednego przedsięwzięcia do drugiego, co ma zresztą miejsce w przypadku zintensyfikowania prac nad danym projektem w momencie, kiedy jest to potrzebne. Dodatkowo, nierzadko konkretne aplikacje wymagają specyficznego podejścia bądź technologii, co też wymusza rozwój w postaci poznawania narzędzi spoza stosu technologicznego firmy. W startupach też to ma miejsce i dodatkowo jest tam więcej miejsca na eksperymenty, ale jednak w software house'ach motywacja bywa większa z uwagi na chęć współpracy ze zleceniodawcą.
Co więcej, nic (poza czasem) nie stoi na przeszkodzie, aby software house rozwijał także swoją odnogę produktową, proponując pewne rozwiązania "od siebie" - w naszym przypadku jest to wspomniany już Feedybacky, a także ComMan. Jednak, w przeciwieństwie do wcześniej opisywanych typów firm, tutaj nie ma na to nacisku - jest to dodatkowy kierunek, którym można podążać, ale nie coś, od czego zależy istnienie spółki. Priorytetem są zlecenia od klientów.
Wady? Oczywiście, też można je znaleźć. Należy pamiętać, że duża różnorodność i rozpiętość klientów sprawia, iż programiści mniej utożsamiają się z danym projektem. To niekoniecznie musi być słabość, ale nie wszystkim pracownikom IT to pasuje - trzeba to uszanować, gdyż są osoby, które lepiej czują się w środowisku startupowym, jak i takie, które prędzej odnajdą się w firmie "żyjącej" ze zleceniodawców. Należy też pamiętać, że atmosfera w obu typach firm jest inna - o ile w startupach czy u producentów następuje większa kumulacja "wizjonerstwa" (w pozytywnym aspekcie) i skupienia na jednym lub kilku aplikacjach, tak w software house'ach rozwój jest bardziej wszechstronny, choć ukierunkowany w celu zarządzania dobrem firmy, a nie tylko produktu.
"Dedykowane" software house'y
Pewną odmianę software house'ów stanowią takie, które skupiają się na konkretnej gałęzi przemysłu czy usług lub nawet konkretnych typach projektów. Istnieją firmy specjalizujące się np. w aplikacjach dla branży hotelowej, mieszkaniowej, prawniczej lub sportowej. Wielu z nas dobrze też kojarzy firmy wspomagające swoimi usługami placówki edukacyjne. Coraz częściej też na rynku ujawniają się zespoły specjalizujące się w automatyzacji procesów (mimo że tak naprawdę może to oznaczać tworzenie "zwykłych" aplikacji wspomagających pracę firm), a także w sztucznej inteligencji.
Co to oznacza? To, że takie firmy IT często posiadają osoby będące bliżej deklarowanej specjalizacji, nierzadko wręcz jej przedstawicieli (np. prawników, hotelarzy), którzy swoim zrozumieniem domeny biznesowej mogą jeszcze bardziej pomóc klientom o konkretnym profilu. Tutaj trzeba pamiętać, że to, co jest oczywistą zaletą (czyli ukierunkowanie software house'u na dany temat niosące potencjalnie większą skuteczność), może też być wadą - jeśli w jakiejś branży jest zastój, to i firmy ją obsługujące mają problemy, o czym czasami, niestety, przekonują się podwykonawcy z przeróżnych branż produkcyjnych. Dodatkowo, czasem spojrzenie na sprawę firmy zupełnie z "innej bajki", niedziałającej na co dzień w danej branży, może pomóc w zaplanowaniu zupełnie nierozważanych, ale potrzebnych zmian. Pamiętajcie zresztą, że swój wymarzony pomysł na projekt IT warto konsultować z kilkoma firmami, aby poznać różne perspektywy.
Prawda jest taka, że każdy software house, nawet jeśli świadczy swoje usługi firmom w różnych branżach, ma swoje obszary, w których specjalizuje się z racji swojej historii oraz posiadanej załogi. W naszym przypadku są to głównie większe systemy wewnętrzne, mające optymalizować i wspomagać pracę pracowników konkretnej spółki, zarządzanie zakładami produkcyjno-usługowymi, a także zasobami uczelni wyższych. Jednak, jak już pisałem wyżej, obsługiwaliśmy i nadal obsługujemy bardzo różne projekty, nierzadko o profilu kompletnie odbiegającym od tych z poprzedniego zdania.
Agencje interaktywne
Teraz wejdziemy na trochę inną ścieżkę. Wyżej wspominałem o systemach wewnętrznych, które są naszą domeną, ale dobrze wiemy, że praktycznie każda działalność potrzebuje (i to co najmniej jedną) publiczną stronę, na której może przedstawić swoją ofertę, zaprezentować się i zachęcić do kontaktu. Krótko mówiąc, na rynku potrzebni są wykonawcy realizujący strony o charakterze marketingowym, landing page, a także różne witryny e-commerce. Tutaj dochodzimy między innymi (bo, oczywiście, nie tylko one się tym zajmują) do agencji interaktywnych.
Są to firmy (zwykle mniejsze, ale niekoniecznie), które mogą skupić się na tego typu platformach także dlatego, że poza specjalistami IT posiadają osoby zajmujące się na co dzień marketingiem, PR-em, pozycjonowaniem i innymi kwestiami, które są nierozerwalnie związane z oprogramowaniem, ale niekoniecznie mieszczą się w technicznej dziedzinie. Z perspektywy programistycznej można bardzo stereotypowo powiedzieć, że tego typu firmy tworzą strony dużo ładniejsze, skupiają się na frontendzie i przygotowaniu pod marketing, ale zwykle są to mniejsze, krócej trwające zlecenia. Jasne, że nie musi być to prawda, a tak samo, jak "zwykły" software house poradzi sobie z landing pagem, tak agencja interaktywna może zgromadzić zasoby wymagane do uruchomienia ogromnej platformy newsowej czy społecznościowej.
W tym segmencie często działają też freelancerzy, czyli pojedyncze osoby będące wolnymi strzelcami, którzy pracują na własny rachunek i świadczą usługi programistyczne. Z racji bycia takim samotnym wilkiem, nie mają takich możliwości, jak cały zespół, ale jak najbardziej mogą pomóc przy zaplanowaniu i przynajmniej częściowej realizacji infrastruktury aplikacyjnej mniejszego biznesu. Nierzadko też takie osoby (a przynajmniej tak wynika z mojego doświadczenia) mogą pomóc w zaprojektowaniu działań bardziej marketingowych, choć to zależy już od konkretnego przypadku.
Autoryzowani partnerzy
Na pewno kojarzycie firmy, które jak najbardziej świadczą usługi programistyczne, ale przede wszystkim skupiają się na wdrażaniu i dostosowywaniu konkretnego oprogramowania lub systemów jakiejś firmy. Taki model jest często spotykany w firmach IT związanych ze sprzętem, które są autoryzowanym partnerem i serwisem np. danej marki drukarek. Jednak w branży programistycznej również to działa - pierwszym przykładem, który przychodzi na myśl, to Comarch, ich pakiet Optima i wiele firm, które "namaszczone" przez krakowską korporację świadczą usługi wdrożeniowe oraz konsultingowe w tym zakresie. Podobnie rzecz się ma z firmami dostosowującymi Microsoft Dynamics NAV, SAPem. Istniejąteż np. firmy będące certyfikowanymi partnerami Microsoftu i tutaj od razu nasuwa mi się CodeTwo, które wielu z nas doskonale kojarzy z sympatycznego kanału na YouTube o nazwie "HRejterzy".
Body leasing
Jakby nie patrzeć, software house'y to grupy najemników - można wynająć część ich zasobów do stworzenia upragnionego oprogramowania. Można też pomyśleć o tym, jak o "wyjęciu" programistów do swojego zespołu, zwłaszcza, jeśli klient już ma swoich specjalistów tworzących oprogramowanie i pion kierowniczy, tylko zwyczajnie brakuje im ludzi na pewien okres. Czy jest to możliwe? Ależ, oczywiście.
Taka usługa nazywa się "body leasing" i choć brzmi, jak określenie z fantastyki, horroru czy działalności przestępczej (a może to już wpływ mojego umysłu zwichrowanego rozmaitą literaturą kryminalną), to jest jak najbardziej normalnym biznesem, w którym można wynająć programistów "na godziny", w celu zwiększenia swojej mocy sprawczej. Oczywiście, w tym przypadku te godziny należy raczej rozumieć jako tygodnie lub miesiące, natomiast co do zasady działa to tak, jak np. uruchomienie większej liczby serwerów w chmurze podczas większego obciążenia serwisu.
Ten tryb działania software house'u różni się od wcześniej omawianego kilkoma aspektami:
- programiści pracują nie w stałym zespole firmy, tylko bezpośrednio dla swojego klienta, z nowymi kolegami i koleżankami,
- kierownictwo projektu zlokalizowane jest u klienta, a nie w software housie (choć, oczywiście, ten ma pewną kontrolę nad swoimi podopiecznymi i samym przedsięwzięciem),
- programiści zazwyczaj mają jeszcze szersze horyzonty technologiczne, zważywszy na różne potrzeby klientów.
Bywa tak, że "normalne" firmy IT, oprócz standardowych usług, dopuszczają body leasing jako jedną z form usługowych, ale są też na rynku spółki, które działają tylko w taki sposób.
Podsumowanie
Jeśli chcesz wynająć firmę programistyczną do urzeczywistnienia swojej wizji oprogramowania, to oprócz tego, że bardzo się z tego cieszymy (i zapraszamy do kontaktu), to zwracamy uwagę, że w przestrzeni firm IT istnieją ich różne rodzaje. Podobnie, jak z lekarzami, do innej firmy pójdziemy z potrzebą ogromnego systemu dla milionów osób, gdzie indziej w celu zaplanowania procesu marketingowego wspieranego przez narzędzia IT, a jeszcze gdzieś indziej, gdy szukamy narzędzia dla siebie.
Należy też pamiętać, że w przeważającej większości firm konsultacja nic nie kosztuje - warto rozmawiać z wieloma dostawcami w celu wybrania najlepszego i zapoznania się z różnymi spostrzeżeniami oraz strategiami rozwiązania naszego problemu biznesowego.
Pozdrawiam i dziękuję - Jakub Rojek.