Od nule do milijun korisnika: kako brzo rasti uspješan tehnološki tim

Badi tim u našem sjedištu u Barceloni, Španjolska

Badi je startup s jednom jasnom misijom: poboljšati život u gradu povezujući ljude sa zajedničkim prostorima. Dostignuća naše tvrtke dovela su do 45 milijuna dolara VC financiranja i WIRED nominaciju među najtoplijim startupima u Europi dvije godine zaredom.

Kao glavni tehnološki direktor u Badi, moj glavni fokus bio je obrt tehnologije i tima koji su ga izgradili od početka.

U protekle 2,5 godine povećali smo tehnologiju od 0 do 1 milijun korisnika. Isporučili smo stotine milijuna mjesečnih transakcija s prosječnim vremenom odziva ispod 100 ms, održavajući konstantno produženje servisa od 99,9%.

To je bilo moguće zahvaljujući tehnološkoj strategiji zasnovanoj na podacima i inženjerskoj kulturi zasnovanoj na povjerenju i vlasništvu, što se odražava i na stopu prometa inženjera, koja je do sada bila jednaka nuli u vrlo konkurentnom tehnološkom ekosustavu.

Kao tehnološki lider koji radi u okruženju koje se brzo kreće, kako uspješno razmjera tvrtke s temelja na milijune korisnika?

Evo nekoliko savjeta za tehnološke lidere koji rade u okruženju u kojem su glavni zahtjev turbo rast, kvaliteta i brzina izvođenja.

Tech Talent

Unajmite, zaposlite, zaposlite!

Radite sami samo ako pravite svoj prvi MVP. Nakon toga morat ćete se zaposliti. Na bilo koji drugi način, možete se zaglaviti u beskonačnoj petlji u kojoj nikada nećete imati dovoljno vremena za zaposliti jer kodirate.

Vaš tim je vaše najbolje sredstvo. Traženje talenta može oduzeti do 50% vašeg vremena (da, dobro ste pročitali) u vrlo ranim fazama tvrtke.

Ako vam početni proračun ne dopušta da privučete iskusne inženjere, nabavite mlađe programere. Moji prvi zaposlenici u Badiju bili su mlađi programeri svježi od bootcampa za kodiranje i nisam mogao biti sretniji s njima! Mlađi inženjeri obično su vrlo motivirani i uzbuđeni zbog svojih prvih poslova. Ne biste zamislili što oni mogu postići uz pravu količinu smjernica.

Povjerenje i delegat

Ne smijete upravljati mikrofonom. Ovo je moj moto. Nadgledajte, ali nemojte pokušavati nadzirati sve. To je kontraproduktivno i nemate vremena za to.

Ne ustručavajte se prepustiti vlasništvo i odgovornosti svom timu. Ako ne uspiju, naučit će se na svojim pogreškama.

Većina inženjera je prirodno sklona prihvatiti nove izazove i rješavati složene probleme. Iznenadit ćete se što mogu postići kada im u potpunosti date povjerenje. Uz to, na taj način ćete također potaknuti profesionalni rast svog tima, što je jedan od vaših glavnih ciljeva kao tehnološki vođa. Vaš će tim uskoro to shvatiti i biti će vam zahvalni.

Ostati gladan

Za rad u tehnologiji potrebna je stalna obuka. Vašem timu potreban je pristup izvorima učenja, kao i vaša podrška i ohrabrivanje za prisustvovanje relevantnim događajima.

Ovo nije opcionalno. Obavezno izdvojite vrijeme i proračun za tehničku obuku. Kada tvrtka raste, odredite proračun svakom vašem inženjeru za obuku i poslovna putovanja.

Tehni događaji su savršena mjesta za umrežavanje i pronalaženje novih talenata!

Tehnička podrška i infrastruktura

Razmislite unaprijed

Tehnički vođa u potpunosti razumije poslovnu strategiju i pretvara je u visoke tehničke specifikacije i zahtjeve koje može izvesti tim. Ova sposobnost zahtijeva prethodna razmišljanja gdje je skalabilnost ključna.

Tijekom prvih godina poduzeća, potpuno je normalno nekoliko puta godišnje mijenjati plan puta i postavljati ciljeve. Vaš se tim možda neće svidjeti, ali na to morate biti spremni.

Jedan od načina rješavanja ovog izazova je ulaganje vremena od prvog dana u stvaranje čvrste tehnološke infrastrukture koja može podržati rast poslovanja. To se danas može postići fokusiranjem napora na izgradnji modularne arhitekture temeljene na oblaku koristeći davatelje poput AWS i GCP. Radeći to od početka:

  • razvijajte svoje usluge prema paradigmi distribuiranih sustava, za razliku od monolitnih softverskih monologa. To će olakšati prepoznavanje uskih grla i implementirati rješenja prilikom skaliranja;
  • biti u mogućnosti privremeno baciti hardver na problem. Prije nekoliko godina na Badi smo imali prvu kampanju TV oglasa za više milijuna dolara. Povećavajući broj instanci koje pokreću naš temeljni API i DB okus, osigurali smo uspješno rješavanje visokih korisničkih vrhova. To daleko nije bila idealna situacija s čisto inženjerske perspektive, a ipak bila je sasvim u redu u smislu poslovne strategije.

Dizajnirajte svoje sisteme na umu skalabilnost.

Nadgledajte svoje usluge

Postoji razlika između šanse i sreće. Ne možete kontrolirati šansu (tako da se ne brinite oko toga), ali možete oblikovati svoju sreću.

Posljednje 2,5 godine na Badi imali smo konstantno prosječno 99,9% produženog rada. Nije loše za startup! Razlog za ovo postignuće bila je strategija usmjerena na podatke koju smo promovirali, a koja se sastoji od naprednog praćenja svih usluga i kontinuirane analize njihovog ponašanja tijekom vremena.

Korištenjem proizvoda kao što su NewRelic, Dynatrace ili Datadog, možete prikupiti kvantitativne podatke o performansama svojih sustava. Tada možete optimizirati svoje usluge i predvidjeti potencijalna uska grla. Primjerice, pomoću NewRelic-a uspjeli smo identificirati važno curenje memorije koje je utjecalo na naš API i riješiti ga prije nego što je postalo stvarni problem.

Nadgledanje vaših usluga i infrastrukture može biti skupo, međutim, to je investicija s visokim prinosom koja bi trebala biti dio vaše tehnološke strategije. Napokon, naš posao je rješavanje problema prije nego što se oni stvarno pojave.

Što je jednostavnije, to je bolje

Koliko smo puta bili u iskušenju da isprobamo najnoviji programski jezik, okvir ili motor baze podataka da bismo poslali naš novi proizvod? Prije nego što to učinite, kao tehnološki vođa, vaša je dužnost učiniti korak unatrag i odvojiti svoje prirodno uzbuđenje od stvarnih poslovnih zahtjeva.

Ne pokušavajte izgraditi svemirski brod ako je ono što stvarno trebate bicikl!

Iako je razmišljanje unaprijed potrebna vještina za bilo koji tehnološki potencijal, tako je izbjegavanje pretjeranog arhitektiranja.

Moj omiljeni izbor? Pošaljite najjednostavnije moguće rješenje, a kasnije i nadogradite na njega.

Jednom me kolega pitao zašto sam za osnovne usluge na Badi odabrao MySQL bazu podataka umjesto "modernijeg" nerelacijskog kolege. Jednostavno sam se zalagao za najoptimalnije rješenje, evo zašto:

  • naša glavna poslovna logika uključivala je korisnike, sobe i slike. Korisnik može imati N soba i sobu N slike ... Nema ničeg relativnog od toga;
  • MySQL postoji već više od 20 godina, to je dobar izbor i ima izvrsne performanse uz malo optimizacije do stotine milijuna zapisa;
  • plus plus, većina alata za analitiku i vizualizaciju podataka zahtijeva upite temeljene na SQL-u. Relacijski DB olakšava život znanstvenicima i BI jedinicama u ranim fazama tvrtke (na kraju ćete im izgraditi skladište podataka).

Iako bismo uvijek trebali isprobavati najnovije tehnologije, nemojmo ih usvojiti na razini proizvodnje samo zato što su fantastični. Provjerite imate li poslovni slučaj u stvarnom svijetu koji od njih može imati koristi.

Tehnički dug

Prvo pravilo tehničkog duga je ... govorite o tehničkom dugu.

Izgradnja čvrste tehnologije u tvrtki zahtijeva pravu ravnotežu između kvalitete i brzine isporuke. To često znači kompromis i u tome nema stida.

U redu je akumulirati tehnički dug do određene mjere sve dok ste vi i vaš tim toga svjesni i imate konkretan plan za kratkoročno i srednjoročno poboljšanje.

U nekim slučajevima svjesno nakupljanje nekog tehnološkog duga može biti čak dio vaše poslovne strategije.

Primjerice, jedan od ranih tehnoloških izazova u Badiju bio je stvaranje internog sustava za chat koji korisnicima omogućuje komunikaciju u stvarnom vremenu. Ovo je bila jedna od glavnih značajki našeg proizvoda koja je izravno povezana s najvažnijim KPI-jevima tvrtke. Imali smo ograničeno vrijeme (manje od jednog mjeseca!) I resurse (2 pomoćna programera). Nakon nekoliko početnih razmišljanja, odlučili smo se koristiti Actioncableom, integracijom websocket-a koja izlazi iz okvira s okvirom koji napaja naš API (RoR).

Ovaj pristup predstavio bi neka buduća ograničenja u pogledu istodobnosti i kašnjenja. Svi smo ih bili svjesni i upravo zato smo već imali plan da na kraju izgradimo vrhunski mikroservis za naš chat, moguće pomoću Node.js ili Idi.

Odabirom Actioncable-a, naš prvi chat sustav s internetskim socketom uspjeli smo poslati u samo dva tjedna. To nije bila najbolja implementacija chata koju smo mogli izgraditi; međutim, za sada je bio brz i razumno dobar i izravno je doprinio zatvaranju kruga financiranja serije 10 milijuna dolara. Nije loše!

Tehnički vođa mora biti u mogućnosti uvijek naći pravi balans između skalabilnosti rješenja i poslovne strategije.

budžet

Zatražite više $$$

Bez obzira koliko naporno surađivali s odjelom financija na planiranju proračuna, u tvrtkama u ranoj fazi (posebno tijekom prve godine) možda ćete shvatiti na pola tromjesečja da vam je proračun kratak.

Ako točno znate na čemu trebate brži rast (npr. Nova usluga, dodatni talent, itd.), A vaša jedina prepreka je nedostatak proračuna, ne razmišljajte dvaput i jednostavno tražite više novca.

Neće vam uvijek biti dodatni troškovi, ali barem ćete stvoriti buduću potrebu.

U Badi sam ubrzo shvatio da nam je potrebna vanjska QA usluga za gužvanje beta testiranja za naše mobilne aplikacije. Naš tim običavao je sjediti zajedno i testirati naš proizvod svakog petka nekoliko sati. To nije bilo učinkovito uglavnom zbog ograničenog vremena koje smo imali i zbog malog broja uređaja koje smo posjedovali.

Prelazak na vanjsku QA uslugu bio je prava stvar za povećanje produktivnosti tima i poboljšanje ukupne kvalitete proizvoda. Deseci stvarnih korisnika testirali bi naše aplikacije tijekom vikenda pomoću heterogenog baze uređaja i oni bi sustavno prijavljivali greške putem našeg softvera za praćenje problema.

Za tvrtku koja je u to vrijeme imala ukupno ukupno milijun dolara, ova QA usluga bila je prilično skupa. Vjerojatno možete zamisliti izraz našeg CFO-a kada sam neočekivano zatražio dodatnih 50 do 100k za to. Prvo nisam dobio novac; međutim, uspjeli smo ih osigurati nekoliko mjeseci kasnije.

Rezultati ove nove investicije postali su ubrzo vidljivi i od tada su troškovi za testiranje i kontrolu kvalitete svi jednostavno uzeli zdravo za gotovo, bez ikakvih pitanja.

Vaš vršnjaci koji nisu tehnološki neće pročitati vaše mišljenje. Kad vam nešto treba, zatražite to.

Zatražite popuste

Neke usluge trećih strana i SaaS nude planove za pokretanje cijena, dok drugi ne. U svakom slučaju, uvijek se obratite direktorima prodaje i zatražite popuste.

Kad god vjerujem da su cijene nove usluge koju želim usvojiti previsoke, tražim brzi poziv gdje se predstavljam sebi i svojoj tvrtki. Zatim objašnjavam koliko bih volio koristiti njihov proizvod i zašto. Tada izričito tražim moguće popuste.

Iznenadili biste se koliko je pružatelja usluga barem neko vrijeme spremno ponuditi popust, besplatne kredite ili nestandardne / skrivene planove cijena. Prema mom iskustvu, 8 od 10 prodavača bilo je više nego voljno sniziti cijenu na upit. U nekim smo slučajevima uštedjeli i do 75% od prvotnih troškova tijekom prve godine.

Na kraju krajeva, situacija je dobitna za obje strane: ako vaša tvrtka raste, povećati će se i usluge koje koristite.

Nije sramota tražiti popuste ili besplatne kredite. To će također pokazati vašem odjelu za financije da zapravo želite uštedjeti novac tvrtke, čime ćete dodatno ojačati svoju vjerodostojnost kad tražite veći proračun u budućnosti.

Profesionalni odnosi

Budite suosjećajni

Empatija i emocionalna inteligencija najvažnije su vještine koje svaki vođa treba posjedovati.

Budite suosjećajni sa svojim timom i sa kolegama. Ovo je najbolji način da se potakne jasnoća u komunikaciji na bilo kojoj razini, kao i da se uvjeri druge da slijede vaše upute i preporuke.

Empatija možda isprva nije prirodna. Jednostavno je staviti se u tuđe cipele i pokušati shvatiti što druga osoba osjeća i zašto.

Savladajte umjetnost empatije i imat ćete sjajnu karijeru kao vođa.

Budite dio lokalne tehnološke zajednice

Budite aktivni u lokalnoj tehnološkoj zajednici redovito sudjelujući u događanjima i susretima.

Svaki veliki grad svakodnevno ugošćuje širok spektar događaja vezanih uz tehnologiju koji su često praćeni mrežnim sjednicama. Upoznajete nove ljude, dijelite ideje i susrećete se s novim i starim kolegama. Tijekom takvih događaja možda ćete otkriti i nove talente za unajmiti.

U našem gradu organiziramo sastanak pod nazivom „CTOs & co“. Naša zajednica broji više od tisuću članova i okuplja stručnjake iz lokalnog tehnološkog ekosustava koji si pomažu jedni drugima razmjenom ideja i savjeta. Tamo sam prvi put podijelio naše iskustvo u izgradnji uspješnog tehnološkog tima od temelja.

Zaključci

Posao se sastoji od zabave radeći stvari u kojima najviše uživate. Uspješni uspjesi nadahnjuju ljude i stvaraju veze. Bez obzira koliko su vam užurbani dani, uvijek odvojite malo vremena da sa svojim timom proslavite važne prekretnice.

Tim na Badiju slavi prvi milijun korisnika