Proces powstawania oprogramowania

Choć każdy nasz projekt jest unikalny, to etapy ich powstawania są podobne. Prowadzimy ścieżką, której nadrzędnym celem jest zrozumienie każdego procesu na każdym etapie i podejmowanie w pełni świadomych wyborów.

Pierwsze spotkanie i warsztaty projektowe


Pierwsze spotkanie

1-2h
Pierwsze spotkanie

Poznajmy się

Pierwsze spotkanie to dobra okazja do poznania się, obustronnego zrozumienia celów biznesowych i charakterystyki działania. Z naszej strony krótko opowiemy o tym co robimy oraz jak możemy zaadresować Twoje potrzeby.

Oceńmy kompletność potrzeb

Podczas dyskusji postaramy się sprawdzić, czy Twoje potrzeby względem oprogramowania są zdefiniowane w sposób wystarczająco precyzyjny, czy należy popracować nad nimi od strony analitycznej i ideowej.

Oceńmy skalę rozwiązania

Mając już świadomość czego potrzebujesz określimy wstępną skalę przedsięwzięcia i określimy niezbędny zasób do jego realizacji. Wstępnie będziemy w stanie odpowiedzieć również na pytanie, jak czasochłonna byłaby analiza całego rozwiązania.

Zaplanujmy kolejne kroki i horyzont zdarzeń

Po spotkaniu przeanalizujemy Twój projekt pod kątem możliwych dalszych kroków. W ciągu kilku kolejnych dni przedstawimy konkretną propozycję i nakreślimy horyzont zdarzeń, który pozwoli na realizację Twojego projektu.

Warsztaty projektowe

4-16h
Timeline.Title.AnalyticProcess

Ideacja

Zacznijmy od zbudowania klarownej wizji oprogramowania, które chcemy wspólnie stworzyć. Użyjemy do tego celu najbardziej doświadczonych członków zespołu pracujących w modelu design thinking - od analityka po UI/UX designera.

Budowa zarysu specyfikacji funkcjonalnej

Silny zarys specyfikacji funkcjonalnej będzie swojego rodzaju listą kontrolną do zrealizowania, aby osiągnąć zamierzony cel. To również dobry punkt wyjścia do przygotowania wstępnej wyceny projektu.

Nakreślenie kamieni milowych

Podział funkcjonalności na etapy pozwoli racjonalizować zarządzanie budżetem i określić ramy czasowe całego projektu.

Określenie MVP

Wybierzemy również te funkcjonalności, które są niezbędne z punktu widzenia biznesu do pierwszej walidacji funkcjonalności, czyli minimalną wersję projektu. Swojego rodzaju w pełni funkcjonalny prototyp.

Wybór metodologii


Wybór metodologii realizacji projektu jest fundamentalną decyzją wpływającą na dalszy kształt współpracy. Powinien być poparty silnymi argumentami jednoznacznie wskazującymi na konkretną opcję. Znając już spójność idei, skalę rozwiązania i zakres funkcjonalny jesteśmy w stanie rekomendować konkretne podejście.


Waterfall (kaskadowa)

Podejście kaskadowe wymaga określenia wszystkich niezbędnych warunków brzegowych do realizacji projektu jeszcze przed jego realizacją. Dlatego każdorazowo w tym modelu należy przeprowadzić pełną analizę, zbudować dokumentację i przeświadczenie wszystkich stron o kompletności założeń. Jakiekolwiek zmiany na etapie realizacji projektu mogą znacząco wpłynąć na budżet i harmonogram. To podejście rekomendujemy dla projektów o małym zakresie funkcjonalnym lub projektów o precyzyjnie określonym budżecie.

Wycena

Mając gotową dokumentację projektową możemy precyzyjnie określić koszty poszczególnych obszarów funkcjonalnych, co w konsekwencji pozwala zbudować nieprzekraczalny budżet do realizacji projektu. Choć model kaskadowy jest przeważnie droższym podejściem niż model zwinny (koszt wykonania pełnej analizy, realizacja, margines bezpieczeństwa przy realizacji) pozwala na sztywne określenie budżetu i gwarancję jego nieprzekraczalności, co daje dodatkowy komfort.

Fixed-price

Choć rozliczenia fixed-price najczęściej dzielimy na etapy ostateczny koszt projektu znany jest już w dniu podpisania umowy i staje się nieprzekraczalną wartością projektu. Należy brać jednak pod uwagę, że wprowadzenie jakichkolwiek zmian w projekcie może zaburzyć zarówno budżet jak i harmonogram.

Cykl

Cykle rozwoju w metodologii kaskadowej uwzględniają realizację kamieni milowych będących etapami projektu. W każdym cyklu należy przeprowadzić analizę, następnie wycenić dany zakres funkcjonalny, zrealizować go, przetestować i wdrożyć. Cykle są zależne od skali projektu - czasami dotyczą mniejszych wycinków funkcjonalnych, w innych przypadkach są to całe projekty.

Poznaj bliżej metodologię kaskadową

Agile (zwinna)

Tworzenie oprogramowania w modelu zwinnym rekomendujemy dla średnich i dużych projektów. Szczegółowa analiza może być realizowana w czasie, a krótkie iteracje projektowe pozwalają dostarczać wartościowe funkcjonalności od pierwszego tygodnia. Każda kolejna iteracja będzie poparta doświadczeniem i uwagami użytkowników z dostarczonych już funkcjonalności. Zmiany nie będą powodowały zaburzenia procesu rozwoju, ani nie wpłyną na długoterminowy harmonogram projektu.

Estymata

Choć estymata i wycena to wyrazy bliskoznaczne zdecydowanie rozróżniamy ich znaczenie w metodologii zwinnej. Estymowanie polega na określaniu skali poszczególnych funkcjonalności do realizacji i przekładaniu ich, przy uwzględnieniu średniej wydajności zespołu, na potencjalny zasób (liczbę godzin) potrzebny, na ich realizację. Nie jest to jednak bardzo precyzyjna metoda, ponieważ nie jest poparta pełną analizą, a niektóre wymagania mogą ulec zmianie w czasie.

Time&material

Rozliczenia time&material opieramy o transparentność procesu. Klient otrzymuje pełen dostęp do zespołu i wgląd do narzędzia raportowania czasu przez poszczególnych członków zespołu w czasie rzeczywistym. Dzięki temu może na bieżąco monitorować koszty i kształtować je współbieżnie z oczekiwanymi funkcjonalnościami.

Iteracja

Oprogramowanie i funkcjonalności dostarczamy w iteracjach zwanych sprintami. Te tygodniowe lub dwutygodniowe okresy pozwalają na dostarczenie nowych funkcjonalności, walidację założeń i prace nad kolejnymi obszarami. W praktyce oznacza to, że od pojawienia się potrzeby funkcjonalnej do jej wdrożenia mija kilka, góra kilkanaście dni.

Poznaj bliżej metodologię zwinną

Waterfall (kaskadowa)

Podejście kaskadowe wymaga określenia wszystkich niezbędnych warunków brzegowych do realizacji projektu jeszcze przed jego realizacją. Dlatego każdorazowo w tym modelu należy przeprowadzić pełną analizę, zbudować dokumentację i przeświadczenie wszystkich stron o kompletności założeń. Jakiekolwiek zmiany na etapie realizacji projektu mogą znacząco wpłynąć na budżet i harmonogram. To podejście rekomendujemy dla projektów o małym zakresie funkcjonalnym lub projektów o precyzyjnie określonym budżecie.

Wycena

Mając gotową dokumentację projektową możemy precyzyjnie określić koszty poszczególnych obszarów funkcjonalnych, co w konsekwencji pozwala zbudować nieprzekraczalny budżet do realizacji projektu. Choć model kaskadowy jest przeważnie droższym podejściem niż model zwinny (koszt wykonania pełnej analizy, realizacja, margines bezpieczeństwa przy realizacji) pozwala na sztywne określenie budżetu i gwarancję jego nieprzekraczalności, co daje dodatkowy komfort.

Fixed-price

Choć rozliczenia fixed-price najczęściej dzielimy na etapy ostateczny koszt projektu znany jest już w dniu podpisania umowy i staje się nieprzekraczalną wartością projektu. Należy brać jednak pod uwagę, że wprowadzenie jakichkolwiek zmian w projekcie może zaburzyć zarówno budżet jak i harmonogram.

Cykl

Cykle rozwoju w metodologii kaskadowej uwzględniają realizację kamieni milowych będących etapami projektu. W każdym cyklu należy przeprowadzić analizę, następnie wycenić dany zakres funkcjonalny, zrealizować go, przetestować i wdrożyć. Cykle są zależne od skali projektu - czasami dotyczą mniejszych wycinków funkcjonalnych, w innych przypadkach są to całe projekty.

Poznaj bliżej metodologię kaskadową

Rozwój oprogramowania


01.

Zrozumienie
Analiza
Wymagania

W pierwszym kroku musimy zebrać wszystkie wymagania od naszego klienta. Podczas tego procesu pracujemy ze sobą tak blisko, jak to możliwe. Próbujemy nie tylko zrozumieć jak działa biznes naszego klienta obecnie, ale również znaleźć możliwości jego rozwinięcia i usprawnienia, aby przenieść go na zupełnie nowy poziom.

Analiza

Stworzenie szczegółowej dokumentacji projektu wymaga prac analitycznych. Podczas tego procesu nie tylko klarujemy pomysł, ale również szczegółowo przyglądamy się wymaganiom, sytuacji i całemu środowisku, gdzie nasze rozwiązanie zostanie wdrożone. Musimy zrozumieć dane, procesy nieobecne w rozwiązaniach IT, ludzi, integracje z systemami zewnętrznymi. Całość musi zostać udokumentowana na potrzeby dalszego rozwoju.

Dokumentacja

Wynikiem analizy jest dokumentacja zawierająca wszystkie wymagania, specyfikację funkcjonalną, zarys harmonogramu realizacji. Pozwala nam to również oszacować koszty poszczególnych etapów i funkcjonalności.

02.

Projekt
Architektura
Procesy biznesowe

W pierwszym kroku określamy wszystkie przepływy biznesowe zachodzące wewnątrz nowego rozwiązania, oraz wybieramy odpowiednie dla nich narzędzia aby były spójne i stabilne.

Architektura

Mając pełny obraz procesów biznesowych zachodzących wewnątrz rozwiązania możemy podjąć decyzje architektoniczne. Zawsze wybieramy wyłącznie rozwiązania, które są skalowalne i ekonomicznie uzasadnione zarazem. Decyzje podjęte podczas tego etapu będą skutkowały w prostocie dalszego rozwoju rozwiązania i jego utrzymania.

Makiety

Tworzenie zarysu interfejsu użytkownika w postaci makiet ramkowych umożliwia upewnienie się, że wszystkie procesy biznesowe zostały zaprojektowane w sposób poprawny i ergonomiczny, względem wymagań. Utworzone na ich podstawie makiety pozwalają natomiast pokazać klientowi zarys gotowego rozwiązania, bez fizycznego tworzenia go. To doskonała okazja, żeby zweryfikować każdy jego aspekt przed implementacją.

03.

Dostarczenie rozwiązania
Wdrożenie to zawsze wielki dzień. Nie ma znaczenia, czy migrujemy dane z istniejącego rozwiązania, czy wdrażamy zupełnie nowe. Zawsze niecierpliwie odliczamy dni, trzymamy kciuki i chłodzimy w lodówce champagne-a. A tak naprawdę to automatyzujemy ten proces tak, że zarówno wdrożenie całego rozwiązania jak i małych zmian zawsze jest niewidzialne i płynne.
Implementacja

Podczas implementacji klienci zawsze otrzymują dostęp do specjalnej platformy, w której na bieżąco mogą śledzić postępy prac i testować aktualną wersję rozwiązania.

Testy

Testowanie jest dla nas równie istotne co proces implementacji. Do testów używamy między innymi scenariuszy utworzonych podczas procesu analitycznego. To na ich podstawie weryfikujemy nie tylko poprawność rozwiązania, ale spełnienie wszystkich wymagań.

Wdrożenie

Wdrożenie to zawsze wielki dzień. Nie ma znaczenia, czy migrujemy dane z istniejącego rozwiązania, czy wdrażamy zupełnie nowe. Zawsze niecierpliwie odliczamy dni, trzymamy kciuki i chłodzimy w lodówce champagne-a. A tak naprawdę to automatyzujemy ten proces tak, że zarówno wdrożenie całego rozwiązania jak i małych zmian zawsze jest niewidzialne i płynne.

Komunikacja i współpraca

Przez lata wypracowaliśmy własną ścieżkę współpracy z naszymi klientami tak, aby cały proces pozostał transparentny, czysty i zrozumiały dla obu stron.

Wdrożenie i szkolenie


Migracja

Przed każdym wdrożeniem migrujemy istniejące dane, aby zapewnić ich ciągłość i jednolitość. Dla nowych rozwiązań może to być importowanie danych z różnych źródeł - np. plików excel, baz danych, systemów. Dla nowych funkcjonalności dodawanych do istniejących rozwiązań przygotowujemy specjalne migracje danych pozwalające zapewnić ich spójność.

Szkolenie

Szkolenie jest drugim etapem wdrażania nowych rozwiązań i funkcjonalności. Choć nasze rozwiązania są naturalne w użyciu kluczowe jest, aby wszyscy interesariusze rozumieli każdy aspekt procesów biznesowych zachodzących wewnątrz naszych rozwiązań. Tylko dzięki pełnemu zrozumieniu będą w stanie korzystać z rozwiązania w sposób świadomy i pełny.

Wdrożenie

Etap wdrożenia staje się czystą formalnością, gdy wszystko i wszyscy zostali właściwie przygotowani. Czas niedostępności naszych rozwiązań w momencie aktualizacji wynosi z reguły minuty i jest poprzedzony wieloetapowymi testami w środowiskach zapasowych.

Gwarancje, wsparcie, utrzymanie i SLA


Na każde nasze rozwiązanie dajemy dwa rodzaje gwarancji - ograniczoną czasowo gwarancję na rozwiązanie i dożywotnią gwarancję na kod. Ale wdrożenie to dopiero początek życia projektu, dlatego proponujemy wsparcie i utrzymanie rozwiązania, a także umowy ubezpieczeniowe gwarantujące dostępność usług opartych o nasze rozwiązania (ang. SLA - Service Level Agreement ).

Gwarancja

Wsparcie i utrzymanie

SLA

Czas reakcji na zgłoszenie
do 14 dni
od 6 godzin
od 20 minut
Okres obowiązywania
do 24 miesięcy
od 1 miesiąca
od 3 miesięcy
Opieka nad infrastrukturą
NIE
TAK
TAK
Redundancja infrastruktury
-
opcjonalna
wymagana
Pomoc techniczna
NIE
opcjonalna
opcjonalna
Monitorowanie środowiska
NIE
opcjonalna
TAK
Odpowiedzialność ubezpieczeniowa
NIE
NIE
TAK
Utrzymanie rozwiązań innych dostawców
NIE
opcjonalne
opcjonalne

Autorskie prawa majątkowe i kod źródłowy


Po ostatnie. I najważniejsze. Przenosimy autorskie prawa majątkowe na naszych klientów i przekazujemy im pełny, powstały na ich potrzeby, kod źródłowy.

Kod źródłowy

Posiadanie bazy kodu rozwiązania dedykowanego jest kluczowym aspektem tworzenia oprogramowania. To gwarancja bezpieczeństwa i możliwości dowolnego rozwoju w przyszłości. To także:

  • Bezpieczeństwo rozwiązania
  • Nieograniczony rozwój
  • Możliwość zbudowania własnego zespołu
  • Niezależność od dostawcy

Autorskie prawa majątkowe

Choć zbycie praw autorskich w przypadku oprogramowania jest niemożliwe, to przekazanie autorskich praw majątkowych ma niemal ten sam skutek. Dzięki temu nasi klienci stają się w pełni właścicielami rozwiązania i mogą je dalej przekazywać, licencjonować, sprzedawać i rozwijać w nieograniczonym zakresie. To także:

  • Bezwzględna własność
  • Nieograniczone przekształcenia prawne
  • Odsprzedaż rozwiązania dalej
  • Dystrybucja i oferowanie w modelu SaaS
Kod źródłowy i autorskie prawa majątkowe
Jesteś gotowy, żeby porozmawiać o swoim projekcie?