ゼロから100万人のユーザーまで:成功する技術チームを迅速に成長させる方法

スペインのバルセロナにある本社のバディチーム

Badiは成長している新興企業であり、明確な使命の1つは、人々を共有スペースでつなぐことで都市生活を改善することです。当社の業績により、これまでに4,500万ドルのVC資金調達と、ヨーロッパで最も人気のある新興企業の間で2年連続でWIREDにノミネートされました。

Badiの最高技術責任者として、私の主な焦点は、技術とそれを最初から構築したチームを作成することです。

過去2.5年間で、技術サービスを0から100万ユーザーに拡大しました。 99.9%の一定のサービス稼働時間を維持しながら、100ミリ秒未満の平均応答時間で数億件のトランザクションを毎月配信しました。

これは、データ主導の技術戦略と信頼と所有権に基づくエンジニアリング文化のおかげで可能になりました。これは、非常に競争の激しい技術エコシステムではこれまでゼロに等しいエンジニアの離職率にも反映されています。

ペースの速い環境で作業する技術リーダーとして、どのようにして企業をゼロから何百万人ものユーザーに成功裏に拡大できますか?

ターボの成長、品質、実行速度が主な要件である環境で働く技術リーダー向けのヒントを以下に示します。

技術人材

雇って、雇って、雇って!

最初のMVPを構築する場合にのみ、単独で作業してください。その後、雇用を開始する必要があります。他の方法では、コーディングしているために雇用する時間が十分にない無限ループに陥る可能性があります。

あなたのチームはあなたの最高の資産です。人材探索は、会社のごく初期の段階で最大50%の時間(そう、よく読みます)を要することがあります。

初期予算でベテランエンジニアを引き付けることができない場合は、ジュニア開発者を獲得してください。 Badiでの最初の採用は、コーディングブートキャンプの新入生でしたが、私は彼らに満足できなかったでしょう!通常、ジュニアエンジニアは最初の仕事に非常に意欲的で興奮しています。適切な量​​のガイダンスで何が達成できるのか想像もできません。

信頼と委任

あなたは細かな管理をしてはならない。これが私のモットーです。監督するが、すべてを制御しようとしないでください。逆効果であり、そのための時間はありません。

チームに所有権と責任を与えることをtoしないでください。失敗した場合は、エラーから学習します。

ほとんどのエンジニアは、自然に新しい課題に取り組み、複雑な問題を解決する傾向があります。あなたが彼らにあなたの完全な信頼を与えるとき、あなたは彼らが達成できることに驚くでしょう。それに加えて、そうすることにより、チームの専門的成長も促進します。これは、技術リーダーとしての主な目標の1つです。あなたのチームはすぐにそれを認識し、彼らはあなたに感謝するでしょう。

お腹を空かせて

テクノロジーで働くには、継続的なトレーニングが必要です。チームは、関連するイベントへの参加に対するサポートと励ましだけでなく、学習リソースへのアクセスが必要です。

これはオプションではありません。技術トレーニングに時間と予算を割り当ててください。会社が成長したら、トレーニングと出張のために各エンジニアに予算を設定します。

ハイテクイベントも、新しい才能をネットワークで探し、スカウトするのに最適な場所です。

技術スタックとインフラストラクチャ

事前に考える

技術リーダーはビジネス戦略を完全に理解し、それをチームが実行できる高レベルの技術仕様と要件に変換します。この機能には、スケーラビリティが重要な場合の事前の思考が必要です。

会社の最初の数年間、年に数回ロードマップを変更し、目標を微調整することは完全に正常です。あなたのチームはそれを好まないかもしれませんが、あなたはその準備ができていなければなりません。

この課題に取り組むための1つのアプローチは、ビジネスの成長をサポートできる強固な技術インフラストラクチャの作成に初日から時間をかけることです。これは、AWSやGCPなどのプロバイダーを使用して、モジュール式のクラウドベースのアーキテクチャの構築に注力することにより、今日達成することができます。最初からそうすることで、次のことができます。

  • 単一インスタンスのソフトウェアモノリスとは対照的に、分散システムパラダイムに従ってサービスを開発します。これにより、スケールアップ時にボトルネックの特定とソリューションの実装が容易になります。
  • 問題に一時的にハードウェアを投げることができます。数年前、バディで最初の数百万ドルのテレビ広告キャンペーンがありました。コアAPIとDBフレーバーを実行するインスタンスの数を増やすことで、高いユーザーのピークにうまく対処できるようにしました。これは、純粋にエンジニアリングの観点からは理想的な状況とはほど遠いものでしたが、ビジネス戦略の観点からは完全に良好でした。

スケーラビリティを考慮してシステムを設計します。

サービスを監視する

チャンスと運には違いがあります。チャンスをコントロールすることはできません(心配する必要はありません)が、運を形作ることはできます。

Badiでの過去2.5年間の平均稼働率は99.9%でした。スタートアップにとって悪くない!この成果が得られた理由は、すべてのサービスの高度な監視と長期にわたるサービスの継続的な分析で構成される、データ駆動型の戦略でした。

NewRelic、Dynatrace、Datadogなどの製品を使用すると、システムのパフォーマンスに関する定量的なデータを収集できます。その後、サービスを最適化し、潜在的なボトルネックを予測できます。たとえば、NewRelicを使用することで、APIに影響する重要なメモリリークを特定し、それが実際の問題になる前に解決することができました。

サービスとインフラストラクチャの監視は費用がかかる可能性がありますが、技術戦略の一部であるはずの投資収益率が高くなります。結局のところ、私たちの仕事は問題が実際に発生する前に解決することです。

シンプルなほど良い

新しい製品を出荷するために、最新のプログラミング言語、フレームワーク、またはデータベースエンジンを試してみたいと思われたことが何度ありますか?そうする前に、技術リーダーとして、一歩後退し、実際のビジネス要件から自然な興奮を分離することがあなたの義務です。

本当に必要なのが自転車の場合、宇宙船を作ろうとしないでください!

最先端の思考はどのような技術リーダーにとっても必須のスキルですが、過剰なアーキテクトを避けることも同様です。

私の好きな選択肢は?可能な限り単純なソリューションを出荷し、後でその上に構築します。

ある同僚から、「より現代的な」非リレーショナルの代わりに、BadiのコアサービスにMySQLデータベースを選択した理由を尋ねられました。私は単に最適なソリューションを探しました。その理由は次のとおりです。

  • 主なビジネスロジックには、ユーザー、部屋、写真が含まれます。ユーザーはN個の部屋とN個の写真を持つことができます。それ以上の関係はありません。
  • MySQLは20年以上使用されており、堅実な選択肢であり、最大数億件のレコードを必要とする最適化がほとんどなく、優れたパフォーマンスを発揮します。
  • さらに、ほとんどの分析およびデータ視覚化ツールにはSQLベースのクエリが必要です。リレーショナルDBを使用すると、企業の初期段階でデータサイエンティストやBIユニットが楽になります(最終的にはデータウェアハウスを構築します)。

常に最新のテクノロジーを試してみる必要がありますが、それらが派手であるという理由だけで、それらを生産レベルで採用しないようにしましょう。実際にそれらから利益を得ることができる現実のビジネスケースがあることを確認してください。

技術債務

技術的負債の最初のルールは…技術的負債について話します。

企業で強固な技術を構築するには、品質と配信速度の適切なバランスが必要です。これは多くの場合、トレードオフを意味し、そのことに恥はありません。

あなたとあなたのチームがそれを十分に認識し、短期および中期の改善のための具体的な計画を持っている限り、ある程度まで技術的負債を蓄積することは問題ありません。

場合によっては、一部の技術的負債を意識的に蓄積することも、ビジネス戦略の一部になる可能性があります。

たとえば、Badiの初期の技術的課題の1つは、ユーザーがリアルタイムで通信できるようにする社内チャットシステムの作成でした。これは、当社製品の主要な機能の1つであり、会社の最も重要なKPIに直接接続されていました。限られた時間(1か月未満!)とリソース(2人のバックエンド開発者)がいました。いくつかの初期の考えの後に、API(RoR)を強化するフレームワークとすぐに使用できるWebSocket統合であるActioncableを使用することにしました。

このアプローチでは、同時実行性と待機時間の点でいくつかの将来的な制限があります。私たちは皆それらに気付いていたので、おそらくNode.jsまたはGoを使用して、チャット用の最先端のマイクロサービスを最終的に構築する計画をすでに持っていたのはそのためです。

Actioncableを選択することで、わずか2週間で最初のWebソケットを使用したチャットシステムを出荷できました。これは、私たちが構築できる最高のチャット実装ではありませんでした。しかし、それは当分の間は速くて合理的であり、1000万ドルのシリーズA資金調達ラウンドのクローズに直接貢献しました。悪くない!

テクノロジーリーダーは、ソリューションのスケーラビリティとビジネス戦略の適切なバランスを常に見つけることができなければなりません。

予算

さらに多くの$$$を求める

財務部門と協力して予算を計画していても、初期段階の企業(特に1年目)では、四半期の途中で予算が厳しいことに気付くことがあります。

より速く成長するために必要なもの(たとえば、新しいサービス、余分な才能など)を正確に把握していて、唯一の障害が予算の不足である場合は、考え直さないでください。

常に追加の費用が支払われるわけではありませんが、少なくとも将来のニーズは生じます。

Badiでは、モバイルアプリのベータテストをクラウドソースするために外部QAサービスが必要であることにすぐに気付きました。私たちのチームは、毎週金曜日に数時間一緒に座って製品をテストしていました。これは主に時間の制限と所有するデバイスの数が少ないために効率的ではありませんでした。

外部のQAサービスに切り替えることは、チームの生産性を高め、製品全体の品質を向上させるために正しいことでした。実際の数十人のユーザーが、週末に異種のデバイスプールを使用してアプリをテストし、問題追跡ソフトウェアを介して体系的にバグを報告しました。

当時100万ドルの資金を提供していた会社にとって、このQAサービスはかなり高価でした。おそらく、私がCFO expressionの表現を想像できるのは、私が予期せずに追加で50〜100kを要求したときです。最初はお金をもらえませんでした。ただし、数か月後にそれらを保護することができました。

この新しい投資の結果はすぐに明らかになり、それ以来、テストとQAの費用は誰もが当然のこととみなし、質問はしませんでした。

あなたの非技術的な仲間はあなたの心を読まないでしょう。あなたが何かを必要とするとき、それを求めてください。

割引を求める

一部のサードパーティサービスとSaaSはスタートアップ価格プランを提供していますが、他のものは提供していません。いずれにせよ、常に営業担当者に連絡して割引を依頼してください。

私が採用したい新しいサービスの価格が高すぎると思うときはいつでも、私は自分と会社を紹介するクイックコールを要求します。次に、彼らの製品をどれだけ使いたいか、そしてその理由を説明します。次に、可能な割引を明示的に要求します。

少なくともしばらくの間、割引、無料のクレジット、または非標準/非表示の価格プランを提供してくれるプロバイダーの数に驚くでしょう。私の経験では、10社中8社のベンダーが、質問に応じて価格を引き下げる意思がありました。場合によっては、最初の年に元のコストから最大75%を節約しました。

結局のところ、それは双方にとって有利な状況です。会社が成長すれば、使用するサービスも成長します。

割引や無料のクレジットを求めるのは恥ではありません。これは、財務部門にとって、会社のお金を実際に節約したいということを証明することになるため、将来、より高い予算を要求する際の信頼性をさらに高めることができます。

プロフェッショナルな関係

共感する

共感と感情的知性は、すべてのリーダーが持つべき最も重要なスキルです。

チームと同僚に共感してください。これは、あらゆるレベルでコミュニケーションを明確にし、他の人にあなたのガイダンスや推奨事項に従うよう説得するための最良の方法です。

共感は最初は一部の人にとっては自然ではないかもしれません。それは、他人の靴に身を置き、他人が何を感じているのか、そしてなぜそれを理解しようとするだけの問題です。

共感の芸術をマスターすると、リーダーとして素晴らしいキャリアを積むことができます。

地域の技術コミュニティに参加する

イベントやミートアップに定期的に参加することで、地元の技術コミュニティで積極的に活動します。

すべての主要都市では、ネットワーキング関連のセッションが頻繁に行われる幅広い技術関連のイベントが毎日開催されています。新しい人と出会い、アイデアを共有し、新旧の同僚に追いつきます。そのようなイベントの最中に、新しい人材を見つけることもできます。

私たちの街では、「CTO&co」というミートアップを開催しています。私たちのコミュニティは、1,000人以上のメンバーを数え、地元の技術エコシステムの専門家を集め、アイデアやヒントを交換することで互いに助け合っています。そこで、成功した技術チームを一から構築した経験を初めて共有しました。

結論

仕事とは、あなたが最も楽しんでいることを楽しくすることです。成功した成果は人々に刺激を与え、絆を作ります。どんなに忙しい日々であっても、常にチームと一緒に重要なマイルストーンを祝うために時間をかけてください。

最初の100万人のユーザーを祝うバディのチーム