インタビュー システム内製開発 チームビルディング マネージメント

外部の優秀エンジニア頼り・不安定な体制を一変。「持続可能な内製体制」の開発方法、教えます。

内製化が進む一方、エンジニア採用がうまくいかない・そもそも雇用し続けること自体困難であることから、外部ベンダーとの「共創内製」が増えています。問題は、外部ベンダーの優秀なエンジニアが主力になってしまいがちなこと。優秀なエンジニアは引く手あまたであるため、いつか転職してしまいます。今回は、そんな不安定な状況をチームビルディングによって解消することに成功したエンジニアのお話をご紹介します。

Y.K氏プロフィール:法政大学経営学部を卒業後、200名規模の金融系SIer企業に就職。入社してからの2年、銀行の融資稟議のシステムやクレジットカード会社のシステム開発を経験。3年目以降は開発に関わることが少なくなったため自身の技術が向上しないことに危機感を感じ、2016年に株式会社情報戦略テクノロジーに入社。現在は400人月規模のプロジェクトのPLを担当している。

持続可能な組織も」開発してます

ー Y.K氏が考える、理想のエンジニア像を教えて下さい。

「お客様の立場になって、顧客のサービスや組織に向き合い、課題を自ら見つけて解決へ動くこと」です。

お客様のシステム内製を支援している立場である私たちは、今関わっているプロジェクトの成功だけでなく、長期的な目線で再現性のあるシステム作りや、開発の中心となる若い人が継続して育つような、人が循環する「持続可能な組織って何だろう」と考えながら内製を支援します。

ー 「再現性のあるシステム作り」というのは、具体的にはどのような事でしょうか?

現在、私が参画しているプロジェクトチームには40名のエンジニアが参画しています。その40名の中にお客様側の社員はおらず、10数社のベンダーのエンジニアのみで構成されていますが、現在のプロジェクトが成功している要因はお客様のシステム独自の仕様やシステムの特性の知見を持っている、一部の昔から参画している優秀なエンジニアのおかげだと思っています。

参画している40名のうち優秀なエンジニアは10名いらっしゃるのですが、現場のシステム開発で難しい案件の時は毎回、同じ優秀な10名のエンジニアをアサインしており、他の30名は難易度が高くない毎回同じような作業を対応する状態でした。それだと優秀な10名のエンジニアだけに知見がたまる一方で他の30名に知見がたまらないですよね。

確かにプロジェクト成功を考えると優秀なメンバーを毎回アサインしたい気持ちは理解できますが、皆さん歳を重ねていつかは現場からいなくなってしまう日が来ます。その時、周りのエンジニアが育っていないと現場が崩壊してしまうのが目に見えていたので、お客様との定例の中で「属人化をなんとか解消しないとこの先リスクになると思います」ときりだしてみました。その結果、お客様もぼんやりとそういった課題感を持っていたことが分かり、具体的な解決方法として、ブラックボックスになっている部分を明文化して、誰でも取り出しやすく、誰でも見られる状態を目指そうと考え提案しました。

しかし大規模なシステムをもっているお客様でしたので、全部の機能を一気にやるのは不可能です。なので、サービスの中で最も重要な機能だけに絞り、対象機能がいくつあるのか、対象画面がいくつあるかをざっくり調べて、何人月かかるか見積もりを出しました。また、設計書を書く上でのルールなどを全部定めました。ちなみにその時の提案は130人月分の規模なのでまだ現在も進行中です。

その提案はお客様と私の間では合意が取れたので、そこから他社ベンダーを含めて巻き込むためにチームリーダーや各サブリーダーも巻き込んで課題について共有し、具体的な進め方を決めていきました。大事なのは、私とお客様だけで決めず、チーム全体の合意を取り巻き込む形で動くことだと思っています。

ー 属人化解消の中で、若い人が継続して育つ仕組みが出来上がっていったのですか?

はい。私が参画した当初、チーム内でソースコードのレビューを行っていたのですが、レビューをするのはそれぞれ担当を指定するわけではなく自主的に出来る人がやるというスタイルで、その時参画していたチームは6名いましたが、私を含めた3名だけが自主的にレビューをしていて他の3名は自分のタスクだけを担当していました。

当時のチームは自ら手を上げて積極的に仕事を取りにいくようなことをやりたがる人がおらず、積極的に取り組むレビュワーとそれ以外のメンバーで差がありチームとしての一体感がなかったですね。フリーランスや他社ベンダーの会社から1人だけ参画していたりしていたりと作業者としての意識のほうが高かった印象です。そんな同じチームとして協力しあうことができないチームの文化を変えたいと思っていました。

また、私の体験談ですが、参画して間もない時期はレビューする能力がまだない状態でしたが、自分の担当以外のソースコードを見ることでシステム理解の速度もあがりますし、優秀なエンジニアのレビューで指摘している内容を見ることでそれ自体が学びになっていましたね。自分のタスクとしてレビューを任されているわけではないのですが、積極的に手を上げてチーム内のレビューをし、それを繰り返すことでシステム全般を理解することが出来ました。そうやって得られるものや能力が上がっていくのを自分自身が実感したので、まだ経験の浅い若い人を育てるのにレビューが役に立つと思い全員でレビューすることをチームに提案しました。

具体的には、月次のチームの振り返りでレビューが特定の人に偏り負荷が掛かってしまい、プロジェクト進捗のボトルネックになっているなどを理由に私が課題にあげて、全員で分担してレビューすることを提案しました。

その提案はレビューしてない人からみると初めはうるさい人だと思われてたと思います。最初からルールにはせずにまずは全員でレビューにトライしてみて、次の振り返りでそれぞれレビューしてみての感想や改善したい点を確認し、ブラッシュアップを繰り返すことでチームに定着させていきました。それからはこれまでレビューをしていなかった方も含めて全員がレビューするようになりました。その時に作った全員がお互いのレビューする文化は今でも残っていて、まだ経験の浅い若い人もレビューすることで優秀な人の知見を学ぶ機会になっているので若手の成長にも寄与出来ているのかなと感じます。

プロジェクトを「自分たちの場所」に変換していく

ー リーダーとしてプロジェクトを成功させるためにY.K氏が工夫したことは何ですか?

やはりコミュニケーションを一番大事にしています。複数ベンダーから集められたエンジニアで組織されるチームは、工夫無く取り組むと上手くいく確率が低いです。どうしても企業それぞれの考えや取り組み、各会社からの指示などのしがらみが出てくるので、それらがプロジェクトの成功に繋がるのかを日々考え行動しています。プロジェクトを成功させるためにビジネスライクなコミュニケーションではなくて、会社という壁を取っ払い、分け隔てなくその人の人となりを理解できるコミュニケーションを取って人間関係構築を含め連携を強めるようにしています。

この思考になったきっかけは、前職で参画してきた開発の現場で、プロジェクトが終わると、みんな戦争から帰ってきたような疲弊感しか残っていない様子を見たからです。その時のリーダーのコミュニケーションの取り方が、相手を問い詰める話し方をしていました。開発スケジュールで遅延が発生した時にチームでどう対応していくか改善方法を話しあうのではなく、遅延の原因を作ってしまったメンバーを責めて攻めていたので雰囲気は最悪でした。会議になると参加しなくなるような人もいました。そのプロジェクトを経験してからはそんなプロジェクトに参画するのは絶対嫌だし、他のエンジニアにもそういう雰囲気のプロジェクトには参画させたくないと思いました。

ー 具体的にはどのようにコミュニケーションの工夫がなされていたのですか?

雑談から人間関係を構築しています。プロジェクトに関わっている他社エンジニアと毎日必ず雑談していると、その中で趣味の話やこれからやりたい事の話も出てくるので、それぞれの業務の好き嫌いや、キャリアを積むためにやりたいことなど、そういったことまで把握してプロジェクトのタスクのアサインをしています。

 他のベンダー企業のエンジニアだとしても、プロジェクトを通して自分の成長できる場にして欲しいと思っています。仕事のモチベーションをゼロから作ってあげるのは難しいので、自分の中に本来あるべきモチベーションを引き出してそこに合わせる形で仕事を振っていこうと考えています。

たとえば 可視化の資料として、プロジェクトが始まったときにメンバーにスキルマップを使って、今Javaがどのぐらいできてるかなどを自己申告制で5段階で出してもらって、プロジェクトが終わったときに同じ評価基準でもう1回5段階で書き直してもらいます。数字が増えたところで成長がわかるようにしてあげて、これだけこのプロジェクトで成長してますね。でもここはこれから改善できますねといった振り返りをしたいと思っています。今後リーダーやっていきたいですって人もいるので、そういう人には私のタスクを渡してお任せすることもやっていきたいなと考えています。

このような取り組みを通じて、チームのメンバーとはプロジェクト終了後の打ち上げで喜び合えるような関係性を築きたいなと思っています。

画像に alt 属性が指定されていません。ファイル名: ist-engineer-naiseideveropment_3.png

課題発見から解決まで行うことではじめて、お客様の企業成長に寄与できる

ー 結果、お客様へどんな価値を提供できたと思いますか?

属人化を防ぎ、エンジニアが育つ環境をつくったことで、中長期的に体制・戦力を維持できるチームになってきていると思います。

情報戦略テクノロジーのように「パートナーとして活躍してくれる外部」を活用する最大の意義は「サービスの課題感を見つけてくれること」にあると思っています。どうしても一つの会社にいると、その事業としての売り上げや様々な視点が入ってきたり、ナレッジもその会社内に閉じられたりといったことがあると思います。そこに外部のパートナー企業が関わることによって、外部から見たときの課題や意見を得ることができます。また、共に悩み伴走してくれることで、都度発生する問題を乗り越えていく事も出来ます。パートナーとして活躍できる外部を見つけることが、プロジェクトの成否を大きく左右すると感じています。

-インタビュー, システム内製開発, チームビルディング, マネージメント
-, ,