Facebook Pixel
hero-gradient-background

Jak wygląda proces tworzenia projektu w Sopchy

proces tworzenia projektu IT, jak działa software house, etapy realizacji projektu programistycznego, proces wdrożenia sklepu internetowego, metodyka pracy software house, jak wygląda współpraca z software house

Katarzyna Lamczyk Sopchy Software House

Porozmawiajmy o Twoim projekcie i potrzebach

Wasza opinia jest dla nas ważna

W ostatnich latach tworzyliśmy sklepy internetowe, aplikacje webowe, aplikacje mobilne dla wielu wspaniałych ludzi.

Partner Sopchy
Partner Sopchy
Partner Sopchy
Partner Sopchy
Partner Sopchy
Partner Sopchy
Partner Sopchy
Partner Sopchy
Partner Sopchy
Partner Sopchy
Partner Sopchy
Partner Sopchy
Partner Sopchy

Z wielką przyjemnością polecam firmę Sopchy jako niezawodnego partnera [...] Ich podejście do pracy opiera się na solidnym zrozumieniu użytkownika końcowego [...] Wspólnie przeszliśmy przez wiele wyzwań i zawsze mogliśmy liczyć na wsparcie oraz profesjonalną radę. [...]

Krystian Stołecki, klient Sopchy

Krystian Stołecki

Luxtrade

[...] To co nas miło zaskoczyło to kompleksowe podejście agencji do samego projektu, powoływanie się na literaturę argumentując układ karty produktów, przedstawianie trendów, gotowość do wypracowywania wspólnych rozwiązań. [...]

Katarzyna Matusiak, klient Sopchy

Katarzyna Matusiak

Co-Founder - Carein

Przede wszystkim chciałbym podkreślić dobry i szybki kontakt ze wszystkimi członkami zespołu Sopchy w tym zwłaszcza z p. Michałem Tumiłowiczem - przez całą realizację projektu byłem poinformowany o aktualnym jego stanie i dalszych zaplanowanych działaniach.

Wojciech Kremer, klient Sopchy

Wojciech Kremer

Kremer Legal

Jesteśmy bardzo zadowoleni ze współpracy z firmą Sopchy w zakresie rozwoju modułów mających na celu łatwą i intuicyjną integrację płatności PayEye z systemami e-commerce. Sopchy to [...] partner, który doskonale rozumie nasze potrzeby [...]

Daniel Jarząb, klient Sopchy

Daniel Jarząb

Prezes Zarządu PayEye Sp. z o.o.

Polecam wszystkim współpracę z Sopchy. Kontakt, realizacja i wykonanie projektu na najwyższym poziomie. Profesjonaliści, którzy znają się na swojej pracy.

Kamila Woźny, klient Sopchy

Kamila Woźny

Sollkat

[...] Szukaliśmy pomocy u około 10 programistów, specjalistów od serwerów w innych dziedzinach. Nic to nie dawało. Na szczęście trafiliśmy na Sopchy, gdzie oprócz dużej wiedzy merytorycznej, spotkaliśmy się z doskonałą obsługa i opieka nad klientem.

Piotr Wojtków, klient Sopchy

Piotr Wojtków

CEO - Wojtków Szkolenia oraz Psiedszkole

[...] Sopchy zrealizował nasz pomysł dotyczący autorskiego oprogramowania umożliwiającego sprawną i wygodną rezerwacje wizyt [...] udało im się wdrożyć rozwiązania wygodne dla naszych pacjentów, ale też umożliwić działalność i usprawnić funkcjonowanie czterech placówek [...]

Małorzata Woźniak, klient Sopchy

Małgorzata Woźniak

HappyLife

Wybrane realizacje

Projektujemy i wdrażamy sklepy internetowe, systemy internetowe, aplikacje, które budują przewagę rynkową naszych klientów.

Sklep internetowy PINTA Online

Sklep internetowy

Browar PINTA Online

Sklep internetowy Luxtrade

E-commerce

Luxtrade

Aplikacja mobilna Parkingi.pl

Aplikacja mobilna

Parkingi.pl

Moduły płatności PayEye e-commerce

Moduły e-płatności

PayEye

Blog Images

Aplikacja webowa

Happy Life

Analiza potrzeb i poznanie firmy

Tworzenie projektu rozpoczynamy od poznania firmy i sposobu, w jaki działa. Na pierwszych rozmowach chcemy zrozumieć, czym zajmuje się klient, kim są jego klienci, jak pracują poszczególne zespoły i z jakich rozwiązań korzystają obecnie. Pytamy również o problemy, które firma chce rozwiązać, najbardziej czasochłonne zadania oraz procesy, które wymagają usprawnienia lub automatyzacji.

Te informacje wpływają bezpośrednio na sposób zaprojektowania projektu. Funkcje, uprawnienia, ścieżki użytkowników, integracje i sposób działania systemu wynikają z rzeczywistych potrzeb firmy, a nie z założenia, że każdy projekt powinien działać według tego samego schematu.

Klient nie musi na tym etapie wiedzieć, jaka technologia ani jakie konkretne rozwiązanie będzie najlepsze. Najpierw określamy potrzebę i oczekiwany efekt, a następnie dobieramy sposób jej realizacji. Wiedza klienta o jego firmie, procesach i użytkownikach jest równie istotna jak wiedza techniczna zespołu. Połączenie tych dwóch perspektyw pozwala zaprojektować rozwiązanie dopasowane do rzeczywistego sposobu działania firmy.

Jeżeli pracujemy nad istniejącym rozwiązaniem, analizujemy jego aktualny stan. Sprawdzamy, co działa prawidłowo, które elementy klient chce zachować, a z których chce zrezygnować. Weryfikujemy zastosowane technologie, istniejące integracje oraz dostępną dokumentację techniczną. Jeżeli dokumentacji brakuje, poznajemy rozwiązanie od strony technicznej, aby określić zakres niezbędnych prac.

Nie zawsze oznacza to przeprowadzanie pełnego audytu przed rozpoczęciem współpracy. W przypadku prostszych zmian możemy poznać system podczas realizacji konkretnego zadania. Przy większych lub bardziej ryzykownych pracach zakres analizy zwiększamy odpowiednio do sytuacji. Takie podejście pozwala nie ponosić kosztu szerokiej analizy tam, gdzie nie jest ona potrzebna, a jednocześnie ograniczyć ryzyko rozpoczęcia dużych prac bez sprawdzenia istotnych zależności.

1. Specyfikacja

Kolejnym etapem jest przygotowanie specyfikacji projektu. Klient może przekazać nam własną dokumentację, ale często otrzymujemy jedynie ogólny brief. Traktujemy go jako punkt wyjścia i uzupełniamy o informacje potrzebne do zaprojektowania oraz wdrożenia rozwiązania.

Specyfikacja przekłada potrzeby biznesowe na konkretne działanie systemu. Opisujemy w niej ścieżki użytkowników, funkcje systemu, role i uprawnienia oraz zakres dostępu poszczególnych użytkowników. Określamy, kto może wykonywać konkretne działania, jakie informacje widzi i jak powinny przebiegać poszczególne procesy.

Dokładnie opisujemy również integracje. Ustalamy, z jakimi systemami projekt będzie się komunikował, jakie dane będą przesyłane, w którym kierunku będzie odbywała się wymiana danych oraz gdzie poszczególne informacje będą zarządzane.

W przypadku projektu e-commerce może to oznaczać zaplanowanie komunikacji pomiędzy sklepem a systemem ERP, BaseLinkerem, systemem magazynowym, operatorem płatności, firmą kurierską, systemem fakturowania czy marketplace'em. Zakres integracji ustalamy na podstawie sposobu działania konkretnej firmy, a nie wyłącznie na podstawie dostępnych technicznie połączeń.

Na tym etapie ustalamy również priorytety. Określamy, które funkcje są niezbędne do uruchomienia pierwszej wersji projektu, czyli MVP, a które mogą zostać zrealizowane później i trafić do backlogu.

Takie rozdzielenie funkcji jest istotne szczególnie wtedy, gdy projekt ma być uruchomiony w określonym terminie lub budżecie. Pozwala rozpocząć pracę z zakresem potrzebnym do działania projektu, zamiast odkładać uruchomienie do momentu wykonania wszystkich planowanych funkcji.

Specyfikacja pozwala również wcześniej znaleźć brakujące informacje, zależności między funkcjami oraz elementy, które mogą wpłynąć na czas i koszt realizacji. Zmiana założeń na etapie dokumentacji jest zazwyczaj prostsza niż zmiana rozwiązania po rozpoczęciu programowania, zmianach w bazie danych czy przygotowaniu integracji.

Na podstawie specyfikacji określamy również przewidywany czas potrzebny na realizację poszczególnych elementów. Estymacja odnosi się do opisanego zakresu, dlatego im dokładniej określone są wymagania, tym łatwiej określić nakład pracy.

Dla klienta oznacza to większą przewidywalność przed rozpoczęciem developmentu. Wiadomo, co ma zostać wykonane, jak powinno działać, jakie systemy będą ze sobą połączone i które funkcje mają zostać zrealizowane w pierwszej kolejności.

2. Dobór technologii

Technologię i sposób realizacji dobieramy po poznaniu wymagań projektu. Nie zakładamy z góry, że każdy projekt powinien zostać wykonany na tej samej platformie.

Jeżeli gotowe rozwiązanie odpowiada wymaganiom, możemy je wykorzystać i rozszerzyć o potrzebne funkcje. Jeżeli nie spełnia wymagań projektu, możemy stworzyć dedykowane rozwiązanie.

W zależności od potrzeb możemy pracować na istniejącym systemie, rozbudować platformę open source, stworzyć dedykowany moduł lub zbudować rozwiązanie od podstaw. Przy wyborze sposobu realizacji bierzemy pod uwagę między innymi zakres funkcji, możliwości dalszego rozwoju, wymagane integracje, sposób utrzymania oraz przewidywany nakład prac.

Dobór technologii ma znaczenie również dla dalszego rozwoju projektu. Rozwiązanie, które spełnia wymagania pierwszej wersji, ale utrudnia późniejsze zmiany, może generować dodatkowe koszty przy kolejnych etapach. Dlatego przy wyborze sposobu realizacji uwzględniamy nie tylko obecne wymagania, ale również planowany kierunek rozwoju.

Przykładem jest projekt dla Trend Glass, w którym sklep B2B został przeniesiony z rozwiązania SaaS na platformę open source. W ramach projektu odtworzyliśmy kluczowe procesy i funkcje po stronie administracyjnej, integracje z zewnętrznymi systemami oraz funkcje dostępne dla klientów.

W tym przypadku zmiana platformy wynikała z potrzeb projektu i zakresu funkcji, które miały zostać zachowane oraz rozwijane. Pokazuje to, że wybór technologii jest elementem procesu projektowego, a nie decyzją podejmowaną niezależnie od potrzeb firmy.

3. Prototypy, UX i design

Dla najważniejszych lub bardziej złożonych funkcji przygotowujemy prototypy i makiety. Pozwalają one zobaczyć sposób działania procesu jeszcze przed rozpoczęciem programowania. Możemy dzięki temu sprawdzić kolejne kroki użytkownika, sposób prezentowania informacji oraz dostępne działania.

Prototyp pozwala również wcześniej zweryfikować pomysł. Jeżeli okaże się, że dana ścieżka jest nieczytelna, wymaga zbyt wielu kroków albo nie odpowiada potrzebom użytkowników, możemy zmienić ją na etapie projektowym, bez ingerowania w gotowy kod.

W przygotowywaniu prototypów wykorzystujemy również narzędzia oparte na AI. W niektórych przypadkach pozwalają one szybciej przygotować i zweryfikować pierwsze warianty rozwiązania przy mniejszym nakładzie pracy. AI traktujemy jako narzędzie wspierające proces projektowy, a nie zastępujące analizę potrzeb, wiedzę projektową czy decyzje dotyczące funkcjonowania systemu.

Śledzimy rozwój narzędzi AI i wykorzystujemy je tam, gdzie mogą realnie przyspieszyć pracę lub ograniczyć jej koszt, szczególnie na etapie przygotowywania koncepcji, porządkowania informacji i tworzenia pierwszych prototypów.

Jeżeli w ramach projektu odpowiadamy za design, przygotowujemy również wstępny standard wizualny i kierunek projektowania interfejsu. Na jego podstawie powstają kolejne widoki projektu.

Kluczowe elementy projektu są zatwierdzane przed rozpoczęciem ich implementacji. Dzięki temu sposób działania funkcji, ścieżkę użytkownika czy wygląd interfejsu można zmienić na etapie specyfikacji lub prototypu, zanim zmiana będzie wymagała modyfikacji kodu, bazy danych lub integracji.

Tworzenie projektu traktujemy jako współpracę dwóch stron. Sopchy wnosi wiedzę o technologiach, możliwościach realizacji i konsekwencjach poszczególnych decyzji, a klient wiedzę o swojej firmie, użytkownikach i procesach. Na tej podstawie wspólnie ustalamy sposób działania projektu. Klient zatwierdza kluczowe założenia, wygląd i funkcjonalności przed rozpoczęciem prac programistycznych.

4. Harmonogram i realizacja

Po zatwierdzeniu zakresu, sposobu działania i wyglądu projektu przygotowujemy harmonogram. Określamy kolejność realizacji etapów, planowany czas prac oraz osoby odpowiedzialne za poszczególne zadania.

Uwzględniamy również zadania, które muszą zostać wykonane po stronie klienta lub innych podmiotów zaangażowanych w projekt. Mogą to być na przykład przygotowanie tłumaczeń, treści, materiałów prawnych, grafik, danych produktowych czy danych wymaganych do integracji.

Uwzględnienie tych zależności jest istotne, ponieważ część prac programistycznych nie może zostać zakończona bez danych lub decyzji znajdujących się po stronie klienta albo zewnętrznego dostawcy. Wczesne wskazanie takich elementów pozwala lepiej zaplanować kolejność prac i ograniczyć przestoje.

Następnie poszczególne etapy dzielimy na konkretne zadania i rozpoczynamy prace programistyczne. Większe projekty realizujemy w sprintach, a efekty kolejnych etapów prezentujemy klientowi podczas regularnych spotkań.

Klient zatwierdza sposób działania i zakres projektu przed rozpoczęciem developmentu. Po wykonaniu poszczególnych funkcji może natomiast zweryfikować, czy zostały zrealizowane zgodnie ze wcześniej zatwierdzoną specyfikacją.

Podział projektu na konkretne zadania pozwala monitorować postęp prac i szybciej zauważyć, jeżeli realizacja któregoś elementu wymaga dodatkowych ustaleń, danych lub decyzji.

5. Zmiany w trakcie realizacji

Założenia projektu mogą zmienić się również w trakcie prac. Może to wynikać ze zmiany potrzeb firmy, pojawienia się nowej informacji albo decyzji o dodaniu funkcji, która wcześniej nie była częścią zakresu.

Jeżeli klient chce dodać nową funkcję lub zmodyfikować wcześniej ustalony element, określamy przewidywany czas potrzebny na realizację zmiany oraz jej wpływ na pozostałe prace i harmonogram.

Klient decyduje wtedy, czy zmiana jest potrzebna w bieżącym etapie, czy może zostać przeniesiona do kolejnego etapu rozwoju i backlogu.

Takie podejście pozwala podejmować decyzje dotyczące zmian na podstawie ich rzeczywistego wpływu na projekt. Klient zna przewidywany dodatkowy nakład pracy i może zdecydować, czy chce przeznaczyć na zmianę czas i budżet zaplanowany na bieżący etap, czy zrealizować ją później.

Dzięki temu nowe zadania nie są po prostu dodawane do projektu bez uwzględnienia ich wpływu na wcześniej ustalony zakres. Zmiana pozostaje częścią świadomie zarządzanego zakresu projektu.

6. Testowanie i wdrożenie

Przed uruchomieniem projekt jest testowany wewnętrznie. Developerzy sprawdzają przygotowane funkcje, a prace są weryfikowane przez innych członków zespołu. W zależności od projektu wykonywane są również testy funkcjonalne i manualne przez QA.

Testujemy nie tylko nową funkcję, ale również jej wpływ na elementy, z którymi jest połączona. W sklepie internetowym może to oznaczać sprawdzenie między innymi koszyka, procesu składania zamówienia, płatności, dostawy, logowania czy innych funkcji zależnych od wprowadzonej zmiany.

Jest to istotne, ponieważ poprawnie działająca pojedyncza funkcja może jednocześnie wpływać na inne elementy systemu. Testowanie pozwala wykryć takie zależności przed publikacją zmiany dla użytkowników.

Klient nie odpowiada za techniczne testowanie implementacji. Jego rolą jest przede wszystkim sprawdzenie, czy gotowa funkcja działa zgodnie ze specyfikacją i ustalonym sposobem działania oraz czy odpowiada potrzebom biznesowym.

Prace prowadzimy na środowisku deweloperskim. W zależności od potrzeb projektu przygotowujemy również środowisko stagingowe, na którym rozwiązanie można sprawdzić przed publikacją produkcyjną.

Rozdzielenie środowiska deweloperskiego, stagingowego i produkcyjnego pozwala testować zmiany przed ich publikacją dla użytkowników końcowych. Ma to szczególne znaczenie w sklepach i systemach wykorzystywanych przez klientów lub pracowników, gdzie niezweryfikowana zmiana może wpłynąć na sprzedaż albo bieżącą pracę firmy.

Po zakończeniu prac i testów wdrażamy projekt na środowisko produkcyjne. W przypadku większych wdrożeń ustalamy termin publikacji z uwzględnieniem działania firmy, kampanii sprzedażowych, sezonowości oraz znaczenia danej zmiany dla użytkowników.

W razie potrzeby pomagamy również w przygotowaniu środowiska potrzebnego do uruchomienia projektu.

Po wdrożeniu szkolimy zespół klienta i przekazujemy niezbędne dostępy. W razie potrzeby przygotowujemy również instrukcje PDF lub video, które mogą być wykorzystywane przy wdrażaniu kolejnych osób.

Dla jakich firm realizujemy projekty?

Sopchy realizuje projekty głównie dla średnich firm, dla których rozwiązania cyfrowe i e-commerce mają bezpośrednie znaczenie dla działalności firmy.

Wśród klientów znajdują się firmy osiągające ponad 1,2 mln zł rocznego przychodu netto, w których sklep internetowy jest ważnym lub głównym kanałem sprzedaży. Najczęściej są to firmy realizujące od kilkuset do kilku tysięcy transakcji miesięcznie.

Przy takiej skali sklep internetowy nie jest tylko stroną prezentującą produkty. Jego działanie wpływa na sprzedaż, obsługę klientów, pracę zespołów, realizację zamówień, gospodarkę magazynową i komunikację z innymi systemami.

Dlatego projekty realizowane dla takich firm często obejmują nie tylko stworzenie lub zmianę samego sklepu, ale również integracje, automatyzację procesów, rozwój funkcji B2B, przebudowę procesów zakupowych, migrację platformy lub dalszy rozwój istniejącego rozwiązania.

Przykłady realizowanych projektów

Trend Glass

Dla Trend Glass realizowaliśmy projekt obejmujący sklep B2B oraz sklep B2C. Sklep B2B został przeniesiony z rozwiązania SaaS na platformę open source. W ramach prac odtworzyliśmy kluczowe procesy i funkcje po stronie administracyjnej, integracje z zewnętrznymi systemami oraz funkcje dostępne dla klientów.

Dla sklepu B2C przygotowaliśmy również dedykowany design. Po pewnym czasie sklep B2C został dodatkowo objęty rebrandingiem.

Sopchy zapewnia wsparcie techniczne dla projektów Trend Glass od ponad 3 lat.

Browar PINTA

Dla Browaru PINTA stworzyliśmy stronę internetową pełniącą funkcję katalogu produktów, która jest na bieżąco rozwijana i aktualizowana. Przygotowaliśmy również sklep internetowy, który pozwolił rozszerzyć sprzedaż o kanał B2C.

Sopchy zapewnia wsparcie techniczne dla projektów PINTA od ponad 5 lat.

Luxtrade

Dla Luxtrade przejęliśmy bieżące wsparcie i rozwój istniejącego sklepu, prowadząc te prace od ponad 4 lat. Działaliśmy głównie w obrębie platformy PrestaShop.

W ramach współpracy realizowaliśmy między innymi dedykowane moduły, integracje, rebranding oraz mini-aplikacje tworzone w odpowiedzi na aktualne potrzeby firmy i prowadzone projekty biznesowe.

Ten przykład pokazuje również, że projekt nie musi kończyć się na pierwszym wdrożeniu. Istniejący sklep może być przez kolejne lata rozwijany wraz ze zmianami potrzeb firmy, procesów sprzedażowych i technologii.

Podsumowanie

Proces tworzenia projektu ma ograniczyć ryzyko kosztownych zmian i niejasności w trakcie realizacji. Najpierw poznajemy firmę i jej sposób działania, następnie przekładamy potrzeby biznesowe na konkretną specyfikację, dobieramy sposób realizacji, przygotowujemy prototypy i dopiero wtedy rozpoczynamy programowanie.

Każdy etap ma konkretny cel. Analiza pozwala zrozumieć problem i zależności, specyfikacja porządkuje zakres, funkcje i integracje, dobór technologii pozwala wybrać sposób realizacji odpowiedni dla projektu, prototypy umożliwiają wcześniejszą weryfikację pomysłu, a testy ograniczają ryzyko problemów po wdrożeniu.

Dla klienta oznacza to możliwość podejmowania decyzji na podstawie konkretnych informacji jeszcze przed wykonaniem pełnego zakresu prac. Wiadomo, co ma zostać zrealizowane, jakie są zależności, które elementy są priorytetowe i gdzie mogą pojawić się dodatkowe wymagania.

Proces tworzenia projektu kończy się uruchomieniem rozwiązania. Dalszy rozwój, aktualizacje, optymalizacja i bieżące wsparcie mogą być prowadzone w ramach osobnych procesów współpracy.

Zacznijmy od rozmowy o Twoim projekcie!