【前編】開発内製化の5年の軌跡。「消耗戦の悪魔のループ」をどう乗り越えたのか

大手企業を筆頭に、エンジニア組織の外注依存から内製化にシフトしようとする企業の報道を目にすることが増えてきました。

一方で、実際にエンジニア組織の内製化を進めようとするには、事業構造、事業戦略、企業文化、人材などの所与の条件を踏まえて、最適な方法を実践することが求められる非常に難易度の高い取り組みです。 実際にケースとしても世の中に少ないことなどもあり、エンジニア組織の内製化に関する方法論について紹介されたコンテンツは少なく、各社が手探りの状態でこの内製化に取り組んでいると思われます。

そこで、まさにこれから内製化という難儀な仕事に向き合う技術組織の責任者の方の一助になればと思い、エス・エム・エスが2015年よりエンジニア組織の内製化に取り組んできたプロセスとそこで得られた反省と学びについてを共有したく、50人超のエンジニア組織で技術責任者を務める田辺に内製化の全貌を聞きました。

1. 簡単なシステムだと思っていたが停滞していた

なぜ、エス・エム・エスのサービス開発体制を内製化することになったのでしょうか?

田辺 もともとは内製化がゴールではありませんでした。私は採用時に社長の後藤から「今後のエス・エム・エスにとって必要な技術組織のあり方を白紙から一緒に考えてほしい」と言われて入社をしました。なので、内製化も含めてフラットにその時の会社に必要なものはなにかを考え始めたというのがスタートラインです。状況を見ていく中で、当時のエス・エム・エスのサービス開発体制にうまくいってない部分が散見され、それを改善する手段として、内製化にシフトしてきました。

元々のサービス開発体制、どのようなものだったのでしょうか?

田辺 エス・エム・エスは、2003年に設立されました。大きな一つだけのサービスを追いかけるのでなく、複数のサービスを同時に展開し相互の位置付けを変えながら、成長を図ってきた会社です。私は2015年の2月に入社しました。そのころ、すでにエンジニアが30名ほどいました。当時の社内では「他でやっているサービスに比べて、エス・エム・エスのサービスはシステム的に単純なものだ」という認識があり、サービス開発は外部へ委託しての開発が中心でした。

そのころのサービスは、どんな状態だったのでしょうか?

田辺 すでに介護や医療の業界で重要なポジションを担うサービスがいくつもあり、日々使われるサービスとしてはきちんと提供していましたが、内部ではうまくいっていないところが散見されていました。

たとえば、新しい施策をやろうとリリースしても、問題が発見され、いったん切り戻して、再度リリースすると別の問題が発生する。それを何度か繰り返しているうちに、半年くらい何もリリースされていない状態になっているといったことが起きていました。他には、パフォーマンスが問題になる場合もあり、そういったときにも技術の実装面を理解している社員がいなかったため、技術的な論理の通った解決というのができず対症療法的に凌いでいる状態でした。

そのような状況だったため、経営としても、会社のケイパビリティとして技術のコントロールにリスクがあるという認識だったんです。

そういった状況を理解したうえで入社されたんですね

田辺 そうです。いろいろ課題があるんだけど、そこは”現場の課題あるある”だと思ったので、過去の経験から自分が頑張れば解消できると受けとめていました。その上で、会社としては白紙から技術組織のあり方を考えてほしいというオーダーだったため、上場企業で経営直下でゼロからそれを考える機会は面白いと思いました。 ですので、最初から内製化がゴールだった訳ではありません。会社として、経営の中での技術レイヤーの根本的な課題を解消できる人材を求めていたのだと思います。

不安はなかったのでしょうか?

田辺 もちろん不安はありました。ただ、これまでのキャリアで似たような状況の現場で働くことが多かったため、確認するべき重要な点はわかっていました。それに基づいて、入社の前に確認したことが2つありました。

ひとつは、現場のエンジニアに味方になる人がいるか。変化を起こすのは一人ではできません。必ず、現場で味方になってくれる人が必要です。そこで選考の中で、「一番できるエンジニアと話をさせてほしい」と伝え、話をさせてもらいました。話してみると、エンジニアとして話の通じる人で、これなら一人でやらなくても大丈夫かな、と計算しました。

もうひとつは、経営で上司になるのがどういう人なのか。現場の課題解決をしていく中でも、本当にタフな意思決定をするときにはどこかで必ず経営上の判断が必要になる場面がやってきます。そのときにはたして信頼できる人物が経営にいるのかが重要です。当時のエス・エム・エスの場合、経営にエンジニア出身の人はいなかったため、判断を委ねる上司としてというよりもチームを組む同僚として信頼ができる人間がいるかが重要になってきます。結局、社長直下のポジションというオファーだったのと面接で複数回会っていた社長の後藤が同僚として働きやすそうで信頼できると感じたため、あとは現場の技術課題を自分がどうにかすればいいかなと、入社することにしました。

2. 開発組織の戦略と制度を固め、経営層と握る

入社して、最初にどんなことをやったのですか?

田辺 最初の2か月くらいは、リサーチですね。まずは、なにはなくとも現地現物。1次情報を聞きにいく。そのとき、自分のなかで仮説を立てたうえで、一番多くの現象を解決できる根っこになっている問題を見つけられるよう話を聞いていきました。

最初に知りたかったのは、エス・エム・エスのやっている事業や仕事のやり方の特殊性はあるのかです。私が知っている一般的に良いサービス開発を実現していけばよいのか、それともエス・エム・エスという会社特有の事情でそうではないものを探したほうがいいのかを理解しようと考えました。前者であればやるべきことがはっきりしますし、後者であれば固有の事情にあった解決を探すのが一番難度の高い問題になるためです。 たとえば、先ほどの「エス・エム・エスのサービスは他社に比べて単純で、高度な開発能力は必要がない」というのが真実で、それにあった事業開発のノウハウというので成り立っている会社なのであれば、私の知っている技術的なプラクティスが合わない可能性もあるわけです。

リサーチした結果、どんなことがわかったんでしょうか?

田辺 エス・エム・エス固有の特殊性というものはなく、シンプルに良いサービス開発組織を目指せばそれが会社にとっても良い方向へ行くだろうということがわかりました。

そもそも、エス・エム・エスでやっていることは、多様で複雑なことでした。複数の事業とサービスがあり、それぞれのシェアや成長段階、事業規模が違っています。それらの掛け合わせで、まったく特性の違うたくさんの事業が一つの会社に混在していたんです。

開発しているサービスも、簡単なものではありませんでした。本来実現したいサービスというのは、他社のサービスと比べても簡易な要素はほとんどなく、簡単ではないものを簡素なツールで組み立てていたので、簡単だと誤解していただけでした。

また、事業と開発組織の関係は、社内請負のような関係になっていました。エンジニアの主な役割は、事業部からの依頼から機能要件をまとめて委託先との間に立って通訳をしたり調整をする役割でした。するとエンジニアは、市場やユーザーに向けて製品を作っているのではなく、事業部という社内の人の依頼へ応えようと考えがちになってしまいます。社内の期待へ応えようというのはけして悪い考えではないのですが、あくまでその先のユーザーやマーケットというのを見て、ソフトウェアにとっての長期的な価値や影響の判断をしていくということとセットなのが重要です。

開発現場の課題については、”よくある現場課題あるある”という感じで、当時でも他の開発現場では効果が出ていたモダンな開発プラクティスが浸透していない状態でした。

まとめると、つくるべきサービスは特に他社と比べても簡単なものではなく、むしろサービスの多様さと相互の連携を考えると十分に難易度が高く、プロダクト開発のやり方やソフトウェア開発のプラクティスについても一般的によいとされることを実践していくことで改善していけるという手応えは感じていました。それができる強い開発組織をつくっていくというのが目先のゴールとして間違っていないだろうというが最初のリサーチで出した結論です。

そこから、どのような方針で、開発体制を立て直したのですか

田辺 次々と新しい事業を作り続け、それを長期で成長させていくという事業展開の仕方を考えると、目指すべき開発の姿勢というのは、小さく正しく作り、事業の成長段階に合わせて少しずつ正しく大きくしていくことでした。それを、リスクと投資を時間軸に対して分散させる。それが事業構造に合っているし、本来必要とされていることでした。

これを実践していくには、ビジネスとプロダクト、そして技術に対して先を見据えてバランスを考え続けられる能力を持ったエンジニアが必要です。ビジネスの規模に応じてアーキテクチャのレベルでそのときの適切な形を考えられる技術力が必要ですし、エス・エム・エスという会社の複雑な事業モデルや事業の成長のさせ方を理解し、その先の成長で起きることを想像することも必要です。これは他社で言えば、CTOに相当する能力です。これを複数の事業で同時に進めていくことになります。このためにはそういう人材を生み続けられる強い開発組織が必要になります。

そこで、エンジニアという職種のあり方について組織戦略をつくり、経営と話して目指す方向をそろえました。エンジニアに求める仕事内容や水準も変えることになり、評価制度も改めました。制度だけ決めても動いていかないので変化のための時間軸も決めました。3年で変化しきることを目指して1年ごとにステップを置きました。社内が変わっていくことも必要ですが、実現のスピードを考えると変化の触媒となるような人を招くことが重要です。当初から、採用は最重要課題だと考えていました。

当時の戦略資料を読み返すと、1/3の人が変わることを一つの目安にしていました。変化の触媒として組織が変わっていくことを推進する人を内部の変化と採用で増やしていくことで、1/3の人が変わったときに大きく流れが変わると考えていました。これはティッピング・ポイント・リーダーシップの考え方に影響を受けています。

この1/3を生み出すために採用と育成の両面から実現の手段を検討していったというのが方針の中心になっています。まず人材要件が採用と育成の土台にあり、そういう人が採用や育成できるように、評価制度や仕事のあり方の再定義、組織の中でエンジニアが提供する価値の定義、価値を提供するためのスキルの明文化、サービスのオーナーシップのあり方、チーム開発の土台になる文化、学習することの習慣化、開発環境や勤務環境の見直しといったことを一つずつ進めていきました。

3. 小さな開発プロジェクトから実践を始める

モダンな開発スタイルも、いきなり全社に展開したのでしょうか?

田辺 いえ。文化の醸成をするには一つのチームから始めて、そこから植物を株分けするように文化や習慣がインストールされたチームを分けて増やしていくというのが王道です。まずはそのセオリーのとおりに一つのチームから始めました。たまたまシングルマザー向けのメディアを新規で立ち上げるというプロジェクトがあり、エス・エム・エスの事業開発は私たちが知っている良い開発と合わない部分があるのかを検証することもできると思い、そこからトライすることにしました。

最初は互いに持っている文化や習慣を知っている人と進めることが大事だったので、技術力や文化的な背景をよく知っている知人のエンジニアに業務委託で来てもらい、3名の開発チームから始めました。

小さくスタートしたのは仕事の基盤になるようなツールについても同様です。開発環境の土台となるツールして、GitHubと、Slack、esaを導入しましたが、これも最初は良い振舞いとしての利用の仕方を知っている人だけを登録するところから始めました。透明性の点からはあの人は使えるあの人は使えないというのは良くない状態なのですが、文化醸成の初期段階では「ツールが使える」ということよりも「ツールを使ってどのように仕事をするか」ということが重要だからです。普及のための触媒になる人が少ない段階で「ツールが使える」というを重視して広く展開してしまうと、仕事で活用しきれない形で利用をする人数だけが増えてしまいます。これを避けるために、新しい人がツールを使い始めるときにはすでにそのツールを使って仕事をしている周囲の人の真似をしていけば自然と良い仕事の仕方の習慣が身につくという状況がキープできるような形で導入を進めていきました。

アジャイルな開発を進めるには、サービスを企画する人との連携も必要になりますよね

田辺 そうですね。プロダクトオーナー役として参加したのはサービスの責任者役の人でした。

ここでエス・エム・エスで事業をやっていくのが面白いかもと思った最初の印象的な出来事があったのですが、彼からこういうサービスが作りたいと説明を受けたとき、なにを作りたいかの説明だけで20分くらいで終わりました。 そこで、なぜそのサービスを作りたいのかビジネスの目的を開発チームに伝えてほしいと話しました。なぜそれが知りたいのかと逆に質問されたので、「私たちは依頼されたものを作る専門家ではなくサービスの顧客やビジネスに対して同じ目的を持って取り組むチームで居たい。そのためには、なぜこのサービスをやりたいのかという理由を理解することは重要で、理解した上で技術でチームに貢献したいのだ」ということを説明しました。

正直、ここでの想像していた反応は「面倒だからそれっぽい説明をしてお茶を濁そう」というような態度だったのですが、驚いたのはこの後のサービス責任者の反応でした。しばらく私たち開発チームの考え方を理解するための質問をして、数分整理のために考えると、スイッチを切り替えたように「わかったのでそれなら最初から全部説明をし直しさせてください」と言い、あらためて最初から説明をし始めました。普通このような場合にサービスの戦略コンセプトやストーリーを準備もなく説明することはできません。すでにあるサービスであればまだしも、これはまだ存在していないサービスについての説明です。しかし、このとき彼はキャリア事業というマーケットの置かれている背景、その中での課題、今回のサービスが機会とみなしているポイントとそれを裏付けるファクトのデータ、その中でサービスが重視したいコンセプトといった内容をすべてひとつながりのストーリーとして一息に語ってくれました。語られたストーリーはこれまでまったくその業界を知らなかった開発チームにとっても、十分にやりがいと魅力を感じるもので、そのロジカルなストーリー展開に急にチームの熱量が上がったことを覚えています。

これが、私が「なるほど、これがエス・エム・エスか。この会社が戦略性に加えてプロダクト開発の強みを身に着けたら面白いことになるぞ」と感じた一番最初の体験でした。

4. 最初のチャレンジで、問題を解決できる手応えを感じた

最初の取り組みで、どのような手ごたえを感じましたか?

田辺 結果として、ここでもエス・エム・エスの特殊性というのはないということが確認できました。アジャイルな開発プロセスや技術的なプラクティスで一通り私たちにとっての普通のサービス開発をしてみても、開発期間や費用の面でもとくに事業開発の上で困ることはなく、機能や内部品質の面で十分に満足のいく形でサービスを送り出すことができるとわかりました。

初期の段階の検証が済んだことで、いよいよ本格的に内製化に進んでいった訳ですね

田辺 そうですね。とはいえ、2015年の段階だと、まだ見えている範囲が狭いので、けっこう楽観的ですね。「モダンな開発スタイルに慣れた優秀なエンジニアが20人くらいいたら、余裕で変えていけるだろう」くらいに思っていました・・・

(「消耗戦の悪魔のループ」が登場する後編へ続きます。)