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
Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Bezpieczeństwo zakładu produkcyjnego

GoTechnologies wraz z partnerami z zakresu cyberbezpieczeństwa wspiera przedsiębiorstwa produkcyjne i logistyczne w zakresie kompleksowego wsparcia w zakresie bezpieczeństwa. Bezpieczeństwo podlegają zarówno infrastruktura krytyczna, systemy operacyjne, dane jak i serwisy internetowe.

Zakres usług doradztwa dla przemysłu w zakresie bezpieczeństwa

  1. Audyt i doradztwo z zakresie polityki bezpieczeństwa – ochrona sieci, systemów, danych, procedur bezpieczeństwa np. backupów, włamań, zapewnienie ochrony
  2. Audyt backupów danych i systemów kluczowych np. ERP, APS, MES, WMS, SCM, itd. – analiza procedur i konfiguracji odtworzenia backupów po awarii (Disaster Recovery – odtwarzanie awaryjne).
  3. Audyt sieci LAN, WiFi, LoRa, SigFox, NB-IoT, 5G – doradztwo i rekomendacje.
  4. Audyt ciągłości biznesowej (Business Continuity) – audyt sieci, Data Center, systemów redundantnych, dostawców.
  5. Audyt bezpieczeństwa dla pojazdów AGV
  6. Audyt bezpieczeństwa OWASP dla aplikacji i systemów IT/OT
  7. Audyt bezpieczeństwa systemów RFID
  8. Audyt architektury systemów IT/OT – szyny danych, hurtownie danych, BI (Business Inteligence), systemy klas ERP, CRM, WMS, APS, MES, MRP, SCM, Andon, SCADA, Kanban, itd.
  9. Audyt bezpieczeństwa systemów firmy SAP
  10. Audyt prawny licencji systemów np. firmy SAP
  11. Audyt jakości danych Big Data – analiza spójności, integralności, backupów baz danych w systemach i hurtowniach danych
  12. Audyt zgodności RODO
  13. Audyt środowisk i konfiguracji systemów domenowych np. Active Directory firmy Microsoft
  14. Audyt bezpieczeństwa chmur publicznych i prywatnych Google GCP, Microsoft Azure i Amazon AWS
  15. Audyt bezpieczeństwa API – audyt bezpieczeństwa API metodami OWASP, testy penetracyjne API
  16. Audyt bezpieczeństwa IoT – audyt bezpieczeństwa danych, ich przesyłania i zbierania
  17. Audyt bezpieczeństwa komputerów i urządzeń mobilnych
  18. Testy penetracyjne systemów i aplikacji – testy penetracyjne systemów webowych
  19. Audyt długu technologicznego aplikacji – ocena długu technologicznego, ryzyk z tym związanych oraz rekomendacje minimalizacji długu
  20. Audyt aplikacji mobilnej – audyt bezpieczeństwa, jakości kodu i wydajności aplikacji mobilnych
  21. Audyt wydajności systemów – testy obciążeniowe dla systemów wewnętrznych i webowych

Jeśli potrzebujesz wsparcia w zakresie audytu bezpieczeństwa Twojego zakładu produkcyjnego zapraszamy do kontaktu.

Zobacz naszą ofertę doradztwa technologicznego dla Przemysłu, Automotive

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Data Management – Big Data

Zarządzanie danymi jest jednym z ważniejszych zadań działów informatycznych i Dyrektorów IT (CIOChief Information Officer). Dane są zbierane przez procesy zaimplementowane w systemach, aplikacjach czy czujnikach (np. IoT), przetwarzane i udostępniane w jeszcze kolejnych systemach czy wydrukach (raportach). Dane są wymieniane przez różne systemy, łączone, interpretowane. Dane zarabiają, dane prognozują, na danych opieramy i strategię i działania operacyjne. GoTechnologies wspiera organizacje z branż eCommerce, Omnichannel, Retail, Przemysł, Automotive, Logistyka w wykorzystaniu danych w rozwoju i optymalizacji biznesu.

Zarządzanie danymi

Zarządzadnie danymi to m.in:

  • Tworzenie danych przez procesy zaimplementowane w systemach, aplikacje czy urządzenia fizyczne (czujniki).
  • Przesyłanie danych (connectivity) przez sieci LAN, WiFi, internet, itd. – bezpieczne!
  • Przechowywanie danych w bazach danych lub w chmurze
  • Zapewnienie dostępu do danych przez użytkowników czy inne systemy
  • Archiwizacja i proces niszczenia danych

Zbieranie danych, integracja danych

Dane są zbierane w różnych systemach np. ERP, CRM, eCommerce, PIM, WMS, MRP, MES, SCM czy bazach danych np. z czujników IoT czy innych systemów OT (Operational Technology – Technologia Operacyjna).

Przetwarzanie danych, Analiza danych

Dane z wielu źródeł (systemy, bazy danych) integrują się w hurtowniach danych, gdzie są udostępniane np. dla systemów raportowych BI lub systemów wspomagających podejmowanie decyzji.

Dane to biznes

Wykorzystanie danych w biznesie to kluczowy element przewagi konkurencyjnej. Spółki digitalowe zbierają dane z wszystkich możliwych źródeł, często na początku nie mając pomysłu do ich wykorzystania np. google.

Wyzwania firm z danymi

Firmy borykają się z:

  • Ciągłym, logarytmicznym przyrostem danych ze starych i ciągle nowych systemów czy urządzeń
  • Przetwarzaniem w chmurze
  • Bezpieczeństwem przesyłania i przetwarzania danych
  • Brakiem jakości danych w systemach i brakiem jednoznacznych masterów danych w procesach
  • Utrzymanie wysokiej wydajności i dostępności do danych
  • Compliance z regulacjami prawnymi jak np. RODO
  • Brak pomysłów na monetyzację danych
  • itd.

Zobacz naszą ofertę doradczą w obszarze zarządzania danymi Big Data

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

IT Asset Management (ITAM) – Zarządzanie zasobami IT

Systemy do zarządzania zasobów informatycznych (ITAMIT Asset Management) wspierają organizacje w sprawnym zarządzaniu dużą ilością różnych zasobów informatycznych (hardware i software) jak licencje na systemy, sprzęt komputerowy (laptopy, dyski, urządzenia sieciowe, telefony komórkowe, serwery, drukarki, monitory, czujniki IoTInternet of Things, itd.) czy umowy gwarancyjne na ten sprzęt. Systemy ITAM implementują procesy informatyczne IT Service Management (ITSM) i są ważnym elementem frameworka ITIL (Information Technology Infrastructure Library).

Podstawowe funkcje systemów ITAM (IT Asset Management)

  • Śledzenie cyklu życia zasobów informatycznych – planowanie zakupów, zakupy zasobów, wdrażanie zasobów w organizacji (przekazywanie, instalowanie, itd.), utrzymanie zasobów i wycofanie zasobów z ewidencji organizacji.
  • Ewidencja zasobów informatycznych lub cyfrowych – zbieranie informacji o zasobach, często w dniu kupienia lub od zlecenia zakupu w systemach zakupowych. Ewidencja licencji (Licence Management), ewidencja zasobów cyfrowych (Digital Asset Management) jak zdjęcia, video czy dane.
  • Śledzenie i wykorzystanie zasobów informatycznych – pełna informacja o lokalizacji zasobów oraz osobach, które sa uprawnione do korzystania z tych zasobów.
  • Bezpieczeństwo zasobów informatycznych – lokalizacja zasobów, informacje o długu technologicznym zasobów np. brakiem upgradów systemu operacyjnego, itd.
  • Zarządzanie kosztami zakupów i kosztami całkowitego utrzymania sprzętu TCOTotal Cost of Ownership

Jakie są korzyści z wykorzystania systemów ITAM (IT Asset Management)?

  • Zmniejszenie kosztów zasobów informatycznych, dzięki optymalnemu wykorzystaniu zasobów sprzętowych i licencyjnych
  • Większe bezpieczeństwo poprzez ewidencjonowanie i śledzenie zasobów informatycznych oraz unikanie kar np. licencyjnych.
  • Wyższa dojrzałość procesów wykorzystania i zarządzania zasobami informatycznymi (IT GovernanceŁad Korporacyjny IT)
  • Standaryzacja zasobów – umożliwiająca optymalizację kosztową (ceny zakupów i utrzymania), szybszy czas dostarczenie zasobu do organizacji (TTMTime to Market), itd.

Zobacz naszą ofertę na doradztwo informatyczne (IT)

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Technologia operacyjna OT i technologia informatyczna IT

Technologia informatyczna IT (Information Technology) i technologia operacyjna OT (Operational Technology) istnieją obok siebie w branży przemysłowej czy utilities. Czym one się różnią?

Technologia operacyjna OT

Technologia czy systemy OT (Operational Technology) to wszelkie urządzenia i software (systemy) do zarządzania i monitorowania fizycznych urządzeń jak maszyny produkcyjne, pompy, urządzenia kolejowe, itd. Przykładami OT są systemy SCADA, kontrolery PLC, systemy Andon, czujniki IIoT (Industrial Internet of Things), systemy Embedded, elektroniczny Kanban (eKanban), systemy HMI (Human Machine Interface), itd. OT jest krytyczne z punktu widzenia przedsiębiorstw i ciągłości biznesowej jego procesów wytwórczych.

Technologia informatyczna IT

Technologia informatyczna IT koncentruje się na zapewnieniu sieci komunikacyjnych, dostępu do danych, aplikacji, zapewnia zasoby Data Center i zabezpiecza wszystkie te zasoby z punktu widzenia bezpieczeństwa.

Współpraca pomiędzy IT i OT

Bezpieczeństwo jest jednym ważniejszych obszarów współpracy pomiędzy technologią operacyjną OT a technologią informatyczną IT. To IT zabezpiecza i dostarcza sieci przewodowe LAN, WiFi, sieci niskoprądowe LoRa czy SigFox. To IT zabezpiecza dostęp do tych sieci z internetu. OT jest krytyczne dla ciągłości biznesowej więc bezpieczeństwo w tym obszarze powinno być bardzo istotnym elementem kooperacji.

Kolejny obszar do silnej kooperacji to integracje systemów i wymiana danych (Big Data), często w czasie rzeczywistym. Przemysł 4.0, masowe zastosowanie urządzeń IoT, systemy BI (Business Intelliegence), systemy ERP (Enterprise Resources Management), systemy APS (Advanced Planning System) czy MES (Manufacturing Executing System) wymagają silnej integracji i wymiany danych real time.

Zobacz naszą ofertę doradczą:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Procesy: Analiza AS-IS i TO-BE

Analiza stanu obecnego AS-IS i analiza stanu przyszłego TO-BE są elementami Modelowania Procesów Biznesowych (Business Process Modeling). Służą do oceny aktualnego stanu procesów oraz są próbą ustalenia docelowego stanu procesów w przyszłości. Analizy AS-IS i TO-BE możemy wykonywać w notacji BPMN (Business Process Model and Notation) lub w modelu ICOM (ang. Input, Output, Controll, Mechanizm).

Analizę procesów wykonuje się kiedy:

  • Utraciliśmy kontrolę nad procesami, nie wiemy jak one działają, nie są spisane, nie wiemy kto jest odpowiedzialny za dane procesy lub podprocesy.
  • Utrudniają wdrożenia zmian w systemach i generują duże koszt tych procesów
  • Nie są optymalne pok kątem biznesowym i albo generują niepotrzebne koszty, albo nie generują oczekiwanych przychodów.
  • Benchmarking procesów lub ich wskaźników (KPI Key Performance Indicator) pokazują odstawanie od konkurencji.
  • Przygotowujemy się do wdrożenia systemu ERP (Enterprise Resources Planning) lub innego. Analiza procesów ułatwi nam wybór odpowiedniego systemu i zaoszczędzi czas na etapie analizy przedwdrożeniowej.

Innymi elementami, które można wykorzystać w analizie procesów są:

  • Macierz odpowiedzialności RACI (Responsibility Assignment Matrix)
  • Diagramy przypadków użycia Use Case
  • Notacje graficzne UML

Zobacz naszą ofertę w obszarze procesów i ich implementacji w systemach:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Poziom gotowości technologicznej TRL w Startupach

Poziom gotowości startupu zarówno rozwoju produktu jak i gotowości do komercjalizacji TRL (Technology Readiness Level) określa się w skali od 1 do 9. Skala jeden to ocena wstępnej koncepcji, walidacja pomysłu, realności wdrożenia, natomiast skala dziewięć to gotowość produktu do sprzedaży (po wszystkich testach, certyfikacji, itd.). TRL określa zatem poziom dojrzałości produktu do jego komercjalizacji. Czym wyżej w skali tym mniejsze ryzyko niepowodzenia i szybszy czas rozpoczęcia sprzedaży produktu.

Skala ta ułatwia zewnętrznym inwestorom śledzenie postępu rozwoju produktów i jest pomocnym narzędziem i wskaźnikiem rozwoju KPI (Key Performance Indicator). TRL jest powszechnie stosowany nie tylko w Polsce, ale także jest standardem w Unii Europejskiej w Stanach Zjednoczonych, gdzie został pierwotnie wymyślony przez NASA w latach 70-tych. Z punktu widzenia inwestora czym wyższym TRL tym większa szansa na sukces i mniejsze ryzyko inwestycyjne. Oczywiście należy pamiętać także o własnym IT Due Diligence, nie zawsze founderzy rozumieją TRL, a wręcz podwyższają skalę dojrzałości produktu.

Skalę TRL można podzielić na trzy grupy:

  • TRL 1: Prace koncepcyjne, analiza pomysłu, produktu, realności jego stworzenia
  • TRL 2-6: Badania przemysłowe nad produktem
  • TRL 7-9: Prace rozwojowe nad produktem

Skala TRL w NCBiR:

  • TRL 1: Zaobserwowano i opisano podstawowe zasady danego zjawiska – najniższy poziom gotowości technologii, oznaczający rozpoczęcie badań naukowych w celu wykorzystania ich wyników w przyszłych zastosowaniach. Zalicza się do nich między innymi badania naukowe nad podstawowymi właściwościami technologii.
  • TRL 2: Określono koncepcję technologii lub jej przyszłe zastosowanie. Oznacza to rozpoczęcie procesu poszukiwania potencjalnego zastosowania technologii. Od momentu zaobserwowania podstawowych zasad opisujących nową technologię można postulować praktyczne jej zastosowanie, które jest oparte na przewidywaniach. Nie istnieje jeszcze żaden dowód lub szczegółowa analiza potwierdzająca przyjęte założenia.
  • TRL 3: Potwierdzono analitycznie i eksperymentalnie krytyczne funkcje lub koncepcje technologii. Oznacza to przeprowadzenie badań analitycznych i laboratoryjnych, mających na celu potwierdzenie przewidywań badań naukowych wybranych elementów technologii. Zalicza się do nich komponenty, które nie są jeszcze zintegrowane w całość lub też nie są reprezentatywne dla całej technologii.
  • TRL 4: Zweryfikowano komponenty technologii lub podstawowe jej podsystemy w warunkach laboratoryjnych. Proces ten oznacza, że podstawowe komponenty technologii zostały zintegrowane. Zalicza się do nich zintegrowane „ad hoc” modele w laboratorium. Uzyskano ogólne odwzorowanie docelowego systemu w warunkach laboratoryjnych.
  • TRL 5: Zweryfikowano komponenty lub podstawowe podsystemy technologii w środowisku zbliżonym do rzeczywistego. Podstawowe komponenty technologii są zintegrowane z rzeczywistymi elementami wspomagającymi. Technologia może być przetestowana w symulowanych warunkach operacyjnych.
  • TRL 6: Dokonano demonstracji prototypu lub modelu systemu albo podsystemu technologii w warunkach zbliżonych do rzeczywistych. Oznacza to, że przebadano reprezentatywny model lub prototyp systemu, który jest znacznie bardziej zaawansowany od badanego na poziomie V, w warunkach zbliżonych do rzeczywistych. Do badań na tym poziomie zalicza się badania prototypu w warunkach laboratoryjnych odwzorowujących z dużą wiernością warunki rzeczywiste lub w symulowanych warunkach operacyjnych.
  • TRL 7: Dokonano demonstracji prototypu technologii w warunkach operacyjnych. Prototyp jest już prawie na poziomie systemu operacyjnego. Poziom ten reprezentuje znaczący postęp w odniesieniu do poziomu VI i wymaga zademonstrowania, że rozwijana technologia jest możliwa do zastosowania w warunkach operacyjnych. Do badań na tym poziomie zalicza się badania prototypów na tzw. platformach badawczych.
  • TRL 8: Zakończono badania i demonstrację ostatecznej formy technologii. Oznacza to, że potwierdzono, że docelowy poziom technologii został osiągnięty i technologia może być zastosowana w przewidywanych dla niej warunkach. Praktycznie poziom ten reprezentuje koniec demonstracji. Przykłady obejmują badania i ocenę systemów w celu potwierdzenia spełnienia założeń projektowych, włączając w to założenia odnoszące się do zabezpieczenia logistycznego i szkolenia.
  • TRL 9: Sprawdzenie technologii w warunkach rzeczywistych odniosło zamierzony efekt. Wskazuje to, że demonstrowana technologia jest już w ostatecznej formie i może zostać zaimplementowana w docelowym systemie. Między innymi dotyczy to wykorzystania opracowanych systemów w warunkach rzeczywistych

Zobacz naszą ofertę doradczą dla startupów i funduszy Venture Capital:

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

Systemy klasy BPM (Business Process Management)

Systemy zarządzania procesami BPM są powszechnie stosowane w rozbudowanych organizacjach, gdzie procesów jest dużo, często bardzo powiązanych ze sobą i zaimplementowanych w wielu w systemach i aplikacjach.

Główne zadania systemów do zarządzania procesami BPM:

  • Definiowanie procesów biznesowych
  • Modelowanie procesów biznesowych
  • Zarządzanie procesami biznesowymi
  • Symulacje zmian w procesach biznesowych i ich wpływ na zdefiniowane wskaźniki KPI (Key Performance Indicator)
  • Ciągły monitoring procesów i ich pomiar
  • Ciągła optymalizacja procesów na podstawie otrzymywanych danych i założeń

Korzyści z wdrożenia systemu do zarządzania procesami klasy BPM:

  • Oszczędności finansowe na procesach
  • Zyski biznesowe wynikające z efektywności procesów
  • Uporządkowana struktura procesów i szybki dostęp do nich
  • Łatwiejsze wprowadzanie zmian w procesach, łącznie z symulacjami efektów takich zmian
  • Benchmarking kosztowy i wydajnościowy procesów
  • Ułatwiona automatyzacja i wdrożenia zmian w systemach informatycznych (np. poprzez RPARobotic Process Automation)

Systemy BPM są często także określane jako systemy Corporate Performance Management (CPM) i systemy Enterprise Performance Management (EPM) lub są ich częścią. Mogą być także częścią innych systemów jako np. moduł w systemie klasy ERP.

Systemy BPM są często integrowane z systemami klasy ERP (Enterprise Resources Management), systemami wspomagania decyzji i systemami BI (Business Intelligence).

Zobacz także nasze usługi doradcze:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów

Zwinne wytwarzanie oprogramowania Scrum i Kanban

Zwinne wytwarzanie oprogramowania (Agile Software Development) na dobre zagościło w polskich firmach. Obecnie mało, w której nie stosuje się jakiegoś “zwinnego” procesu  wytwarzania oprogramowania. Dlaczego tak się dzieje? Dlaczego firmy odchodzą od tradycyjnych metod prowadzenia projektów na rzecz bardziej elastycznych lub je łączą? Powodów jest wiele. A więc od początku.

W 2001 roku powstał manifest zwinności, który obecnie brzmi “Wytwarzając oprogramowanie i pomagając innym w tym zakresie, odkrywamy lepsze sposoby wykonywania tej pracy. W wyniku tych doświadczeń przedkładamy:

  • Ludzi i interakcje ponad procesy i narzędzia.
  • Działające oprogramowanie ponad obszerną dokumentację.
  • Współpracę z klientem ponad formalne ustalenia.
  • Reagowanie na zmiany ponad podążanie za planem.

Doceniamy to, co wymieniono po prawej stronie, jednak bardziej cenimy to, co po lewej.

Od tego się zaczęło. Od tamtego czasu powstało wiele odmian metodyk zwinnych takich jak XP (Extreme programming), Crystal Clear, Scrum i inne. Jednakże dopiero Scrum został tak szeroko przyjęty przez programistów i organizacje. Tzw. “wdrożenie” Scruma nie jest łatwe, gdyż zmienia on sposób myślenia i funkcjonowania nie tylko samego działu deweloperskiego, ale i całej organizacji. Scruma możemy wykorzystywać stale w procesie wytwarzania oprogramowania lub w przypadku wyjątkowo ważnych projektów, które charakteryzują się dużą zmiennością, ograniczonym czasem i obarczonych dużym ryzykiem.

Zacznijmy od najważniejszego: ludzi. Scrum składa z trzech ról: właściciela produktu (Product Owner), zespołu oraz Scrum Mastera. Właściciel produktu reprezentuje osoby zainteresowane produktem np. sponsor, zarząd, dział sprzedaży, itd. Ustala on priorytety i odbiera wytworzone produkty. Zespół deweloperski jest odpowiedzialny za wykonanie zadań i ponosi grupową odpowiedzialność za ich realizację. Zespoły budujemy w zależności od czekających nas zadań tak, aby znaleźli się w nim specjaliści o kompetencjach umożliwiających wykonanie zleconych im zadań. Scrum Master jest rolą odpowiedzialną za realizowanie całego procesu scrumowego i “ochronę” jego przed próbami łamania zasad. Ta rola nie jest ani Team Leaderem ani Project Managerem.

Zobaczmy jak wygląda proces wytwarzania oprogramowania w Scrumie:

  • Planowanie (Sprint Planning), spotkanie inicjujące, które składa się z dwóch części. Pierwsza część to prezentacja przez product ownerów zadań do wykonania, celów, priorytetów, itd. Druga część to analiza przez zespół programistyczny czasochłonności, trudności wykonania, możliwej do zastosowania technologii lub architektury. Wynikiem tego jest Sprint Backlog – lista zadań wybrana na jeden sprint z Product Backloga.
  • Codzienne spotkania (Daily Scrum lub Daily Standup), krótkie kilkuminutowe spotkania członków zespołu, zazwyczaj w godzinach porannych. Każdy z zespołu odpowiada na 3 pytania, co zrobił wczoraj, co zrobi dzisiaj i czy są tematy, które blokują jego pracę.
  • Przegląd sprintu (Sprint Review) to spotkanie pod koniec każdego sprintu, gdzie zespół oddaje wykonaną pracę w postaci działającego produktu.
  • Analiza sprintu (Sprint Retrospective) to spotkanie, na którym możemy omówić, co się nie udało podczas tego sprintu, co należy poprawić, itd. Bardzo ważne spotkanie, które często jest pomijane ze względu na brak czasu (spotkanie można realizować np., co drugi lub trzeci sprint, ale nie wolno pomijać jego zgodnie z procesem samodoskonalenia).

Zatem jak “wdrożyć” Scruma w kilku krokach:

  • Podziel ludzi na małe zespoły (kilku osobowe w zależności od skali organizacji i projektów) posiadających w sobie różne kompetencje.
  • Wyznacz rolę właściciela projektów lub zadań (Produkt Owner) oraz Scrum Mastera.
  • Podziel zadania lub projekty na mniejsze zadania, ustal z Product Ownerami ich priorytety i oszacuj potencjalny czas ich realizacji, zrób z tego kolejkę lub listę zadań (Product Backlog).
  • Wyznacz czas jednego sprintu (czas, w którym będziemy pracowali a na koniec jego oddawali zlecone zadania) zależnie od skali zadań od jednego do kilku tygodni.
  • Rozpocznij sprint zgodnie z procesem opisanym wyżej.

Co daje nam Scrum? W teorii są to: łatwość reagowania na zmiany i łatwość realizacji zadań, zwiększona produktywność i jakość, szybsze reagowanie na pojawiające się ryzyka, wcześniejsze uzyskiwanie półproduktów, poprawę komunikacji pomiędzy biznesem a działami IT, większe zaangażowanie całej organizacji w prace rozwojowe, zmniejszenie kosztów realizacji projektów i jeszcze kilka innych. Oczywiście jest to tylko teoria i wszystko zależy od ludzi i chęci zmiany aktualnej rzeczywistości w organizacji.

Czym jest Kanban i w czym może nam pomóc? Kanban wywodzi się z systemów produkcyjnych, głównie z branży motoryzacyjnej. Pozwala śledzić postępy prac nad poszczególnymi produktami na liniach montażowych. Kanban należy do tzw. systemów “ciągnionych” (pull), które różnią się od systemów “pchanych” (push) realnym zapotrzebowaniem na wytwarzanie niż z góry wytyczoną polityką produkcji. Proces wytwarzania oprogramowania może zostać porównany z linią montażową w hali produkcyjnej, dlatego Kanban idealnie nadaje się, jako technika sygnalizacyjna przy zarządzaniu realizacją zadań czy projektów.

Wszystkie zadania poruszają się zgodnie z przepływem (flowem) w jednym kierunku (np. z lewa do prawa) i przechodzą przez kolejne etapy (np. analiza, implementacja, testowanie, wdrożenie, itd.) . Każdy z etapów posiada określone zasoby (pracownicy o odpowiednich umiejętnościach) oraz możliwość przerobu (ilość możliwej do wykonania pracy w tej samej jednostce czasu). Dzięki takiemu podejściu szybko widzimy, na jakim etapie znajdują się zadania, gdzie mamy ograniczenia oraz co musimy zrobić, aby zwiększyć przerób, czyli produkcję oprogramowania.

Kanban posiada kilka podstawowych zasad:

  • Wizualizacja – stworzenie i rozrysowanie (na tablicy lub za pomocą oprogramowania) procesu wytwarzania oprogramowania ze statusami działań np. analiza, wytwarzanie, testowanie, wdrażanie, zadania skończone.
  • Limit pracy w toku (WIP – Work in Progress) – nie możemy pracować nad większą liczbą zadań niż jesteśmy w stanie wykonać w tej samej jednostce czasu oraz jeśli nie dostaliśmy zlecenia na wykonanie pracy przez jednostkę zlecającą. Jest to zasada wywodząca się z systemów “ciągnionych” (pull).
  • Zarządzanie strumieniem – monitorowanie i raportowanie o etapach wykonywania zadań, prędkości i płynności wykonywania zadań. Idealny proces charakteryzuje się dużą prędkością wykonywania zadań i płynnością oraz przewidywalnością.


Jak zacząć? Zastosowanie Kanbana jest bardzo proste. Poniżej kilka kroków, jakie należy uczynić, aby móc sprawnie zarządzać zadaniami w procesie wytwarzania oprogramowania.

  • Rozrysuj aktualny proces wytwarzania oprogramowania np. na tablicy lub dużej powieszonej na ścianie kartce papieru. Kolumny będą oznaczały kolejne elementy procesu.
  • W pierwszej kolumnie (np. nazwanej listą zadań, backlog-iem lub wish listą) umieść karteczki z zadaniami. Powstanie kolejka zadań. Nadaj im priorytety. Podziel zadania na kategorie zadań np. błędy, zadania, poprawki, itd.
  • Nazwij kolejne kolumny np. analiza, programowanie, testowanie, wdrażanie i zadania skończone.
  • Określ możliwy przerób na każdym etapie (tzw. WIP) np., jeśli posiadamy jednego testera to możemy przyjąć, że na etapie testowania będziemy mogli równocześnie testować tylko jedno zadanie.
  • Podziel oznaczone już etapy (kolumny) na dwa statusy: w trakcie, skończone.
  • Zacznij działać. Pobieraj zadania z kolejki zgodnie z możliwościami przerobu (WIP). Przesuwaj zadania zgodnie ze zmianami statusów do lewa do prawa, aż do kolumny zadania skończone (wdrożone).

Co dalej? Kanban pozwala na analizę czasu potrzebnego na wykonania zadań. Dzięki takiej wiedzy i grupowaniu zadań nie musimy szacować czasochłonności wykonania zadań a określać wielkość zadań za pomocą prostych miar np. duże, małe, średnie. Zaoszczędzi to nam bardzo dużo czasu na estymację, która i tak będzie błędna. A co w przypadku pisania oprogramowania dla klienta zewnętrznego? Tutaj warto przyjrzeć się połączeniu Scruma i Kanbana, co zrobimy w dalszej części. Kanban pozwala wykrywać wąskie gardła w procesie od pojawienia się pomysłu, aż do wdrożenia oprogramowania. Często wąskie gardła znajdują się poza procesem wytwarzania oprogramowania np. w dziale biznesowym, który jest odpowiedzialny za testy akceptacyjne wytworzonych produktów.

Kanban pozwala zmniejszyć skutki wielozadaniowości poprzez stosowanie limitów WIP. Pozwala to na zajmowanie się zadaniami, które w rzeczywistości mają wysoki priorytet i które możemy rzeczywiście wykonać w jednej jednostce czasu.

Proces wytwarzania powinien charakteryzować się też płynnością wykonywania zadań. Monitorujmy zatem  i udoskonalajmy wszystkie elementy procesu. Pozwoli to w przyszłości do osiągnięcia dużej prędkości wytwarzania oprogramowania, unikania wąskich gardeł i nie tracenia cennego czasu.

Kolejne kroki? Mamy już działający Scrum. Widzimy także tablicę Kanbana. Jak to teraz połączyć i co dzięki temu zyskamy? Scrum działa w określonych okresach czasu tzw. iteracjach. Kanban to zmienia mówiąc, że zasoby są wolne i domagają się otrzymania kolejnych zadań. Praca w Scrumbanie zaczyna przypominać taśmociąg, który pracuje niezależnie od okresu czasu. Dzięki takiemu podejściu możemy wykonać więcej zadań niż w typowym sprincie. Możemy także mniej uwagi przywiązywać do estymacji czasu wykonania a bardziej bazować na priorytetach i kolejce. W praktyce w niedługim czasie zobaczymy, że wykonujemy więcej zadań niż pracując w typowym Scrumie.

Jakie są różnice pomiędzy Scrumem a Scrumbanem? Nie ograniczamy się do sprintu. Bierzemy pierwsze zadanie z kolejki. Tablica Kanbana może być stosowana dla wielu zespołów a także dla całych firm. W przypadku tablicy Scruma, korzysta z niej tylko zespół scrumowy. Jak widzimy tablica Kanbana poprawia komunikację i poszerza wiedzę o innych zadaniach i projektach wykonywanych przez inne zespoły, niekoniecznie informatyczne. W Scrumbanie nie patrzymy na wykres spalania (burndown chart) a bardziej na czas wykonania zadania. A co z codziennymi spotkaniami, sprint planningiem czy sprint review? Polecam kontynuowanie codziennych stand-upów, planowanie tylko wtedy, kiedy jest to potrzebne, a przeglądy regularnie, co kilka tygodni w z góry ustalonym terminie. Zachęcam do eksperymentowania i procesu ciągłego doskonalenia. Jestem też zwolennikiem adoptowania najlepszych elementów z różnych metodologii do istniejącej organizacji np. elementów Scruma, Princa2, PMI, CCPM lub Kanbana.

Zobacz naszą ofertę doradczą:

Zapraszamy do kontaktu:

pfederowicz@gotechnologies.pl

Ponad 200 zadowolonych klientów