Który wybór jest właściwy?
Outsourcing software development vs hiring a dev team
Gdy twoja działalność rozwija się, będziesz potrzebować dopasowanego oprogramowania. Czy powinieneś zatrudnić zespół deweloperów czy zlecić projekt na zewnątrz?
Każda firma używa oprogramowania w swojej codziennej działalności, niezależnie od charakteru biznesu. Każda z firm jest unikalna na swój sposób i działa inaczej, stając się bardziej wyróżnialną, gdy wielkość działalności, liczba pracowników i udział w rynku rośnie.
Więc, gdy twoje workflow staje się cięższe i bardziej skomplikowane, jakie oprogramowanie powinieneś użyć? Czy powinieneś opracować dopasowane rozwiązanie dla swoich szczególnych potrzeb? Jeśli tak, czy powinieneś zatrudnić zespół deweloperów, czy zlecić proces rozwoju firmie zewnętrznej? Odpowiedź zależy od twoich potrzeb i charakteru twojego biznesu.

Oprogramowanie gotowe
Na każdy pospolity problem lub workflow istnieje wiele gotowych produktów na rynku. W zależności od twojej sytuacji, produkty, które potrzebujesz, mogą być rozwijane aktywnie od wielu lat. Każdy produkt koncentruje się na określonym polu, więc prawdopodobnie będziesz potrzebować użyć kombinacji produktów.
Są dwa przypadki, w których powinieneś używać gotowego produktu w swojej działalności.
Ogólne potrzeby wewnętrzne
Każda firma musi używać oprogramowania do prowadzenia swoich codziennych operacji. W większości przypadków firmy używają oprogramowania wyłącznie do swoich wewnętrznych operacji i zarządzania, a ich produkty lub usługi nie mają nic wspólnego z oprogramowaniem.
Na przykład firma produkcyjna musi użyć rozwiązania do zarządzania swoim magazynem. Ostatecznym produktem, który oferują, jest fizyczny towar, który produkują, niezależnie od tego, jak kluczowe lub niezbędne ich wewnętrzne oprogramowanie może być. Tak długo, jak działają skutecznie, ich klienci nie zwracają uwagi na to, jakiego typu oprogramowania używają wewnętrznie.
Jeśli twoje produkty lub usługi nie mają nic wspólnego z oprogramowaniem i możesz prowadzić swój biznes z gotowymi produktami, powinieneś!
W prawie wszystkich przypadkach gotowy produkt jest znacznie tańszy i szybszy do wdrożenia niż dopasowane rozwiązanie. Płacenie jednorazowej opłaty lub okresowej subskrypcji jest o wiele bardziej ekonomiczne niż tworzenie podobnego i dojrzałego rozwiązania od podstaw.
Unikalne i małe potrzeby
Żadne dwie firmy nie działają dokładnie w ten sam sposób. Twoja firma, podobnie jak każda inna, będzie miała w pewnym momencie pewne unikalne potrzeby. Te unikalne potrzeby wynikają z twoich określonych okoliczności i żaden gotowy produkt nie może dostarczyć rozwiązania.
Oczywiście, posiadanie dostosowanego oprogramowania do zarządzania i automatyzacji tych unikalnych zadań jest wspaniałe. Niemniej jednak, w wielu przypadkach zadanie, które trzeba wykonać, jest niewielkie i można je zrealizować za pomocą arkusza kalkulacyjnego lub oprogramowania do edycji dokumentów, takiego jak Microsoft Word.
Ponownie, jeśli twoje unikalne potrzeby są małe i możesz działać skutecznie używając arkuszy kalkulacyjnych lub innego ogólnego oprogramowania, powinieneś!
Replikowanie arkusza kalkulacyjnego w kodzie będzie czasochłonne i kosztowne. Nawet największe firmy software'owe na świecie używają arkuszy kalkulacyjnych do wielu swoich małych i rutynowych zadań. W większości przypadków bardziej sensowne będzie użycie arkusza kalkulacyjnego niż tworzenie pełnoprawnego rozwiązania.
Oprogramowanie dopasowane
Nawet jeśli większość pracy w firmie można wykonać przy użyciu gotowego produktu, nadejdzie taki czas, gdy będziesz musiał poszukać rozwiązania na zamówienie, aby dopasować się do twoich specyficznych potrzeb i okoliczności.
Istnieją zasadniczo trzy przypadki, w których musisz wybrać oprogramowanie dopasowane zamiast gotowego.
- Nie możesz znaleźć produktu dla swoich specyficznych potrzeb. Albo taki produkt/funkcja nigdy nie zostały opracowane, albo istniejące rozwiązania nie są dostępne z jakiegoś powodu.
- Twoja działalność się rozrosła, twój workflow stał się bardzo wyspecjalizowany, a gotowe produkty na rynku stały się uciążliwe lub drogie w użyciu.
- Twój podstawowy produkt/usługa jest oparty na oprogramowaniu lub posiada aplikacje skierowane do klienta.
Wiele firm często korzysta z kombinacji ogólnego oprogramowania i arkuszy kalkulacyjnych, gdy ich operacje są małe, ale szybko czują się przytłoczone, gdy ich obciążenie pracą rośnie. Widzimy ten schemat bardzo często. Ręczne zadanie, które mogło zająć 5 minut na początku, stało się dużym, skomplikowanym i podatnym na błędy zadaniem zajmującym godziny do wykonania.
Gdy twoja operacja i obciążenie pracą się rozwijają, dojdziesz do punktu, w którym potrzebujesz rozwiązania, które dostosuje się do twojego specyficznego workflow. Więc, czy powinieneś zatrudnić zespół inżynierów, czy wynająć firmę, aby opracowała i dostarczyła rozwiązanie?
Zatrudnianie deweloperów wewnętrznych
Pierwszym podejściem jest zatrudnienie zespołu inżynierów oprogramowania. Istnieją dwa scenariusze, w których posiadanie zespołu inżynierów ma największy sens.
- Twój produkt/usługa jest oparty na oprogramowaniu, lub twój produkt/usługa wymaga markowej i unikalnej aplikacji skierowanej do klienta.
- Rozwiązanie, które potrzebujesz, wymaga stałych i regularnych aktualizacji i modyfikacji przez znaczny czas.
Lepiej będziesz się czuł z własnym zespołem, jeśli którykolwiek z tych dwóch przypadków dotyczy ciebie. Twoi inżynierowie skoncentrują się całkowicie na twoim projekcie, co pozwoli im dostarczyć najlepszy możliwy wynik.
Niemniej jednak, zatrudnienie zespołu inżynierów oprogramowania może być wyzwaniem dla wielu firm. Wybranie odpowiednich osób spośród kandydatów to zadanie trudne. Wiele firm nie docenia trudności tego zadania, używając menedżerów ds. rekrutacji z ograniczonym lub brakiem doświadczenia w sektorze oprogramowania.
Oprogramowanie to dziedzina techniczna, pełna nieznanych i dziwnych konceptów. Początkowo musisz stworzyć plan i wybrać podstawowy stos technologiczny. Te decyzje determinują twoje plany rekrutacyjne. Inżynierowie dołączający do twojego zespołu muszą znać technologie, które planujesz używać.
Jeśli nie masz wcześniejszego doświadczenia w branży software'owej, powinieneś rozważyć zatrudnienie konsultanta. Konsultant musi być w stanie stworzyć wstępny plan, wybrać odpowiedni stos technologiczny i zarządzać wstępną rekrutacją. Gdy masz już niezawodny zespół inżynierów, możesz użyć istniejącej bazy do zatrudniania kolejnych inżynierów, jeśli zajdzie taka potrzeba.
Outsourcing do innych firm
W wielu przypadkach, utrzymanie zespołu deweloperów nie jest właściwym podejściem.
Większość firm potrzebuje dostosowanego oprogramowania, aby rozwiązać serię problemów lub zautomatyzować jakąś część swoich operacji. Gdy wymagane rozwiązanie osiągnie poziom dojrzałości, tego typu oprogramowanie może wymagać jedynie okresowej aktualizacji lub dostosowania.
W przeszłości oprogramowanie dla przedsiębiorstw wymagało lokalnej konfiguracji. Ta lokalna konfiguracja obejmuje centralny komputer działający jako serwer, łączący wszystkie urządzenia i zarządzający danymi. Zarządzanie własną infrastrukturą jest kosztowne i kłopotliwe. Wymaga posiadania specjalisty IT lub stałych kontaktów z dostawcą usług, aby zapewnić wsparcie, gdyby coś poszło nie tak.
Obecnie polegamy na serwerach cloudowych. Komputery, które przechowują i zarządzają twoimi danymi, znajdują się w centrum danych i są utrzymywane przez dostawcę chmury. Nie musisz mieć żadnej kosztownej fizycznej infrastruktury w swoim biurze. Wystarczy, że masz połączenie z internetem. Nie tylko twoi pracownicy mogą pracować z dowolnego miejsca i używać dowolnego urządzenia, które preferują, ale twoje dane są również znacznie bezpieczniejsze.
Większość cloudowych rozwiązań dla przedsiębiorstw jest rozwijana w kilka miesięcy, dostarczana i wymaga jedynie okresowego utrzymania i aktualizacji. Z takim układem nie musisz zatrudniać żadnych inżynierów ani specjalistów IT.
Firma specjalizująca się w oprogramowaniu dla przedsiębiorstw może opracować potrzebne rozwiązanie. Takie firmy projektują, rozwijają i dostarczają oprogramowanie, którego potrzebujesz. Musisz tylko upewnić się, że ty i firma programistyczna dzielicie podobny pogląd na problem i możliwe rozwiązania.