2011. február 15.

Lean startup II.

"Essentially, all models are wrong, but some are useful" (George Box)



Előző posztunkban körüljártuk hogy mi is az a lean startup, mi köze van a számítógépes nyelvészethez és hogyan kapcsolódik az adatvezérelt és kutatás orientált kezdeményezésekhez. Most körüljárjuk hogy mit jelent az hogy "adatvezérelt" és "kutatás orientált". Nem kell semmi nagyra gondolni, csupán a tudományos kutatások és a szoftvermérnökség praktikáit próbáljuk meg összekapcsolni.






Adatvezérelt kutatás

Az hogy csőstül jön az adat már előző posztjainkból tudhatják a szorgalmas olvasók (ez ügyben az adatok tudománya címkével ellátott posztjainkat ajánljuk). Most azonban távolodjunk el a bitek világától és vessünk egy pillantást a tudományra. Persze olyan hogy tudomány en block nincs, hanem csak egyes tudományok vannak. Ezek közül kettő kilóg a sorból (sok szempontból); a matematika és a logika. Hogy miért? Mert elméleti konstrukciókkal dolgoznak. A többi viszont empirikus adatokkal próbál meg dolgozni, és ezekre az adatokra próbálja meg "ráhúzni" a matematikai/formális modelleket.


A kutatási módszerek vizsgálata során rengeteg aspektus megvizsgáltak már (tudományfilozófia, tudományszociológia stb.) hogy mit is jelent az hogy tudományos tudásra teszünk szert. Ezek közül az ún Bayesiánus érvelés elemzésre érdekes számunkra most (és kövessük a bevett terminológiát abban hogy ide vesszük a hagyományos statisztikát is). Mit tudhatunk meg adatainkból? Hogyan illeszkedik egy modell a begyűjtött adatokhoz? Hogyan tesztelhetjük le hipotéziseinket? Egyáltalán mennyire megbízható elméletünk? Ezek egyrészt tekinthetők pusztán technikai kérdéseknek, de ne legyenek illúzióink, nagyon erős filozófiai háttere van a dolognak, melyet nyitó idézetünk összegez remekül.


Bármennyire is jó az elméletünk, nem tudjuk sose mennyire jó az. (Természetesen kivételt képeznek ez alól a "tiszta" tudományok, a matematika és a logika ahol nem kell adat, csak egy bizonyítás és eldönthetjük egyszer és mindenkorra hogy igaz-e vagy sem elméletünk, amennyiben igaz, akkor persze rögves egy szép tétel is lehet belőle) Együtt kell élnünk ezzel, hiszen 1) bármikor lehet több, jobb, pontosabb adatunk 2) az indukció problémája ott liheg a nyakunkban állandóan. Ezért meg kell tanulnunk együtt élni azzal hogy nem jó és tökéletes, hanem éppen megfelelő (good enough) elméleteink lehetnek.


Adatvezérelt startup
A technikai lehetőségek teret adnak annak hogy nagy mennyiségű adattal "játszhassunk". A legjobb példája annak hogy mennyire egyszerű immár mindenkinek hozzáférni az adatelemzés technikai eszközeihez az Amazon AWS és a Google App Engine. Összepárosítva ezeket a noSQL mozgalommal ha van adatunk (és kellő tudásunk) már nem nekünk kell a technikai oldallal foglalkozni (arra ott a szolgáltató), megnyílt az út hogy akár kis startup-ok is minimális infrastruktúrával végezzenek elemzéseket hatalmas adatmennyiségen. (Erről bővebben érdemes elolvasni Bradford Cross Big Data is Less About Size, And More About Freedom írását).


Kutatás orientált startup
Persze a dolognak csak egy része az hogy adatokkal dolgozunk. Az is lényeges hogy miképp. A hipotézis tesztelés, finomítás, tesztelés finomítás ad infinitum ciklusa a kutatás alapja. Sosem állhatunk meg és mondhatjuk hogy most készen vagyunk. Mindig akad új adat, mindig alakítjuk egy kicsit elméletünket ennek fényében. Az ún "test driven development" és az agilis fejlesztési modell éppen ezért vállt népszerűvé az adat startupok körében. Egy kutatási hipotézis esetén tudjuk hogy elméletünk milyen feltételek esetén igaz, ez pedig tekinthetjük teszt eseteknek. Ha gyorsan egymás után minden egyes lépésben tesztelni tudjuk elméleteinket, akkor "organikusan" építkezhetünk, egyben fel is készülünk arra hogy skálázható megoldással álljunk elő. És itt összeér megint minden a tudományfilozófiával, a Popper által felvázolt faliszifikációs modellt követjük ugyanis ilyenkor. Megadjuk hogy milyen esetekben tekintjük elméletünket megcáfoltnak, majd leellenőrizzük hogy teljesülnek-e ezek a feltételek.

Nincsenek megjegyzések: