
都民1400万人が使うプロダクトを内製するという責任
──行政サービスとして、永続的な開発や運用をしていくために工夫していることはありますか?
松尾:私たちの任期は基本的に5年なので、技術選定をする際は「5年先に責任を持てるか」という視点を大事にしています。ですから、ニッチすぎるものは選びません。現在のプロジェクトメンバーが「すごく面白い」「生産性が高い」と判断しても、5年後のメンバーがそう思えなければ技術負債になる可能性もあります。
また、ドキュメンテーションが大事だという共通認識があり、決定事項はなるべくドキュメントに残そうとしています。GovTech東京は情報管理にNotionを使っているのですが、データベースとして決定事項をまとめています。
友成:「誰々さんに聞けば分かる」というのは避けたいですよね。これではモダンじゃないと思うんですよ。知りたいと思った人が見られるように共有されていることが大事で、それがオンラインになった世界のメリットですから。例えば、新しい人がジョインした時「読めば分かる」状態にしておくこと、属人化が排除されていることが大事です。
三上:負債を残さないという意味ですと、無理な仕様には「ノー」と言うことも大事です。技術を魔法の道具のように「なんとかなるでしょ」と過信するのではなく、無理があるなら「これはやめたほうがいい」と言える関係性も重要です。
友成:内製開発だと特にそうですね。何か不具合が起きて、長期的にベンダーなど外部のサポートに多大なコストをかけてしまうことがないように、リスクや負債を抱えないような判断をしておくことが後々のためにも大事です。
──属人的にならず、技術的負債をプロアクティブに解消するような技術選定をしているのですね。行政と民間とで、開発するうえでの違いはどんなところにあると捉えていますか?
友成:民間とは、そもそもサービスの思想が違いますよね。行政は広くあまねく対応することを考えたうえで、データの取り扱い、セキュリティ、可用性、UXなども考慮する必要があるので、総合格闘技のようなものです。民間だとどこかにフォーカスすることもできますが、行政だと、例えばハンディキャップをお持ちの方や日本語を母国語としていない方はどうするか、音声入力はできるのかなどアクセシビリティも考慮していかなくてはなりません。
松尾:ユーザー層の広さと多様性はやはり違いますよね。民間だと、尖ったアプリで1000万人に嫌われても、100万人に受ければミリオンヒットとなりますが、行政だと成功の考え方も違います。
また、民間は限られたユーザーに合わせてプロダクト、サービスの開発・改良をしますが、行政はオールターゲット。例え一部の人にしか感じない不具合であっても、対応する責任があります。その前提を守った上でどんな開発がベストなのか、現在進行形で模索しているところです。
三上:迷ったときの意思決定も違いますね。GovTech東京だけで決めることではなく、自治体や利用者など多くのステークホルダーと共に、いかに最善の選択をしていくかが重要です。
技術選定でいえば、例えばバックエンドでRustを使うか判断する場合、性能面で候補には上がると思います。しかし現状でRustをきっちり使える人は少ないですし、チャレンジングになってしまうので、そこの部分はリスクを取らないという判断になると思います。民間なら採用していたかもしれませんが、そうしたところは違うと思います。