Cykl życia oprogramowania – Software Development Life Cycle

Cykl życia oprogramowania (and. Software Development Life Cyckle – SDLC) jest usystematyzowanym podejściem do tworzenia, rozwoju oraz wycofywania danego programowania. Dzięki procesowemu podejściu wspartego przez narzędzia IT zarządzamy zarówno tym oprogramowaniem, podnosimy jakość, zmniejszamy dług technologiczny oraz zwiększamy dojrzałość organizacji wytwarzania oprogramowania.

SDLC może składać się z kilku procesów:

  1. Analiza wstępna – faza inicjalna dla każdego projektu biznesowego czy informatycznego. Określamy potrzeby, wymagania, potencjalne koszty, możliwości, zasoby potrzebne do realizacji czy ryzyka dla danego projektu. Jego potencjalne korzyści biznesowe, ramy czasowe czy opłacalność (ROI).
  2. Analiza szczegółowa, spis wymagań – szczegółowa analiza wymagań odnośnie systemów, ich integracji, kosztów, harmonogramu prac, zwrotów z inwestycji, ryzyk projektowych, itd. Analiza aspektów technologicznych, UX (User Experience), prawnych, bezpieczeństwa czy operacyjnych np. zmiany w procesach Biura Obsługi Klienta (BOK), itd.
  3. Projektowanie oprogramowania – projektowanie architektury systemów, ich integracji, bezpieczeństwa, skalowalności, zasad kodowanie, frameworków czy interfejsu użytkownika (UI – User Interface).
  4. Wytwarzanie oprogramowania (kodowanie) – najdłuższa faza projektu realizowania wg. wybranej metodyki zarządzania projektem np. Scrum. Podczas tej fazy jest tworzony kod aplikacji zgodnie z zasadami i wymaganiami ustalonymi we wcześniejszych fazach np. tworzenie testów jednostkowych czy automatycznych, dokumentacji, itd.
  5. Integracje i testy – testowanie zarówno interfejsów, szybkości działania, wydajności, bezpieczeństwa czy poprawności integracji danych.
  6. Wdrożenie na produkcję – wdrożenie oprogramowania na produkcję zgodnie z wcześniej ustaloną strategią wdrażania np. testy AB na mniejszej ilości klientów, itd. Testowanie poprawności systemu, integracji oraz infrastruktury tele-informatycznej.
  7. Utrzymanie systemów – utrzymanie systemów łącznie z wykrywaniem i łataniem błędów, zwiększonym ruchem czy większą ilością użytkowników. Zmiany w infrastrukturze tele-informatycznej oraz zwiększanie bezpieczeństwa systemu.
  8. Dalszy rozwój systemu – procedura zgłaszania zmian rozwojowych, ich wdrożenie, testowanie i ich wpływa na działanie systemu czy integracji.
  9. Wyłączenie systemów – upgrady systemów, ich archiwizacja, wyłącznie, migracja danych, itd.

Zapraszamy do zapoznania się z naszą ofertą doradztwa technologicznego i audytów aplikacji

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 300 zadowolonych klientów

Architektura Cloud Native

Cloud Native to technologia wykorzystania chmury przy tworzeniu własnych aplikacji. Technologia korzystające z mikroserwisów, kontenerów czy usług bezserwerowych tzw. Serverless.

Planując architekturę Cloud Native należy zacząć m.in od pytania o stopień „przenaszalności” aplikacji pomiędzy dostawcami chmury (Vendor-lock). Kolejne pytania dotyczą apliakacji, które będziemy tworzyli lub przenosili. Dostawca chmury powinien być dopasowany do tych aplikacji, aby wykorzystać najlepiej ich możliwości.

W przypadku chęci uniezależnienia się od dostawcy chmury często stosuje się popularne kontenery np. na Kubernetes czy Amazon Elastic Container Service (Docker). Kontenery pozwalają na łatwą przenaszalność aplikacji pomiędzy środowiskami, budowanie mikroserwisów czy niemal nieograniczoną skalowalność.

Innym typem budowania aplikacji dla technologii Cloud Native jest wykorzystanie funkcjonalności chmur typu Serverless. Usługi tego typu są dostarczane przez wszystkich dostawców chmur jak AWS, Google GCP czy Microsoft Azure.

Aplikacje Cloud Native (Native Cloud Application – NCA) są tworzone zgodnie z zasadą rozdzielania zadań na usługi (mikroserwisy, mikrousługi) i zgodnie z zasadą oddzielania ich od infrastruktury np. z wykorzystaniem kontenerów czy funkcji serverless.

Jeśli potrzebujesz wsparcia w architekturze systemów czy audycie swoich aplikacji zapraszamy do kontaktu.

Zobacz także: doradztwo strategiczne IT

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Wydajność w systemach i aplikacjach

Wydajność jest jednym z ważniejszych elementów funkcjonowania systemów, aplikacji czy usług informatycznych. Problemy z wydajnością są odczuwalne od razu, widoczne przez klienta i potrafiące wpłynąć na nasze przychody czy zyski np. poprzez niezrealizowanie umownego poziomu SLA (Service Level Agreement).

Problemy z wydajnością mogą dotyczyć:

  • Niepoprawnie stworzonej aplikacji lub zapytań sql do bazy
  • Ataków na dostępność i wydajność usług (Ataki DoS i DDos – Denial of Service)
  • Niepoprawnych konfiguracji bazy danych
  • Braki w zasobach sprzętowych serwerów czy macierzy
  • Niepoprawne konfiguracje serwerów i ich usług

Najczęstsze problemy spotykany w ostatnim roku związane z systemami i wydajnością:

  • Mało wydajne środowisko serwerowe
  • Brak rozdzielanie serwerów bazodanowych od aplikacyjnych
  • Pojedyncze bazy danych, brak separacji
  • Niewydajne API
  • Niepoprawne konfiguracja baz danych np. mała alokacja pamięci RAM
  • Niezoptymalizowane zapytania do baz danych
  • Brak wykorzystania cachowania
  • Brak wykorzystania narzędzi typu CDN czy Cloud dla aplikacji internetowych
  • Brak wykorzystania modularności czy mikrousług w architekturze platform czy sklepów internetowych
  • Problemy wydajnościowe na poziomie intergacji i wymiany danych pomiędzy sklepami internetowymi a systemami ERP czy WMS.

Zobacz także:

Jeśli potrzebujesz wsparcia w zakresie architektury systemów, poprawy wydajności czy audycie kodu źródłowego zapraszamy do kontaktu.

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Mikroserwisy w eCommerce – Architektura eCommerce

Mikroserwisy są podstawą architektury rozproszonej systemów zdecydowanie różniącej się od architektury monolitycznej oprogramowania. Mikroserwisy są pojedynczymi komponetntami, aplikacjami czy modułami realizującymi daną funkcjonalność lub świadczący usługi. Mikroserwisy wymieniają się danymi lub wchodzą w interakcję z innymi modułami architektury poprzez np. API (Application Programming Interface).

Mikroserwisy – korzyści

Mikroserwisy posiadają wiele korzyści np.:

  • Łatwiejsze zarządzanie architekturą oprogramowania, modułami, usługami
  • Łatwiejszy development w postaci rozwijania danych komponentów przez osobne zespoły
  • Minimalizacja błędów w innych modułach
  • Skalowanie na poziomie danej usługi nie systemu
  • Zwiększenie ciągłości biznesowej w przypadku awarii, internetu, Data Center, itd.
  • Zwiększenie wydajności systemu
  • Zmniejszenie (potencjalne) kosztów rozwojowych systemu

Mikroserwisy – wady

  • Zwiększenie stopnia trudności oprogramowania i projektu z uwagi na złożoność architektury rozproszonej (komunikacja pomiędzy usługami, itd.)
  • Zwiększenie kosztów wytworzenie i i utrzymania systemu
  • Zwiększenie skomplikowania testów usług dostawrczanych przez mikroserwisy
  • Trudniejsze wdrażania niż w architekturze monolitycznej

Mikroserwisy w eCommerce?

Mikroserwisy świetnie wpisują się w architekturę systemów eCommerce szczególnie tam gdzie jest dużo systemów takich jak sklepy internetowe B2B i B2C, pasaże handlowe, systemy wymiany danych, systemy kurierskie, systemy PIM (Product Information Management), systemy OMS (Order Management System), systemy CRM (Customer Relationship Management), systemy ERP (Enterprise Resources Management), systemy WMS (Warehouse Management System), systemy Marketplance, systemy do obsługi BOK (Biuro Obsługi Klienta), systemy kioskowe lub POS (Point of Sales) czt programy lojalnościowe. Mikroserwisy świetnie wkomponowują się w podejście Headless w CMS (Content Management System) oddzialającego backend od frontendu czy wykorzystaniu PWA (Progressive Web Application).

Jeśli potrzebujesz wsparcia w obszarze architektury eCommerce czy optymalizacji procesów eCommerce zapraszamy do kontaktu.

Zobacz naszą ofertę doradztwa:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Technologia Headless w eCommerce

Technologia Headless staje się coraz bardziej popularna zarówno w sklepach internatowych czy CMS-ach (Content Management System). Charakteryzuje się tym, że składa siętylko z backendu i nie koncentruje się na warstwie graficznej (frontend) jak było do tej pory. Oprogramowanie Headless może korzystać za pomocą API (Aplication Programming Interface) z różnych interfejsów graficznych zarówno na desktopie czy w mobile.

Obecnie bardzo modne są Headless CMS dla eCommerce i stron internetowych. Typowy CMS dla stron internetowych składa się z trzech elementów:

  • Baza danych
  • Backend – panele do zarządzania treścią
  • Frontend – warstwa wizualna

Headless eCommerce CMS pozwala skupić się na funkcjonalnościach panelu zarządczego, API i integracji z innymi systemami pozostawiając warstwę graficzną wyspecjalizowanym developerom skupiającym się na interfejsie i użyteczności (UX – User Experience, UI – User Interface).

Jakie są zalety Headless eCommerce CMS?

  • Odseparowanie prac and backend i frontend np. celem tworzenia frontendu poprzez zewnętrzną firmę np. agencję interaktywną specjalizującej się w warstwach graficznych i użyteczności
  • Stosowanie wielu różnych interfejsów graficznych np. mobile, internetowe sklepy dedykowane, aplikacja POS (Point of Sales) dla Retail, itd.
  • Często mniejsze koszty wymiany frontendu (zależne od wielu czynników w tym długu technologicznego backendu)
  • Przejrzysta architektura systemów eCommerce
  • Potencjalnie łatwiejsze zarządzanie długiem technologicznym i cyklem życia oprogramowania
  • Zwiększenie poziomu bezpieczeństwa systemu

Jakie są wady Headless eCommerce CMS?

  • Większe koszty developerskie do przygotowania, utrzymania i rozwoju API i frontendu
  • Często zmniejszenie wydajności stron www w wyniku braku doświadczenia w technologii Headless czy API.

Jeśli potrzebujesz wsparcia procesowo-technologicznego w obszarze eCommerce, Retail czy Omnichannel zapraszamy do kontaktu.

Zobacz naszą ofertę doradztwa:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Platforma eCommerce B2B

GoTechnologies wspiera w technologii i optymalizacji procesów biznesowych zarówno największe organizacje, średnie przedsiębiorstwa jak i startupy cyfrowe. Handel elektroniczny B2C (Business to Customer) jest powszechnie znany i lubiany. Handel cyfrowy B2B (Business to Business) raczkuje w stosunku do B2C jednakże jest jednym z ważniejszych trendów w obecnych „covidowych” czasach.

Podstawowe funkcjonalności platform B2B:

  • Indywidualne ceny i grupy asortymentowe dla grup klientów
  • Wgląd do wszystkich transakcji biznesowych łącznie z fakturami elektronicznymi, ofertami, fakturami proforma, zamówieniami, reklamacjami czy zwrotami.
  • Obsługa procesu zapytania, ofertowania i negocjacji cen
  • Kopiowanie zamówień
  • Integracje z systemem ERP celem przypisania klientowi form płatności, minimalnych poziomów zakupów, kredytów kupieckich czy progów rabatowych
  • Szybkość i łatwość zakupów dużych ilości produktów (UX – User Experience, UI – User interface)

Popularne typy oprogramowania B2B:

  • Oprogramowanie SaaS (Software as a Service)
  • Oprogramowanie dedykowane budowane na potrzeby klienta
  • Oprogramowanie Open Source jak Magento 2 czy PrestaShop

Systemy eCommerce B2B integrują się zazwyczaj z:

Zobacz naszą ofertę doradztwa technologiczno-procesowego dla eCommerce.

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów