残念英語力のレガシーアプリ開発者がre:Inventを生きのこるために、そしてこの先生きのこるために

# はじめに
昨年12月、会社の公募枠という形でAWSのre:Inventに参加させてもらいました◎
私自身re:Inventに参加するべきど真ん中の人間ではないかもと思っていましたが、
とても心を動かされる体験ができたのでそれを伝えたいと思い記事を書いています。

特にre:Invent興味はあるけど英語力が……とか、インフラのこと詳しくないし……とか
躊躇している方にこういう参加の仕方もあるんだ、そしてこういうことを感じたんだ、ということが伝えられると良いなと思って書きました。

![IMG_5871.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/8c0b2058-1d3d-febe-0afc-471b4c221257.jpeg)

# 伝えたいこと
- **re:Invent楽しすぎた！！！**
- レガシーアプリの開発者でも、英語力が残念でも学びがあった、エネルギーをもらえたということ
- 学ぶため、楽しむためにどういう準備をしたのか？
- やってみてうまくいったこと、うまくいかなかったこと
- 得たもの

# 私のこと
- どんなエンジニアか？
20年ほど運用されているERPシステムの保守開発チームのマネージャー。
運用しているユーザーのトラブル対応や不具合修正、機能拡充が主なお仕事。
リファクタリング、自動テストやCIの仕組みの構築、テックカンファレンス参加が趣味。
- AWSの知識
CIや開発ツールでの利用が主。
開発しているシステムはEC2上で動かす構成になっており、運用やCDは専任のSREチームにフォローしてもらっているため、それほど利用頻度は高くない。
AWS資格は失効寸前のSolution Architect Associateのみ保持。
- 英語力
SportsForumでホッケーを勧められ、断る英語のフレーズが出てこず2回プレイさせられる程度の英語力。
- 海外渡航経験
なし
- re:Inventへの参加が決まったタイミング
10月の半ばごろ

# re:Inventへの期待
日々レガシーシステムの保守に苦しめられているため、それを解決するヒントを得たいと思っていました。
- 開発者体験を向上する方法をしりたい
特にCI、テスト、運用に活かせるものはないか？
- 製品のモダナイゼーション手法を学習したい
そもそもずっと古い製品を保守しているためモダンな製品の実装を知らないので体験したい。古いシステムを新しい仕組みに置き換えていく現実的な方法を知りたい。

# 情報収集
- 事前勉強会に参加する
カンファレンス参加大好きマンなのでconnpassで近くの事前勉強会を探して参加しました。セッションについてや海外に行くにあたっての準備といった情報もたくさん得られたのですが、個人的にはそれ以上に参加者の方の熱量が感じられて良かったと思いました。
もうすぐre:capもあるようなので楽しめたお礼も伝えに行きたいと思っています。

https://awsbuilder.connpass.com/event/333335/

- 社内の昨年の参加者の方に話を聞く
- 参加ブログ等を見て情報収集
- 昨年の動画視聴
勉強会でAWSの方が、「KeynoteではWernerのセッションが好き」とおっしゃっていたので観てみたところめちゃくちゃ良かったので絶対に生で見るぞと決意。
[2023年のWernerのKeynote](https://www.youtube.com/watch?v=UTRBVPvzt9w&t=3860s)

# 作戦
セッションの種類や会場の広さ、雰囲気などの情報をなんとなく掴み、色々な参加の仕方がありそうだと感じたので、自分はどうやって参加するのか、作戦を立てました。

## Workshopに参加しまくる
以下の理由からとにかく興味のあるWorkshopをたくさん探して参加しまくるという作戦を取ろうと決めました。
- 自分の好きな学習方法であること
アプリ開発者なので、普段の学習でも動くものを作っている時が楽しいし、学習になっていると感じるのでそういった体験ができる場に参加したいと思ったため。
- 英語力の懸念から
英語力にかなりの不安があったのですが、それはこの短期間でなんとかなるものでもないなと思い、Workshopであれば文字の説明が用意されているとのことで、翻訳ツールなどで理解しやすそうと思ったため。

## 心構え
- とにかく楽しむ
- 旅の恥はかき捨て
- 使えるものはなんでも使う

全力で楽しむ！
英語が下手でも積極的にコミュニケーションを取る。
翻訳ツール等の文明の利器や使えるものはなんでも使う。

# 準備
## AWS SkillBuilderでの学習
ちょうど10月から使わせてもらえるようになっていたので活用しました。
おそらくWorkshopと形式が近いのではないかと思い、基礎的な部分を中心にセルフベースラボを4つほど受講しました。実際形式はWorkshopとほぼ同じで予行演習になりましたし、忘れていたAWS知識のキャッチアップにもなったと思います。

## セッションの予約
公募の結果が出た時点でセッションの予約はかなり埋まってしまっていました。
しかし前日当日で空きが出るとのことだったので、興味のあるキーワードで検索したセッションの内容をひたすら確認し、第三希望ぐらいまでをお気に入りに入れておいて、前日に確定させる作戦を取りました。

検索に使ったキーワード
- Serverless
- Modernization
- Developer Experience
- Java（保守しているのがJavaのシステムのため）
- CI/CD
- Test

上記キーワードで出てきたWorkshopの内容を全てみて、お気に入りに入れるものを選びました。それ以外にもざっと見て気になったものはどんどんお気に入りに入れて、それを何度も見返して増やしたり絞り込んだりしながら検討しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/b3964c7d-ba19-5db1-ff84-afefe02b1721.png)

## 翻訳系のツールの準備

音声の翻訳ツールは事前に英語の音声を読み込ませて試しました。
VoicePingが良いなと思ったので、現地ではメインで使いました。

https://voice-ping.com/

翻訳の精度が高く、文字起こしをしつつ翻訳して残してくれるので後から見返すこともできました。

ただ音の反響が強く、残響音が残るような会場ではどのツールもうまく解析できませんでした。具体的にはWynnやMGM GrandでのWorkshopではかなり制度高く翻訳してくれましたが、Mandalay BayのBreakoutSessionやVenetianのKeynoteの翻訳はあまりうまくいきませんでした。こういった環境では音響解析の新しい技術が採用されないと難しいのかもしれないです。

また時間制限のないプランは無料利用期間を過ぎるとかなり高額になるため、その点は注意が必要です。

配布される文字情報の翻訳はChromeの翻訳機能を利用しました。
目の前にあるものが読めない！という場合に備えてGoogleのアプリも入れて、Googleレンズでの翻訳も使えるように準備しました。

# 実際に現地に行ってみて
## 参加セッションと学び、ご飯情報など
### Day0
現地には日曜日の早朝に到着しました。
ホテルにチェックインした後、会場の下見でCeasars Forum近辺をうろうろしていましたが、SportsForumは既にオープンしていて食事をしながら遊ぶことができました。
この時ホッケーの勧誘を断れず、2回プレイしてぜぇぜぇ言いました。
SWAGがもらえるAWSサービスのアンケートに答えてTシャツや水筒をもらったり、BuilderCardsをもらったりしました。

<table>
<tr>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/edc2d741-2b03-c35f-e6f9-cb9787b58b55.jpeg">
</td>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/70116b39-cb1b-9b03-a7e1-6291fd115f30.jpeg">
</td>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/1f8a8d4f-e1a0-1fd7-3f04-0b34575fb7e5.jpeg">
</td>
</tr>
<tr>
<td colspan="3">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/be0bae08-1b75-82bf-9f84-8473d624225f.jpeg">
</td>
</tr>
</table>

### Day1
月曜日の日中はWynnでひたすらWorkshopを受けました。
ご飯やおやつがおいしすぎたのと、ホテルの内装も好きな雰囲気でそういった点でも良かったです。

<table>
<tr>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/b8b4b3b2-8b08-23d7-ae59-424b914c263a.jpeg">
</td>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/8a8db80d-6a27-ee5e-1d86-7923fcef574f.jpeg">
</td>
</tr>
<tr>
<td >
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/85e9b3a9-9dea-da05-d93d-86293437278c.jpeg">
</td>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/b0ca86b9-ce1e-20a9-6aea-8041a20116c3.jpeg">
</td>
</tr>
</table>

特に印象に残ったセッションは **DOP308-R | Accelerating enterprise development with Amazon Q Developer** でした。
Amazon Q Developerを様々な方法で利用しSpring Bootの開発を加速するというセッションで、実際に手元でアプリを動かしながら、コードリーディングや不具合修正、ドキュメントの作成などをAmazon Q Developerを利用して行っていくという流れでしたが、その中に自然言語で機能強化を依頼して実装してもらおうというような内容も含まれていました。
アプリケーションとしては単純なものではありましたが、複数ファイルにまたがるような修正が自然言語の指示のみで行われ、修正後のアプリが手元で動作したことにはかなり驚きました。

セッションの手順は公開されているので、興味のある方はぜひ見てみてください。

https://catalog.workshops.aws/qwords/en-US/50-feature-development/51-fd-task-1

夜はAsia Pacific JapanのKick Off Partyに参加しました。
Drai's Beachclub & Nightclubというとても雰囲気のあるナイトクラブで日本人の方とも交流できて、めちゃくちゃ楽しい夜でした◎

<table>
<tr>
<td >
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/c52e349d-6f85-3b0a-fea7-8cfa8bb9ef5e.jpeg">
</td>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/8ec23f28-876a-773f-5851-fbeb86825d66.jpeg">
</td>
<td colspan="2">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/5b9dede0-3e2c-0a3e-e8df-f8fa9e79291a.jpeg">
</td>
</tr>
</table>

### Day2
火曜日はCEOのKeynoteをオンラインで視聴して、その後はMGM GrandでServerlessのWorkshopにいくつか参加しました。

Serverlessのセッションは全てアプリを作るもので、普段クラシックなServletのWebアプリしか触っていない自分にとって、どれも刺激的なセッションでした。
その中でも業務アプリ寄りで、サービスの数が多く、サービスどうしがイベント駆動で連携する作りを体験できた **API210 | Serverlesspresso: Build an event-driven application from the ground up** が特に印象に残りました。

こちらもワークショップの内容やセッション時のスライドは公開されています。

https://catalog.workshops.aws/serverlesspresso/en-US

https://d1.awsstatic.com/events/Summits/aws-summits/Serverlesspresso-Building_an_event-driven_application_from_the_ground_up_CON302.pdf

今まで取り組んできたアプリ開発とは設計の考え方が異なるものが多かったため、全然時間内に終わらず、空き時間やセッション終了後はずっとホテルの隅っこで居残りコーディングをしていましたが、個人的には没頭できてとても楽しい時間でした◎
一方で、モダンな仕組みで開発していく経験を積まないと置いていかれてしまうな、ということも強く感じました。

MGMはホテルの雰囲気も食事もどことなく中東の雰囲気を感じました。
あまり時間がなく急いで昼食を食べたのですが、出口付近でお弁当のようなものも配られていたのでそっちにしてみても良かったかもなーと思いました。

夜はスポンサー企業主催のパーティーに参加予定だったのですが、居残りで遅くなってしまい入場できずでした。残念……。

<table>
<tr>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/5298c848-5c58-fe93-1f8e-b7b0b9d9ad1e.jpeg">
</td>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/a398b24a-83ae-40bc-b916-e2b32d6e606d.jpeg">
</td>
<td colspan="2">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/0ac58626-7ae0-dc15-9923-40d6614df924.jpeg">
</td>
</tr>
</table>

### Day3
水曜日はMandalay Bayで丸一日のBootCamp or Game dayに参加するかWorkshop系に参加するかで迷っていたのですが、テーマで選んで結局Workshopに参加しました。
少し空き時間ができたため、Breakout SessionとChalk Talkにも１つずつ参加してみました。
Breakout Sessionはサイレントセッションだったため、音声の翻訳アプリが利用できませんでしたが、スライドの説明が丁寧だったため、なんとかついていくことができたかなと思います。
Chalk talkは会話でのやり取りがメインで、部屋の反響の影響か音声翻訳アプリもうまく使えず、ついていくのが難しかったです。

この日のワークショップは **SVS403 | From serverful to serverless Java** でSpringBootのWebアプリをLambdaでの実装に置き換えるという内容でした。

https://catalog.workshops.aws/java-on-aws-lambda/en-US

https://d1.awsstatic.com/events/Summits/reinvent2023/SVS304_From-serverful-to-serverless-Java.pdf

実際にレガシーなWebアプリを置き換える場合は、このワークショップの前段階として内部の処理を分離しやすいように書き替える必要があるだろうな、とは思いましたが、それ以降の段階での具体的な内容（Labmdaのメモリ量の調整など）が多く参考になりました。

<table>
<tr>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/aa1eb07f-55a5-5f60-14bd-cbf7550982bf.jpeg">
</td>

<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/0eb46e31-a2dd-50f8-d8f4-90e4092ea979.jpeg">
</td>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/e6ac2985-cfae-978f-4ff5-fc1e6643ce19.jpeg">
</td>
</tr>

<tr>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/8365534d-0286-7e08-3759-9f0af7a68163.jpeg">
</td>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/8bd5b2b3-a95b-3d69-a78f-962e52fa7688.jpeg">
</td>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/cbf50a9a-81f4-ff05-1873-d1794dca8962.jpeg">
</td>
</tr>
</table>

夜には社内の参加メンバーとの食事会があり、参加しました。
色々な部署から参加している人が居たため、参加したセッションの内容を介して普段感じている課題を共有できたり、今後どういうことに取り組もうとしているのかも話すことができて意外な発見がありました。

中華料理のお店だったのですが、食後のお茶菓子の中に入っていたおみくじの内容が意味深で、何かそこからも感じるものがありました。

<table>
<tr>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/e6a89cc4-b6e1-c7b4-c56f-d10096a3ccdd.jpeg">
</td>
</tr>
</table>


### Day4
木曜日は朝一番からCTOKeynoteに向かいました。
前の方の席には座れたのですが、角度的にはちょっと残念。

<table>
<tr>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/aa249b53-544c-5a61-ce07-c15b39a12007.jpeg">
</td>
<td>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/4b5f20a7-097d-2676-a616-e95cdbfa1712.jpeg">
</td>
</tr>
</table>

内容に関しては開催後多くの方が言及していますが、すばらしいものでした。
全エンジニアに観てほしいです。

https://www.youtube.com/watch?v=aim5x73crbM

あくまで私の理解を前提としたものですが、心に響いた内容としては以下です。

```
ユーザーが増えるとシステムはどんどん複雑になっていく
それは喜ぶべきことだが
システムはシンプルさを保ち続ける必要がある
管理できる構造を保ち続ける必要がある

ユーザーの要求を満たしながら
シンプルであり続けるためには進化し続ける必要がある
```

普段業務に取り組む中で感じていた課題と参加したセッションでの学びが繋がったと感じました。

夜はre:Playに参加しました。
音楽好きなのでWeezerとZeddが見られたのもうれしかったです◎

![IMG_6071.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/f94af9c9-79bf-544b-2cf8-b249ccaea3ae.jpeg)

## うまくいったこと
- Workshopに参加しまくるという参加の仕方
良かったと思います。やはり開発者は手を動かすのが一番の学びだなと思いました。
アプリ開発者向けのものも多く用意されていましたし、そういったセッションにはSREの方よりも目が向いて、積極的に参加できたのではないかと思います。
英文に関してはChromeの翻訳機能で十分理解できる内容に翻訳してもらえました。

- AWS SkillBuilderでの事前の学習
こちらもかなり効果があったと思います。Workshopの形式はSkillBuilderのセルフペースラボとほぼ同じ形式だったのでスムーズに進められたと思います。

- セッションの予約のやり方
参加が決まった時にはほとんど予約が取れませんでしたが、それでも結果的に行きたいと思ったセッションにはほぼ全て（移動などが時間的に無理で諦めたものはありますが）参加できました。事前に予約が取れなくても小まめに予約を確認すれば参加できるので、あきらめずに確認をすると良いと思います。
またセッションの内容の精査にはかなり時間をかけましたが、それに見合った満足を得られたと思うので全力で情報収集して、気が済むまでどれにするか考えるのが良いと思います。

## うまくいかなかったこと
- 時差の影響
想像していたよりもきつかったです。
到着した日は相当寝不足だったにも関わらず全く寝付けず、1日目は睡眠時間2時間ほどで臨むことになってしまいました。単なる時差の影響だけでなく非日常の空間で興奮状態にあったことも影響していたのかもしれません。
3日目ぐらいまでなかなか睡眠がうまくいかなかったのですが、薬局で睡眠導入剤を購入して飲んだところ嘘のように眠れました。もっと早く飲んでおけばよかった。[^1] 
[^1]:事前の勉強会等でも言及している人は居なかったのですが、個人的には寝つきが悪い時は睡眠導入剤を使うというのは結構ポイントかなと思いました。ただし日本から持ち込む際は米国で規制されているものでないのかを事前に確認した方が良いと思います。私の場合は米国内の薬局の市販品でも十分に効きました。金額も10＄程度でした。

- 英語力
今回の記事のテーマの１つは、英語力が残念でも参加するべき！学びを得られる！なのですが、当然ながら英語力はある方が良いと思います。もっと踏み込んだ議論ができていれば今回得られなかったような学びが得られたかもしれないですし、日常会話でも恥のかき捨てのつもりでコミュニケーションを取ろうとするも、特にリスニングがうまくできず、あたふたしてしまうことも多くありました。
逆にこの年からでも少しずつ英語を勉強したいと思えるきっかけにはなったかなと思います。

# 得たもの
## セッションから得たもの
- コードリーディングやコードレビューでもっと生成AIを活用できそうというヒント
具体的な利用事例を見せてもらえるセッションが多かったので、アイデア次第でもっと生成AIを活用できるシーンがありそうだというヒントがもらえました。
- 複雑なシステムは生成AIを利用した開発速度の加速に置いていかれるという危機感
複雑な機能や保守性の低いコードによるアジリティの低下が、人間の開発速度の低下にとどまらず、生成AIを利用できないというビハインドを生む、負債の重みが増すような変化が起きている、ということを感じました。
- Serverless、イベント駆動設計の体験
セッションの内容はあくまで疑似的なものなので、これから業務に取り入れていけるかが重要であると思いますが、具体的な実装方法を学び、動くものを作る体験ができたので、取り入れていくきっかけになってなってくれると思っています。
またこの体験の中でも今まで経験した設計と異なる考え方が必要になっているということに危機感を感じました。
- シンプルであり続けるためには進化し続ける必要があるということ

## それ以外の得たもの
セッションでの学びももちろん大きなものでしたが、それだけにとどまらず自分自身のこれまでのエンジニアとしての歩みを振り返り、これからを考える機会になりました。
うまく言い表せませんが、大きな熱量と、自分自身を見つめ直す時間、そして今までの自分の殻を壊すきっかけのようなものをもらえたのかなと思います。

# この先生きのこるために
- 変化を感じ危機感を持つこと
自分自身、自分たちの製品、世界の変化を感じとって考えること。
- 初心を忘れず、変化を恐れずに行動すること
うごくものを作って楽しい、誰かに便利だと喜んでもらえてうれしいという気持ちを忘れず、価値を提供しつづけるために変化を恐れずに行動すること。

# 余談
めちゃくちゃしっかり道草を食って思いっきり遊びもしました！！

乗り換えのハワイの滞在時間を長くしてダイヤモンドヘッドに登ったり、
![IMG_5834.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/7385edf9-c079-71f6-0399-906558d63bd5.jpeg)

アラモアナショッピングセンターを散策したり
![IMG_5851.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/a1ea75b8-8656-ca4f-1fc2-b4834d44004d.jpeg)

ラスベガスの開催前日にはシルクドゥソレイユオーを見たり
![IMG_5909.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/49ecb7a7-d4d1-139d-eb94-37bd9a5b798c.jpeg)

帰りは一日長く滞在してグランドキャニオンに行ったりしました。
![IMG_6149.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/74295ae0-64c0-af6b-8b74-34b42c695ad0.jpeg)
![IMG_6145.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/24e6933d-7eac-5411-7903-ee7a5dae0ef9.jpeg)

グランドキャニオンは本当に広大な景色に感動したんですが、途中のSF映画の火星のようなアリゾナの風景もとても良かったです。
![IMG_6084.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126770/a3bffb3c-c6eb-9f93-0ba8-176f8672164d.jpeg)

前後の旅程も含めて、世界の広さを感じ、もっとたくさんのものを見たいと思えた9日間でした。

おわり。