Developers Summit 2022聴講メモ

## はじめに
Developers Summit 2022の1日目の講演をいくつか聴講しましたので、備忘録として聴講メモを作成しました。Developers Summit 2022の詳細については、[こちらのページ](https://event.shoeisha.jp/devsumi/20220217)を参照してください。

## 17-A-1：デジタル庁CTOになってみた -今よりもよい10年後のために必要そうなこと-
講演者は、デジタル庁 藤本真樹さんです。講演の紹介ページは[こちら](https://event.shoeisha.jp/devsumi/20220217/session/3642/)です。

### 講演内容
* デジタル庁 CTOになって約6か月経過した。どこまで話して良いかの線引きがまだ分からないため、抽象的な話になる。
* デジタル庁への入庁を悩んだが、[デジタル庁設置法](https://elaws.e-gov.go.jp/document?lawid=503AC0000000036_20210901_503AC0000000039)の基礎となった[デジタル社会形成基本法](https://elaws.e-gov.go.jp/document?lawid=503AC0000000035_20210901_000000000000000)を読んで、入庁することを決めた。
* 公務員の場合、売り上げ目標の指標がない。そのため、ペン1本でもお金の使い方は厳しい。しかし、予算の使い道が明確になっていることでガバナンスを効かせている。
* 行政機関なので法律に従うことが重要である。プロジェクトのデッドラインは法律で決まっている。
* 顧客は税金を払っている皆さまだが、全ての人が納得する政策を提示することはできない。
* 全省庁、全地方自治体の公務員の全ての仕事を把握している人は誰もいない。だから理解可能な範囲でスコープを絞ることになるが、それでは全体最適化はできない。悩ましい。1つずつやっていくしかない。
* ドキュメントワークが多いが、行政機関として常に説明できる必要があるため仕方がない。ただ、コンピュータが読みやすい文書が増えても良いのではないかと思っている。
* 行政機関のソフトウェアは公文書であるか？
* 労働人口が減り続けているため、ソフトウェアを上手く活用しないと、現在の行政サービスのレベルを維持できない。
* CTOとしては政策にエンジニアリングの観点を正しく反映し、生産性を上げていきたい。また、減少する労働人口を上回るスピードで効率を上げ続けたい。
* デジタル庁の目指すところは、[重点計画](https://www.digital.go.jp/policies/priority-policy-program)に掲げているので、是非読んで欲しい。

### 所感
講演者は民間企業の方なので、柔らかい口調で話されていました。柔らかい口調の中で、我々の国をよりよい国にしていくにはどうすればいいかを考えている、ということを何度か口にされていたのが印象的でした。

## 17-B-2：史上最速 Visual Studio 2022 最新デモンストレーション
講演者は、マイクロソフト コーポレーション 井上章さんです。講演の紹介ページは[こちら](https://event.shoeisha.jp/devsumi/20220217/session/3652/)です。

### 講演内容
* Visual Studioは、今回のバージョンから64bit化された。
* Visual Studio 2019と比較して、起動が早くなる等、パフォーマンスが上がった。
* Hot Reload機能により、プロセスの再起動なしにコードの変更を反映、デバッグが可能になった。
* AIベースによるIntelliCodeにより、予測コードのサジェストが可能になった。
* Azure Container Appsのサポート。
* Visual Studio CodeのLiveShare機能で、Windows上のコードのデバッグをMac上でも出来るようになった。

### 所感
Visual Studioの新機能をデモを交えて説明してくれたので、非常に分かりやすいプレゼンでした。ただ、現在の業務では、Visual Studioの新機能を使えるのは先の話になりそうです。

## 17-A-4：今まで生き残ってきたRDBMSとこの先10年戦えるデータストア戦略
講演者は、合同会社Have Fun Tech 曽根壮大さんです。講演の紹介ページは[こちら](https://event.shoeisha.jp/devsumi/20220217/session/3645/)です。

### 講演内容

* データベースの寿命はアプリケーションより長い。10年続くデータベースは珍しくない。
* この10年で最も大きな変化はクラウドの台頭である。
  * フルマネージドサービスによるDevOpsの実現
  * AWS S3のような高可用性でElasticにスケールするオブジェクトストレージの台頭
  * 一定の規模までに対するインフラアーキテクチャのパターン化
  * クラウドベンダー独自技術によるNewSQLの到来
  * ビジネスのコアに抽出できるように変化 
* クラウドにより、ソフトウェアがより重要になり、ビジネスの変化が早くなった。データベースはサービスの中心にある。
* データモデリングとRDBMSは、この10年で生き残った技術である。
* インフラの進化でパフォーマンスがボトルネックだった設計も可能になった。
* クラウドの台頭により、データベースの利用者と開発者の境界線がより明確になった。
* パフォーマンスやデータ量ではなく、変化に強いことが重要になる。
* クラウドにあるデータベースは10年間運用される。
* 10年後のクラウドのデータベースはどうなるか。
  * 常にバージョンの追従が必要になる
  * データは基本的には追加なので増加していく
  * クラウドで解決できないパターンの時はどうするか
* 問題の本質は変わらなく、問題の解き方が変わっていく。
* データは常に増えていき、ビジネスは常に変化する。そのため、変化に強い設計が肝要となる。
* クラウドの覇権は続く。簡単には変更できないため、どのクラウドベンダーを選択するかが大事である。
* データモデリングの基本を守ることがビジネスの変化についていくための勘所である。

### 所感

データベースの設計がソフトウェアの品質にも大きく影響を与えていることを、日々の業務で実感していますので、話されている内容については納得できます。

## 17-E-5：24時間走り続けるタクシー車載器の安定稼働を目指したログ基盤の開発
講演者は、株式会社Mobility Technologies 松島由紘さん、佐々木孝介さんです。講演の紹介ページは[こちら](https://event.shoeisha.jp/devsumi/20220217/session/3682/)です。

### 講演内容

* タクシーの車載機のハードウェア/ソフトウェアを開発している。車載器には乗務員端末、決済機、メーター、後部座席タブレットがあり、これらをネットワークで繋げている。
* 電波の届かない地域、寒暖差の激しい地域では、車載器の状態を如何に監視するか、ログをどのように収集するべきかが重要である。
* 現場で使われる車載器は、社内の開発環境と異なり、過酷の環境でも使われ、正しく動いていないことに気づき難い。車載器を使用するタクシー会社によっても運用ルールが異なる。それゆえ、操作ログが重要になる。
* 日々発生する操作ログは膨大であるため、分析のためには、適切なログの取捨選択や可視化が重要となる。
* 短期的なログ分析にはAWS ElasticsearchとKibanaを使用し、長期的なログ分析にはGoogle BigQueryを使用している。
* 車の振動が劣化したケーブルに伝わり、ケーブルが切れた/繋がったが連続し、車載器が上手く稼働しなかったこともある。
* ログ量は膨大だが、通信量の効率化は行っていない。理由は広告のダウンロード量に比べると微々たる通信量であるため。
* 通信が途切れた時のログのロストはあまり重要視していない。車載器ローカルにログが保存されているので、必要な場合はログをアップロードすれば良い。
* 通信が切れても、他のサービスが使えることは重要である。例えば、決済機が使えなくなると、タクシー料金の決済が出来なくなる。

### 所感

今回聴講した中では、この講演が具体的な課題と対応が見えて、個人的には一番面白かったです。たくさんの地道な改善が行われていることが窺えます。

## 17-A-6：オーバーエンジニアリングって何！？ぶくぶく膨れ上がる仕様、使われない機能、過剰品質、、、突き詰めたら、その先に真のチームの姿があった。
講演者は、俺のプロダクト用語辞典 黒田樹さん、大島將義さんです。講演の紹介ページは[こちら](https://event.shoeisha.jp/devsumi/20220217/session/3647/)です。

### 講演内容

* 講演者は、YouTubeチャンネル「[俺のプロダクト用語辞典](https://www.youtube.com/channel/UCnUdhofhFN2RotPou4a55_w)」でユニットを組んでいるYouTuberとのこと。
* 2018年に2030年のIT人材需給ギャップのシミュレーションが行われた。その結果、約16～79万人のIT人材が不足する結果となった。79万が不足する場合、11人で19人分の作業を行わなければならない。
* 上記に加えて、人口減により労働人口が年々減っている。無駄なことをやっている場合ではない。
* [オーバーエンジニアリング](https://en.wikipedia.org/wiki/Overengineering)は、「本当に必要なものに対して、作り過ぎて、時間やお金を無駄にすること」である。
  * 「要求→要件→問題→要求→要件→問題→…」が繰り返されてしまい、やることが膨れ上がってしまう
  * 要求に手段が混じってしまい、それ以降の工程ではその手段が重要なものに見えてしまう（要求を出した本人はその手段に拘りが無い場合においても）
* 本来は大事じゃないものを大事だと錯覚した結果、作りすぎて（やりすぎて）、時間や金を無駄にしてしまう。
* オーバーエンジニアリングを避けるには、大事か大事でないかを明らかにすることが必要。

### 所感

発表者の方も説明されていましたが、ブランコの図で有名な「顧客が本当に必要だったもの（"A Tree Swing Story"）」を人間模様にフォーカスした内容でした。YouTubeチャンネルを運営していることもあり、声もよく、説明が非常に分かりやすかったです。

## おわりに

本イベントで扱われる講演のテーマと、日々の業務で必要されるノウハウや技術はあまり重なっていませんが、どの講演も得られるものはありました。このようなイベントに参加し、定期的に刺激を受けることは重要だと思いました。