2023振り返り

少し早いが、今年の振り返りをしたので投稿。
来年の目標を立てる上で参考にする。個人的な振り返り。

# 項目
- 仕事面
    - 大規模決済システム更改
    - TiDBの社外発信( SoftwareDesign、社長賞 )
    - AWSグループ
    - 予約フォーム
- ソフトスキル面
    - どれくらい本を読んだ？
        印象に残っている本、メモなど
- やり残したこと

# 振り返り

## 大規模決済システム更改 ( 期間 : ~ 2023 / 6 / 30 )
1月から本格的なデータ移行開始。
移行直前、自分が担当していたDB周りでトラブルが多発した。大きく次の二つに分類できるが、根本原因はどちらも同じ。 ( 根本原因は後ほど )
( 1 ) 運用スクリプトが最新版でデプロイされていなかった
( 2 ) DR環境のバックアップが止まっていた

### ( 1 ) 運用スクリプトが最新版でデプロイされていなかった について 
1月の移行直前になって、運用スクリプトが最新版のものになっていないことが発覚。
前工程のテストを実施する中でスクリプト修正を行っていたが、git上のスクリプトへ反映できていなかった。
今考えるととんでもなく、全くコード管理ができていなかったことになる。非常に恥ずかしい。
コード管理ができていなかった理由は次。

① コード管理の主幹はサーバチーム(SVT)であり、コードを連携する過程が必要であった。( 私はDBチーム )
② スクリプト不具合が出たら都度修正、を繰り返すのに精いっぱいで連携が漏れていた
    
理由を挙げるとこれまたとんでもないが、そもそも論として
コード修正 → テスト → マージリクエスト( SVTへの連携 ) → デプロイ
の一連の流れが自動化できていなかったことが原因のように思う。

今回のPJでは初めてのアジャイル開発、初めてGitを使ったコード管理
といったこともあり、PJ全体としてコード管理の知見がなかったのではないだろうか。
ただこのままだと「自分のせいじゃないもんね」と無責任極まりないので、今後の**PJ初期の段階でコードデプロイを自動化することを忘れないようにする。**
幸い、**個人開発でコードを書く機会がたくさんあるので、コードデプロイの実践方法も併せて勉強する。**

### ( 2 ) DR環境のバックアップが止まっていた について 
1月から本番運用が始まるのは本番環境のみで、DR環境が本番昇格するのは4月以降
ということもあり、本番環境の障害検知が多すぎて運用チームがさばききれないので、DR環境の障害検知はすべて切っていた。
これが大失敗で、DR環境の本番昇格後にDR DBバックアップが止まっていたことが発覚する。
原因は( 1 )の通り。
DBバックアップはcronで日次実行する運用だったが、cronについてもコード管理の対象としており、
cronの登録内容が誤ってい登録されていたことも原因。( スクリプトの引数が誤っていた )

データ量がまだ少なかったため、気づいたその日くらいからバックアップを再開することができたので大事には至らなかった。
※DBバックアップの中身はストレージコピーであり、バックアップ取得が失敗してから再開するまでの期間のストレージ差分に、バックアップ時間が比例する。

( 1 ) ( 2 ) 両方とも根本原因はスクリプトのコード管理が正しくできていなかったこと。
コード管理を自動化することで、より効率的に開発できるとすでに大いに実感できる反省となった。
※バックアップが止まっていたことは、当時はかなりヤバいことであり
　上司に「なぜこんなことになっているのか」「なんで早く報告しないの」「新人みたいな働きをするな」と言われ、自己嫌悪とともに落胆、自分に対し大いに失望した。
　ヤバいと思ったらとにかく騒いで注目を浴びる を実践しないと後で自分が痛い目を見ることがよくわかった。

その他にもいろいろな問題があり、結局移行完了時期は当初より半年以上遅れて完了となったが
私は最後まで面倒を見れずに別PJへ異動することになる。

## TiDBの発信( SoftwareDesign、社長賞 )
ちょっと余談。
実績として残せたのでTiDBについても触れておく。
私はDB TechShowcase 2022に登壇させていただき、自分で言うのもあれだが周りからの評判は結構よかった。(ご協力いただいた皆様には感謝しかありません。)
「登壇内容を見て、SoftwareDesign 8月号で特集をやるので寄稿してもらえないか」と技術評論社 編集者の方から連絡を頂いた。
私にとって雑誌記事を寄稿するなんて非常に光栄なことで、喜んで寄稿させていただいた。
https://gihyo.jp/magazine/SD/archive/2023/202308
少しでも読者の皆様に役に立っていると嬉しい・・・

SoftwareDesignに寄稿したことや、DB TechShowcaseに登壇したこと
TiDBを使ったマルチクラウド化検証を行ったことで、社長賞も受賞することができた。
※賞金10万円を頂けたので、ほしかった技術書を大いに買いあさって 余った賞金は部門に寄付するようにします。
　ヤッタネ

## AWSグループ( 期間 : 2023 / 7 / 1 ~ 現在 )
そんなこんなで7月からPJを移動し、AWSシステムの開発グループに異動することになった。
参画したPJでは、あるシステムに新しく加盟店を追加するというもの。
私のキャリアとしてはDBをもっと極めたかったし、PJで期待されていることはPLの働き方だった。
今時点、私のキャリアプランにおいてマネージャーとして働きたいとは思っておらず、モチベーションを高めることが非常に難しかった。
それでもAWSに詳しくなれる！と思ってなんとか頑張ったが、
やることは進捗や課題管理、顧客への報告がメインであったので
やっぱりきつかった。(ほとんどExcelとにらめっこ。Excelエンジニア。)

きついながらもなんとかやり抜き、一応一連のマネジメントタスクは経験でき、できることも増えた。
振り返ってみると、一回マネジメントは経験してみてもいいのかなとも思う。
というのも、
- マネージャーが何を求めているのかが理解できるようになる
- 顧客報告 という経験で、今後抵抗なく人前で話すことができると思う
- 今回経験した進捗管理や課題管理は、一プレイヤーとしても必要な能力
と考えるようになったから。

ただ実務の時間ではAWSについて学ぶことはできないので、業務外で少しAWSの勉強もした。
PJではECSをつかっていたので、「AWSコンテナ設計・構築［本格］入門」を読んだ。
(読書メモは[こちら](https://qiita.com/harayoshii/items/c32c80274cf6afaed7d4)に記載)
ざっとしか読めていないので、もう2,3回読み返そうと思う。非常に良かった。

## 予約フォーム
個人開発として、知人が運営している撮影スタジオの予約フォームを作成している。
フロントエンドからバックエンド、インフラまですべて一人で開発する必要があるため、大変だが非常に楽しく取り組めている。
フロントエンドもバックエンドも実務で担当したことはないので、ChatGPTに聞きながらの開発だが
問題なく実装できている。
ゆくゆくは予約フォームだけでなく、予約管理そのものをシステム化したい。
個人的に大きな挑戦である。
今の状況は、フロントは80%程完成、バックエンドは未着手。
開発はローカルPC上のコンテナでやっているので、開発環境の見直しもやらなくては。
盛りだくさんだけどとても楽しめている開発。

## 読んだ本
ここからはあまり仕事とは関係ないが、振り返りなので読んだ本についても簡単に振り返る。
今年読んだであろう本はこちら。( Kindleの読書履歴より )
1. SINGLE TASK
　内容をあまり覚えていないが、一つのタスクに集中することが最も生産性がたかい、という本だった気がする
2. アナロジー思考
　遠い関係にあるものをかけ合わせると素晴らしいらしい　
3. 3か月の使い方で人生は変わる
　あまり覚えていない。。
4. 母という呪縛 娘という牢獄
　ノンフィクションな小説。内容は結構重いが面白かった。
5. STAFF ENGINEER
　マネージャーではなく、エンジニアとしてキャリアを積んでいく道を紹介している本。
6. 世界で一番やさしい 考え方の教科書
　考えるとは何か、をわかりやすく解説している本。何回か読んで定着させたい。
7. 世界で一番やさしい 会議の教科書
　ファシリテーターのやりかたや存在意義を示した本。
8. 小さな習慣
　習慣化させるコツを消化している本。
　限りなく小さな目標にすることで、目標達成しないほうが難しくする方法論。
　この本のおかげで、私は英語学習を3か月弱毎日続けられている。
9. 世界一流エンジニアの思考法
　世界標準のエンジニアが実践している働き方、仕事への捉え方を紹介している本。
　今後の働き方として大いに参考にさせていただいた。
あとは技術書もいくつか読んだ。全部で15冊くらいかな。
技術書は記事にしているものもあるけど、ただの備忘メモになっているものがほとんど。
時間をしっかりかけて、自分の言葉やコードで検証した結果を記事にするようにしたい。
また、読んだ本10冊前後はかなり少ないので、来年はもっと読む習慣をつけようと思う。

## やり残したこと
来年の目標を立てる上での参考として、今年やり残したことを書いておく。
- 運動
　定期的な運動を全くしなくなってしまった。
　来年こそはランニングやウォーキング、筋トレを継続して行いたい。
- 個人開発のリリース
　前述の通り、予約フォームは作成中。
　ただ予約管理システムとして全体を管理するようにしていきたいので、来年リリースができる状態まで開発できると嬉しい。
　できればマネタイズできるようになれるとなお良し。
 - Leetcode
　外資転職を視野に入れているので、コーディング試験対策も忘れず行う。
　何よりアルゴリズムの習得やコード知識の習得につながると思うのでやる。