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

Startupy a kryzysy technologiczne

Startupy to technologia, a technologia wymaga posiadania odpowiednich kompetencji i ciągłego ich rozwijania. Technologia musi być wydajna oraz spełniać oczekiwania klienta. Produkt startupu musi działać, ale tak jak tego sobie życzy klient. Startupy tworzą zarówno aplikacje mobilne, sklepy internetowe, systemy SaaS (Software as a Service), platformy Marketplace, urządzenia IoT czy inne urządzenia hardwarowe. Wszystkie te produkty wymagają wysokiej dojrzałości technologicznej. Wiedza członków startupu czy założycieli (founderów) często koncentruje się na sprzedaży, klientach czy marketingu lub na aspekcie technologicznym. Idealnym połączaniem jest, kiedy zespół założycielski posiadający wszystkie te kompetencje. Oczywiście faza początkowa rozwoju startupu charakteryzuje się posiadaniem małego budżetu, małej ilości czasu na dopracowanie produktu technologicznego oraz braki zasobowe i kompetencyjne. Z tego też powodu kryzysy technologiczne przychodzą szybciej niż nam się wydaje.

Jakie kryzysy technologiczne przechodzą startupy?

Poniżej lista zaobserwowanych kryzysów technologicznych w startupach fazy seed i eary grow:

  • Wydajność aplikacji, sklepu czy platformy SaaS – brak myślenia co będzie za rok, jak zwiększy się liczba danych czy klientów. Wymaga często zmiany infrastruktury lub co trudniejsze architektury systemów – zobacz doradztwo w obszarze wydajności, doradztwo w zakresie cloud, doradztwo w zakresie architektury
  • Hardware – częsty brak budżetu na wersję nr 2 prototypu związaną ze zmianami technologicznymi, potrzebami klientów czy trendami
  • Brak bezpieczeństwa danych i systemów – zobacz doradztwo w obszarze bezpieczeństwa
  • Odejście kluczowej osoby takiej jak CTO czy senior developer
  • Brak dokumentacji systemu utrudniający wdrożenie nowych członków zespołu
  • Brak skutecznego zarządzania projektami czy zmianami np. pseudo agile podejście (Scrum) – zobacz doradztwo w obszarze zarządzania projektami
  • Duży i często niespodziewany przyrost danych Big Data powodujący problemy z bazami danych i aplikacjami – zobacz doradztwo Big Data
  • Użyteczność interfejsu (UX – User Experience, UI – User Interface) – zobacz audyty UX, UI, eCommerce
  • Brak regularnych upgradów wykorzystywanych frameworków powodujących dług technologiczny trudny do naprawy – zobacz doradztwo dług technologiczny
  • Brak przyjętych zasad kodowania, architektury czy testowania
  • Brak API
  • itd.

Zobacz więcej o doradztwie technologicznym dla Startupów

Jeśli potrzebujesz wsparcia technologicznego i procesowego w Twoim startupie, zapraszamy do kontaktu.

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

Top zagrożeń cyberbezpieczeństwa

Cyberbezpieczeństwo było a obecnie powinno być kluczowym elementem każdej polityki bezpieczeństwa, strategii utrzymania ciągłości biznesowej, strategii IT czy strategii biznesowej. Nasilenie ataków, wycieków i kradzieży danych w ostatnich okresach przybiera na sile a trendy są wyraźnie wzrostowe. Poniżej kilka zagrożeń, które są top w ostatnim czasie w skali globalnej gospodarki:

Malware

Szkodliwe oprogramowanie Malware jest stosowane przez hackerów do kradzieży danych jak hasła, dane, szyfrowania zasobów np. celem wyłudzenia okupu czy wykorzystania komputerów do ataków DDoS. Obecnie obserwuje się ogromny wzrost infekcji komputerów czy smartphonów.

Ataki DoS, DDoS

Ataki DoS (Denial of Service) i DDoS (Distributed Denial of Services) są skierowane na usługi internetowe czy sieci komputerowe celem ich blokady lub zmniejszenia wydajności i możliwości użycia. Obecnie dzięki Malware i dużej ilości komputerów zombi bardzo popularne i powszechnie wykorzystywane przez hackerów.

Phishing – wyłudzenie danych

Wyłudzenie danych to ogromny globalny trend w przestępczości cybernetycznej. Wyłudzeniu mogą podlegać dane osobowe, numery i hasła do konto i kart kredytowych, dane dostępowe do usług rozrywkowych, dane ubezpieczeń, itd. Najczęściej są to ataki przez email.

Ataki Brute Force

Ataki Brute Force są skierowane zarówno do łamania haseł do stron www celem ich infekowania, łamania haseł do zasobów np. celem ich szyfrowania i wyłudzania okupów jak i innych, itd. Wzrost używania tej techniki przez hackerów jest związany z dostępnością słowników językowych czy specjalistycznych w danych językach online i niską świadomość użytkowników końcowych.

Ataki XSS (Cross-Site-Scripting)

Ataki XSS są skierowane na usługi internetowe podatne na wstrzyknięcia do przeglądarki kodu java script lub innego. Atak taki pozwala na zmianę działania usługi internetowej aby np. wykraść hasła, zablokować usługę, wykasować dane z usługi, zainfekowanie strony www, przejęcie sesji użytkownika (cookies), itd.

Ataki SQL Injection

Ataki SQL Injection w przeciwieństwie do XSS atakują nie aplikacje a jej bazę danych. Atak polega na dodanie złośliwego kodu w zapytaniu do baz danych. Atak pozwala na dostęp do bazy danych a więc na modyfikację danych, ich przejęcie a nawet skasowanie. Szacuje się, że 60% ataków na strony www lub sklepy internetowe wykorzystuje SQL Injection, natomiast 30% ataki XSS.

Zobacz naszą ofertę Doradztwa Strategicznego IT, Strategii 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

Przykładowy harmonogram prac wdrożenia eCommerce B2B, B2C

Harmonogram w każdym projekcie jest bardzo ważnym elementem projektu, nawet w przypadku projektów zwinnych wykorzystujących np. metodyki Scrum. Harmonogram bezpieczny dla eCommerce to wdrożenie produkcyjne z zapasem czasu na testy, przed pikiem sprzedażowym czy sezonem. Jeśli mamy już gotowy zakres projektu, ramy czasowe, budżet, zespół projektowy oraz cele biznesowe do osiągnięcia to pozostaje nam wybór dostawcy (zobacz proces wyboru dostawcy). Dostawca postrzegany jako partner jest kluczowym elementem powodzenia projektu. Po jego wyborze, procesie negocjacyjnym rozpoczynamy tworzenie harmonogramu prac i wdrożenia produkcyjnego.

Przykładowy proces wdrożenia platformy B2C/B2B może wyglądać następująco:

  • Warsztaty z Dostawcą – Customer Map Journey, Persony (segmentacja klienta)
  • Makiety – projektowanie UX (User Experience) i UI (User Interface)
  • Testy użyteczności makiet – testy na użytkownikach wewnętrzne, jakościowe, ilościowe zewnętrzne
  • Projekt graficzny wraz z akceptacjami klienta
  • Konfiguracja środowisk developerskich i testowych
  • Kodowanie Frontendu – kodowanie w wybranej technologii (frameworki)
  • Kodowanie API – np. do integracji Frontend z Backend
  • Kodowanie Backendu, CMS (Content Management System)
  • Integracja z ERP (Enterprise Resources Management) – integracja np. stanów magazynowych, zamówień, danych klientów, statusów płatności, itd.
  • Integracja z PIM (Product Information Management) – integracja contentu
  • Integracja z CRM (Customer Relationship Management) i Marketing Automation
  • Integracja z WMS (Warehouse Management System) – integracja stanów magazynowych i rezerwacji, procesów zwrotów, itd.
  • Integracja z płatnościami – integracja z płatnościami elektronicznymi i procesami rozliczeniowymi w ERP
  • Integracja z kurierami – integracja systemów kurierskich
  • Testy SIT (System Integration Testing) – testy integracyjne kodu plus testy jednostkowe czy systemowe
  • Testy UAT (User Acceptance Test) – testy akceptacyjne czy aplikacja, system jest wykonana zgodnie z założeniami
  • Konfiguracje SEO – przekierowania, seo, itd.
  • Konfiguracja środowiska produkcyjnego
  • Wdrożenie produkcyjne
  • Testy produkcyjne – m.in. testy wydajnościowe, konfiguracyjne
  • Optymalizacja systemu, tuning, rozwój

Zobacz naszą ofertę doradztwa:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Audyt Frontend

Frontend wraz z Backendem tworzą aplikację internetową, sklep internetowy, stronę www czy aplikację typu SaaS (Software as a Service).

Dlaczego do frontendu trzeba przyłożyć więcej wagi niż do innych części naszych systemów?

  • Frontend jest naszą wizytówką
  • Frontend zarabia dla nas pieniądze

Dlatego frontend musi mieć dopracowany UX (User interface), UI (User Interface), musi być szybki, wydajny, działający na wielu różnych ekranach (aplikacja mobilna), użyteczny dla użytkownika końcowego. Frontend jest często łączony z Backendem poprzez API (Application Programming Interface), który umożliwia podłączenie backendu do wielu frontendów np. desktop, mobile, itd.

Oferta Audytu Frontend:

Zobacz także:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

M-Commerce – doradztwo technologiczne

Mobile commerce (M-Commerce lub mCommerce) jest częścią eCommerce czyli handlu elektronicznego (cyfrowego, internetowego), gdzie dostęp do zasobów jest realizowany przez smartphony, tablety i inne urządzenia kieszonkowe.

Dostęp mobilny dzięki coraz lepszemu dostępowi do sieci internet, szybszym telefonom oraz lepszym aplikacją pozwala na zwiększanie usług i produktów oferowanych klientom mobilnym. Obecnie nikt nie wyobraża sobie życia bez map na telefonie, gdzie możemy pokazywać biznesy w pobliżu i sprzedawać produkty. Użytkownicy aktywnie korzystają z usług finansowych (banki, porównywarki) czy portali sprzedażowych (np. Allegro czy OLX). Rośnie też większa aktywność w tym obszarze przez sklepy internetowe m.in. dzięki technologią RWD (Responsive Web Design), mobile i PWA (Progressive Web Application). Obecnie każdy sklep internetowy musi mieć wersję mobilną sklepu internetowego umożliwiającego pełną ścieżkę zakupową.

Oferta technologiczna w obszarze M-Commerce:

Zobacz także naszą ofertę doradztwa technologicznego dla eCommerce:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Audyt i doradztwo CMS (Content Management System)

Systemy CMS (Content Management System) służą do zarządzania treścią zarówno w sklepach internetowych, stronach internetowych, stronach mobilnych jak i w platformach SaaS (Software as a Service). Są często nazywane Backend i oddzielone często od Frontendu poprzez np. API (Application Programming Interface).

Systemy CMS spotykane w organizacjach często charakteryzują się dużym długiem technologicznym, który powoduje wiele negatywnych skutków dla pracy zespołu programistów i firmy. Dług technologiczny powoduje:

  • Podatność systemów na ataki zewnętrzne i wewnętrzne spowodowane brakiem aktualizacji bezpieczeństwa i narażenie firmy na wyciek danych (patrz Audyt RODO) i utratę zaufania klientów i reputację firmy. Ataki te np. DDoS (Distributed Denial of Service – patrz Testy Penetracyjne) mogą także spowodować zatrzymanie się stron www czy sklepu internetowego i narazić zyski firmy (Business Continuity).
  • Zmiany funkcjonalne w startych systemach CMS powodują zarówno opór zespołów programistycznych, którzy lubią pracować w nowoczesnych technologiach jak i zwiększone koszty zmian z powodu braku dokumentacji, znajomości kodu przez nowych programistów, brak kompetencji starych technologii itd.

Obecnie spotykane systemy CMS to przeważnie otwarte platformy Open Source lub systemy dedykowane. Popularne platformy CMS to:

  • WordPress ze sklepem internetowym WooCommerce
  • Wix
  • Squarespace
  • Joomla
  • Shopify
  • Drupal
  • Prestashop
  • Blogger
  • Magento
  • Bitrix
  • Typo3
  • Textpattern
  • itd.

Audyt platformy CMS pozwala na zmniejszenie długu technologicznego, określenie i ocena ryzyka używania takiej platformy, wskazuje rekomendacje zmian lub migracji na inną platformę CMS, itd.

Przykładowy zakres audytu CMS:

  • Analiza Core CMS
  • Analiza code review pod kątem zgodności ze standardami wytwórczymi CMS
  • Audyt Architektury systemu CMS
  • Ocena Maintability (łatwość konserwacji)
  • Ocena Violations (naruszenia)
  • Ocena bezpieczeństwa platformy CMS
  • Ocena zastosowania dobrych praktyk dla wdrożeń CMS
  • Audyt API (Application Programming Interface)
  • Audyt Frontend PWA, RWD, mobile, itd.
  • Ocena hostingu dla platformy CMS
  • Ocena dostawcy platformy CMS

Zobacz także:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Audyt bezpieczeństwa API

Obecnie większość systemów posiada API (Application Programming Interface) lub integruje się z innymi systemami w inny sposób. API w przypadku systemów firm typu Omnichannel, eCommerce, Retail, banków, aplikacji mobilnych czy platform SaaS (Software as a Service) staje się elementem krytycznymi (bezpieczeństwo i wydajność) i naraża firmę na straty finansowe i utratę reputacji.

Projekt OWASP (Open Web Application Security Project) w 2019 r. zdefiniował następujące najważniejsze ryzyka i ataki związane z API:

  • Broken Object Level Authorization
  • Broken Authentication
  • Excessive Data Exposure
  • Lack of Resources & Rate Limiting
  • Broken Function Level Authorization
  • Mass Assignment
  • Security Misconfiguration
  • Injection
  • Improper Assets Management
  • Insufficient Logging & Monitoring

Ataki na API pozwalają na zdobycie nieautoryzowanego dostępu do danych i systemów łączenie z przejęciem całego dostępu do nich co pozwala na manipulację danymi czy wykasowanie danych. Ataki na API często wykorzystuje się w celu uzyskania dostępu do danych prywatnych celem kradzieży tożsamości (phishing) potrzebnej do zakładania fałszywych kont bankowych i innych usług. Inne przestępstwa to ujawnienie danych wrażliwych lub osób korzystających z danych usług cyfrowych. API staje się także często ofiarą ataków typów DoS (Denial of Services) lub DDoS (Distributed Denial of Services), które powodują braki odpowiedzi API dla innych usług czy użytkowników poprzez ich przeciążenie.

Zobacz naszą ofertę doradczą dla aplikacji, systemów, platform SaaS, sklepów internetowych w zakresie jakości kodu, bezpieczeństwa i wydajności:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów