資金も人も少ないスタートアップが大手企業に勝つためには、大手と同じことをしていては勝つことができません。大手にできないことをしてこそスタートアップは生き残ることが出来るはずです。もし仮に投資を受けて大手のような振る舞いをしたところで、そもそも基礎的な体力は違う訳で息切れしてしまうことは目に見えています。
大手企業とスタートアップの大きな違いは、大手企業は資金や人を沢山もちすぎているということです。それは正面から戦ったら強みになるでしょうが、新規事業においては弱点にもなりえるのです。
沢山の人や資金を動かすとしたら、必ず無駄が産まれます。長過ぎる会議や総花的な意見まとめなど大企業のオペレーションには多くの無駄があります。小さくて小回りの利くスタートアップが同じように振る舞う必要はありません。
ITを活用するスタートアップにおいて、ソフトウェアを作るという文脈の中でも、大手企業とは違う戦略を採用することが重要です。ソフトウェアを設計する際や開発する際に、大手企業にはできない考えかたを採用すべきでしょう。
目次
ソフトウェア開発のよくある落とし穴
私も様々なソフトウェア開発のプロジェクトに携わってきましたが、よくある落とし穴に落ちてしまった話としては、以下の3つのケースが多いように思います。
- いつまでも完成しない
- 完成しても誰も使わない
- 直したくても改修できない
どこまで作っても満足できずにユーザに届けられないソフトウェア。もし完成しても誰も使ってくれないソフトウェア。そして、メンテナンスにコストがかかり過ぎて、もはや直すことさえできないソフトウェア。書いてるだけで胸が苦しくなります。
どうしてこんなことになってしまうのでしょうか。もし大手企業で企業体力があれば、物量作戦で、これらのどの問題もクリアできてしまうかもしれません。しかし、物量作戦は同時に多くの無駄を生みだすことにもなります。
そうした物量作戦はスタートアップが採るべき戦略ではないでしょう。そもそもスタートアップの場合、これらのリスクが発生した時点で、どれもが致命傷になってしまいます。こうした状況に持ち込まないことが採るべき戦略です。
ソフトウェア開発のパラメータ
ソフトウェア開発をしていく際に考えなければいけない重要な3つのパラメータがあります。
- スコープ(作る量)
- 期限
- リソース(コスト)
このスコープ、期限、リソースの3つのパラメータを調整することでソフトウェアを作っていくことができます。
よくあるケースとしては、ソフトウェアの完成イメージがあり「スコープ」と「期限」を決めて、「見積もり」を行って、それにあわせたリソースを投入することで、ソフトウェアを開発しようとします。これはお金を持つ企業のやり方です。
ちなみに、そのやり方でうまくいったプロジェクトを私は見たことがありませんし、スコープと期限を決めてしまえば、あとは働くエンジニアが疲弊するまで作りきるしかないため、これは悪手としか思えません。
スタートアップの採るべき戦略は、「リソース」を固定した上で、必要な「期限」の中に「スコープ」をあわせていくというやり方だと考えています。なんでもかんでも詰めこむのではなく、チームの出来る量からスコープを決めるやり方です。
スタートアップが狙うマーケットは不確定な要素が多く、その場合、ある一点でソフトウェアの完成のゴールがあるというのではなく、ずっと直し続けなければいけません。そうするときに、一時に沢山の人を入れて作ったものを、その後に人数を減らして直していくというのは現実的には難しいです。
そうであれば、最初からずっと同じリソースの量で改修し続けた方が、結果としてビジネスやマーケットに沿ったソフトウェアが出来ます。
無駄をなくす3つの考えかた
スタートアップがリソースを固定した上で大手企業に勝つためには俊敏さを身につけるのがベストで、そのためには無駄なことをしないようにしなければいけません。そのための3つの考えかたが以下です。
- 単位を小さくすること
- 優先順位を決めること
- なるべく作らないこと
まず「単位を小さくすること」から始めましょう。何事も大きく作ろうとすると時間がかかり、方向転換するのに時間がかかってしまいます。3ヶ月かけて作るつもりならば、1ヶ月を3回に分けて作ることを考えた方が良いです。
大手企業と違い、人も少ないので、意思決定が速くできるはずです。それも方向転換や舵取りをしやすくしてくれるはずです。それなのに、ソフトウェア開発の部分が足枷になってしまうのはもったいないことです。
ソフトウェア開発のあらゆる場面で、アクションの単位を小さくするのです。プロセスはこちらのエントリ「高速で無駄のないソフトウェア開発を実現するための7つのポイント」を参考にしてください。少しずつ作っていくことさえ出来れば、無駄なものを作り込まなくて済むのです。
そして、そのためには「優先順位を決めること」がとても重要になってきます。少ない戦力で優先順位を決めることのできないスタートアップが生き残れる訳がありません。理想は大きくても良いのです。大事なことは「何から順に作るか」ということを決めることです。
優先順位の高いものから、少しずつ作って、ユーザやマーケットに出していくことでフィードバックを受けて、また優先順位を見直していくのです。よくあることですが、優先順位が低いと思った機能は、2〜3週間たてば、実は欲しくなかった機能だったと気付くこともあります。
優先順位を決める方法はどうすればいいか。そもそもビジネスで何をしたかったかを追求することが大事です。ビジネスであれば、お客様が価値と感じてお金を出すのはどの機能か、PVであれば、お客様が何度も足を運ぶのはどの機能があるからなのか、を追求します。
それでも難しい場合は、後で追加するのでも大丈夫な機能は何か、を考えます。何を作るべきかを考えると選ぶのは難しいですが、後でも良い機能は何かを考えることは、それに比べると簡単です。後で作るつもりで優先順位をさげて置いておきましょう。
最後に、本当に高い生産性を発揮する方法は「なるべく作らないこと」です。作ることはコストがかかることで、ソフトウェア開発をしないでも、ビジネス上の価値を出せるのであれば、まずはそれを優先すべきで、開発しないで済むにはどうすれば良いかを考えます。
機能やソースコードは資産ではなく負債だと考えるべきです。どれだけ速いスピードで作れたとして、それが誰にとっても価値を産まないのだとすれば、意味がないだけでなく、メンテナンスにかかるコストもあがりますし、運用するコストにも影響が出るでしょう。
リーンスタートアップで言うピボットと呼ばれる戦略転換をする際も、ソースコードが沢山あると、その判断を鈍らせます。これだけ作ったんだから、と思ってしまうのです。資産だと考えてしまうと捨てられなくなるのです。
そもそもソースコードが短く、機能が少なければ、バグの数も少なくなります。そもそも実現したかったことは何かを追求し、ソフトウェア開発をしないで済むようにすることが、もっとも無駄がなく、トータルで見て高い生産性を実現することになります。
俊敏さを活かす状況を作り出すことこそ、スタートアップの採るべき戦略です。