開発技術、マインドの両面でレガシーからの脱却を目指す
続く2つめのセッションには、株式会社両備システムズの秦考洋氏が登壇。「レガシー技術スタックのチームがモダンなWebアプリ開発をした話」と銘打たれた講演を行った。両備システムズは岡山市に本社を置くSIer。地方自治体をはじめとする公共分野、医療分野および民間企業向けのSIサービスを主な事業としている。
また、同社は地方自治体向け健康管理システム「健康かるて」というパッケージ製品を提供していることで知られる。「健康かるては、オンプレミスまたは閉域網の環境で動作するWebシステムで、全国の自治体の約40%に当たる約680団体でご利用いただいています」と秦氏は紹介する。
このシステムでは、開発フレームワークとしてASP.NET Web Forms(.NET Framework 4.x系)を採用。プログラミング言語には、Visual Basicを利用している。また、フロントエンド系のJavaScriptライブラリには、jQueryを採用。Internet Explorerのサポートを念頭に1.x系を継続利用している。
「さらにCSSについては、600以上ある画面のUIに関する統一性を担保するために、独自のフレームワークのようなものを作成して運用していますが、メンテナンスに非常にコストがかかる状態となっています」と秦氏は言う。
そのほか、グレープシティのグリッドコントロールである「SPREADF for ASP.NET 7.0J」、および帳票ソリューション「Active Reports for .NET 7.0」なども活用しているという。
以上のような道具立てて開発・保守されている健康かるて自体、ターゲットブラウザがInternet Explorerに限定されており、しかも後方互換モードという古いモードで動作しているなど、システムとしてはレガシーなものだったわけだが、それを担当していた両備システムズの開発チームでは、先年、クラウドから提供するBtoGtoCのコンシューマ向けWebアプリケーションを開発する運びとなった。
「それに際しては、いまや『スマホファースト』といわれる時代でもあり、モバイルアプリのようなUX(User eXperience)の実現が望ましく、また将来的なアプリ化も見据えるかたちで、フロントエンドとバックエンドを分けたいとの考えからSPA(Single Page Application)のフレームワークの採用を検討しました」と秦氏は語る。
具体的な候補としては、AngularやReact、Vue.jsといったところが上がったという。普及の状況や学習のしやすさなど、さまざまな観点から検討を重ね、最終的にVue.jsを採用することにした。このときバージョンについては、リリース直後であることのリスクを回避するため、最新の3.xを敢えて避け、2.xを選択した。
また、CSSフレームワークについては、当時人気の高かったBlumaを採用。これについて秦氏は「人気の高さという点では、Bootstrapという選択も当然あったわけですが、その頃はjQuery依存であり、せっかくならばJavaScriptに依存しないフレームワークを選択しようということで、コンポーネントの豊富さ、あるいは多様なUIを簡便に実装できるという点なども評価してBlumaを導入することに決めました」と秦氏は振り返る。
続いてバックエンドだが、開発フレームワークと言語については、チームの既存のスキルセットが.NETが中心だったということもあり、また一方では今後Windows以外のプラットフォームにもチャレンジしていく可能性も睨みながら.NET CoreとC#の採用を決めた。またORマッパー(ORM)に関しては、Entity Framework Coreを選定。これについて今回の開発では既存のデータベースを利用することになっており、スキャフォールディングで対応することにした。
以上のような各フレームワークを採用して進められた、両備システムズにおける新システムの開発だったが、特にバックエンドについては、C#の活用で他のモダン言語と同様の仕様に基づく開発スタイルが取れたことを高く評価。「.NET Coreには、これまで利用していたフレームワークとの互換性もあり、スキルの移行なども容易でした。
何よりも、Windowsプラットフォーム以外の選択肢も広がり、実際、開発環境自体もLinux上へと置き換えを進めています。さらに、Azure FunctionsやAWS Lambdaなどのサーバーレス環境やコンテナについてのサポートもあり、クラウド環境での強みを持っている点にも大きな安心感があります」と秦氏は強調する。
なお、今回のプロジェクトを通じてチームでは、単に技術面でのモダナイズにとどまらず、メンバー個々のマインド醸成に関する取り組みも実践してきている。例えば、技術情報を収集発信する文化を根付かせるため、チーム内でのLT(Lightning Talks)なども定期的に催した。「情報発信にかかわる心理的ハードルを下げるために、話題は技術情報に限らず受け入れるといった工夫なども行っています」と秦氏は紹介する。あわせて、トライ&エラーを受け入れる文化の醸成にも努めており、これについては新しい取り組みに対するハードルを下げながら、用意周到な準備なくトライしていけるような雰囲気作りを進めたという。
「当初は、マネージャである私が開発ツール等の選定も行っていましたが、現在ではチームメンバーからの提案なども多く寄せられるようになってきており、一連の取り組みの成果も確実に現れてきています」と秦氏は大いに手応えを感じているところだ。