次の方法で共有


スタートアップのアーキテクチャ

スタートアップの構築は、固有の課題です。 主なタスクは、市場で製品やサービスとしてのイノベーションの場を見つけることです。 このプロセスでは、イノベーションに組み込まれている複数の前提条件をテストする必要があります。 成功したスタートアップは、これらの仮定を繰り返し処理し、製品が製品と市場に適合するように成長し、スケーリングする必要があります。 この適合を見つけた後、スタートアップは市場の需要を把握するためにスケーリングする必要があります。

さまざまなスタートアップ ライフ ステージでは、開発者、アーキテクト、最高技術責任者 (CTO) が開発の異なるフェーズを処理します。 これらの段階では、基本的に異なるアプローチと異なるテクノロジの選択が必要です。 タスクの一部は、あなたのスタートアップがどの段階にあるかを識別することです。 そのフェーズに一致するテクノロジ、アプローチ、アーキテクチャを選択します。

イノベーションステージ

ケント ベックは、ソフトウェア製品イノベーションの 3 段階のプロセス について説明します。 これらのステージは、 探索展開抽出されます。 このプロセスのさまざまな部分をグラフとして考えることができます。

製品開発の探索、展開、抽出の各フェーズを示すグラフ。

y 軸の "確実性/投資/変化のリスク" と x 軸の "時間" に対してプロットされたシグモイド曲線を示すグラフ。 グラフには、"Explore" というラベルが付いた上向き変曲の前の最初の部分、"Expand" というラベルが付いたシグモイド曲線の高成長部分、"Extract" というラベルが付いたプラトーの 3 つの領域が強調表示されています。

  • 探索段階は、緩やかな傾きで始まります。ここでは、何が機能するかを見つけるために試行します。 確実性は低く、少量しか投資しません。加えた変更によるリスクも低くなります。

  • 製品市場の適合が見つかると、グラフはより急速に上昇します。 この急速な成長は 、拡張 ステージです。 確実性が大幅に向上し、投資が大幅に増え、リスクに対する意識が高まります。

  • 最後に、グラフがフラット化され、スタートアップが成熟に達すると、 抽出 ステージに到達します。 変化の確実性、投資、リスクはすべて高い一方で、成長率は頭打ちに達しています。

探検する

スタートアップが探索段階にある場合は、さまざまな製品のアイデアに少量の時間と労力を投資することが不可欠です。 ほとんどのアイデアが適切ではないという事実は、探索を推進します。 反復と学習によってのみ、製品と市場の適合を見つけることができます。 多くの小さな賭けをすることで、あなたは報われる製品のアイデアを見つけることを目指しています。

この段階では、規範が必要です。 より少ない時間とエネルギーでテストできるという考え方を過剰に取り入れるのは簡単です。 技術者は、このトラップに陥るのは特に簡単だと思います。 探索を容易にするアーキテクチャの選択を行うには、探索中であることを忘れないでください。 現在の製品のアイデアがスケーリングされるアイデアかどうかはまだわかりません。

アーキテクチャの観点から、速度、コスト、オプションを最適化するサービスを選択します。 Azure App Service などのマネージド サービスとサービスとしてのプラットフォーム (PaaS) を使用して、複雑なインフラストラクチャを気にせずにすぐに開始できます。 探索中に無料レベルと小さいインスタンス サイズを選択して、コストを管理します。 コンテナーは、お客様にとって意味のあるツールを使用した開発をサポートし、将来の柔軟なデプロイ オプションを提供します。

最初のスタックを構築する

最初の製品バージョンと同様に、最初のテクノロジ スタックは探索にしっかりと根ざしている必要があります。 つまり、テクノロジ スタックは、労力を無駄にすることなく、製品の迅速な反復を容易にする必要があります。 現在の質問に答えるのに必要のないインフラストラクチャやアーキテクチャに時間や労力を費やしたくありません。

探索フェーズでは、速度、コスト、およびオプションを最適化する必要があります。 スピードとは、アイデアを構築して進めたり、次のアイデアに進んだりできる速さです。 コストは、インフラストラクチャの実行に費やしているコストです。 オプショナリティとは、現在のアーキテクチャにより、どれほど迅速に方向を変更できるかを示しています。

コスト、速度、オプションのバランスを取る必要があります。 コスト制限の速度とオプション性に重点を置きすぎている。 速度に重点を置きすぎると、コストが増加し、オプションが減る可能性があります。 多すぎるオプションの設計は複雑になり、コストが増加し、速度が低下します。

推奨される最初のテクノロジ スタックの使用を検討してください。 このアーキテクチャでは、実装を容易にするために PaaS サービスを使用し、最小限のスケールで開始でき、成熟時にさまざまなテクノロジ スタックに簡単にデプロイできるコンテナーとオープン ソーステクノロジを使用します。

展開

スタートアップ企業が、探索を通じて製品市場の適合性とその後の成長を見つけたら、ギアを拡大にシフトします。 製品と会社の継続的な成長の妨げを取り除くことに重点を置いている。 技術的な観点から、インフラストラクチャスケールの課題を解決し、開発速度を向上させます。 目標は、新しい顧客のニーズを満たし、製品ロードマップを進めるものです。

アーキテクチャを拡張する

製品を反復処理すると、アーキテクチャの拡張が必要な領域が必然的に見つかります。 バックグラウンドで実行時間の長いタスクを完了したり、モノのインターネット (IoT) デバイスから頻繁に更新を処理したりする必要がある場合があります。 製品にフルテキスト検索または人工知能を追加することが必要になる場合があります。

ロードマップの項目に対応するためにアーキテクチャの変更が必要になる場合があります。 それらの変更を前もって行う誘惑に抵抗してください。 拡張機能では、アーキテクチャとインフラストラクチャのコストがバランス シートに複雑化するリスクがあります。

初期のスタートアップ 段階では、すべてのアーキテクチャ拡張機能を Just-In-Time にする必要があります。 拡張機能には、次の仮説をテストするために必要なだけ時間とエネルギーを要する必要があります。 複雑さを軽減するために拡張機能を削除する準備をしてください。 顧客がアーキテクチャを簡素化し、インフラストラクチャの支出を削減する機会として使用していない製品機能を探します。

アーキテクチャは、次のようなさまざまな方法で拡張できます。

抽出

抽出フェーズでは、市場機会の限界に達すると、成長のペースが遅くなります。 前のフェーズまで拡張したため、失うことがたくさんありますので、より慎重なアプローチを取ります。 マージンの拡大、コスト削減、および効率の向上は、抽出フェーズを特徴付けします。 抽出フェーズでは、拡張フェーズで獲得した顧客の製品を侵害しないように注意してください。

成長を処理し、スタックを成熟させます

製品が製品と市場適合を達成すると、多くの要求がそのアーキテクチャを推進します。 使用量を増やすには、負荷を処理するためにインフラストラクチャのスケーリングが必要になる場合があります。 新しいエンタープライズ コンプライアンス要件では、より分離が必要になる場合があります。 これらの変更は、成功したアプリケーションを成熟させる一般的な手順です。

成長を処理し、成熟度を追加するために行う変更は、アーキテクチャの拡張とは異なります。 これらの変更は機能要件ではありませんが、スケールのロック解除に関連します。 スケールの拡大は、純新規顧客、既存の顧客からの使用量の増加、規制要件の高い顧客から生まれます。

早々に最適化する誘惑に抵抗する。 製品の反復と改善を続けるのに役立つ成長と成熟の手順を必ず実行してください。

次のステップ