ソフトウェアファーストを読んで開発組織と外部委託について考えた

はじめに

及川さんが書いたソフトウェアファーストを読み、本当に多くのことが参考になったのですが、その中でも特に開発組織を作ることについて述べられていることについて読み、考えたことをまとめておきます。

ソフトウェア・ファースト あらゆるビジネスを一変させる最強戦略

新品価格
¥2,090から
(2019/11/3 20:51時点)

認識合わせとして、組織の目指す方向性は下記の通りとします。

エンジニアリング組織はプロダクト開発・運用の主役になるだけでなく、事業サイドと正しい形で連携の取れる組織でなければなりません。

出典;ソフトウェアファースト

目指す組織をこの前提とする場合、エンジニアリング組織の状況(ex. 開発リソース、メンバーの成長)を鑑みつつ事業の成長を妨げずドライブさせていく必要があると思っているのですが、この時の選択肢としての外部委託および内製化についてどう考えていけばいいか、書籍に記載のあることを引用しつつまとめてみます。書籍内では他にも多くの話題を取り上げていますが、僕個人が今この話題に興味があり、書籍内で僕のこの疑問に答えてくれていたため本記事ではこの話題を取り上げます。

開発体制と外部委託について

どこの企業においても、プロダクトや機能の開発に必要なリソースが足りない場合、開発を外部委託することを検討すると思います。僕自身も何度もそういった経験をし、実際に見積もりをしつつ外部委託の方とプロダクトの開発をしてきました。この時、数名いるエンジニアチームに1名追加でアサイン頂くようなケースは特に問題はないのですが、ある程度の規模の機能やプロダクトの開発を丸っとお願いするようなケースにおいてよく感じていることがありました。例えば以下のようなことです。

  • 事業のことを考えると開発リソースが足りないという理由で事業に影響を出したくはない。しかし丸っと外部委託することで本当にいいのか。
  • 外部委託をする、しないについての判断はどうすべきか、判断基準をもう少し整理したい
  • 外部委託をすると良いケースはどんな場合か
  • 外部委託をすると良くないないケースはどんな場合か
  • 外部委託をしている時、ソフトウェアエンジニアはどうするのがいいのか
  • GAFAなどのテック企業は外部委託についてどう考えているのか

書籍内ではDXについて「IT活用の手の内化」という表現をしています。ざっくりいうと出来るだけ手綱を握ってIT活用しましょう、ということでしょう。開発組織を作り上げていく時、この外部委託の話も切っても切れない話であるため書籍内においても開発組織の立ち上げから僕がこれまで気になっていた上記疑問についても及川さんのGoogleやMicrosoftでの経験、そして技術コンサルをしてきたこれまでの知見からの意見が述べられています。

まず、大まかな方針ですが以下のように記されていました。

DXの本質を「IT活用を手の内化すること」と定義し、できる限り開発を内製化するのが理想だと述べました。

出典:ソフトウェアファースト

ここで言う内製化とは、プロダクトの企画、開発、運用に至るまでを社内で行うことです。

出典:ソフトウェアファースト

これらについては僕自身が考えていることと相違はなかったので、そりゃそうだよな、と改めて確認ができました。また、及川さんのこの方針の根拠としてはスピードがある、と言うことでした。アジャイル開発で短い期間でイテレーションを繰り返す開発手法においては外部委託をしていてはそのスピードで開発サイクルを回せない、と言うことです。他にもノウハウの蓄積などを挙げていました。

さて、それは理解しているのですが、それは正直綺麗事にしか聞こえないわけです。実際に事業を成長させないといけないタイミングで開発組織のリソースが足りないとき、つまり内製化できない時はどうすればいいのか。僕が及川さんの話を聞きたいのはそこだったわけですがそこについては以下のように述べられていました。

果たして100%内製化するのが理想なのでしょうか?少し前まで、筆者は講演などでイエスと答えてきました。(中略)マイクロソフトやグーグルでも、ある条件の下で外部の開発会社を利用したり、自社で開発しないケースがあったからです。

出典:ソフトウェアファースト

そうそう、この辺の話を聞いてみたかったのです。というのもありつつ、この前まで100%内製化を推奨してた、というのに驚く。。(もちろんそのほうがいいし、僕もそうしたいと思います、でもそれではビジネス機会を逃すことになりそうだし、どうするの、という堂々巡りにw)

それではその外部の開発会社を利用していたケースはどういったケースなのでしょうか。

  1. 誰が作っても差異のないソフトウェアの場合
  2. 開発上必要だが一度しか使わないソフトウェアの場合
  3. オープンソースソフトウェアを活用する場合

出典:ソフトウェアファースト

詳細は割愛します(ぜひ書籍でご確認ください!)が、僕自身にとって非常に納得の判断基準でした。こういった明確な基準は今まで文章にされているものをみたことはなかったので、なるほどなるほど、となりました。そして肝心なのは確かにここだな、とこれまで僕がモヤモヤしていたエンジニア組織と外部委託のことについて以下を読み腹落ちすることができました。

重要なのは100%の内製化を目指すことではなく、制御権を保持することだと考えましょう。制御権をもつというのは、何を作るかを決定し、どのような技術を用いて作るかを決定し、開発の全体を指揮すること。つまりIT活用を手の内化することです。

出典:ソフトウェアファースト

実はこの1年くらい、モヤモヤしていたのですが、この本を読み自分がどう振る舞うべきかやっと方向性が見えました。見えたというよりは自信がもてた、という方が正しいかもしれません。書籍を読んでよかった、と思いました。

まとめ

本記事は以上です。本記事ではだいぶピンポイントに僕自身が日頃悩ましく思っていたこのエンジニア組織と外部委託の話について取り上げてきました。書籍では他にも多くの話題を取り上げていますし、僕の本は付箋だらけになってます。これから何度か読み返すことになる本だと思います。その時々の僕の状況によって様々な気づきをくれる書籍だなと思っています。ということで本当に素晴らしい書籍でした、おすすめです。

ソフトウェア・ファースト あらゆるビジネスを一変させる最強戦略

新品価格
¥2,090から
(2019/11/3 23:53時点)