Közösségi piactér, ahol egy link továbbadása is jutalékot ér

A Quica piactér kezdőoldala a felhasználói felület tervében: kategóriaszűrők és termékkártyák a felajánlott sikerdíjjal, az eladási árral és a megosztások számával
A piactér kezdőoldala a Quica UI-tervében: minden termékkártyán látszik a felajánlott sikerdíj, az ár és az, hogy hányan osztották már meg a hirdetést.

A kihívás

A Quica alapítói egy egyszerű megfigyelésből indultak ki: egy barát ajánlását sokkal szívesebben nyitjuk meg, mint egy cég hirdetését. Az eredetileg „Social Sell” munkanéven született ötlet egy olyan piactér volt, ahol az eladó sikerdíjat rendel a termékéhez, és ebből bárki részesedhet, aki továbbadja a hirdetést, ha a lánc végén vásárlás történik. A legnagyobb részt az kapja, aki elsőként juttatta el a hirdetést a vevőhöz, aki neki küldte, az ennek a felét, és így tovább végig a láncon. A szlogen is ezt foglalta össze: „Add tovább!”

Ezt szoftverré alakítani jóval többet jelentett egy apróhirdetési oldalnál. A platformnak egyedi linkekkel kellett követnie minden megosztást, hogy egy létrejött üzletnél azonosítani lehessen a legrövidebb utat az eladó és a vevő között. Kétlépcsős regisztrációra volt szükség (gyors, telefonszámmal igazolt belépés a böngészéshez és megosztáshoz, illetve teljes profil az eladáshoz, vásárláshoz és a jutalék kifizetéséhez), egy tárcára, amely nyilvántartja a jutalékokat, befizetéseket és kifizetéseket, valamint egy back office felületre a megbízhatósági besorolások, a lejárt tartozások és a behajtás kezeléséhez. Az üzleti szabályok, például a kategóriánkénti minimális és maximális jutalék, a fizetési határidők vagy a díjak még formálódtak, ezért ezeket nem lehetett beégetni a kódba.

Az időnyomás valós volt. A Quica frissen alapított cégként véges költségvetésből dolgozott, az indulás előtti kampányaira pedig 2021 májusáig közel 1300 érdeklődő iratkozott fel, akik a platform megnyitására vártak. Olyan technológiai partnerre volt szükségük, amely egy részletes üzleti briefből gyorsan, gondosan kézben tartott költségkerettel szállít működő első verziót (MVP-t).

A megoldás

Az MVP kijelölése. A munkát azzal kezdtük, hogy a Quica kétnyelvű termékleírását becsült backloggá alakítottuk az Azure DevOpsban, minden epichez optimista, legvalószínűbb és pesszimista becsléssel. A Quicával közösen az első kiadást arra szűkítettük, ami az induláshoz valóban kellett: natív mobilalkalmazások helyett reszponzív webalkalmazás, egyetlen fizetési szolgáltató, az értékelési rendszer, a statisztikák és a toplista pedig későbbi fázisba került. Projektmenedzserünk pontról pontra véleményezte a briefet, így a két csapat ugyanazt értette MVP1 alatt.

A csapat. A fejlesztést egy keresztfunkcionális Wozify-csapat végezte: projektmenedzser, UX/UI designer, Laravel backend fejlesztők, egy Angular frontend csapat, az architektúrát pedig a CTO-nk felügyelte. Kéthetes Scrum sprintekben dolgoztunk, grooming meetingekkel, az INVEST-elvekre épülő Definition of Ready-vel, sprintdemókkal és olyan Definition of Done-nal, amely 80%-os unit teszt lefedettséget célzott meg az API-ra, az architekt által kijelölt részeken kódellenőrzést írt elő, a funkcionális teszteket pedig az ügyfél specifikációja alapján, kézzel végeztük.

Tervezés. Designerünk Figmában tervezte meg a teljes felhasználói felületet: a kategóriákkal és szűrőkkel navigálható kezdőoldalt, a hirdetésfeladás és a megosztás folyamatát, a profilt és a „Quica tárcát”, ahol a felhasználók követhetik a függőben lévő eladásaikat és vásárlásaikat, a begyűjthető jutalékaikat és a teljes tranzakciótörténetüket. A különleges eseteket is wireframe-eken terveztük meg, így az egyes képernyők mögötti szabályokat még a fejlesztés előtt egyeztettük a Quicával.

Architektúra. API-first szemléletű Laravel (PHP) backendet építettünk Swagger-dokumentációval, mellé Angular alapú single-page frontendet. Az API kezeli a felhasználókat és a kétlépcsős, SMS-ben igazolt regisztrációt, a kategóriánként eltérő paraméterekkel rendelkező termékeket (ingatlan, jármű, bútor, műszaki cikk és más kategóriák), a keresést és szűrést, a kedvenceket, az ajánlott termékeket, a dokumentum- és képfeltöltést az Azure Storage-ba, a felhasználók és termékek megbízhatósági címkéit, valamint a jutalékszabályokat. A Quicával egyeztetett paramétertáblát importáltuk a rendszerbe, és beállítási végpontokon keresztül tettük elérhetővé, így a jutaléksávok, a fizetési határidők és a díjak fejlesztés nélkül módosíthatók. A rendszer Microsoft Azure-on fut: a CI/CD pipeline-okat már az első sprintben felállítottuk, a teszteléshez pedig staging környezetet biztosítottunk.

Fizetés, e-mail, SMS. A jutalékok befizetését Stripe-pal oldottuk meg. A frontend a backendtől kér fizetési szándékot (payment intent), a felhasználó a Stripe felületén fizet, a sikeres fizetésről pedig webhook értesíti a rendszert, így a backend ellenőrizheti a tranzakciót, kiszámíthatja a megosztási lánc jutalékait, és mindenkit értesíthet. A tranzakciós e-maileket SendGriden keresztül, adatbázisban tárolt, többnyelvű sablonokból küldjük, a telefonszámokat pedig a Twilio SMS-szolgáltatásával igazoljuk.

Back office. Az adminfelületen a Quica csapata kezeli a felhasználókat és a címkéket, így egy felhasználó például megbízható, újonc vagy fizetési késedelemben lévő besorolást kaphat. Ezekre a címkékre épül a Quica ügyfélszolgálati és behajtási folyamata.

Közös munka a Quica csapatával. A Quica product ownere és a projektmenedzserünk egy közös Azure DevOps táblán dolgozott. A tesztelés kezdetén egyszerű hibabejelentési utat alakítottunk ki: a felhasználói bejelentések a Freshdeskbe érkeznek, onnan kártyaként kerülnek az Azure DevOps táblára, ahol „TOP PRIO” és „PRIO 2” oszlopokba soroljuk őket, és csak akkor zárjuk le őket, ha a Quica is ellenőrizte a javítást.

A fióktörlési dialógus wireframe-je, amely először a tárcában maradt pénzre, az aktív megosztásokra és a tartozásokra figyelmeztet
A fióktörlési dialógus wireframe-je: a profil törlése előtt a rendszer figyelmeztet a tárcaegyenlegre, az aktív megosztási láncokra és a fennálló tartozásokra.
A Quica tárca egyenlegpanele a kifizethető jutalékkal, a befizetendő összeggel és az egyenleggel, alatta a Fizetek gombbal
A Quica tárca egy helyen mutatja a megszerzett jutalékot, a befizetendő összeget és az ebből adódó egyenleget.
A tárca táblázata az eladott, jóváhagyásra és befizetésre váró termékekről: hány lépésre volt a megosztó a vevőtől, az ár, a jutalék és az állapot
A megosztó a tárcában látja, mely eladások jöttek létre az ő linkjein keresztül, hány lépésre volt a vevőtől, és mikor gyűjtheti be a jutalékát.
Értesítési sávok a felületen sikeres mentésről, karbantartásról, jóváhagyásra váró ügyletről és lejárt fizetésről
Minden fontos eseményről értesítés jelenik meg a felületen is, a sikeres mentéstől a jóváhagyásra váró ügyleteken át a lejárt sikerdíjakig.
Folyamatábra a jutalékbefizetésről a Quica frontendje, backendje és a fizetési szolgáltató között
A jutalékbefizetés folyamata: a backend létrehozza a fizetési szándékot, a fizetést a szolgáltató bonyolítja, a backend pedig ellenőrzi az eredményt, szétosztja a jutalékot és kiküldi az értesítéseket.

Az eredmény

A szerződés aláírásától számítva kevesebb mint négy hónap alatt jutottunk el az írásos brieftől a működő webes platformig. 2021 május végére összekötöttük a frontendet és a backendet, és a staging környezetben elejétől a végéig működtek a fő felhasználói folyamatok: hirdetés feladása előzetes regisztrációval vagy anélkül, megosztás, vásárlás, hirdetések mentése, a profil és a dokumentumok kezelése, valamint mindezek követése a Quica tárcában. A platformot 2021. május 31-én mutattuk be a Quica vezetőségének.

2021 júniusában és júliusában a Quica csapatával közösen dolgoztuk fel az indulás előtti tesztelés tapasztalatait, és prioritási sorrendben javítottuk a hibákat, hogy a platform készen álljon a baráti körös tesztre, majd a soft launchra.

Az indulás után a Quica gyorsan kezdett felhasználókat szerezni, és a platform éles használat mellett is stabilan működött. A növekedés azonban megtorpant, a felhasználók pedig lemorzsolódtak. Kiderült, hogy maga az alapötlet, a többszintű megosztási jutalékokra épülő piactér, nem talált valódi piaci igényre (product-market fit).

Ezt íróasztal mellől nem lehetett volna kideríteni. Arra, hogy az emberek tényleg továbbadják-e a hirdetéseket a sikerdíj egy részéért, sem kérdőív, sem látványterv nem ad választ. Az egyetlen valódi teszt az volt, hogy a terméket a felhasználók elé tesszük, és megnézzük, mit kezdenek vele. A szűkre szabott MVP pontosan ezt tette lehetővé.

A Quica végül leállította a platformot, a cég 2022-ben megszűnt, a megmaradt tőke egy részét pedig visszakapták a befektetők. Az alapítók így gyorsan egyértelmű választ kaptak, és nem évekig építettek egy olyan terméket, amelyre senkinek nem volt szüksége.

A tárca függőben lévő eladásai: a vevő visszaigazolásának állapota, a fizetési határidő és a jóváhagyás és sikerdíjfizetés gombja
Függőben lévő eladások: az eladó itt hagyja jóvá a létrejött üzletet, és itt fizeti be a sikerdíjat a tárcából.

A projekt technológiai stackje

Angular logo

Angular

Laravel PHP framework

Laravel (PHP)

Microsoft Azure logo

Microsoft Azure

Azure DevOps logo

Azure DevOps

Stripe logo

Stripe

SendGrid logo

SendGrid

Twilio logo

Twilio

Swagger logo

Swagger

Figma logo

Figma

Hosszú távú eredmények

Az alapötlet gyors ellenőrzése valódi felhasználókon, nem feltételezések alapján
Nem mentek el évek egy olyan termékre, amelyre a piacnak nem volt szüksége
Szűkre szabott MVP funkciógyár helyett: a keret az alapötlet tesztelésére ment el, nem olyan funkciókra, amelyeket senki sem használt volna
Gyors, egyértelmű döntés: az alapfeltevést teszteltük, elvetettük, és tovább lehetett lépni, úgy, hogy még a befektetőknek is maradt visszaadható tőke