見出し画像

超少数精鋭のシステム開発チームのすすめ

はじめに

今日では、ChatGPTをはじめ様々なシステム開発を効率化するツールが出てきています。これらの効率化ツールを駆使することでタイトルにあるようにシステム開発を行う際に、従来の多人数でチームで作るシステム開発から超少数精鋭チームに移行できる会社が多くなると考えています。


具体的なチーム構成

Webやアプリをはじめとするシステムを開発する際にどんなチームを作るべきか?私は以下のチーム構成をお勧めします。

  1. プロジェクトマネージャー:1名

  2. エンジニア:1名

  3. デザイナー:1名

この3名体制でシステム開発の全てを行います。
規模としては、1億円以内のシステムであればこの構成か、エンジニアを+1名するぐらいで作れると考えています。

コミュニケーションコストの計算

人数を絞ることによって、非常に大きなメリットが生まれます。多人数のチーム開発は、マンパワーが相対的に増えてプロジェクトがその分早く進むと思われがちですが、大きなデメリットとしてコミュニケーションコストがその分増えていきます。

コミュニケーションコストは一般的に人数が増えるほど増えていきます。一般的にコミュニケーションコストの式は以下で表します。

C = n*(n−1)/2​

ここで C はコミュニケーションチャンネルの数、n は人数です。
前提として、全員が全員と直接コミュニケーションする必要がある場合にのみ適用されます。
各人数の場合のコストは以下です。

3人 : C=3*(3−1)/2​=3*2/2​=6/2​=3

5人 : C=5*(5−1)/2​=5*4/2​=20/2​=10

10人 : C = 10*(10−1)/2 ​=10*9/2 ​=90/2​=45

人数が2倍になるとコミュニケーションコストが2倍以上になります。これはプロジェクト経験があれば体感としても納得いただけると思います。

そしてコミュニケーションコストが高いとはそれだけ理解力に差が出てきます。理解力が不足しているメンバーがアクションを行うとマイナスの方向に作業する可能性さえあります。

メンバー数は絞る

つまり、相当の理由がない限りメンバーは増やさないほうが良いとも言えます。お金があるから、採用が安いからといって安易に採用すると、その後のプロジェクトが余計に遅くなることは往々にして起こります。
例え、採用は安くてもプロジェクトにアサインした後のコミュニケーションコストは高いのです。

しかし、システムを開発する際に1名で全てを作ることができるのは稀です。そこで最小構成として提案するのが上で提案したPM/デザイナー/エンジニアの3名体制です。

3名で開発できる技術選定

一般的なシステム開発では3000万円規模でも5-10名チームも珍しくありません。1億円を超えると15名で開発などもありえます。
しかし、冒頭に書いたようにシステム開発の効率化ツールは非常に多く生まれています。これらを使いこなすことで3名で1億円以内のシステム規模であれば十分に開発可能とも言えます。お勧めツールをいくつか紹介します。

デザイン→コード Locofy

Locofyはシンガポールのスタートアップ企業で、フロントエンド開発を効率化します。システム開発ではFigmaでデザインを作り、それ通りにフロントエンドエンジニアがコーディングしますが、Locofyを使うことで指定のコードでコード出力が可能です。
2023年のWeb開発のスタンダードとも言える、React,Next,Vueあたりのフレームワークは抑えています。またスマホアプリのコード出力も可能です。

バックエンドサービス Supabase

バックエンド開発の際にAWSを使って、EC2インスタンスを立ち上げてなどをしていると、インフラエンジニアが必要になってきます。Supabaseを使うことで、Supabaseの管理画面からデータベースの作成、APIの作成、認証などができます。またドキュメントが自動生成されるため、変更の際にもドキュメントが追随します。
当然サーバーはSupabaseが面倒を見てくれるため、アクセス過多でサーバークラッシュしてAPIが動作しないなども起こりません。

ホスティング Vercel

基本的な考えとして、特別な理由がない限りはサーバーレスを使うべきです。サーバーレスを使えばインフラエンジニアをチームに入れる必要がなくなります。ReactコードなどはAWS EC2ではなく、Vercelにリリースしましょう。

結合テスト自動化

システム開発においてテストは必須です。テストも自動化が簡単にできるツールがどんどん出てきているので、積極的に利用しましょう。


コード規約、セキュリティチェック

積極的にツールを使って、コードを監視しましょう。
また、パフォーマンスチェック、ログ監視ツールも導入しましょう。

その他:ChatGPT/Github Copilot

説明は不要かと思いますが、この辺りのツールも当然使うべきです。


超少人数 * トップレベルの人材

上記はある程度メジャーなツールを絞って紹介しましたが、ニーズによってはもっとマイナーツールを探して使う必要が出てきます。自社のメンバーが行うよりもすでにその問題を解決している企業が提供するツールを組み合わせるべきです。

この際に重要なことは、そのサービスは本当に自社の問題を解決してくれるかということです。このツールの評価は高いエンジニアリングスキル・経験が必要です。

そのため、ただ人数を絞るわけではなく、トップレベルの人材で絞るべきです。つまり、これまで10人にかけていた人件費を3人に減らすわけではなく、人件費は固定で3人に分配するということです。これで給与による採用競争力を上げてトップレベルの人材を採用します。


フェーズによる属人性の考え方

メンバーを少なくするほど、属人性が増えていきます。組織としては属人性を減らしたいですが、それをするほどメンバーを増やすことになりコミュニケーションコストの増大につながります。

考え方として、システムが安定していない初期フェーズは属人性よりもスピードを優先すべきです。なぜならシステム自体が頻繁かつ大きく変化するため、せっかく作ったドキュメントが無意味になる可能性が高いからです。

システムの修正が少なくなってきた段階でやっと属人性を下げる動きをすべきだと考えています。属人性は組織にとって悪ですが、属人性を下げるほどシステム開発とは関係のない作業が増えて開発が遅れることは事実です。


まとめ

3年前と、今では開発環境が全く異なります。日進月歩で成長しています。そして現在ではほとんどのツールの裏側にはChatGPTが入り、ChatGPT自体も今後性能をどんどん上げていくでしょう。それは多くのツールの精度向上を意味します。

ツールの精度向上が進むほど、少人数開発が主流になる未来が近づきます。いますぐに行うことは多くの企業にとっては難しいですが、2,3年計画で超少数精鋭チーム作りをお勧めします。

PR

弊社はトップレベルの海外ITエンジニアの採用代行を行っています。今回紹介した少人数開発に興味があればぜひご連絡ください。


この記事が気に入ったらサポートをしてみませんか?