Blog

Czym jest proof of concept?

Jakub
Autor: Jakub, Co-founder, Head of technology

Proof of concept (POC) to wczesny etap realizacji projektu pozwalający sprawdzić czy dane założenie jest możliwe do zrealizowania. Przeczytaj jak w praktyce wygląda podejście proof of concept w tworzeniu oprogramowania, kiedy może Ci się przydać i jakie daje korzyści.

Proof of concept to metoda sprawdzenia (udowodnienia), czy pomysł jest możliwy do realizacji w założony sposób. Jest to wczesny etap projektu, realizowany jeszcze przed pracą nad prototypem lub MVP (minimum viable product).

Dzięki POC można przy pomocy oszczędnych środków przekonać się, czy zrealizowanie go w zaplanowanej formie jest możliwe. Tworząc proof of concept staramy się odpowiedzieć na jedno pytanie:

Czy dane zadanie jest wykonalne? 

Proof of concept w tworzeniu oprogramowania

Zdecydowałeś się na realizację pomysłu na serwis randkowy, który będzie samodzielnie kojarzył użytkowników na podstawie dopasowania ich profili Facebook oraz preferencji na Filmweb i Spotify. 

Obmyśliłeś jak serwis będzie działał, jakie będzie miał funkcjonalności, jak będzie wyglądał oraz w jaki sposób będzie zarabiał pieniądze. Znalazłeś projektantów i programistów, stworzyliście prototyp UX oraz UI. Rozpoczęły się prace programistyczne. 

Kilka miesięcy później okazuje się, że programiści nie są w stanie opracować efektywnego algorytmu kojarzącego użytkowników. Albo, że nie istnieje sposób na pobranie danych o preferencjach muzycznych ze Spotify. Albo jeszcze inaczej: okazuje się, że ludzie o wybitnie podobnych preferencjach wcale nie dogadują się najlepiej. 

Masz teraz duży kłopot: wydałeś kilkadziesiąt lub kilkaset tysięcy, pracowałeś wiele miesięcy, a teraz musisz zrobić duży krok wstecz i część pracy (a może całe przedsięwzięcie?) wyrzucić do kosza.

Czy można było temu zapobiec? Tak, przy pomocy proof of concept. 

Proof of concept w praktyce

Powyższy pomysł na serwis randkowy zawierał kilka rozwiązań, które nie są często stosowane i powszechnie znane. Te rozwiązania były oparte o założenia: że umiemy opracować algorytm kojarzący, że da się pobrać preferencje ze Spotify, że im bardziej podobne preferencje tym lepsza para. 

Każde z tych założeń można było przetestować w izolowany sposób zanim rozpoczęto jakiekolwiek inne prace. Takie testy byłyby stosunkowo prostymi zadaniami programistycznymi (ale nie tylko), które dało się szybko i niedrogo wykonać.

Należało stworzyć prosty skrypt pobierający odpowiednie dane ze Spotify, sprawdzić czy nie napotkamy nieoczekiwanych limitów ze strony platformy, czy nie będzie problemów z prędkością, czy istnieje API lub czy da się obejść ewentualny brak API.

Z kolei algorytm kojarzący można było opracować na kartce papieru lub w Excelu i sprawdzić na surowych liczbach jakie wyniki dają symulacje różnego rodzaju podobieństw i różnic.  

Te właśnie proste działania nazywa się metodologią proof of concept i niestety, często się je pomija. 

Proof of concept w tworzeniu oprogramowania oznacza sprawdzenie możliwości technicznych wykonania planowanego rozwiązania. Najczęściej dotyczy to sprawdzenia czy da się połączyć ze sobą kilka technologii oraz czy zadanie jest możliwe do wykonania obliczeniowo lub wydajnościowo.

Jeden projekt może wymagać wykonania wielu proof of concept jeśli zidentyfikujemy więcej niepewnych, ryzykownych elementów. 

Kiedy stosować podejście proof of concept?

Istnieją określone warunki, w których podejście proof of concept może przynieść duże korzyści. Rozważ wykonanie POC jeśli Twój projekt zawiera nietypowe lub innowacyjne rozwiązania (na przykład niestandardową integrację, złożone zadanie obliczeniowe lub niestosowaną wcześniej koncepcję). Dla każdego takiego elementu wykonaj najprostszą możliwą implementację, aby:

  1. Sprawdzić w praktyce, że dana technologia może być zastosowana w sposób jaki zaplanowałeś.
  2. Ustalić jakie technologie będą najlepsze do rozwiązania danego problemu.
  3. Zidentyfikować nieoczekiwane problemy i rozwiązać je “tanio”, jeszcze na etapie planowania. 
  4. Zidentyfikować potencjalne ryzyko, nieoczekiwane dodatkowe kosztyniespodziewane zależności w projekcie.
  5. Uzyskać dodatkowy materiał do zainteresowania potencjalnych inwestorów.   
  6. Uzyskać lepsze rozumienie zagadnienia w całym zespole projektowym.

Proof of concept w tworzeniu oprogramowania stosowany jest najczęściej w przypadku:

  • nietypowych integracji, 
  • użycia nowych API, 
  • rozwiązywaniu problemów obliczeniowych, 
  • w zagadnieniach związanych z bezpieczeństwem, 
  • w zagadnieniach związanych z wydajnością. 

Proof of concept – praktyczne rady

Zapisz precyzyjnie co chciałbyś przetestować. Zidentyfikuj wszystkie pytania typu “Czy da się wykonać…”, których odpowiedzi nie jesteś pewien.   

Opracuj najprostszą i najszybszą metodę sprawdzenia, czy dane zadanie da się wykonać. Jeśli chcesz sprawdzić możliwość pobrania danych z zewnętrznego systemu wykonaj najprostszy możliwy skrypt, którego zadaniem będzie jedynie pobranie danych, które Cię interesują. Jeżeli sprawdzasz algorytm lub problem obliczeniowy – wykonaj symulację w arkuszu kalkulacyjnym. 

Zignoruj UX, UI i wszelkie zagadnienia dotyczące interfejsu*. PoC odpowiada na pytanie “CZY”. Na pytanie “JAK” odpowie później prototyp. 

* chyba, że badane zagadnienie dotyczy właśnie interfejsu

Nie zajmuj się automatyzacją ani optymalizacją* sprawdzanych procesów. Proof of concept to rodzaj brudnopisu. 

* chyba, że badane zagadnienie dotyczy właśnie automatyzacji lub optymalizacji

Wykonując proof of concept nie tworzysz pierwszej wersji projektu ani części projektu. Proof of concept najczęściej lądują w koszu, ponieważ są tworzone bez brania pod uwagę jakiekolwiek większej architektury, optymalizacji ani innych aspektów, które są uwzględniane podczas prac nad oprogramowaniem.

Proof of concept nie jest przeznaczony dla użytkowników. Jest to eksperyment na cele wewnętrzne. Użytkowników zewnętrznych dopuścisz dopiero do prototypu oraz do MVP.

Proof of concept nie służy do sprawdzania zapotrzebowania rynku. 

Staraj się przeznaczyć jak najmniejsze środki na wykonanie proof of concept oraz wykonać go w jak najkrótszym czasie. 

Postaraj się dokumentować i zachować wykonane proof of concept – mogą być przydatne gdy będziesz próbował przekonać do finansowania potencjalnych inwestorów.

I najważniejsze: zaakceptuj i weź pod uwagę wnioski płynące z przeprowadzonego proof of concept nawet, jeśli nie są po Twojej myśli. Wykonałeś proof of concept żeby uzyskać informacje i uwzględnić je w procesie decyzyjnym. 

Proof of concept a MVP (minimum viable product)

Proof of concept jest często mylony z wersją MVP (minimum viable product). Są to jednak dwa kompletnie różne zagadnienia:

POC

  • przeznaczony do celów wewnętrznych
  • służy to sprawdzenia czy rozwiązanie jest możliwe
  • nie generuje zysków
  • jest wykonywany “na brudno”
  • jest wyizolowanym elementem produktu
  • jest wykonywany minimalnymi środkami

MVP

  • jest przeznaczony dla użytkowników
  • może służyć do badania rynku 
  • można na nim zarabiać
  • powinien być pozbawiony wszelkich błędów
  • jest już działającym produktem
  • wymaga większego nakładu środków

Proof of concept i Minimum viable product w skali wdrożenia

Tworzenie w podejściu proof of concept przypomina wędrowanie po planszy gry komputerowej, która odsłania nowe tereny dopiero gdy gracz do nich dojdzie.

Celem jest uzyskanie możliwie pełnego obrazu mapy przed rozpoczęciem dużych inwestycji czasu i pieniędzy.

Proof of concept pozwoli zminimalizować ryzyko, zidentyfikować problemy i zainteresować inwestorów czyli w efekcie zwiększyć szanse na powodzenie całego projektu.

Napisz do nas jeśli potrzebujesz pomocy w zidentyfikowaniu i wykonaniu proof of concept dla swojego pomysłu.

Podobał Ci się ten artykuł? Udostępnij go!

Masz pomysł? Odezwiemy się do Ciebie.

Chętnie porozmawiamy o Twoim projekcie.


    Dbamy o ochronę Twoich danych. Regulamin i polityka prywatności.

    Przeczytaj także

    Skontaktuj się z nami

    Marcin Stawowiak

    Marcin Stawowiak

    Co-founder, Executive Manager

    Szukasz doświadczonego zespołu programistycznego?
    Porozmawiajmy o konkretach.

      Wypełnij poniższy formularz




      Smultron Software Lab


      ul. Sławkowska 12
      31-014 Kraków

      +48 791 991 797
      hello@smultron.pl

      NIP: 6762482785