От нула до милион потребители: как бързо да се развие успешен технологичен екип

Екипът на Бади в щаба ни в Барселона, Испания

Badi е разрастващ се стартъп с една ясна мисия: подобряване на градския живот чрез свързване на хората с общи пространства. Постиженията на нашата компания доведоха до $ 45 млн. VC финансиране досега и до WIRED номинацията сред най-горещите стартиращи компании в Европа 2 години подред.

Като главен технологичен директор в Бади, моят основен акцент беше изработването на техниката и екипа, който го изгради от самото начало.

През последните 2,5 години увеличихме технологичните си услуги от 0 до 1 милион потребители. Доставихме стотици милиони месечни транзакции със средно време за реакция под 100 ms, като същевременно поддържахме постоянно 99,9% време на работа.

Това стана възможно благодарение на технологична стратегия, базирана на данни, и инженерна култура, основана на доверие и собственост, което се отразява и в нашия коефициент на оборот на инженери, който досега беше равен на нула в много конкурентна технологична екосистема.

Като технологичен лидер, работещ в бързо развиваща се среда, как успешно мащабирате компания от основата до милиони потребители?

Ето няколко съвета за технологичните лидери, работещи в среда, където растежът, качеството и скоростта на изпълнение са основните изисквания.

Технически талант

Наемайте, наемайте, наемайте!

Работете сами, само ако изграждате първия си MVP. След това ще трябва да започнете да наемате. По друг начин може да се окажете забит в безкраен цикъл, където никога няма да имате достатъчно време за наемане, защото кодирате.

Екипът ви е най-доброто ви предимство. Търсенето на таланти може да отнеме до 50% от времето ви (да, добре четете) в много ранни етапи на компания.

Ако първоначалният ви бюджет не ви позволява да привличате опитни инженери, вземете младши разработчици. Първите ми наеми в Badi бяха младши разработчици, пресни от кодиращия буткамп и не можех да бъда по-щастлив с тях! Младшите инженери обикновено са много мотивирани и въодушевени от първата си работа. Не бихте си представили какво могат да постигнат с точното количество насоки.

Доверие и делегат

Няма да правите микроманипулация. Това е моето мото. Наблюдавайте, но не се опитвайте да контролирате всичко. Това е контрапродуктивно и нямате време за това.

Не се колебайте да дадете собственост и отговорности на вашия екип. Ако не успеят, те ще се поучат от грешките си.

Повечето инженери са естествено склонни да поемат нови предизвикателства и да решават сложни проблеми. Ще се изненадате какво могат да постигнат, когато им дадете пълно доверие. На всичкото отгоре, по този начин ще насърчите и професионалния растеж на вашия екип, което е една от основните ви цели като технологичен лидер. Екипът ви скоро ще осъзнае това и ще ви бъде благодарен.

Стой гладен

Работата в технологиите изисква постоянно обучение. Вашият екип се нуждае от достъп до учебни ресурси, както и от вашата подкрепа и насърчение за присъствието на съответните събития.

Това не е задължително. Не забравяйте да отделите време и бюджет за техническо обучение. Когато компанията расте, определете бюджет на всеки един от вашите инженери за обучение и бизнес пътувания.

Техническите събития са също перфектни места за мрежа и разузнаване на нови таланти!

Технически стек и инфраструктура

Мислете предварително

Технологичният лидер напълно разбира бизнес стратегията и я преобразува в технически спецификации и изисквания на високо ниво, които могат да бъдат изпълнени от екипа. Тази способност изисква предварително мислене, където мащабируемостта е ключът.

През първите години на една компания е напълно нормално да се променя пътната карта няколко пъти годишно и да се определят целите. Екипът ви може да не ви хареса, но трябва да сте готови за това.

Един от подходите за справяне с това предизвикателство е инвестирането на време от първия ден в създаването на солидна технологична инфраструктура, която може да подкрепи растежа на бизнеса. Това може да се постигне днес, като се съсредоточат усилията върху изграждането на модулна архитектура, основана на облак, като се използват доставчици като AWS и GCP. Правейки това от самото начало ще:

  • разработвайте услугите си според парадигмата на разпределената система, за разлика от монолитните софтуерни модели. Това ще улесни идентифицирането на тесните места и прилагането на решения при мащабиране;
  • да бъде в състояние временно да хвърли хардуера при проблема. Преди няколко години в Бади проведохме първата си многомилионна кампания за телевизионни реклами. Увеличавайки броя на екземплярите, изпълняващи основния ни API и нашия DB аромат, ние се уверихме, че можем успешно да се справим с пиковете на високи потребители. Това далеч не беше идеална ситуация от чисто инженерна перспектива, но все пак беше напълно добре по отношение на бизнес стратегията.

Проектирайте вашите системи с мащабируемост.

Следете вашите услуги

Има разлика между шанс и късмет. Не можете да контролирате шанса (така че не се тревожете за това), но можете да оформите късмета си.

За последните 2,5 години в Бади имахме постоянна средна продължителност от 99,9%. Не е лошо за стартиране! Причината за това постижение беше управляваната от нас стратегия, която промотирахме, която се състои в усъвършенстван мониторинг на всички услуги и непрекъснат анализ на тяхното поведение във времето.

Използвайки продукти като NewRelic, Dynatrace или Datadog, можете да съберете количествени данни за работата на вашите системи. След това можете да оптимизирате услугите си и да прогнозирате потенциални затруднения. Използвайки NewRelic, например, успяхме да идентифицираме важно изтичане на памет, което се отрази на нашия API и да го решим, преди да се превърне в истински проблем.

Наблюдението на вашите услуги и инфраструктура може да бъде скъпо, но това е инвестиция с висока възвръщаемост, която трябва да бъде част от вашата технологична стратегия. В крайна сметка нашата работа е решаването на проблеми, преди те действително да се появят.

Колкото по-просто, толкова по-добре

Колко пъти сме се изкушавали да изпробваме най-новия език за програмиране, рамка или двигател на база данни, за да доставим нашия нов продукт? Преди да направите това, като технологичен лидер, ваше задължение е да направите крачка назад и да отделите естественото си вълнение от реалните бизнес изисквания.

Не се опитвайте да изградите космически кораб, ако това, от което наистина се нуждаете, е мотор!

Докато предварително мисленето е задължително умение за всяка технологична насоченост, така че избягвайте прекаленото архитектиране.

Любимият ми избор? Доставка на възможно най-простото решение, а по-късно надграждане върху него.

Веднъж един колега ме попита защо избрах MySQL база данни за основните услуги в Badi вместо „по-модерен“ нерелационен колега. Просто потърсих най-оптималното решение, ето защо:

  • основната ни бизнес логика включваше потребители, стаи и снимки. Потребителят може да има N стаи и снимки от стая N ... Няма нищо по-относително от това;
  • MySQL съществува повече от 20 години, това е солиден избор и има страхотна производителност с малко оптимизация, изисквана до стотици милиони записи;
  • като плюс, повечето инструменти за анализи и визуализация на данни изискват заявки на базата на SQL. Релационната БД улеснява живота на учените с данни и BI звена в ранните етапи на компанията (в крайна сметка ще им изградите склад за данни).

Въпреки че винаги трябва да изпробваме най-новите технологии, нека не ги възприемаме на ниво производство, само защото са фантастични. Уверете се, че имате бизнес случай в реалния свят, който всъщност може да се възползва от тях.

Технически дълг

Първото правило на техническия дълг е ... вие говорите за технически дълг.

Изграждането на солидна технология във фирмата изисква точния баланс между качество и скорост на доставка. Това често предполага компромис и няма срам в това.

Добре е да натрупате технически дълг до известна степен, стига вие и вашият екип да сте напълно наясно с него и да имате конкретен план за подобрение в краткосрочен и средносрочен план.

В някои случаи съзнателното натрупване на някакъв технологичен дълг дори може да бъде част от вашата бизнес стратегия.

Едно от ранните технологични предизвикателства в Badi, например, беше създаването на вътрешна чат система, която да позволи на потребителите да общуват в реално време. Това беше една от основните характеристики на нашия продукт, която беше пряко свързана с най-важните KPI на компанията. Имахме ограничено време (по-малко от 1 месец!) И ресурси (2 разработчици за задния ред). След няколко първоначални мисли решихме да използваме Actioncable, интеграцията в уеб сокета, която излиза извън кутията с рамката, захранваща нашия API (RoR).

Този подход би представлявал някои бъдещи ограничения по отношение на едновременност и закъснение. Всички бяхме наясно с тях и точно затова вече имахме план за евентуално изграждане на най-съвременна микросервиза за нашия чат, вероятно използвайки Node.js или Go.

Избирайки Actioncable, успяхме да изпратим първата си чат система, работеща с websocket само за две седмици. Това не беше най-доброто приложение за чат, което можехме да изградим; за момента обаче той беше бърз и сравнително добър и пряко допринесе за приключването на кръг на финансиране от серия A от 10 милиона долара. Не е зле!

Технологичният лидер трябва да може винаги да намери правилния баланс между мащабируемостта на решенията и бизнес стратегията.

бюджет

Поискайте повече $$$

Колкото и да работите с вашия финансов отдел, за да планирате бюджет, в компании от ранен етап (особено през първата година) може да осъзнаете на половината от тримесечието, че бюджетът ви е малък.

Ако знаете точно какво трябва да растете по-бързо (например нова услуга, допълнителен талант и т.н.) и единствената ви пречка е липсата на бюджет, не мислете два пъти и просто поискайте повече пари.

Няма да ви бъдат предоставени винаги допълнителни разходи, но поне ще създадете бъдеща нужда.

В Badi скоро разбрах, че се нуждаем от външна QA услуга, за да тестваме бета тестове за нашите мобилни приложения. Екипът ни седеше заедно и тествахме нашия продукт всеки петък за няколко часа. Това не беше ефективно главно поради ограниченото време, с което разполагахме, и малкия брой устройства, които притежавахме.

Преминаването към външна QA услуга беше правилното нещо, за да се повиши производителността на екипа и да се подобри цялостното качество на продукта. Десетки реални потребители биха тествали нашите приложения през уикендите, използвайки хетерогенен пул от устройства, и те систематично ще докладват за грешки чрез нашия софтуер за проследяване на проблеми.

За компания, която по това време разполага с общо 1 млн. Долара, тази QA услуга беше доста скъпа. Вероятно можете да си представите израза на нашия CFO , когато неочаквано поисках допълнителни 50 до 100 000 за него. В началото не получих парите; обаче успяхме да ги осигурим няколко месеца по-късно.

Резултатите от тази нова инвестиция станаха скоро очевидни и оттогава разходите за тестване и QA бяха просто приети за даденост от всички, без зададени въпроси.

Вашите нетехнологични връстници няма да прочетат мнението ви. Когато имате нужда от нещо, поискайте го.

Поискайте отстъпки

Някои услуги на трети страни и SaaS предлагат планове за начално ценообразуване, докато други не. Във всеки случай, винаги се обръщайте към ръководителите на продажби и поискайте отстъпки.

Всеки път, когато вярвам, че цените на нова услуга, която искам да възприема, са твърде високи, искам бързо обаждане, където се представям и моята компания. След това обяснявам колко бих искал да използвам техния продукт и защо. Тогава изрично искам възможни отстъпки.

Ще се изненадате колко доставчици са готови да предложат отстъпка, безплатни кредити или нестандартни / скрити ценови планове, поне за известно време. Според моя опит, 8 от 10 доставчици бяха повече от готови да понижат цената си, когато бяха поискани. В някои случаи спестихме до 75% от първоначалната цена през първата година.

В края на краищата това е ситуация, която е от полза и за двете страни: ако вашата компания расте, така и услугите, които използвате.

Няма срам да искаш отстъпки или безплатни кредити. Това също ще докаже на вашия финансов отдел, че всъщност искате да спестите парите на компанията, като по този начин ще засилите доверието си, когато поискате по-голям бюджет в бъдеще.

Професионални отношения

Бъдете съпричастни

Емпатията и емоционалната интелигентност са най-важните умения, които всеки лидер трябва да притежава.

Бъдете съпричастни с екипа си и с колегите си. Това е най-добрият начин за насърчаване на яснота в комуникацията на всяко ниво, както и да убедите другите да следват вашите напътствия и препоръки.

Емпатията може да не е естествена за някои хора в началото. Въпрос е само да се поставите в обувки на някой друг и да се опитате да разберете какво чувства другият човек и защо.

Овладейте изкуството на съпричастността и ще имате страхотна кариера като лидер.

Бъдете част от местната технологична общност

Бъдете активни в местната технологична общност, като редовно участвате в събития и срещи.

Всеки голям град ежедневно е домакин на широк спектър от свързани с технологиите събития, които често са последвани от мрежови сесии. Срещаш се с нови хора, споделяш идеи и догонваш нови и стари колеги. По време на подобни събития може да откриете и нов талант, който да наемете.

В нашия град организираме среща, наречена „CTOs & co“. Нашата общност наброява повече от 1 хиляда членове и обединява професионалисти в местната технологична екосистема, които си помагат взаимно чрез обмен на идеи и съвети. Там споделих за първи път нашия опит в изграждането на успешен технологичен екип от самото начало.

Заключения

Работата е за това да се забавлявате да правите нещата, от които най-много се радвате. Успешните постижения вдъхновяват хората и създават връзки. Колкото и забързани да са дните ви, винаги отделете малко време, за да отпразнувате важни етапи с екипа си.

Екипът в Бади празнува първия милион потребители