POC (Proof of concept) służy do sprawdzenia czy daną koncepcję da się wykonać, czy jest ona słuszna oraz czy będzie działać zgodnie z naszymi oczekiwaniami. POC nie musi dawać żadnej wartości biznesowej przyszłym klientom – może testować tylko jedną koncepcję i nie musi być kompletnym produktem. Najczęściej po wykonaniu testów jest on usuwany lub służy jako wzór do napisania funkcjonalności, która znajdzie się w produkcie. POC chcemy napisać jak najszybciej więc jakość wykonania nie jest priorytetem bo i tak nigdy nie zostanie użyty w finalnym produkcie. POC jest jedynie sprawdzeniem koncepcji, którą sobie założyliśmy.
Przed rozpoczęciem pracy zawsze należy jasno zakomunikować biznesowi, że jest to jedynie POC, który nie zostanie użyty w naszym produkcie i dopiero na jego podstawie nastąpi realna implementacja funkcjonalności. W przeciwnym razie biznes może uznać POC za finalną wersję funkcjonalności i wymuszać na nas dodanie go do naszej aplikacji i natychmiastowe wdrożenie. Co w większości przypadków kończy się tragedią w postaci słabo działającej lub nie działającej funkcjonalności, która jest również bardzo trudna w utrzymaniu oraz rozwoju.
Wyobraź sobie sytuację, w której pracujemy nad sklepem internetowym. Chcemy do niego dodać integrację z facebookiem oraz google w celu automatycznego umieszczania reklam po dodaniu nowego produktu. Jednak nigdy nie mieliśmy styczności z tymi serwisami, a tym bardziej z API usług reklamowych. Nie posiadamy również analizy biznesowej czy takie zabiegi są faktycznie opłacalne. Co za tym idzie nasza koncepcja automatycznego umieszczania reklam staje pod znakiem zapytania. Nie wiemy jak używa się API powyższych serwisów, jak spiąć je z naszym sklepem oraz czy w ogóle działają w zamierzony sposób i przynoszą realną wartość. Nie jesteśmy w stanie powiedzieć ile czasu nam to zajmie oraz czy da się to wykonać.
Jest to idealna sytuacja, w której możemy zastosować POC w celu walidacji naszej koncepcji. Możemy napisać osobną aplikację niepowiązaną z naszym sklepem i sprawdzić jak działają powyższe API. Jeśli uzyskamy satysfakcjonujące nas wyniki możemy w jak najprostszy sposób spiąć się z naszym obecnym systemem lub go zamockować i sprawdzić jak będzie działać automatyczne umieszczanie reklam oraz czy da nam to realną wartość biznesową. Warto zaznaczyć, że do sprawdzenia koncepcji nie musimy implementować żadnych widoków czy systemów do zarządzania reklamami. Możemy się ograniczyć do wartości zahardkodowanych w plikach oraz ręcznie wrzuconych grafik do odpowiedniego folderu. Jeśli wszystko zadziała zgodnie z naszymi założeniami to znak, że nasza koncepcja ma sens oraz, że warto ją dodać do naszego systemu. Na tym etapie możemy już zacząć faktyczną implementację.
Należy pamiętać, że POC nie służy jedynie do sprawdzania funkcjonalności. Za jego pomocą możemy sprawdzić wiele innych rzeczy na przykład:
- Czy dana architektura będzie odpowiednia dla naszego systemu?
- Czy dane rozwiązanie spełni nasze oczekiwania wobec wymagań jakościowych (skalowalność, testowalność, dostępność, …)?
- Czy dana technologia/język będzie odpowiednia dla naszej aplikacji?
- Czy lepiej będzie skorzystać z dedykowanych serwerów, czy usług chmurowych?
- Czy spięcie się z zewnętrznym API będzie działać zgodnie z założeniami?