2010. november 16.

Work in progress poszt: A lean startup mint az adatvezérlet, kutatás orientált startupok vezérelve I.

Mindenkinek vannak jó ötletei. Mindenki elgondolkodik azon hogy milyen jó dolgokat is lehetne csinálni egy-egy érdekes probléma megoldásával. Azonban csak kevesen vágnak bele a megvalósításba és indítanak egy startupot, vagy fognak bele komoly alkalmazott kutatásba és még kevesebben járnak sikerrel és csinálják meg azt amit elgondoltak (vagy valami használhatót). A lean startup metodika segít abban hogy a gondolattól a használható produktumig jussunk. Habár , miképp neve is sugallja, statupok számára lett kitalálva, szerintünk az alkalmazott kutatások területén is kamatoztatható.







De miért is írunk mi a starupokról?


A blogon megjelenő írások egy részét az olvasók levelei inspirálták, szerencsére aktív olvasóink vannak aki nem restek klaviatúrát ragadni és írni nekünk. Persze akadnak olyan témák amikben nem tudunk kellő információt nyújtani és az is megesik hogy nem tudjuk "átirányítani" máshoz a nyájas olvasót, de a kérdés megragad minket. Egy ilyen visszatérő kérdés amit mi csak "startup probléma" néven illetünk, ez az olyan általános (és megválaszolhatatlan) kérdéseket foglalja magában mint pl. "hogyan lehet egy számítógépes nyelvészeti startupot elindítani?" de akadnak konkrétabb kérdések is mint pl "hogyan működik egy számítógépes nyelvészeti startup?". Ezek nagyon izgalmas kérdések, de egyikünk sem otthonos ezen a területen. Viszont nagyon izgalmas maga a kérdés, és úgy döntöttünk megpróbáljuk valahogy a magunk módján megválaszolni. Először is a kérdéseitek új kérdéseket szültek bennünk; miképp is lehetne a számítógépes nyelvészeti munkát elvégezni egy startup környezetben. Ezután megpróbáltunk analógiákat keresni, azaz megnéztük mely területek hasonlítanak a mi területünkhöz, és azt találtuk hogy kibontakozóban van két (amúgy konvergáló) terület, az ún kutatás orientált (research-driven) és az adatvezérelt (data-driven) startupok világa. Ekkor botlottunk (szó szerint!) a lean startup "mozgalomba", ami egyfajta metodikai irányzat a területen dolgozó ifijú titánok számára. Mi úgy gondoljuk hogy ezen új metodika nem csak a startupok számára lehet hasznos, hanem a kutatás és a tanulás terén is hasznosítani lehet alapelveit. Habár a posztot én próbáltam meg közölhető formába hozni, szeretném megköszönni blogger társamnak, Varjú Zoltánnak, hogy összeszedte a szükséges információkat és megvitatta velem gondolataimat. Külön köszönet illeti Szántó Dórát, befektetési elemzőt, a MIT Solan School of Management alumnáját, akivel Zoltán ismertetett meg és sokat segített eligazodni a számomra gyakran ismeretlen fogalmakban.

Most csak felületesen mutatjuk be a lean startup metodikát hogy az olvasó képet alkothasson róla és jelezzük mely pontokon kapcsolódik területünkhöz, hiszen mi is csak ismerkedünk ezzel a megközelítéssel. A továbbiakban még tervezünk posztokat a témában,  számítva észrevételeitekre és saját anyaggyűjtésünkre.


Mi is az a lean startup?
A legfrappánsabb definíciót a Wikipedia adja, mely szerint "Lean startup is a set of processes used by entrepreneurs to develop products and markets, combining Agile Software Development, Customer Development and existing software platforms." Ha neked is furán hangzik hogy piacot fejlesztenek a fogyasztó fejlesztés és egyéb vicces nevű dolgok kombinációival, vegyük végig a fogalmakat.

Agile Software Development vagy Agilis szoftverfejlesztés
A szoftverfejlesztés nem csak abból áll hogy ész nélkül kódolunk. Az évek során felhalmozódott egy olyan nagy mennyiségű informális tudás arról hogy miképp és mikor alkalmazzunk bizonyos megközelítéseket egy-egy adott problémára és miképp szervezzük meg a fejlesztés menetét. Ezeket a metódusokat már a nyolcvanas években elkezdték kanonizálni és a sztenderd szoftvermérnöki képzésbe beépíteni, majd a kilencvenes évek vége felé, a netkorszak beköszöntével, új irányzatok jelentek meg amik figyelembe vették hogy a piac igényei még változékonyabbak és a követelmények még gyorsabban változnak. Ennek egyik első eredménye az ún XP (extreme programming) metódus volt ami a változékony környezetre úgy reagált hogy gyorsan, de a páros programozás és alapos teszteléssel megtámogatva elkészített prototípusokat propagál melyeket be lehet mutatni a megrendelőnek és pontosítani lehet az igényeket folyamatosan. Az agilis fejlesztés tkp erre épít, nem is annyira a technikai háttérre koncentrálva, hanem a gyorsan változó környezethez való alkalmazkodást előtérbe helyezve. Ennek legjobb példája a Agile Manifesto, megy négy alapelve a következő:
1. Az egyének és az egyének közötti interakció elsődleges a folyamatokkal és eszközökkel szemben
2. A működő szoftver elsődleges az átfogó dokumentációval szemben.
3. A fogyasztó bevonása elsődleges a szerződés letárgyalásával szemben.
4. A változásra adott választ elsődleges a terv követésével szemben.


Customer Devlopment, nevezzük magyarul fogyasztó fejlesztésnek
A fogalom megalkotása Steven Gary Blank nevéhez fűződik, aki The Four Steps to Epiphany c. könyvében foglalta össze gondolatait arról hogy egy korai szakaszban lévő startup miképp tudja a kudarc rizikóját minimalizálni és növekedési pályára állni (a könyv - amúgy legizgalmasabb - első három fejezete szabadon letölthető itt). A customer development tkp az eddigi product development kiegészítése, a produktum megalkotásának középpontba állítása a szerző szerint alapvetően hibás elképzelés. Persze kell egy jó alapötlet, hipotézis, amit viszont gyorsan szembesíteni kell a valósággal, a fogyasztókkal és folyamatos visszacsatolás mellett, gyorsan kell fejleszteni. A cél pedig nem egy csili-vili "kés minnélz" termék, hanem megtalálni azt a minimális halmazt ami kielégíti a fogyasztó igényeit, hogy a startup a lehető leghamarabb új bevételekhez juthasson. Ennek érdekében az ötlet mellé fel kell térképezni hogy milyen követelményeket támasztana a piac a készülő termékkel kapcsolatban (customer discovery), nem csak a produktumot kell letesztelnünk, hanem hogy célba ér-e az (customer validation).

Mitől lean?
A szót itt a sovány, szikár jelentésben kell érteni. A lean menedzsment a Toyota módszer továbbfejlesztett változata, ami eredetileg a selejt minimalizálására találtak ki, majd finomítottak tovább az autógyártáson kívül a szikárabb és produktívabb vállalati struktúra kialakítására. A startupok világában, ahol gyakran pár ember indít egy vállalkozást ez a szemlélet különösen fontos, hiszen egy-egy ember akár több szerepet is vihet (l. a Data Syndrome blog Analytic Product Teams posztját).


Aki többet szeretne tudni a lean startup mögötti elvekről, olvassa a The Lean Startup Wiki-t ill. a metodika atyjának, Eric Ries, Lessons Learned blogját.


Hogyan jön a lean startup a számítógépes nyelvészethez?

Ahogyan arról már többször is írtunk ezen a blogon, a számítógépes nyelvészet (és úgy a nyelvészet maga) egy kihívás előtt áll; szembe kell néznie azzal hogy egyre több adatot gyűjthetünk és dolgozhatunk fel és ha tesztelni akarjuk elméleteinket és működőképes alkalmazásokat akarunk építeni, akkor "fel kell skáláznunk" adatbázisainkat és eddigi bevett elemzési módszereinket. A jelenlegi helyzetben nem látszik még hogy kialakul-e egy egységes paradigma és nagyon gyorsan változik mind a technikai, mind az elméleti háttér. Éppen ezért segíthet a lean startup metodika! Nem csupán egy startup beindításában, hanem az alkalmazott kutatások terén is, hiszen az elméletek gyors megvalósítását és tesztelését propagálja a lean is. A hipotézis tesztelés visszacsatolás ami segít tanulni és megtalálni a megfelelő minimális tulajdonságok halmazát.


Fontos ugyanakkor kiegészíteni a lean elveit az ún data/data-driven startupok számára szükséges megfontolásokkal. Ezeket a legjobban Bradford Cross Measuring Measures blogjában lehet megtalálni (hamarosan vendégeskedik blogunkon). Addig is érdemes összefoglalni tanácsait. Amíg a Four Steps lineáris fejlesztési modellt ajánl, az adatvezérelt kutatás orientált megközelítésnek a skálázhatóságot kell szem előtt tartania. Ez csak árnyalatnyi eltérésnek tűnhet, de külön problémát jelent megtalálni a megfelelő adatforrást és a fejlesztés előrehaladtával összekapcsolni azt továbbiakkal (mivel az adatok bizony nagyon kényesek, ahány ház annyi szokás a tárolásukra és kitisztításukra, nem beszélve a különböző források összefésülésének horrorjáról).

Összegzés


A lean startup egy válasz arra hogy miképp lehet egy forrásokban szegény, bizonytalan környezetben működő startup sikeres. Fontos hangsúlyozni hogy nem kész receptet ad arra hogy mitől lesz jó ötlete valakinek, hanem olyan praktikákat gyűjt össze amik a jó ötletet sikeressé tehetik. De mint minden praktika nem ad helyes válaszokat minden esetre, csupán segít eligazodni. Mi hiszünk abban hogy az alkalmazott kutatások területén is sikerrel alkalmazható a metódus, azonban erre itt csak utaltunk, mivel szerettük volna felvázolni a lean startup hátterét. Azt hogy milyen problémákkal szembesül egy lean startup, mik a customer development lépései és hogyan lehet a szoftverfejlesztésre adoptálni ezeket a sorozat következő darabjában próbáljuk meg bemutatni, lehetőleg még ebben a hónapban.

Nincsenek megjegyzések: