2025年6月12日木曜日

デジタル庁クラウドチームはセールススローガンだけを並べるのを止めるべき

このエントリーをはてなブックマークに追加
Pocket

デジタル庁テックブログの「ガバメントクラウドにおけるモダン化の意味と定義」が、SNSで強い反発を受けている*1

その理由はおそらく二つだ。一つは、踏み込みすぎな感のある要素技術の布教になっている*2。一つは、紹介しているモダンな技術の利点を十分に説明できていない。モダンな技術の長所・短所を理解できているのか、どうも疑わしく感じる。

1. モダンな技術が有益かは想定次第

テックブログはモダンな技術の利点をこう主張する。開発速度が向上する、障害対応が容易になる、最新データでサービスを提供できるのでユーザー体験(UX)が向上する、コストの最適化ができる、構築の自動化が容易になるなどなど。しかし、実際にシステム構築をした経験があれば同意し難いことが多い。

技術には特性があるので、その強みが出る状況と出ない状況がある。想定される状況に対して、モダンな技術がどう役立つかを説明しないと説得力がでない。しかし説明しないので、政府や地方自治体の旧来の需要から考えて、モダンな技術の利点がいかせないのではないかと疑われている。

2. APIベースのシステム開発による開発速度向上論の問題

例えばAPIベースのシステム構成による開発速度が向上が望めるかを考えてみよう。API連携を非同期処理と言っているので、SPA/Web API(i.e. RESTful API⇔ブラウザーのJavaScript)、具体的にはReact/Next.jsかVue.js/Nuxt.jsかAngularによる開発を念頭においている。一画面に全ての機能を詰め込み、JavaScriptで画面を書き換えていくアーキテクチャーだ。

旧来型のシステム構成と比較して、工数が減る気がまったくしない。テックブログでは、フロントエンドとバックエンドを分けることで開発やデプロイを独立して実施できると主張しているが、Next.jsやNuxt.jsでは両者を一体として開発するのが基本だ。また、旧来型システムでも、MVCフレームワークを使ってプレゼンテーションとビジネスロジックは原則として分離されており、フロントエンドの変更はバックエンドにほとんど及ばない。むしろフロントエンドの結合性を考えると、モダンなReactやVue.jsを使った一画面アプリの方が密結合である。旧来型システムの複数画面構成であれば、画面が変わればコードも分離されるので、変更に対して影響を受ける範囲は狭い。さらにRESTful APIはステートレスなので、認証まわりも(一度書いたら使いまわせるが)煩雑になる。

モダンな技術の履歴を見れば、予想外に工数が増えそうな現実もある。React/Next.jsとVue.js/Nuxt.jsの互換性を省みないバージョンアップを思い出そう。Angularの没落を考えると、フレームワークごと差し替えないといけない事も十分に起きうる。まずミドルウェアのバージョンアップにあわせた改修からはじめないといけないとすると、追加開発速度は遅くなる。撞着語法になるが、長期利用するシステムでは予想外の工数が発生することが予想されるのだ。もちろんJavaScriptでベタベタ書くという手もあるが、生産性と可読性が落ちる。

RESTful APIをシステムの中心に据えて開発効率があがる場合もある。スマホアプリの場合は旧来型ウェブアプリのようなつくりにはできず、APIの提供が要る。ウェブからスマートフォンやタブレット端末への横展開を考えると、フロントエンド部分を追加すれば済む。他の事業体との協業も、APIの提供だけで済む。横展開を考えると、APIベースのシステム構成による開発速度の向上もあり得る話だ。民間事例でもよいのでRESTful APIを活かした横展開の紹介をすれば、もっと説得力がある主張となった。

2. テックブログで想定を説明するのは難しくない

今回話題になったデジタル庁クラウドチームの説明は、こういう想定を置かずに、ただ開発速度の向上を謳っている。想定なく利点だけを謳うのは、セールススローガンに過ぎない。何も考えず、自分が好きな技術を喧伝しているだけのように思えてくる。分量の書けるテックブログで想定を説明するのは難しくはない。実際に、以前のブログでは詳しい想定事例を挙げていたものもある*3。それはスケーラビリティを重視しすぎで、役所の需要に応えていない疑惑があったが*4、少なくともどういう課題に対して有効な技術だと考えているかは分かるものであった。

0 コメント:

コメントを投稿