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

Doradztwo Przemysł 4.0

Przemysł 4.0 (Industry 4.0) jest stałym trendem wpisującym się w strategie cyfrowej transformacji (Digital Transformation) zarówno firm przemysłowych jak i logistycznych.

Koncepcja Przemysłu 4.0 koncentruje się na wykorzystaniu technologii w procesach biznesowych jak produkcja, łańcuch dostaw (Supply Chain Management), logistyka, procesy magazynowe, procurment, itd.

Nasze doradztwo Przemysł 4.0 koncentruje się na wykorzystaniu technologii do optymalizacji procesów logistycznych, magazynowych, sprzedażowych i produkcyjnych. Przykładowe technologie wykorzystywane w Przemyśle 4.0:

Zobacz ofertę na

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Modernizacja systemów

Zaplanowania modernizacja systemów informatycznych często jest rezultatem nowej strategii biznesowej, dużych kosztów utrzymania i rozwoju systemów, niskiego poziomu bezpieczeństwa, wydajności czyli często określenia długu technologicznego. Określenie wielkości długu technologicznego i ryzyka z nim związane są często elementem zarządzania ryzykiem w firmie (Risk Management) oraz są uwzględnione w planie zachowania ciągłości biznesowej (Business Continuity Plan -BCP). Systemy zastane Legacy są obecnie jednym z poważniejszych wyzwań dla działów IT utrudniających rozwojów biznesowy.

Nowe strategie cyfrowe czy transformacje cyfrowe (Digital Transformation) wymagają od IT wysokoskalowalnych systemów, natychmiastowych zmian biznesowych, łatwych integracji oraz bezpieczeństwa danych. Dodatkowo presja na systemy IT jest ciągle w obszarze kosztów utrzymania tych systemów i ich rozwoju. Każda Strategia IT powinna obejmować elementy architektury systemów, ich rozwoju, a w przypadku długu technologicznego corowych systemów ich modernizację lub wymianę.

Modernizacja systemu jest często planowana na podstawie wykonanego audytu jakości kodu źródłowego, wydajności, architektury czy bezpieczeństwa.

Strategie IT realizowane przez Dyrektorów IT (CIO) odnosnie systemów Legacy

Strategie odnośnie systemów Legacy są związane m.in. z ważnością systemu, ilością wprowadzanych zmian, wystawieniem na ryzyko np. wycieku danych, ryzykiem wydajności systemu, itd. Strategie Legacy:

  • Strategia nie rób nic z systemem – utrzymanie
  • Eliminacja kluczowych problemów np. wydajnościowych czy bezpieczeństwa
  • Strategia modernizacji – refaktoring
  • Strategia wymiany systemu

Częste kierunki modernizacji systemów Legacy

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 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

Audyt procesów biznesowych pod kątem automatyzacji

Automatyzacja na stałe zagościła w firmach zarówno produkcyjnych, logistycznych, handlowych (Retail, eCommerce, Contact Center) czy finansowych. Kiedy warto przeprowadzić audyt procesów biznesowych pod katem ich automatyzacji? Wtedy kiedy mamy procesy w miarę zoptymalizowane, czytelne dla osób je wykonywujących czy rozliczających, zaimplementowane w systemach informatycznych.

Audyt pod kątem automatyzacji analizuje wybrane procesy biznesowe jak rozliczenia z klientami, kontakt klienta, reklamacje, zwroty, procesy typowo wewnętrzne, windykacyjne, itd. Mapuje procesy w systemach IT. Analizuje ograniczenia systemów IT. Analizuje miary procesów i miejsca powstawania błędów czy dużych nakładów pracy. Analizuje zasoby potrzebne do realizacji procesu.

Rezultatem audytu jest wskazanie obszarów procesów biznesowych potencjalnie nadających się do optymalizacji, gdzie optymalizacja da ewidentny efekt zysku czy zmniejszenia kosztów i błędów. Audyt także dla każdej optymalizacji wskazuje środki (systemy, mechanizmy, chmura, RPA – Robotic Process Automation, integracje, CzatBoty, itd.) osiągnięcia takiej optymalizacji.

Zobacz także:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Architektura systemów pod Big Data

Duże ilości danych wymagają zaplanowania architektury pod kątem ich zbierania, przechowywania, ich analizy czy udostępniania do innych systemów. W tradycyjnym modelu dane są zbierane przez hurtownie danych z systemów np. ERP, CRM, eCommerce, WMS, itd. a analizowane w systemach klasy Business Inteligence.

Poniżej przykładowy flow od źródeł danych, poprzez ich zbieranie, transformację, przechowywanie i analizę.

Źródła danych dla Big Data

  • Aplikacje mobilne
  • Aplikacje dedykowane
  • Systemy ERP, WMS, CRM, POS, MES, MRP, APS, TMS, itd.
  • Systemy eCommerce jak sklepy internetowe, marketplace
  • Bazy OLTP
  • Bazy logów, eventów
  • API innych firm
  • itd.

Zbieranie i transformacja danych

  • Konektory
  • Zbieranie danych
  • Workflow Manager
  • Platforma Spark
  • Python Libs
  • Batch Query Engine
  • Event Streaming

Przechowywanie danych

  • Data lake
  • Data warehouse

Analiza danych, predictive, sztuczna inteligencja (AI – Artificial Intelligence), uczenie maszynowe (Machine Learning)

  • Data Science Platform
  • Biblioteki Machine Learning
  • Analityka czasu rzeczywistego

Rezultaty analizy danych

  • Dashboardy
  • Wbudowana analityka
  • Rozszerzona analityka
  • Aplikacje wbudowane, frameworki app

Powyższy schemat architektury pozwala na zbieranie danych biznesowych, wyciąganie danych z systemów operacyjnych, dostarczanie danych do magazynów danych wg. określonych schematów, transformację danych dla narzędzi analitycznych, przechowywanie danych aby mogły być one używane do analizy z uwzględnieniem kosztów przechowywania, czasów dostępów czy czasów dostarczenia danych, analizę danych poprzez systemy lub platformy do analizy, analizy historyczne i próby przewidywania przyszłości (predictive) aż do prezentacji wyników analizy danych dla wewnętrznych lub zewnętrznych użytkowników np. w systemach czy aplikacjach.

Jakie są najnowsze trendy w architekturze Big Data?

  1. Zmiana systemów On Prem na Cloud Data Warehouse
  2. Zmiana Hadoop na Data Lakes
  3. Zmiany ETP (Extract Transform Load) na ELT (Extract Load Transform)
  4. Zmiana Workflow Manager na Dataflow Automation

Zobacz także:

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

Architektura Serverless (bezserwerowa)

Architektura bezserwerowa (Serverless Architecture) pozwala programistom na koncentrowaniu się na kodzie anie na serwerach. W tej architekturze płacimy za dostępność całej infrastruktury na żądanie np. wraz ze zwiększeniem obciążenia czyli tylko wtedy kiedy my czy nasi klienci używają zasobów serwerowych. W modelu serverless nie martwimy się zarówno utrzymaniem infrastruktury, jej updatami, licencjami, skalowaniem, wydajnością, konfiguracjami, backupami czy zespołem administratorów.

Architektura bezserwerowa pozwala na wykonywanie kodu w tradycyjnej architekturze monolitycznej jak i w architekturze rozproszonej (mikroserwisy).

Architektura bezserwerowa jest jedną z odmian platform chmurowych PaaS (Platform as a Service), IaaS (Infrastructure as a Service) i często określana także jako FaaS (Function as a Service).

Popularnymi na rynku usługami Serverless / FaaS są np. AWS Lambda, Azure Functions i Google Cloud Functions.

Zobacz naszą ofertę na doradztwo w obszarze IT:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Disaster Recovery Plan

Disaster Recovery Plan powinien być przemyślanym i przetestowanym planem przywrócenia po wystąpieniu awarii działania kluczowych systemów czy usług. DR Plan (lub DRP) jest częścią większego planu zachowania ciągłości biznesowej często nazywanego BCP (Business Continuity Plan).

Awariami są zazwyczaj problemy z infrastrukturą (np. brak prądu, awarie przełączników czy routerów, awarie dysków twardych, itd) czy ataki hakerskie (wewnętrzne i zewnętrzne). Awarie takie mogą wystąpić zarówno na poziomie lokalnym np. piętro czy budynek, na poziomie dzielnicy, miasta czy kraju. Wpływ tych awarii na krytyczne usługi jest określany w analizie ryzyka RA (Risk Analysis) lub analizie wpływu biznesowego BIA (Business Impact Analysis).

Obecnie jednym z największych zagrożeń są ataki na dane firmowe. Kradzież danych, szyfrowanie danych celem okupu, sprzedaż danych są jednymi z groźniejszych zagrożeń mających wpływ na naszą reputację i często istnienie firm.

Założenia Disaster Recovery Plan:

  • Określenie krytycznych aplikacji, usług i procesów
  • Określenie chronionych danych
  • Określenie czasu odtwarzania dla danych procesów, usług, aplikacji
  • Stworzenie polityki backupów
  • itd.

Disaster Recovery Plan powinien być testowany zanim dojdzie do awarii podobnie np. w regularne odtwarzanie i sprawdzanie poprawności backupów.

Disaster Recovery Plan może wykorzystywać zarówno wirtualizacje, środowiska chmurowe, środowiska hybrydowe, systemy Data Loss Protection, systemy redundantne, itd.

Jeśli potrzebujesz wsparcia w doradztwie strategicznym IT, budowanie strategii IT lub Strategii Cyfrowej Transformacji zapraszamy do kontaktu

Doradztwo strategiczne IT, Strategia IT

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Strategia MultiCloud

Strategia Multicloud jest często wdrażana z powodów dywersyfikacji i uniknięcia uzależnienie do jednego dostawcy (tzw. Vendor Lock). Uzależnienie do może być w obszarze jakości usług, cen czy zakłócenia ciągłości biznesowej (Business Continuity) – awarie, odtwarzanie po awarii (DR – Disaster Recovery), wysoka wydajność (HA – High Availability), itd. Strategia z uwagi na różne zakresy usług dostawców chmur musi uwzględniać wszystkie ich aspekty jak: koszty za storage czy moc obliczeniową, różnorakie platformy czy aplikacje, moduły bezpieczeństwa, itd. Usługi te muszą być wpisane zarówno w politykę bezpieczeństwa jak i architekturę tele-informatyczną firmy.

Oprócz dywersyfikacji, vendor-lockingu częstym powodem dla międzynarodowych firm jest zwiększenie ciągłości biznesowej zarówno w dostępie (np. wydajność) do infrastruktury z dowolnej części świata, jak i jej odporność na awarie i ataki.

Strategia chmurowa jest jednym z elementów Strategii IT wspierającej cele biznesowe. Jest ona zasadna w przypadku rozproszonych globalnie systemów, klientów, pracowników, wysokich parametrów SLA dla usług i systemów oraz dużej dojrzałości organizacji.

Zobacz naszą ofertę doradztwa strategicznego IT

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów