課題解決へのアプローチ:モダナイゼーション
「COMPANY」シリーズは幅広い機能を統合的に提供できる一方、巨大な1つのモジュールとして存在しているため、ビルドに時間がかかり、影響範囲が大きいのが難点だ。例えばアクセシビリティで改善を重ねたいとしても、本来使うべきHTMLタグではなくdivを装飾しているなど、UI以外のものがロジックとして混じっていて手を加えにくい。
こうした課題に対して、モジュール分割(フロントエンドの分離)、CIやCopilotの活用、アクセシビリティチェック、部署全体への啓発活動によって解決を図った。
まずはモジュール分割、つまりフロントエンドを分離することだ。現状ではJavaサーブレットで動いており、すべての業務機能が1つのリポジトリに格納されている。これらを最終的には1つのwar(Web Application Archive)としてコンパイルしている。そのため「画面に不具合があったから、フロントだけ修正したい」としても、フルビルドで1時間以上を要してしまう。さらに適用後も環境の再起動が必要になるなど、植野氏は「とにかく機動力が足りない」と言う。
フロントエンドだけを分離するとしても、元が巨大なので難しい。例えば雇用発令の入力業務部分など、特定の領域のフロントエンドを切り出すといった形のストラングラーパターンで分離を少しずつ進めている。
周辺で活用したいのがCIやCopilotだ。CI環境にLinterやFormatterを組み込むことで、ソースコードにスタイル違反などを検出し、コードを整形する。さらにCopilotになるとLinterで気づけない部分も指摘できるので有効だ。
アクセシビリティはJIS X 8341-3:2016のレベルA、国際的なガイドラインのWCAG 2.2のレベルAに準拠を目指しており、基本的にはaxe DevToolsでチェックしている。他にもコントラストなど機械的に検知が難しいものは、都度対応している。
モダナイゼーションはイネーブリングチームが啓発活動として進めているため、組織横断的に働きかけていく必要がある。まずは第一歩として、月次の部署ミーティングで取り組みを取り上げ「なぜ必要か」を説明するなどして、最終的には各部署で自発的に実施できることを目指している。
同時並行で進めているのが部署内インターンだ。他のチームから一時的にモダナイゼーションチームにインターンという形で加わり、GitHubのイシューなどの仕事を手伝ってもらう。今後それぞれのチームでモダナイゼーション活動の先駆者になってもらおうという考えだ。

