Jak wybrać Software House do stworzenia strony WordPress lub sklepu WooCommerce?
Zastanawiasz się wg jakich kryteriów wybrać software house do współpracy? Poznaj istotne kryteria.
Webtom.pl projektuje i rozwija dedykowane oprogramowanie dla firm z Łodzi, które potrzebują rozwiązania wykraczającego poza możliwości pojedynczego gotowego narzędzia.
Punktem wyjścia nie jest dla nas wybór frameworka ani decyzja o budowie nowego systemu. Najpierw analizujemy problem, użytkowników, dane oraz narzędzia wykorzystywane już w firmie.
W wielu organizacjach rozwój technologiczny odbywa się etapami. Najpierw pojawia się CRM, arkusz, formularz, system księgowy lub aplikacja SaaS. Z czasem kolejne narzędzia zaczynają obsługiwać fragmenty tego samego procesu, a dane są przenoszone pomiędzy nimi ręcznie.
W takiej sytuacji rozwiązaniem nie zawsze musi być nowy system dedykowany. Czasami wystarczy właściwa integracja lub automatyzacja. Jeżeli jednak proces jest indywidualny i gotowe aplikacje wymagają kolejnych kompromisów, projektujemy oprogramowanie dopasowane do sposobu działania firmy.
Zakres może obejmować analizę, UX/UI, architekturę, aplikację webową, integracje API, development, testy oraz dalszy rozwój po wdrożeniu.
Pełny zakres naszych kompetencji opisujemy również na stronie Software House.
Na początku rozdzielenie funkcji pomiędzy kilka narzędzi może być wygodne. Problem pojawia się wtedy, gdy realizacja jednego zadania wymaga przechodzenia pomiędzy CRM, arkuszem, pocztą, systemem księgowym i kolejną aplikacją.
Jeżeli te same informacje są ręcznie kopiowane pomiędzy systemami, rośnie czas obsługi oraz ryzyko niespójności danych.
Arkusz może być bardzo dobrym narzędziem roboczym. Jeżeli jednak przechowuje kluczowe dane, logikę procesu, statusy i raportowanie dla wielu użytkowników, warto przeanalizować, czy firma nie potrzebuje bardziej uporządkowanego rozwiązania.
Jeżeli odpowiedź na pytanie „na jakim etapie jest sprawa?” wymaga telefonu do pracownika, sprawdzenia kilku wiadomości albo połączenia danych z różnych narzędzi, problemem może być brak wspólnego systemu informacji.
Projektujemy rozwiązania dla procesów, których gotowe narzędzia nie obsługują bez istotnych ograniczeń, dodatkowej pracy ręcznej albo szeregu obejść.
Tworzymy systemy dedykowane na podstawie użytkowników, danych, reguł biznesowych i integracji wymaganych w konkretnym procesie.
Tworzymy aplikacje dostępne przez przeglądarkę dla pracowników, klientów, partnerów lub administratorów. Mogą obsługiwać dane, formularze, zadania, dokumenty, komunikację, raportowanie albo inne funkcje wynikające z procesu.
Łączymy rozwiązania wykorzystywane już w firmie, jeżeli problemem jest brak przepływu danych pomiędzy nimi, a nie brak kolejnej aplikacji.
Projekt może obejmować strefę klienta, partnera, pracownika lub administratora z funkcjami dopasowanymi do konkretnych ról.
Automatyzujemy powtarzalne działania wtedy, gdy można jednoznacznie określić zdarzenie, dane wejściowe, regułę oraz oczekiwany rezultat.
Możemy przejąć działający projekt i rozwijać go po wcześniejszej analizie technologii, kodu, infrastruktury, dokumentacji i najważniejszych zależności.
W praktyce właściwym rozwiązaniem może być nowy system, niewielka aplikacja, integracja API albo rozwój oprogramowania, które firma już wykorzystuje.
Jeżeli proces jest standardowy, a istniejąca aplikacja obsługuje jego kluczowe elementy bez istotnych kompromisów, tworzenie własnego systemu może być nieuzasadnione kosztowo.
Jeżeli firma posiada dobre narzędzia, ale informacje muszą być pomiędzy nimi ręcznie przenoszone, właściwym rozwiązaniem może być połączenie systemów zamiast zastępowania ich nowym oprogramowaniem.
Dedykowane oprogramowanie ma sens wtedy, gdy proces jest istotną częścią sposobu działania firmy, gotowe aplikacje wymagają licznych obejść albo organizacja musi stale dostosowywać swoją pracę do ograniczeń narzędzia.
W wielu projektach najlepszym modelem jest pozostawienie sprawdzonych narzędzi i stworzenie tylko brakującej części: aplikacji, panelu, integracji lub warstwy danych łączącej istniejące systemy.
Decyzję podejmujemy po analizie procesu, a nie na podstawie założenia, że system dedykowany zawsze jest rozwiązaniem lepszym od gotowej aplikacji.
Projekt systemu rozpoczynamy od sposobu działania firmy, a nie od przygotowania listy ekranów. Najpierw określamy użytkowników, dane, decyzje i działania wykonywane w konkretnym procesie.
Jeżeli te same informacje funkcjonują dziś w kilku miejscach, ustalamy, które źródło powinno być nadrzędne i gdzie dane mogą być jedynie prezentowane lub przetwarzane.
System może automatycznie wykonywać określone działania, ale reguły muszą być jednoznaczne, testowalne i zrozumiałe również dla osób odpowiedzialnych za proces.
Różni użytkownicy mogą posiadać inne możliwości odczytu, edycji i wykonywania operacji. Model uprawnień projektujemy jako część systemu, a nie dodatek wdrażany na końcu.
W procesach, w których istotne jest ustalenie kto, kiedy i dlaczego zmienił dane lub status, projektujemy odpowiedni sposób rejestrowania zdarzeń.
Pierwsza wersja nie musi obejmować wszystkich możliwych scenariuszy. Architekturę warto jednak przygotować tak, aby kolejne funkcje mogły być dodawane bez przebudowy fundamentów całego rozwiązania.
Określenia „software house” i „firma programistyczna” często opisują podobnych wykonawców i w praktyce mogą się częściowo pokrywać.
Firma programistyczna może być kojarzona przede wszystkim z realizacją developmentu według przygotowanego zakresu. Software house częściej obejmuje również wcześniejsze etapy: analizę problemu, architekturę rozwiązania, UX/UI, dobór technologii, integracje, testy i późniejszy rozwój.
Nie oznacza to, że jeden model jest automatycznie lepszy od drugiego. Jeżeli firma posiada kompletną specyfikację i potrzebuje wyłącznie wykonania developmentu, zakres może być znacznie węższy. Przy projekcie wymagającym dopiero uporządkowania procesu potrzebny jest zwykle szerszy udział zespołu technologicznego.
Na początku chcemy zrozumieć, co firma próbuje osiągnąć, jak proces działa dzisiaj oraz które aplikacje, arkusze lub systemy już w nim uczestniczą.
Określamy osoby korzystające z rozwiązania, ich role, potrzeby i zakres odpowiedzialności.
Ustalamy, jakie informacje są potrzebne, skąd pochodzą, gdzie są zapisywane i które źródło powinno być nadrzędne.
Sprawdzamy, czy problem wymaga nowej aplikacji, integracji, automatyzacji, rozbudowy obecnego systemu czy połączenia kilku tych elementów.
Określamy funkcje niezbędne do rozwiązania najważniejszego problemu i oddzielamy je od elementów, które mogą zostać wdrożone później.
Projektujemy widoki i sposób obsługi rozwiązania przez poszczególnych użytkowników.
Planowane są komponenty systemu, zależności techniczne, wymiana danych i środowiska.
Programujemy uzgodniony zakres w oparciu o zaakceptowaną architekturę oraz wymagania projektu.
Weryfikujemy funkcje, role, dane, integracje i scenariusze wynikające z zakresu wdrożenia.
Uruchamiamy zaakceptowaną wersję na przygotowanym środowisku produkcyjnym.
Kolejne etapy mogą wynikać z backlogu, nowych potrzeb użytkowników, zmian procesu lub dalszych integracji.
Proces może wyglądać inaczej w zależności od tego, czy tworzymy nowy produkt, integrujemy istniejące systemy czy przejmujemy rozwój działającego oprogramowania.
Przed integracją ustalamy, który system jest źródłem konkretnej informacji. Bez tego dwa rozwiązania mogą nadpisywać się wzajemnie albo przechowywać różne wersje tych samych danych.
Nie każda integracja musi synchronizować wszystko. Określamy dokładnie pola, kierunek przepływu i zdarzenia uruchamiające wymianę.
Jeżeli system posiada odpowiednie API, analizujemy dostępne operacje, autoryzację, limity oraz sposób obsługi błędów.
Dane mogą być przekazywane w czasie rzeczywistym, cyklicznie albo po wystąpieniu określonego zdarzenia. Model dobieramy do potrzeb konkretnego procesu.
Integracja powinna uwzględniać sytuację, w której jeden z systemów jest chwilowo niedostępny albo przekazuje nieprawidłowe dane.
Przy bardziej istotnych integracjach potrzebny jest sposób sprawdzenia, co zostało wysłane, odebrane i dlaczego konkretna operacja się nie powiodła.
Jeżeli projekt dotyczy połączenia oprogramowania z systemem ERP, zobacz również usługę Integracje z systemami ERP.
Przed większymi zmianami analizujemy sposób budowy rozwiązania, najważniejsze moduły oraz zależności pomiędzy nimi.
Sprawdzamy strukturę projektu, historię zmian i sposób prowadzenia developmentu, jeżeli takie materiały są dostępne.
Weryfikujemy sposób przechowywania danych szczególnie istotnych dla planowanego zakresu zmian.
Identyfikujemy systemy zewnętrzne, API, cykliczne zadania oraz zależności, których zmiana może wpływać na inne elementy rozwiązania.
Ustalamy sposób pracy na środowisku developerskim, testowym i produkcyjnym oraz proces publikowania zmian.
Jeżeli fragment systemu utrudnia dalszy development, określamy, czy powinien zostać pozostawiony, zrefaktoryzowany czy zastąpiony.
Dopiero po poznaniu obecnego rozwiązania można rzetelnie określić zakres nowych funkcji, kolejność prac i główne ryzyka techniczne.
Nie rozpoczynamy projektu od programowania funkcji, których rola w procesie nie została wcześniej określona.
Możemy prowadzić projekt od analizy i interfejsu po programowanie, integracje, testy oraz uruchomienie.
Od ponad 20 lat projektujemy i rozwijamy rozwiązania internetowe oraz systemy dla firm i organizacji.
Możemy zarówno rozwijać własne oprogramowanie, jak i łączyć je z narzędziami wykorzystywanymi już przez firmę.
Zakres może obejmować budowę systemu od podstaw albo przejęcie i dalszy rozwój rozwiązania stworzonego przez inny zespół.
Nie wszystkie funkcje muszą znaleźć się w pierwszym wdrożeniu. Zakres może zostać podzielony według priorytetów biznesowych i technicznych.
Software house projektuje i rozwija oprogramowanie dopasowane do konkretnych potrzeb firmy. Zakres może obejmować analizę, UX/UI, aplikacje webowe, systemy dedykowane, integracje API, automatyzację, testy oraz dalszy rozwój rozwiązania.
Określenia częściowo się pokrywają. Firma programistyczna bywa kojarzona przede wszystkim z realizacją developmentu, natomiast software house częściej uczestniczy również w analizie problemu, projektowaniu rozwiązania, architekturze, integracjach i późniejszym rozwoju.
Określenie „firma IT” może obejmować zarówno tworzenie oprogramowania, jak i obsługę infrastruktury, komputerów, sieci lub usług chmurowych. Software house koncentruje się przede wszystkim na projektowaniu i rozwijaniu oprogramowania: aplikacji, systemów, integracji i rozwiązań dedykowanych.
Własny system warto rozważyć wtedy, gdy proces jest istotny dla sposobu działania firmy, a gotowe aplikacje wymagają licznych kompromisów, ręcznej pracy lub stałego dostosowywania organizacji do ograniczeń narzędzia.
Jeżeli proces jest standardowy i istniejące rozwiązanie realizuje wymagane funkcje bez istotnych ograniczeń, wykorzystanie gotowego produktu może być bardziej uzasadnione niż tworzenie oprogramowania od podstaw.
Integracja może być właściwym rozwiązaniem wtedy, gdy firma posiada odpowiednie aplikacje, ale problemem jest ręczne przenoszenie danych albo brak spójnego przepływu informacji pomiędzy nimi.
Aplikacja webowa jest oprogramowaniem dostępnym przez przeglądarkę, które poza prezentacją treści realizuje określone funkcje i operacje na danych. Może być wykorzystywana przez klientów, pracowników, partnerów lub administratorów.
Tak. Zakres zależy od możliwości systemów, dostępnego API, sposobu autoryzacji, danych oraz procesu, który ma zostać obsłużony.
Tak, jeżeli technologia i stan projektu pozwalają na dalszy rozwój. Przed większym zakresem zmian analizujemy kod, architekturę, bazę danych, integracje, repozytorium, środowiska i dostępne materiały techniczne.
Tak. Jeżeli zakres na to pozwala, pierwsza wersja może obejmować funkcje rozwiązujące najważniejszy problem biznesowy, a kolejne elementy mogą być rozwijane w następnych etapach.
Zaczynamy od poznania problemu, użytkowników, procesu, danych i istniejących narzędzi. Na tej podstawie możemy określić, czy potrzebne są warsztaty, analiza przedwdrożeniowa, UX/UI, estymacja lub przygotowanie architektury.
Termin zależy od zakresu funkcji, liczby użytkowników i ról, integracji, UX/UI, danych, testów oraz sposobu podziału projektu na etapy. Harmonogram określamy dla konkretnego zakresu.
Zakres i model rozliczenia ustalamy przed rozpoczęciem współpracy. Przy rozwoju oprogramowania możliwa jest praca według rzeczywistego nakładu godzin w modelu T&M, szczególnie gdy zakres jest rozwijany etapami.
Zasady dotyczące praw do kodu, projektu, dokumentacji oraz wykorzystywanych komponentów określa umowa i warunki licencyjne właściwe dla konkretnego projektu.
Tak. Możemy realizować kolejne funkcje, integracje, poprawki, optymalizację i inne uzgodnione prace. Zakres oraz czasy reakcji zależą od ustalonego modelu współpracy i ewentualnego SLA.
Jeżeli projekt dotyczy bardziej konkretnego rodzaju rozwiązania, sprawdź również wyspecjalizowane usługi Webtom.pl dla firm z Łodzi:
Firma korzysta z kilku narzędzi, ale proces nadal wymaga ręcznego przepisywania danych, arkuszy lub dodatkowych obejść? Opisz problem, użytkowników, obecne systemy oraz działania, które dziś wymagają największego nakładu pracy. Nie musisz na tym etapie wiedzieć, czy potrzebujesz aplikacji, integracji czy systemu dedykowanego. Na podstawie zakresu możemy określić, czy kolejnym krokiem powinna być analiza obecnego procesu, warsztat, UX/UI, integracja, rozwój istniejącego rozwiązania czy estymacja nowego systemu.
Skontaktuj się z nami
Sławomir Woźniak
New Business | PL