Niedawno na naszym blogu Innovation Today pisaliśmy o koncepcji poziomów gotowości technologicznej TRL, która została wprowadzona przez NASA w latach 70. XX wieku. Zgodnie z tą metodyką, określenie stadium rozwoju technologicznego danej koncepcji opiera się na 9 stopniowej skali określającej dojrzałość projektową danego produktu, procesu bądź usługi. Mimo, że klasyfikacja ta jest w założeniu uniwersalna, pojawiają się pewne trudności w przyporządkowaniu odpowiedniego poziomu TRL  do niektórych, współcześnie rozwijanych produktów i technologii.

Do grupy takich rozwiązań bez wątpienia należą systemy IT oraz oprogramowanie. Transformacja cyfrowa, a także związane z nią wykorzystanie danych oraz oprogramowania, widoczne jest w procesach produkcyjnych, dystrybucji oraz sprzedaży w każdej z gałęzi gospodarki, stąd coraz większe znaczenie tego problemu.

Klasyfikacja TRL odnosi się stricte do rozwoju produktu (lub technologii) w kaskadowym procesie wytwórczym. Z tego powodu jej zastosowanie do oceny dojrzałości technologicznej innowacyjnego oprogramowania nie jest jednoznaczne. Jednocześnie przedsiębiorcy z branży IT ubiegający się o dotację muszą sprostać temu zadaniu, ponieważ jest to wymagane zarówno w programach dofinansowań na poziomie Komisji Europejskiej (KE), jak i w ramach programów dostępnych na poziomie krajowym.

Różne podejścia

Na przestrzeni ostatnich lat podjęto kilka prób wyznaczenia pewnych standardów w podejściu do oceny poziomu gotowości technologicznej (TRL) w odniesieniu do systemów IT i oprogramowania. W niniejszym artykule przedstawiamy według nas najciekawsze i najbardziej uniwersalne koncepcje. Podjęliśmy także próbę ich scalenia w celu wypracowania jednej wspólnej klasyfikacji o bardziej precyzyjnym opisie poszczególnych poziomów. Zaznaczamy jednak, że klasyfikacja jest naszą propozycją, która z uwagi na brak jednoznacznej, zalecanej do stosowania definicji w tym zakresie, może nie być w pełni spójna z podejściem ekspertów oceniających projekt dotacyjny.

Wśród uwzględnionych koncepcji znajdują się:

  • Wprowadzone w 2008 r. przez NASA rozszerzenie poziomów TRL w odniesieniu do oprogramowania;
  • Opracowana w 2010 r. przez Departament Obrony Stanów Zjednoczonych definicja poziomów TRL;
  • Stworzony na prośbę Departamentu Armii Stanów Zjednoczonych w 2003 r. zestaw poziomów TRL w celu jego zastosowania podczas analiz poprzedzających podejmowanie decyzji w sprawie rozwoju technologii dla wojska.

Opis poszczególnych poziomów gotowości technologicznej TRL w odniesieniu do systemów IT i oprogramowania opracowany na bazie w/w koncepcji został przedstawiony poniżej.

TRL1 – Najniższy poziom gotowości technologii informatycznej. Dotyczy  przeprowadzenia badań podstawowych w zakresie nowego typu oprogramowania. Obejmuje opracowanie podstawowych zastosowań i założeń w zakresie właściwości architektury oprogramowania, formuł matematycznych i ogólnych algorytmów. Przykłady mogą obejmować opracowanie koncepcji, którą można wdrożyć w ramach systemu/oprogramowania bądź badania analityczne podstawowych właściwości algorytmu.

Przykład: W ostatnim czasie bardzo popularne stały się gry komputerowe z wykorzystaniem technologii rozszerzonej rzeczywistości (VR). Zanim jednak otrzymaliśmy możliwość doświadczania świata 3D wygenerowanego przez komputer, technologia ta przeszła przez wszystkie poziomy gotowości technologicznej TRL. Na początku tego procesu była pewna ogólna, potwierdzona wstępnymi badaniami idea zakładająca, że gra może dostarczać wrażenia podobne do świata rzeczywistego.

TRL2 – Zaobserwowane zostały podstawowe zasady oraz określono podstawowe praktyczne zastosowania. Zastosowania te mają jeszcze charakter spekulatywny – nie ma dowodów oraz szczegółowych analiz potwierdzających przypuszczenia. Przykłady są ograniczone do badań analitycznych z wykorzystaniem danych syntetycznych.

Przykład: Jednym z najbardziej oczywistych zastosowań technologii VR były gry komputerowe. Technologia, która powoduje, że mózg traktuje obraz wyświetlany w 2D jako trójwymiarowy doskonale mogła się sprawdzić w zaspokojeniu potrzeby jak najlepszego odwzorowania fabuły gry i dostarczenia użytkownikowi jak największych wrażeń rozrywkowych. Z punktu widzenia twórców gier, na tym poziomie gotowości technologicznej zauważone zostaje praktyczne zastosowanie technologii VR  w grach, z uwagi na jej charakterystykę: podobieństwo do świata realnego, wysoką interaktywność  i responsywność.

TRL3 – Rozpoczęte zostały aktywne prace B+R, takie jak badania mające na celu m.in. stworzenie kodu, który waliduje przewidywania analityczne dotyczące poszczególnych elementów systemu/oprogramowania. Poziom ten obejmuje rozwój środowisk o ograniczonej funkcjonalności, w celu walidacji właściwości krytycznych i przewidywań analitycznych przy użyciu niezintegrowanych komponentów i częściowo reprezentatywnych danych. Algorytmy uruchamiane są  na zastępczych procesorach w środowisku laboratoryjnym.

Przykład: Krótko mówiąc, na tym etapie rozwoju technologii konieczne było wykonanie prac badawczych, które potwierdzą, że stworzenie technologii VR jest w ogóle możliwe. Mowa tutaj o wygenerowaniu obrazu za pomocą komputera oraz wykorzystaniu specjalnych okularów pozwalających widzieć wirtualne obiekty. Poszczególne elementy technologii w postaci algorytmów takich jak np. algorytm sterujący, algorytm rozpoznawania obiektów działają odpowiednio, jednak nie zostały jeszcze zintegrowane w jedną spójną całość.

TRL4 – Następuje integracja podstawowych, kluczowych składników systemu/oprogramowania w celu zapewnienia interoperacyjności między nimi, niezawodności, łatwości konserwacji, rozszerzalności czy bezpieczeństwa. Komponenty te są stosunkowo prymitywne pod względem wydajności i niezawodności w porównaniu z docelowym systemem. W razie potrzeby przeprowadzona zostaje emulacja z elementami obecnymi/starszymi. Opracowane zostają prototypy w celu zademonstrowania różnych aspektów systemu.

Przykład: Na tym etapie następuje integracja opracowywanych wcześniej osobno algorytmów w jeden zestaw tworzący pierwszą wersję gry.

TRL5 - Wzrasta niezawodność systemu/oprogramowania. Wdrożone zostały elementy end-to-end. Podstawowe elementy technologii są już gotowe do przetestowania w symulowanym środowisku. Algorytmy działają na procesorach testowych o charakterystyce oczekiwanej w środowisku operacyjnym. Wersje oprogramowania są wersjami „Alfa” i rozpoczęta została kontrola konfiguracji. Rozpoczęte zostały procesy weryfikacji, walidacji i akredytacji (VV&A).

Przykład: Na poziomie piątym konieczna była weryfikacja, czy zachowane zostały podstawowe elementy technologii. Krótko mówiąc, tworzymy prototyp gotowy do pierwszych testów w warunkach symulujących te rzeczywiste (testy przebiegają na podstawie zaplanowanych scenariuszy). Wewnętrzni inżynierowie QA przeprowadzają akceptacyjne testy alfa w celu znalezienia wszelkich krytycznych błędów i niedoskonałości – „bugów” w grze.

TRL6 – Poziom, na którym opracowywana technologia jest gotowa do rozpoczęcia integracji z istniejącymi systemami. Prototypowe implementacje są zgodne z docelowym środowiskiem/interfejsami. Przykłady obejmują testowanie prototypu na żywo/w wirtualnym eksperymencie lub w symulowanym środowisku operacyjnym (tzw. warunki zbliżone do rzeczywistych). Na tym poziomie algorytmy działają na procesorach o charakterze oczekiwanym w środowisku operacyjnym. Wersje oprogramowania są wersjami „Beta”. Struktura wsparcia oprogramowania znajduje się w fazie rozwoju oraz stworzona została pierwsza ograniczona dokumentacja.

Przykład: Na szóstym poziomie gotowości technologicznej testuje się prototyp – grę w warunkach zbliżonych do tych, w których ma działać w przyszłości, tj. wirtualna rzeczywistość przy pomocy okularów VR. Nie jest to jednak ostateczna demonstracja. Na tym etapie prowadzone są testy „beta” wersji technologii przez użytkowników końcowych aplikacji – graczy. Weryfikują oni czy gra spełnia ich oczekiwania i sprawdza się w środowisku zbliżonym do rzeczywistego. Niewielki procent zawartości może być niekompletny, a wybiórcze błędy programistyczne mogą uniemożliwiać działanie niektórych funkcji i wyświetlanie zawartości z pełną jakością, niezawodnością i wydajnością.

TRL7 – Poziom, na którym wszystkie kluczowe funkcje systemu/oprogramowania są dostępne do demonstracji oraz testowania. Algorytmy są uruchamiane na procesorze w środowisku operacyjnym. Istnieje struktura wsparcia systemu/oprogramowania. Usunięto większość błędów, a te które pozostały nie powodują znacznego pogorszenia funkcjonalności lub wydajności. Zakończone zostały procesy weryfikacji oraz walidacji oraz akredytacji. Zaktualizowano dostępną dokumentację.

Przykład: Na tym poziomie, testy gry w rozszerzonej rzeczywistości w połączeniu z okularami VR przypominają już korzystanie z finalnego produktu, występuje mniej „bugów”, nadal jednak trzeba wziąć pod uwagę możliwość ewentualnych poprawek, które są na bieżąco wprowadzane.

TRL8 – Poziom, na którym cała technologia została dokładnie sprawdzona oraz w pełni zintegrowana z działającymi systemami operacyjnymi. Wszystkie funkcje zostały z powodzeniem zademonstrowane w operacyjnych scenariuszach. Wszelkie niedoskonałości systemu/oprogramowania są szybko usuwane przez twórców rozwiązania oraz sporządzona została cała dokumentacja użytkownika, szkoleniowa oraz ta dotycząca konserwacji. W wielu przypadkach ten poziom TRL stanowi koniec rozwoju technologii.

Przykład: Aby osiągnąć ten poziom, testujemy technologię oraz (w tym przypadku dedykowaną grę komputerową oraz okulary w technologii VR) i poprawiamy do momentu, gdy będziemy pewni, że jest bezpieczny i spełnia swoje założenia w stu procentach. Na tym poziomie wykonuje się także testowe serie produkcyjne, które pozwalają określić, czy produkt jest gotowy do masowej produkcji.

TRL9 – Poziom, na którym technologia została sprawdzona i w pełni zintegrowana z wszystkimi działającymi systemami, a także jest łatwo powtarzalna i nadaje się do ponownego użycia. Istnieje trwałe wsparcie inżynierii oprogramowania, a cała dokumentacja została ukończona. Częstotliwość występowania i dotkliwość niedociągnięć w systemie/oprogramowaniu są minimalne. W prawie wszystkich przypadkach jest to koniec ostatnich aspektów rozwoju systemu związanych z usuwaniem błędów.

Przykład: Nic dodać, nic ująć. Nasza gra komputerowa w technologii VR jest gotowa do użytku i – co ważne – znajduje się na etapie seryjnej produkcji dostosowanej do zakładanych systemów operacyjnych oraz platform.

Podsumowanie:

Skala TRL w najpopularniejszej formie koncentruje się w głównej mierze na postępie technicznym rozwiązań sprzętowych (typu hardware) i często nie jest wystarczająca do określenia poziomu gotowości technologicznej rozwiązań w postaci systemu IT/oprogramowania. Tymczasem jest to kluczowe z punktu widzenia przedsiębiorstw rozwijających tego typu rozwiązania, które chcą skorzystać z finansowania w ramach prowadzonych projektów badawczych.  Powyższy przykład dotyczy poziomów gotowości technologicznej konkretnego rozwiązania w postaci gry komputerowej, ale de facto TRL może odnosić się do każdego innowacyjnego rozwiązania – produktu, procesu lub usługi. Trzeba jednak zauważyć, że w rzeczywistym  procesie produkcyjnym część prac może być realizowana równolegle, a często stosowana w projektach IT, zwinna metodyka zarządzania dodatkowo utrudnia identyfikację poszczególnych poziomów TRL. Przedstawiliśmy pewien idealny model, który zapewnia zarówno bezpieczeństwo działania technologii, jak i wiarygodność dla potencjalnego grantodawcy czy inwestora.