社員インタビューvol.2では、開発部のリーダーで執行役員を務めるTより、現在取り組んでいる大規模リファクタリングについてインタビュー!エンジニアのキャリアを考える上でも重要な経験といわれる理由を深堀してみました。
PIP-Makerの大規模なリファクタリングをスタートされたとのことで、執行役員で、プロジェクトの責任者兼エンジニアでもあるTさんにお話しを伺います。今回は2回目のリファクタリングとのことですが、そもそも1回目はどのような感じだったのでしょうか?
1回目のリファクタリングは8年前に行いました。そもそもリリース当初のPIP-MakerはAdobe Flashで構築されており、データベースもログの記録にしか使われていないような環境で運用をしていたんです。そんな中、Adobe Flashのサポート終了に伴い、技術移管をしなければいけない状況になり、1回目のリファクタリングを実施することに。
もともと前職からホームページ制作や社内SE、パッケージ開発といったWEB系の多岐にわたる経験を積んでいたこともあり、プロジェクトを任されました。ただ、その時はまだ人員に余裕もない状況で数名でプロジェクトを進めることになりました。
リファクタリングを数名で?それは大変でしたね(笑)。
そうですね、本当に大変でした(笑)。WEB系の知識自体はある程度あったのですが、PIP-Makerはマルチメディアを組み込んでいるため、メディアファイルを組み直す際は1から勉強して進めていきました。
HTML5やJavascriptへの移行はこれまでの経験をフル活用している実感を得ながら、UIも含め1年ほどでリファクタリングを実施しました。
1年で完了してしまうのですか。すごいですね。今回のリファクタリングは前回に比べて規模も大きくなるとのことですが、具体的にはどのような点が改善されるのでしょうか。
その時はまだ利用者規模もそんなに大きくなかったので何とかなりました。ただ、今回のリファクタリングは1回目とは違って利用者の増加が理由。規模が大きくなるにつれて、現在の技術のままだと不都合なことやエラーの対処が難しくなってきていて。
例えば、大企業の導入が増えてきた際、ユーザーからSSO(Single Sign On)の導入について相談を受けたのですが、これまでは原則1社1アカウントでシステムを構築していました。ただ、根本的な軸の違いから、1人に対して1アカウントを付与するなど、新たな機能追加ができなかったんです。
そうしたユーザーからの声に今後は応えていけるように、今回のリファクタリング実施を決断しました。今回は規模も大きく、業務委託の方を含めてエンジニアが8名以上の規模で、2年半かけて実行していく計画が進行中です。
今回はバックエンドもフロントエンドもTypeScriptを中心に再構築をしていくということですが、そのTypeScriptを選定した背景を聞かせてください。
理由は大きく分けて2つあります。1つ目は、将来的なメンテナンスコスト削減や今後も増え続けるユーザー、データ量に対して自動的に耐えうるシステムを構築するために、IaaSからPaaSへ移管するにあたりAzure環境を採用することになりました。そこからAzureとの技術的親和性の高いTypeScriptを選んだという流れです。
もう1つの理由は、バックエンドとフロントエンドが同じ言語を使うことで、お互いに助け合うことができるためです。当社はまだエンジニアの人数も多くないですから、バックエンドとフロントエンドで完全に分けるのでなく、互いにフォローし合うことで効率的に開発を進めています。
また、今在籍しているエンジニアがJavaScriptのスキルはあるため、その上位互換であるTypeScriptは学習コストを抑えらる点も大きかったです。長期的なエンジニア採用を考えた場合にも、モダンな環境の方が興味を持ってもらいやすいですしね。
リファクタリング実施後のユーザーのメリットとしては、どのようなものが挙げられますか?
処理速度が圧倒的に早くなったり、操作性が向上するので、ユーザーのストレスの軽減や業務の効率化につながります。PIP-Makerの課題が、近年増えている競合との差別化です。
いかに会社の利益につながる伝達資料であるかということを、技術者全員で考えないといけません。AIの台頭が著しい昨今、AIの組み合わせや拡張性をどのようにコラボレートしていくかについても検証を進めています。先見の明を持ちつつ新しいシステムを積極的に組み込んでいきたいですね。
なるほど。Tさんが思う、エンジニアがリファクタリングを経験するメリットって何だと思いますか?
リファクタリングは目の前の課題だけでなく、今後の機能追加や改修といった長期的な目線で考えることが重要です。プロジェクトの企画側の考え方が身につきますし、新しい技術へのチャレンジも同時に経験できるので、エンジニアにとってリファクタリングを経験するメリットは大きいですね。
また、自社サービスを持つ企業にとってリファクタリングはつきものなので、経験しておくことで面接の場での評価が上がりますし、キャリア形成の面からも重要な要素だと思います。
最後に、今後のビジョンについて教えてください。
今後は運用や保守、テストを極力自動化して、運用保守よりも機能追加や新規開発に集中できるような環境を整えていきたいと思い、その仕掛けを土台として作っています。
現状は運用や保守に時間を割かれてしまい、開発を止めている状態なので、そういったものを自動化し、開発環境を充実させるように、会社と共に進化していきたいです。