キャリアアドバイザーが担う顧客管理を、より効率的で充実したものにするためにリリースされた社内顧客管理システム、“CANDy(キャンディ)”。前回の取材では、プロジェクトを主導した二人に背景や成功の要因をお話しいただき、一つのポイントとして「内製開発エンジニアの活躍」が浮かび上がりました。
そこで今回は、開発チームの宮澤と江森、石井、久保木の4名にインタビュー。内製エンジニアとしての取り組みと思いにフォーカスしながら、開発の裏側に迫ります。
※撮影時のみ、マスクを外しています。
柔軟に“最適解”を探るために内製開発チームが始動
――まずは今回のプロジェクトにおける皆さんの役割から教えてください。
宮澤:私と江森さんは社内基幹システムの継続開発を担うチームからのジョインで、私がプロジェクトリーダーを担当。江森さんは主にフロント側のメインアーキテクトを担当してくださっています。
石井:私は普段システムチームとしてシステムアーキテクチャの改善などを行っており、今回はソリューション検討や社外連携の部分を担当しました。同じくシステムチームの久保木さんは、CI/CDやAPM監視などを担当してくださっています。
――プロジェクトが生まれてから、皆さんはどのような経緯で参画されたのでしょうか。
石井:今回のPMである古野さんには、以前から新規構築する際や、システム間連携が必要な場合はお声がけくださいと話していたこともあり、プロジェクトに参画することになりました。「キャリアアドバイザーの業務課題を解決するための企画で、システム周りを手伝って欲しい」とのお話で、企画書の作成に向けて要件を聞き、構成を検討するところから携わっています。
江森:その後企画が承認され「誰が作るか」を検討する段階で、宮澤さん経由で私にお話がありました。外部のベンダーさんへの依頼も検討されていたようなのですが、「キャリアアドバイザーの方々がExcelやメモ帳を使って行っている業務をシステム化したい」というふわっとした要件からスタートしているため、どうしてもベンダーさんからも具体的なご提案をいただくのが難しかったんですよね。そこで宮澤さんと「密にコミュニケーションをとって要件を詰めながら、柔軟かつスピーディに開発を進めるためにも、内製開発チームが入ったほうがいいだろう」とお話しし、最終的に私たちが加わることが決まりました。
久保木:私は実際にプロジェクトが立ち上がった後にお話をいただいて、参加しています。
――このお話を受けた当初の、率直な印象を教えてください。
江森:新しいものを作ることが個人的に好きですし、内製開発チームとしては継続開発が中心で、フルスクラッチで新たにシステムを作った例はこれまでにないということだったので、腕の見せどころかなという印象でした。
宮澤:顧客管理については、いろいろな人が挑みながらもなかなか現場に定着させられずにいた、という背景を知っていたので、よいシステムができたとしても定着まで至れるのだろうかと不安もありながら。ただ、同時にやってやろうという気持ちもありましたね。
久保木:プロジェクトの規模感やリリーススケジュールを把握した上で、要件自体はなかなか難しいなという感覚でしたが、江森さん達が楽しそうにやっていたので個人的には大丈夫だろうと思っていました。
江森:要件が明確でない、方向性が定まっていないというのは難しさでもあり、責任も伴いますが、そこから鮮明になっていく過程を楽しめるものでもあると思っていて。開発チームに同じような感性を持った人が多かったので、楽しくできていたのかなと思います。
未来のことを考え、システムの課題改善や古い仕組みの刷新にも着手
――今回フロント周りでAngularを使われたとのことですが、どのような背景で選定されたのでしょうか。
江森:もともと社内基幹システム「ARCS」ではAngularとjQueryを使っていたのですが、いくつか課題がありました。また、初めに顧客管理の機能をそのまま埋め込めないかとやってみたのですが、やはりよいものができなかったんですよね。
そこからフレームワークを検討する中で「学習コストを考えると、もともとARCSで使われているAngularを採用するのがよいだろう」という判断から、最新のIgnite UI for Angularに着目しました。試しに使ってみたところ現場で使われているExcelに近いモックを作ることができ、プロダクトオーナーやPMからも問題ないと言っていただけたというのが、選定までの流れですね。
作製したモックをベースに、定例会議で「こんな機能をつけたい」と意見を出し合い、次週の定例までにモックに実装してまたフィードバックをもらう、というやりとりを2ヶ月くらいひたすら行ってから、本開発に入っていきました。
――新しいシステムを加えることでARCSや周辺のAPIに負荷がかかってしまうなど、さまざまな懸念や課題があったのではと推測していますが、この辺りの影響はどのように考えて進められたのでしょうか。
石井:新しいものが生まれた影響で元のものが壊れることを防ぐために、「ARCSから別のシステムとして外に切り出しながらも、 共通化によって使用感や保守運用の仕事は“一体”であるかのように見える」というゴールを目指して、これまでアーキテクチャやシステムの改善をしてきていたんですよね。なので今回の取り組みによってARCSの状態が悪化することはなく、むしろよくなっていて、これまでの改善の成果が現れたなと感じています。
またシステムは作って終わりではなく3年、5年と使われるものなので、先のことまで考えてこの機会に周辺課題の改善にも着手しています。
――基幹システムの内部を熟知した内製開発の皆さんだからこそできる改善ですね。他に、開発を進めるにあたって気をつけられたポイントなどがあれば教えてください。
江森:私が1年前にARCSのコードを初めて見た時には、あまりの規模にどこから改善してよいか分からない、手を加えたらどこに影響が出てしまうのか見極めづらい状態だったので、これから新しく関わる方が同じように困ってしまわないように。このAPIを使っているのはCANDyだけだと一目でわかる、綺麗な作りに裏側を変えることは意識しました。
久保木:アーキテクチャの部分では、ARCSの昔ながらの作りを刷新しました。今後また新たなシステムが入る時に、柔軟に対応できる仕組みをこの機会に作っておきたいという思いでしたね。
成功の鍵は、事業側と同じゴールを見て適切なコミュニケーションが取れたこと
――今回のプロジェクトを振り返って、成功の要因はどこにあったと思われますか?それぞれのお立場から教えてください。
久保木:コミュニケーション面が一番大きなポイントだと思っています。同じ社内の人間という事でコミュニケーションのハードルが低いのはもちろんですが、皆が「よりよいものを作ろう」と同じ思いを持ってお互いを必要としていたからこそ、レスポンスが早かったことも重要なファクターだったのではと思いますね。
またこれまでシステムチームでテストの自動化やデータベースの準備、CI/CDの改善などさまざまな取り組みを行ってきたことの成果が、今回しっかりと発揮されたかなという印象です。
石井:今回は予算感や規模感などが決まる前、企画の構想段階から相談をもらえたことが大きかったと思います。案件始動のタイミングから支援に入る場合と比べて、「理想的な作り方を提案し、予算や要望に合わせて最適なものを目指す」ことができ、結果よりよいものを作ることができたと思います。
内藤さんや古野さんは、ポリシーに関わる部分はしっかりと握りながらも、品質や作り方に関してはエンジニアに任せるというスタンスでいてくださるので、相性がよかったのもあるかなと思います。
江森:プログラムを作る側としてのポイントは、「無理をしない、頑張りすぎない」ことです。要望をいただいた時に、簡単な関数やパラメータ調整でできるものは対応するけれど、それ以外のものは難しいと正直に言う。ここで無理をしてなんとか応えてしまうと、後から自分や他の方が見た時によくわからない仕組みになってしまい、保守性や拡張性が損なわれてしまいます。
今回は「これを行うと拡張性が下がるので内製開発としては避けたい。どうしてもキャリアアドバイザーの方の業務が回らないようであればやるけれど、できれば運用で回避する方法を考えてもらえないか」とオブラートに包まず正直に伝えたことで、よいところに着地できたと思います。
宮澤:とにかく機能を詰め込めばよいのではなく、使ってもらう人のことを見て「無理なものづくり」をせずに進められたことがよかったです。キャリアアドバイザーの方々の業務課題を解決できるのであれば、機能を減らし予算を下げて作った方が、会社のためになる。なので今回は当初の予定から仕様を変え、予算よりも稼働を減らしてプロジェクトを終えているんです。事業側とエンジニアとで同じ目標を見ていることの強さを感じましたね。
――ありがとうございます。それでは最後に、皆さんが今後チャレンジしたいことをお聞かせください。
久保木:このプロジェクトで得たナレッジを他にも適用し、もし内製開発チームで一つのプロジェクトを持つ機会がまたあれば、今回の経験をふまえて推進していけたらいいなと思います。
石井:まずは既存の環境をフル活用して、今回のように新規案件が出てきた時に正しく綺麗に接合できる状態を、引き続き目指していきたいと思っています。
またマイクロサービス化や自動化、クラウドリフトなどを進める中で、内製開発チームの方々と一緒に先を見据えて「来年これを進めるために、ここはこの形にしよう」と言い合いながらプロジェクトを動かせるととても心強いので、今後も関係性を維持しながら連携していきたいです。
江森:今回CANDyを作って、リリース直後にキャリアアドバイザーの方々から率直な意見と「ありがとう」の声をたくさんいただきました。今後は、機能に対する要望など使ってくださる方の声に、できる限り応えていきたいと思っています。
宮澤:これまでの開発では「ドキュメントを書いて設計し、その通りになっているかをチェックする」という手順を踏んでいましたが、今回はほとんどそれを行わずに進めました。自分たちで読むための文書を頑張って書いても仕方がないですし、それよりも開発の流れや作り方自体を変えていく必要があると思うんですよね。なので今後も、誰のため・なんのためか分からない文書を頑張って書くのはもうやめて、プロセスやゴールに目を向けていきたいと思います。
――素敵なお話をありがとうございました!
(取材=伊藤秋廣(エーアイプロダクション)/文=永田遥奈/撮影=服部健太郎)
石井 孝典 Kosuke Ishii
エンジニアリング統括部 エンタープライズ開発部 アーキテクチャグループ リードエンジニア
2017年中途入社。 新卒で独立系SIerに入社。宇宙開発/自動車R&D/製薬・製造/金融/物流など業種を問わず様々なシステム開発プロジェクトに従事。 プログラマからSE/プロジェクトマネージャーを経て、事業目線で業務システムの未来像を描き推進できる環境を求めてインテリジェンス(現パーソルキャリア)に入社。 基幹業務システムの刷新にシステムアーキテクトとして参画。現在は同システムの改善や、周辺システム連携のアーキテクチャ構築を担当。
久保木 翔一 Shoichi Kuboki
エンジニアリング統括部 エンタープライズ開発部 アーキテクチャグループ リードエンジニア
2020年中途入社。新卒で独立系SIerに入社後、主に金融係の行内システム開発プロジェクトに従事。開発を請け負う立場から、事業側からの立場で自社サービスを開発するエンジニアになりたいと考え、パーソルキャリアへ転職。業務基幹システムの内製開発チームとして参画し、システムの改善や運用のための仕組みづくりを主に担当。
宮澤 武志 Takeshi Miyazawa
エンジニアリング統括部 エンタープライズ開発部 エージェントシステム開発グループ リードエンジニア
2020年中途入社。新卒で総合家電メーカーに入社。調剤薬局向けのパッケージソフト開発に従事。事業会社としてソフトウェア開発を外に発注するのではなく、自分たちで開発を行うスタイルに共感し、パーソルキャリアへ転職。使う人がちょっと幸せになれるシステムを目指し、開発チームをまとめながらアプリケーションの設計、実装を担当する。
江森 宣之 Noriyuki Emori
エンジニアリング統括部 エンタープライズ開発部 エージェントシステム開発グループ リードエンジニア
2020年中途入社。新卒で独立系ITベンダーに入社。主に組み込み分野やクラサバの制御システムに従事。数回の転職を経てWeb系の開発へキャリアチェンジする。エンドユーザーの反応をダイレクトにキャッチアップできる環境に惹かれてパーソルキャリアへ転職。「楽しく開発する」をモットーに業務基幹システムの内製開発チームでアプリケーションの設計、実装を担当する。
※2021年12月現在の情報です。