課題解決へのアプローチ:リリース最適化
リリース最適化の話題に移る前に、「COMPANY」のクラウドサービス化の経緯を振り返っておこう。クラウドでのサービス提供を迅速かつ確実に開始するため、必要な改修は実施しつつ、プロダクト構成、モジュール構成、デプロイ方式は維持する一方、ビルドやリリースのパイプラインなど再構築が必要な部分は統合して中央集権で構築した。
長い歴史のなかで培ってきたビジネス資産を活かしてクラウド化への第一歩を進めるには「妥当な判断だったと思う。しかし今後も価値提供を続けるには、小さく早いリリースを実現するために分割するといった改善が必要」と髙橋氏は話す。
繰り返しになるが、現状では主要な全プロダクトを一斉にリリースするので頻度は低く、デプロイに時間がかかってしまう。顧客とスケジュールを調整する必要があり、一定のダウンタイムも生じてしまう。そのため小さく、早くリリースできるようにリリース最適化を進めている。
マイクロサービス化として先行したのが法定帳票出力機能だ。社会保険の手続きに関する法改正対応の一環で、法定帳票の出力をマイクロサービス化して「COMPANY」と接続することで、新しい様式に速やかに追従することが可能となった。
それだけで終わらせないようにするために、各プロダクトの開発部門にCI/CD・開発環境改善の専任チームを立ち上げた。これで全体の開発環境改善と生産性向上の施策実行を、複数チームが連携して推進する土台ができ、プロダクト固有の課題解決も含めて生産性向上のための施策が動き始めた。
そしていよいよリリースシステムの分割である。ビルドやリリースのパイプライン分割や、作業手順やプロセス整備を通じて、プロダクトごとのリリース(Hotfix)を順次開始している。現段階では一部のプロダクトのアプリケーション本体が対象になる。
今後は会社で規定する品質担保の基準を満たせば、組織体力に応じて無理のない形でプロセスを整備・運用できる。プロセスの軽量化とリリース承認の権限をプロダクトオーナーに委譲したことで、リリース承認から提供開始のリードタイムが最大で1/3程度に短縮できている。今後はHotfixの範囲を拡大し、ダウンタイムの縮小、ひいては撤廃に向けて進めて行く。
こうした取り組みを進めていく上でのポイントとして、1点目は「理想を追求するあまり作りこみすぎない」。ここは価値観のシフトが必要なところだ。アジリティの高いサービスを提供するための完ぺきな仕組みを追い求めるよりもインフラ面も含めて小さな改善を早く提供すること、そのためには「デプロイ頻度は高いほうがいい」というアジリティを広く共有できるようになるほうがいい。
続いて2点目は「内外の関係者との会話を怠らない」。スピード感を持ち施策を進められるのは信頼あってのことだ。人事のように重要なシステムの変更となると、顧客が不安を感じるのも無理はない。ここは顧客に寄り添い、賛同してもらえるようにコミュニケーションを怠らないことが重要になる。
さらに3点目は「巨大なシステムでも、小さくまとまった部分なら生成AIを活用しやすい」。巨大なモノリシックなコードを解きほぐすのに現状の生成AIではまだ難しいかもしれないが、小さい範囲なら扱える。CI/CDはその好例で、例えば担当者の退職などで知識が失われたジョブでも、コード化されていれば仕様を調査することができる。コードや開発環境が失われた内製ツール(ビルドに組み込まれているもの)があっても同様だ。デコンパイルして、Copilotに仕様調査を依頼して、リライトしてCI/CDに組み込み直すこともできる。
最後に植野氏は「技術的負債解消と開発者体験向上で価値提供を加速させていこうということで、モダナイゼーションやCI/CDに取り組んでいます。皆さまのお仕事の課題に、私たちの取り組みがひとつでも参考になれば幸いです」と述べた。

