Każdego dnia na całym świecie efektem pracy milionów programistów powstają nowe aplikacje. Aplikacje spełniające różne funkcjonalności. Jedne mniej, inne bardziej złożone – od prostych stron internetowych po rozbudowane, realizujące skomplikowane procesy biznesowe.
Za powstanie większości z nich, zwłaszcza tych bardziej zaawansowanych odpowiadają specjalistyczne firmy, określane mianem software house. Czym są tego typu podmioty, kto je tworzy, jak funkcjonują – o tym poniżej.
Istnienie firm typu software house było niemal od zawsze naturalnym elementem świata, w którym komputery i technologie elektroniczne przyczyniały się do usprawniania otaczającej nas rzeczywistości. Definiując pojęcie software house w jego ogólnym zarysie – firma zajmująca się tworzeniem oprogramowania – można przyjąć, że pierwszym software house’em była firma Computer Usage Company istniejąca w latach: 1955‒1986. Firma realizowała główne projekty z dziedziny tworzenia oprogramowania na terenie Stanów Zjednoczonych. Zakres realizowanych zleceń i sposób funkcjonowania tego typu przedsiębiorstw znacząco ewoluował na przestrzeni lat. Jak wyglądają dzisiaj firmy wyspecjalizowane w tworzeniu oprogramowania?
Czym się zajmuje software house?
Jeśli chodzi o projekty realizowane przez software house, ich zakres jest naturalną odpowiedzią na zapotrzebowanie rynku – od prostych stron opartych na systemach zarządzania treścią takich jak CMS WordPress, przez systemy CRM, systemy rezerwacji biletów, realizacji transakcji elektronicznych, a kończąc na rozbudowanych aplikacjach mobilnych. Wspomniane przykłady to tylko część realizowanych projektów – specyfikę zadań określają oczekiwania klientów. Oczywiście o wiele częściej obszarem działalności tego typu podmiotów są projekty złożone, wymagające odpowiedniego podejścia i zrozumienia procesów biznesowych klienta.
Kto jest kim
Jeśli chodzi o strukturę organizacyjną tego typu przedsiębiorstw, nie jest ona identyczna w przypadku wszystkich firm. Determinuje ją głównie skalą prowadzonej działalności. Tak jak w każdej firmie, ktoś jest szefem kogoś, kto z kolei jest szefem kogoś innego. Chcąc znaleźć jakiś uniwersalny model, będzie on sytuował na szczycie struktury organizacyjnej dyrektora software house-u (CEO – z ang. Chief Executive Officer). Jego prawą ręką często jest tzw. Dyrektor ds. Operacyjnych. Niższe szczeble w strukturze organizacji firmy zajmują tzw. Liderzy kierujący zespołami, w których odbywa się właściwa praca nad rozwojem oprogramowania. Owe zespoły różnią się zakresem obowiązków wg kwalifikacji i specjalizacji ich członków.
W modelowym ujęciu często spotyka się trzy rodzaje zespołów odpowiedzialnych za następujące obszary:
- rozwój biznesu – dział odpowiedzialny za wyznaczanie kierunków rozwoju firmy w oparciu o ocenę sytuacji rynkowej, wypracowywanie modelu biznesowego.
- rozwój oprogramowania – dział, w którym nad rozwojem aplikacji pracują programiści i graficy. Jest to komórka, która wykonuje właściwą pracę związaną z kodowaniem i wizualną warstwą tworzonego oprogramowania.
- testowanie – dział zajmujący się sprawdzaniem, wychwytywaniem błędów w obrębie tworzonego oprogramowania oraz wskazywaniem kierunków usprawniania tworzonego kodu.
Oczywiście, jak w każdej nowoczesnej firmie, występują działy odpowiedzialne za inne obszary biznesowe, takie jak PR, marketing lub sprzedaż.
Metodyczne zaplecze software house’ów
Praca w software house’ach odbywa się w ramach projektów. Obecnie najczęściej spotykaną metodyka jest Agile, jednak są pewne firmy, które trwają nadal przy modelu kaskadowym. Jeśli chodzi o te software house’y, które wykorzystują Agile, czerpią one korzyści ze stosowania Scrum lub koncepcji Extreme Programming. Bez względu na stosowane podejście do zarządzania projektem, praca software house’ów zawsze obejmuje trzy zasadnicze etapy:
- projektowanie
- kodowanie
- testowanie
W rzeczywistości wszystkie 3 etapy tworzenia oprogramowania stale się przenikają
i występują w ścisłym związku podczas całego cyklu rozwoju produktu. Dotyczy to przede wszystkim tych projektów, które są realizowane w ramach metody Agile.
Software house czy freelancer?
Często klienci zastanawiają się, do kogo powinni się zwrócić z realizacją swojego zlecenia. Odpowiedź w tym wypadku jest w miarę prosta i logiczna – zależy to głównie od stopnia złożoności projektu. Choć nierzadko się zdarza, że software house tworzy wyglądający na nieskomplikowany, sklep internetowy na WooCommerce, co mogłoby się wydawać, jest idealnym zleceniem dla freelancera. Pamiętajmy jednak, że software house jest poniekąd gwarancją realizacji ściśle ustalonych wymagań biznesowych. Stąd często klienci zlecający aplikacje biznesowe chcą mieć pewność co do profesjonalizmu świadczonych usług.