見出し画像

技術的負債を負債では終わらせない。OSS化による悪あがきと、目指したいエンジニア環境 / パーソルホールディングス

この記事は、イベント 【PERSOL(パーソル)グループ Tech Talk #3 - 技術負債との向き合い方 - 】を開催しました。 の発表内容です。

パーソルホールディングスの岩田と申します。パーソルホールディングスはパーソルグループのホールディングス会社で、各グループ会社に共通のIT基盤などを提供しています。
早速、発表の方に移らせていただきます。
「リファクタリングを繰り返してOSS化した話」というタイトルで発表をする予定だったんですが、ちょっとタイトルを最後で変えました。
「技術的負債を負債では終わらせない。OSS化による悪あがきと、目指したいエンジニア環境」ということで、本日は発表させていただきたいと思います。

改めて自己紹介をさせていただきます。岩田学と申します。パーソルホールディングス株式会社のエンゲージメントプロダクト開発部に所属をしております。

今画面に出しているのは、キャリアミルというサービスです。
私がパーソルに入ってから最初に開発したプロダクトの画面になります。
パーソルでは、グループ内の転職や副業を支援しています。グループ会社がかなりたくさんあるので、ちょっと今のところ違うんだよなっていう時、別のグループ会社に転職したり別のグループ会社の仕事を今の会社に居たまま業務時間内にちょっと経験することができる制度があります。その制度を活用するためのプラットホームにあたる「キャリアミル」というものを作りました。

アクセスはグループ内の社員の方に限られているので、このキャリアミルにアクセスしていただいても外部の方は入れません。もしご覧いただいている方の中でグループの社員の方がいたら、キャリアに迷った時キャリアミルにもアクセスしてみると、良い情報があるかもしれません。

本日の結論から先にお伝えします。
技術的負債の解決方法は色々あると思いますが、解決すること自体が普遍的な価値を持つ場合もあると思っています。
どういうことかというと、他のいろんな現場でも当然流用できるような価値があるだろう、パッケージ化できればさらに価値ある商品になるっていうことですね。
例としてはHashiCorpさんというTerraformで有名な会社があって、インフラの管理がすごく厳しいような負債があった時、このVagrantとかTerraformっていうパッケージを作ることで負債を解消し且つ商品を作ったんです。

アプリケーション開発で得られた具体的な負債や、失敗困難を次のアプリケーションの開発に生かせる解決策はライブラリだと思っていて。そうすることでその失敗や困難を経験したエンジニアを組織内に引き留めて無駄にしないと思っています。
僕自身はその価値を、パーソルや会社に示してほしいなと思って取り組んでいます。

そういう結論に至った経緯は、先程ご紹介したキャリアミルにあります。
キャリアミルは、GraphQLを採用しています。具体的には、Node.jsとTypeScriptです。
MikroORMというORマッパーとTypeGraphQLっていうGraphQL APIを実装するフレームワークという技術スタックでAPIを実装しました。

ただ、当たり前のところではまったり、失敗をしました。採用技術スタックに対して経験値がなかったっていうことと、新しいものが多かったのでベストプラクティスを調べても出てこないとかですね。ライブラリ自体に本来欲しい機能が足りなかったりで、それらの積み重ねで小粒な負債を色々と抱えるということがありました。

なので次のプロダクトとしてMyNoteっていうプロダクトを作ったんです。
ここでGraphQLにリベンジをしています。具体的にはNode.jsとTypeScriptは変わってないんですけど、ORMをPulumiと呼ばれるORMに変えました。

TypeGraphQLっていうGraphQLのAPI実装用のライブラリを自分達で書いたライブラリを使うようなことを試しました。このライブラリを書いた一番の理由は、技術調査をしてキャリアミルでの失敗を克服できるライブラリが見つからなかったということです。
このライブラリは、僕ともう一人、相馬さんという方と二人で書きました。し
かし、これを書いたことで間違った自信を持ちまして(笑)これは結構イケてるんじゃないかみたいな、過信を持ってしまったんです。

OSSとして公開して、それなりに何かの反響があることを期待して、その後2回ほど再設計や再実装を繰り返しました。それからPlanetGraphQLという結構無駄に格好いい名前でOSSとして公開をしました。

一緒に開発してくれた相馬さんという方は、エンジニア自体は未経験から入っていただいて、ポテンシャルを評価して付き合ってくれた方なんです。
すごく色々と無理をさせてごめんなさいっていうことを、この場を借りてちょっと謝っておきたいと思います。
最終的に結果についてですが、現状はSTARが40ぐらいついています。自分で設定した目標のSTARの数は500ぐらいだったんですけど、全然届いていないというところですね(笑)
やはり、そこに投資をして十分見返りがあるの?本当に大丈夫なの?みたいな予想はあったのですが、その予想通り失敗に今回は終わっているということですね。

ただこれ自体は楽しいというか、最初の結論で言ったように、価値があると思ってやっているので辞めないというところですね。
実際のプロダクトや、ユーザーが多いプロダクトなどを開発していると、「解決したい技術負債はいっぱいあるんだけど、当然全てに手を出せない」そんな状況になると思います。時間も限られていますしね。
さらにそれをパッケージ化するとなると、ドキュメント書いたり、細かいところを見つめ直したりみたいなところで結構時間がかかるんです。
それでもまだまだもうちょっと挑戦をしていきたいかなと思っています。

その理由の具体的な例としては、Kubermetesです。すごく高いイメージがあって、業務以外では関われないっていうような感じなんですけど。でも、GCPのスポットインスタンスとかで頑張ると月8ドルくらいから十分に運用可能なやつが作れたりします。

また最近、ReactのフレームワークのNext.jsとかがバージョン12になって、すごくリッチになっています。ここまではいらないみたいな感じになってきているので、それに静的なSPAに対して動的なOGPとかを付与するウェブサーバーとか、そういうものへ移行するなどと考えてたりします。

まとめになります。技術的負債は目に見える具体的なエンジニアリング上の課題です。
深刻なものであればあるほど、解決する価値があると思ってます。
そして、ある種のビジネスチャンスでもあると思っています。今まではこれまでちょっと示すことができてないんですけど、そこに目を向ける価値を示すことができれば、よりエンジニアがチャレンジできるパーソルていうものに繋がるんじゃないかなと思ってやっています。
この取り組みの魅力でまずは採用できればなというところなので、取り組みを続けていけたらなと思っています。

最後になるんですけど、自分が所属するこのエンゲージメントプロダクト開発部というのは、今日お話したエンジニアリングと同じぐらいいつもプロダクトについて考えていて、すごく面白い部です。
万が一興味が湧いた方は、TeamsとかSlackとかTwitterとか何でもいいので、カジュアルにDMをいただければなと思います。
ご清聴ありがとうございました。

イベント 【PERSOL(パーソル)グループ Tech Talk #3 - 技術負債との向き合い方 - 】を開催しました。 の発表より

– - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

岩田 学 / パーソルホールディングス
新卒からエンジニアとしてプロダクト開発に従事。フリーランスを経て、2020年パーソルホールディングスに入社。グループ内転職・副業支援プラットフォーム「CareerMill」の開発を推進。現在は新規プロダクト開発の効率化に寄与するライブラリ開発に従事。

パーソルホールディングス
パーソルホールディングスは、パーソルのグループ経営をリードする存在として、主に、CoE(ナレッジ蓄積・横展開機能)、ガバナンス(経営判断・監査機能)、シェアード(代行サービス機能)の3つの役割を担っています。
パーソルグループでは、「はたらいて、笑おう。」をグループビジョンに、人材派遣サービス「テンプスタッフ」、転職サービス「doda」、ITアウトソーシングや設計開発など、人と組織にかかわる多様な事業を展開しています。グループの経営理念・サステナビリティ方針に沿って事業活動を推進することで、持続可能な社会の実現とSDGsの達成に貢献していきます。

– - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

ミイダス Techについて

ミイダスでは、様々な技術イベントを開催しています。connpassやYouTubeチャンネルでミイダスグループのメンバーになった方には、最新の開催情報やアーカイブの公開情報が届きますのでぜひご登録をお願いいたします。

イベントページ:https://miidas-tech.connpass.com/
Twitter:https://twitter.com/miidas_tech

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