Spis treści
Uruchamiasz startup technologiczny, tworzysz nowe narzędzie, planujesz sporą refaktoryzację lub zastanawiasz się nad migracją i mocniejszym wykorzystaniem zarządzanych usług chmurowych? Zapewne wiesz, że żadnych z tych działań nie należy podejmować pochopnie.
Pierwszym krokiem powinna być walidacja idei, czyli uzyskanie odpowiedzi na pytanie „czy ten pomysł w ogóle da się zrealizować?”. By zweryfikować, czy dane założenie jest wykonalne pod względem technologicznym, tworzy się Proof of Concept.
Czym jest PoC – Proof of Concept?
Proof of Concept (też pod nazwą Proof of Principle lub pod skrótem PoC) to bazowy projekt, który ma na celu weryfikację, czy daną ideę można zrealizować z użyciem dostępnych technologii oraz czy tak stworzony produkt będzie działał zgodnie z założeniami.
PoC ogranicza się jedynie do wymagań technologii. Nie ma na celu weryfikacji produktu wśród grupy odbiorców czy zebrania feedbacku użytkowników, a jedynie sprawdzenie, czy realizacja danej idei jest wykonalna. To dlatego, że nie ma uniwersalnego przepisu na aplikację składającą się z popularnego miksu technologii. Do budowy i rozwoju gry mobilnej użyjemy innego języka programowania, framerowka czy systemu bazodanowego niż do utworzenia globalnej platformy do inteligentnej analizy BigData. Podobnie jest z technologiami chmurowymi – mają konkretne wymagania, pod które trzeba dostosować architekturę i kod źródłowy. Opracowanie Proof of Concept projektu pozwala określić realność produktu i wskazać ewentualne zagrożenia w procesie budowy i rozwoju, jeszcze przed uruchomieniem prac developerów czy zespołu DevOps.
Pojęcie jest mocno związane z tworzeniem oprogramowania, ale nie jest zarezerwowane jedynie dla tego segmentu. PoC wykorzystuje się też m.in. w procesie tworzenia urządzeń elektronicznych, we wczesnej fazie klinicznego opracowania nowych leków czy w przemyśle filmowym. Przykładem Proof of Concept z kinematografii może być 90-sekundowa scena, którą w 2004 roku nagrał Zack Snyder, by przekonać się, czy dysponuje narzędziami i technikami pozwalającymi wyreżyserować film “300” według jego wizji. Wideo z ujęciem jest dostępne na YouTube.
Proof of Concept a prototyp
Wśród terminów dotyczących budowy produktu można napotkać też hasło “prototyp”.
Proof of Concept weryfikuje, czy dany pomysł jest możliwy do realizacji od strony technologii, a prototyp skupia się na warstwie UX i UI. Budowa prototypu pozwala nadać produktowi kształt i wygląd oraz zaplanować, w jaki sposób użytkownik będzie wchodził w interakcję z aplikacją.
W procesie tworzenia prototypu korzysta się z takich narzędzi jak user flows, wireframe’y czy makiety. Specjaliści UX/UI rozrysowują ścieżkę użytkownika oraz schematyczny wygląd interfejsu na papierze, tablicy lub w dedykowanych narzędziach, np. UXPin czy Adobe XD. Po opracowaniu makiet przygotowuje się “klikalny” prototyp z graficznym projektem interfejsu. Może on wyglądać jak gotowa aplikacja – łącznie z opcją przewijania widoków czy przechodzenia do kolejnych podstron – z tym że nie stoi za nim ani jedna linijka kodu.
W filmie poniżej zobaczysz, w jaki sposób specjaliści Google – UX Designer oraz Interaction Designer – przygotowują prototyp w wersji digital:
Proof of Concept a Minimum Viable Product
Minimum Viable Product (nazywany też MVP) to minimalna funkcjonalna wersja produktu. Jest to aplikacja zawierająca zestaw najważniejszych funkcjonalności, gotowa pod dalszy rozwój i dobudowywanie kolejnych elementów.
Proof of Concept pozwala zwalidować technologie, natomiast Minimum Viable Product sprawdza, jak grupa docelowa reaguje na wizję obudowaną w najważniejsze cechy produktu. Celem MVP jest jak najszybsze wypuszczenie bazowej wersji aplikacji, weryfikacja idei wśród grupy odbiorców oraz zebranie feedbacku. Na podstawie obserwacji odbioru i sposobu użytkowania produktu twórcy podejmują decyzję o kierunku dalszego rozwoju lub, co też się zdarza, o zawieszeniu projektu.
Dla przykładu: platforma Airbnb w 2007 roku została opublikowana w wersji MVP jeszcze pod nazwą “Air Bed & Breakfast”. Na Minimum Viable Product składała się strona internetowa oraz… materac w salonie założycieli aplikacji i informacja o opcji wynajęcia mieszkania na weekend. Słuszność idei została potwierdzona już po kilku dniach, gdy kilkanaście osób odpowiedziało na ogłoszenie.
Nie tylko software – PoC w kontekście infrastruktury
Proof of Concept jest (a przynajmniej zaleca się, by był) nieodłącznym krokiem w procesie budowy nowego produktu. Ale nie tylko – PoC tworzy się też w celu weryfikacji koncepcji zmiany, na przykład znacznej refaktoryzacji aplikacji czy migracji na inną infrastrukturę. Pozwala wskazać nie tylko czy daną wizję da się urzeczywistnić, ale też, przykładowo, jak duże zmiany będą potrzebne w celu efektywnego wykorzystania zarządzanych usług chmurowych.
W jakich sytuacjach warto zrobić PoC, by przeanalizować słuszność pomysłu pod kątem infrastruktury?
Budowa nowego produktu cloud native
Cloud native to podejście w budowie i rozwoju aplikacji, które zakłada wykorzystanie usług chmury obliczeniowej. Użycie gotowych narzędzi cloudowych pozwala szybciej publikować nowe produkty czy wprowadzać kolejne funkcjonalności do całego projektu. Przykładowo, wśród usług chmury publicznej Google Cloud Platform znajdują się:
- platforma Kubernetes w modelu Kubernetes-as-a-Service dedykowana zarządzaniu aplikacją w kontenerach,
- usługi równoważenia ruchu jak Load Balancing,
- wstępnie wytrenowane modele ML i AI służące rozpoznawaniu obrazów, analizie zawartości wideo czy rozumieniu tekstu i rozpoznawania jego nacechowania emocjonalnego,
- usługi transkrypcji Speech-to-Text, zamiany tekstu na mowę Text-to-Speech czy tworzenia komunikatów w języku naturalnym Natural Language,
- zarządzane bazy danych SQL i NoSQL czy BigQuery – data warehouse, usługa dedykowana analizie petabajtów danych (big data).
W przypadku tworzenia aplikacji, która ma wykorzystywać usługi cloud computingu, istotne jest odpowiednie zaplanowanie nie tylko architektury systemu, ale i architektury chmurowej. W odpowiednim doborze i rozplanowaniu elementów systemu między usługami chmurowymi pomoże certyfikowany Cloud Architect w Google Cloud. W celu weryfikacji koncepcji specjalista utworzy też Proof of Concept dla infrastruktury nowego produktu, by zweryfikować, czy takie rozwiązanie zadziała oraz, ewentualnie, czy będzie optymalne pod kątem kosztowym oraz czy zapewni odpowiedni poziom skalowalności.
Zobacz też:
- 15 powodów, by tworzyć i rozwijać startup z Google Cloud
- Szybszy development aplikacji z App Engine w Google Cloud Platform
- Jak zarabiać na aplikacjach mobilnych? 10 sposobów na monetyzację
Migracja do chmury z innej infrastruktury
Rzadko kiedy migracja aplikacji z własnego serwera, z hostingu czy z maszyny wirtualnej odbywa się modelu lift-and-shift (czyli przeniesienia kodu źródłowego bez wprowadzania znacznych zmian). Nawet w przypadku migracji z jednego rozwiązania chmurowego na inne konieczne jest wprowadzenie zmian, jako że nie wszystkie usługi chmur publicznych pokrywają się 1:1. Często konieczne jest przeprowadzenie refaktoryzacji lub dostosowania architektury aplikacji pod usługi chmurowe – zwłaszcza jeśli z chmury planujemy wyciągnąć więcej niż jedynie pamięć i moc obliczeniową maszyn wirtualnych.
Opracowanie Proof of Concept w takim przypadku pozwoli nie tylko określić, czy przeprowadzenie migracji według wytycznych jest możliwe, ale również jak dużą refaktoryzację trzeba przeprowadzić oraz czy przeniesienie systemu do clouda będzie opłacalne.
Zobacz też:
- Migracja do chmury – 10 kroków, które musisz wykonać
- Jak Partner Google Cloud wspiera w procesie migracji do chmury?
Chęć zwiększenia poziomu adopcji chmury Google
Aplikacja, która znajduje się na maszynach wirtualnych dostawcy usług chmurowych, w teorii już jest w chmurze. W praktyce poziom adopcji chmury w takim przypadku jest dość płytki i jeśli twórca aplikacji chce mocniej wykorzystać możliwości cloud computingu (np. przenieść elementy systemu do usług zarządzanych), powinien wprowadzić zmiany w architekturze i w kodzie aplikacji.
Przykładowo, twórca chce przenieść aplikację z maszyn wirtualnych w Compute Engine do kontenerów i korzystać z usługi Google Kubernetes Engine; planuje zwiększyć dostępność i wydajność aplikacji dzięki Load Balancingowi oraz jest zainteresowany korzystaniem z zarządzanej bazy danych Cloud SQL. W takiej sytuacji Cloud Architekt przygotuje Proof of Concept uwzględniając wybrane usługi (lub dobierając usługi chmurowe pod konkretne wymagania) i uruchamiając na nich przykładowy, dostarczony przez klienta kod źródłowy.
Budowa Proof of Concept w chmurze z Partnerem Google Cloud
Niezależnie od tego, czy planujesz budowę aplikacji cloud native od zera, skłaniasz się ku migracji i wykorzystaniu usług cloud computing czy chcesz zwiększyć poziom adopcji chmury, dobrze jest zbudować Proof of Concept korzystając z wiedzy i doświadczenia Cloud Architektów. PoC pozwoli ocenić, czy realizacja wizji jest możliwa, jakie są potencjalne zagrożenia oraz czy obrana ścieżka będzie w dłuższej perspektywie optymalna pod względem finansowym.
FOTC, jako oficjalny Partner Google Cloud, oferuje wsparcie nie tylko w opracowaniu Proof of Concept, ale też w obszarze finansowania infrastruktury chmurowej.
Jak dokładnie Partner – FOTC – wspiera klientów?
- Sesje brainstormingowe oraz design workshops. Zapoznajemy się z Twoją ideą oraz wymaganiami i rozrysowujemy schemat architektury chmurowej. Sesje prowadzimy i dla nowych produktów cloud native, i dla aplikacji, które mają zostać zmigrowane, również z innej chmury publicznej.
- Zaangażowanie certyfikowanych specjalistów chmurowych. Na każdym etapie obecni są eksperci, zarówno z obszaru obsługi klienta i realizacji założeń biznesowych, jak też doświadczeni Cloud Architekci i Cloud Inżynierowie. W razie potrzeby do realizacji PoC oraz dalszych działań angażujemy specjalistów Customer Engineers po stronie Google Cloud.
- Pokrycie części kosztów związanych z utrzymaniem infrastruktury GCP. Przedsiębiorstwom, które chcą przetestować nowy pomysł w chmurze lub zbudować Proof of Concept uwzględniający dotychczas niewykorzystywane usługi GCP oferujemy bezpłatne kredyty na pokrycie kosztów infrastruktury (5-10% kosztów usług GCP przy minimalnym rocznym spendingu 60 tys. USD).
Chcesz mieć pewność, że Twój pomysł jest wykonalny oraz że nie pochłonie całego budżetu w ciągu kilku tygodni? Obawiasz się projektów związanych z dużymi nakładami finansowymi? Skorzystaj z naszej wiedzy oraz wsparcia finansowego. W tym celu skontaktuj się z nami.
Chętnie zapoznamy się z założeniami projektu, gdyż najlepiej pracuje się nad wyzwaniami towarzyszącymi konkretnej firmie. Pomożemy uruchomić pilotażową wersję, którą poddamy szczegółowej analizie aby ostatecznie pokazać możliwości wdrożenia. Wybór odpowiednich narzędzi, czy krótki czas realizacji w odniesieniu do chmury jest bardzo istotny. Stosunkowo niski koszt całego projektu uzależniony jest od wielu czynników, nie ma też jednoznacznych metod. Jeden projekt nie jest równy drugiemu. Zgłoś się do nas, porozmawiamy o Twoim projekcie, wspólnie poszukamy rozwiązania, które jest najlepsze do wdrożenia.