msksgm’s blog

msksgm’s blog

Webエンジニアです。日々の勉強記録、技術書感想、美術観賞感想を投稿します。

2024年1月の振り返り

概要

2024 年 1 月の振り返りです。

勉強概要

今月は下表のように勉強していました。 合計、約 118.5 時間です。

項目 1 週目(1 月 1 日〜1 月 7 日) 2 週目 3 週目 4 週目 5 週目(1 月 29 日 ~ 1 月 31 日)
平日朝の勉強時間 約 2.5 時間(5 ポモドーロ) 約 13.3 時間(32 ポモドーロ) 約 12.9 時間(31 ポモドーロ) 約 14.6 時間(35 ポモドーロ) 約 7.92 時間(17 ポモドーロ)
平日夕方の勉強時間 0 時間 約 1.25 時間 約 1.67 時間(4 ポモドーロ) 0 時間 0 時間
休日の勉強時間 約 25 時間 約 13.8 時間 約 9.17 時間(22 ポモドーロ) 約 10.4 時間(25 ポモドーロ) 0 時間
「セキュアで信頼性のあるシステム構築」勉強会 約 1.5 時間 約 1.5 時間 約 1.5 時間 約 1.5 時間 約 1.5 時間
そのほかの勉強会 0 時間 0 時間 0 時間 0 時間 0 時間
合計 約 29 時間 約 28.4 時間 約 25.2 時間 約 26.5 時間 約 9.42 時間

12 月の OKR 結果

2024 年 1 月〜3 月の目標

2024年1月〜3月の目標に記述した OKR 目標は SRE・DevOps、Kotlin、英語です。 具体的には下表の通りになります。

注力分野 Objective(3 ヵ月経過後の目標) Key Result(必要だと考えていること)
SRE・DevOps SRE の考え方を学ぶのはいったん完了とする。スクラムによって仮説検証を回すプロセスを体験する 書籍ベースの SRE の学習にひと区切終える。スクラム開発を実践する。
Kotlin 自身の Kotlin の知識を把握して、新しい知識を拡充する 自身が作成した書籍の更新。公式ドキュメントを読む
英語 英語で技術系のコンテンツをなんとなく読めるようになる 基本的な英語の知識から始めて、3 月には技術系記事に対してやってみる

2024 年 1 月の OKR 目標

注力分野 Objective(1 ヵ月度ごとの目標) Key Result(具体的な行動予定)
SRE・DevOps 書籍ベースで、SRE を学ぶ。業務でスクラムを実践してみる 「セキュアで信頼性のあるシステム構築」の勉強会をやる。
Kotlin 自分が持っている Kotlin の知識を更新する ハンズオンで学ぶサーバーサイド Kotlin」更新のために、SpringDoc を調査して実践する。
英語 英語学習のとっかかりをつかむ 自分にあった英語の学習方法を模索する。

2024 年 1 月の OKR 結果

今月は以下のようになりました。

注力分野 達成度(100 点満点) Key Result(行動結果)
SRE・DevOps 75 点 「セキュアで信頼性のあるシステム構築」の勉強会を実践し、全 7 回中 6 回を終えた。 スクラムを実践している。 Docs as Code を導入してみた
Kotlin 80 点 SpringDoc を調査し、実装方法をまとめて zenn に投稿した
英語 60 点 英語の技術書とバイリンガルニュースで英語学習を開始した

注力分野の振り返り

SRE・DevOps

SRE・DevOps 観点は 75 点程度です。 理由は以下の 3 つを実践してたからです。手広く実践できましたが、課題感も多いので原点しました。それぞれについて深堀します。

  • SRE の勉強を継続して実践した。しかし、内容的に難易度や具体性が高くあまり身についていない
  • 業務でスクラムを導入し、未経験だがスクラムマスターとしてリードしている。しかし、未経験なのでタイムボックスを守れなかったり意思決定が追いつかなかったりする
  • docusaurus を用いて Docs as Code の実現に成功した。ただし、まだ効果を実践する前の状態

SRE は書籍ベースでの学習のため「セキュアで信頼性のあるシステム構築」を読んでいます。 だいたい 9 割ほど読み終わり、あと 1 回実施したら終わりです。 内容が Google に偏った内容が多いことや、組織の上位層が考えることだったりしたため、身に入る部分が少なかったです。 参考になることもあるんですが、自分に関連しないことが多いので、途中から飛ばし読みになってしまいました。

業務でスクラムを導入しました。 誰も経験者がいないので、自身がスクラムマスターとして振る舞っています。 まだまだスクラムイベントをこなせなかったり、チームとしても目標にコミットできていなかったりと、完成度としてはまだまだです。 それらも含めて楽しみつつ経験になっています。 しかし、組織的な課題が非常に多いので、スクラムの完成度が低いまま中途半端な状態で終わりそうです。

最後に Docs as Code の実践です。 業務効率の改善やプロダクト品質向上のため、ドキュメントのコード化に以前から興味がありました。 そこで、docusaurus を用いたドキュメントのコード化を実践しました。 具体的には、PR の作成タイミングで docusaurus のアプリケーションを作成しレビュー、マージしたら GitHub Pages にデプロイするしくみです。 やりたいことの実装方法を 2 週間程度で理解し導入しました。 発想自体は正しいと考えていますが、メリットがでるのは保守や差分のレビュー時だと考えているので、まだ費用対効果を評価できていないことが課題です。
ドキュメントのコード化を調査していくうちに、Docs as Code の存在を知りました。 タイトルの通りでドキュメントをコードのようにバージョン管理、マークアップ言語、コードレビューなどを組み込むといった内容です。 より知見を深めるために、Crafting Docs for Success : An End-to-End Approach to Developer Documentationを読み終えました。

DevOps 関連では、学習する組織を読み感想文を書きました。 マネジメントの内容で、出版が 1990 年ですが現代にも通じる内容が詰まっており、非常に感銘をうけました。

総じて、今月も自分の興味のあることに対して探求し必要であれば実践できました。 しかし、どれも課題が多いです。 個人的な勉強の範疇では問題ありませんが、チームに導入したことは負債となります。 自身の異動の話がでており、中途半端な状態になる可能性が非常に高いので、来月はそれらの改善に取り組みたいです。

Kotlin

Kotlin は 80 点でした。 理由は当初の予定だった SpringDoc の調査を一通り終えたからです。 zenn に記事 Kotlin + Spring Boot 3 + Springdoc-openapi で OpenAPI ドキュメントを作成する として公開しました。 予定通り終えられて勘所もつかみましたので、「ハンズオンで学ぶサーバーサイド Kotlin」に反映できそうです。

しかし、実装面において別件で気になったことやまとめたいことが出てきたので、来月の最初はそれを実践します。 具体的には、以下の 2 つを調査して投稿します。

  • Spring Boot の標準例外ハンドラについて
  • 必須 or null のバリデーションエラーの実装方法について

とりあえず、目標通りで順調です。 残ったタスクも 2 月の早いうちにこなします。

英語

英語は 60 点でした。 英語の勉強方法を検討し、決めたからです。 1 週目ぐらいに、勉強方法を考え以下の 2 つを検討しました。 どちらもなんとかして技術系の英語を学ぶきっかけになればと考えています。

  • バイリンガルニュースを聞くことで、リスニング力を鍛える
  • 毎月、比較的難易度が低い or 邦訳版を読んだことがる英語の技術書を読む。読んだら感想文を登録する

前者は比較的難易度の高いリスニングを学べそうだから選択しました。 前者はスマートフォンポッドキャストで聴講可能ですので、利用しました。 1 日 30 分ほどでも進められるように、普段のスケジュールの見直しをしています。 後者は技術英語を学ぶためです。 自分の興味がある分野からできたらと考えています。 とりあえず、課題図書はCrafting Docs for Success : An End-to-End Approach to Developer Documentationを考えています。 今月末までにどのような効果が得られるのかを考えます。

後者はとりあえず読書感想文まで書きました。 前者はあまり継続できていません。

来月は実践できた日、できなかった日をそれぞれカウントすることで対応しようと考えています。

2 月の OKR

2 月の OKR は下表のようにします。 内容が継続的な学習となっているので、都度具体的な学習に移していきます。

注力分野 Objective(1 ヵ月度ごとの目標) Key Result(具体的な行動予定)
SRE・DevOps 書籍ベースで、SRE を学ぶ。業務でスクラムを実践した結果を振り返る、必要な知識を拡充する 「セキュアで信頼性のあるシステム構築」の勉強会を実施する。「データベースリライアビリティエンジニアリング」の勉強会を実施する。
Kotlin 自分が持っている Kotlin の知識を更新する Spring Boot の標準例外や null のバリデーションエラーについて調査する。「ハンズオンで学ぶサーバーサイド Kotlin」を Spring Boot 3 に更新する
英語 英語学習を継続している バイリンガルニュースを聞き、英語の技術書を読む。できた日をカウントする

読書

学習する組織

msksgm.hatenablog.com

Crafting Docs for Success : An End-to-End Approach to Developer Documentation

msksgm.hatenablog.com

技術記事の作成

Kotlin の目標に掲げていた SpringDoc の記事を作成しました。 3 月までは継続して投稿します。

Kotlin + Spring Boot 3 + Springdoc-openapi で OpenAPI ドキュメントを作成する

zenn.dev

その他

特にありません。 Kotlin 関連の LT 会で発表しようと考えています。

1 月の振り返りまとめ

2024 年 1 月最初の振り返り記事でした。 とりあえず新年やろうと決めたことは、一通り方向性を定められたと考えています。 毎回 3 ヵ月の最初は難易度が低いので想定よりもよくやれたと考えています。 来月は日付が少ないので、実践できることが少ないと想定しつつ、実践します。

今月の課題も、他人を巻き込んだ設定の実践の難しさです。 個人の範囲では成功失敗は自己責任で済みますが、チームや他人を巻き込んだ場合はそうでありません。 自分の考え方や課題感が周囲に一致していないと、単純にやることが増えるだけだと、とらえられてしまします。 そういった部分が非常に難しく、あと 2 ヵ月で解決できるきがしません。 とりあえずは「学習する組織」で書いてあった、「システムで解決する」を意識します。

2024 年の最初から、業務面と個人の勉強面の両方でさまざまなことが起きています。 自分が制御できることとできないことがありますが、自分の目標を見失わないように取り組んでいきます。

「Crafting Docs for Success」感想

概要

Crafting Docs for Success : An End-to-End Approach to Developer Documentationを読みました。 感想を書きます。

前提

目的

本書を読んだ背景は以下です。

  • 技術的な英語の勉強の一環として、英語の技術書を毎月 1 冊読むことを目標にしていた
  • 内容的に Docs as Code は興味がある分野で、オライリーサブスクリプションにもあったので、読むことにした

事前知識

おそらく、最も適切に定義されている Docs as Code を読んで、Docs as Code の定義は把握していました。 また、我流ですが docusaurus を利用して、社内ドキュメントを Git 移行していました。

読了時間

とりあえず英語で一度読み、内容が難しければ DeepL 翻訳を利用して翻訳して読むというやり方でだいたい 15 時間ぐらいで読みました。

感想

Docs as Code の基本的な部分から実践的な部分まで記述された書籍でした。 具体的には以下の内容です。

  • Docs ad Code の実践方法
  • UI/UX の考え方
  • 一般向けのドキュメント
  • アクセシビリティ
  • ドキュメントの持続性
  • 文化・コミュニティ

個人的な印象として Docs as Code の対象範囲は技術者向けドキュメントの印象が強かったのですが、本書がカバーした範囲はそれ以上でした。 自身の範囲ではすべてを実践する機会はありませんが、一分野として洗練されているものとして勉強になりました。

似たような書籍に以下の書籍がありますが、本書も含めどれか 1 冊を読めば良いと思いました。

次に関連で勉強すること

引き続き英語の技術書を読みます。

「学習する組織」感想

概要

学習する組織を読みました。 感想を書きます。

前提

目的

本書を読んだ背景は以下です。

  • 組織論について興味があった
  • DevOps の実践が自分の目標の 1 つだったので、組織やマネジメント周りも学ぶ必要があった
  • スクラムの書籍に紹介してあったので気になって読んでみることにした

事前知識

事前知識というほど内容が重複していませんが、以下の書籍を読んでいました。

読了時間

300 ページぐらいまで 20 時間ほどかけて読み、それ以降は具体例が多かったので 5~10 時間ほどで読みました。 前半は、気になった文章を Google Spread Sheet にまとめたりしていたので、時間がかかりました。

感想

現代でも十分に通じる組織論やマネジメントの考え方が詰め込まれた書籍でした。 エンジニアリング組織にも適用でき、組織がどうあるべきか考えていた自分にマッチしており、非常に学ぶことの多い内容でした。 個人的には、数多くのビジネス書があるのに、なぜ本書の紹介が少ないのか疑問に感じるほど良い書籍だと思いました。

思ったこと

本書は「学習する組織」を 5 つのディスシプリンによって成り立つことと、それらが実践された具体例についても紹介します。 5 つのディスシプリンは以下です。

  • システム思考
  • 自己マスタリー
  • メンタル・モデル
  • 共有ビジョン
  • チーム学習

詳細の説明は長くなるので省略しますが、それぞれが成功する組織として必要不可欠なものだと納得感のあるもであり、実践できていないことに対して大いに刺さりました。 ディスシプリンについて知ったとき、ブログや書籍で組織が成功した話は単一のディスシプリンを実践した結果だと思いました。 そのため、ほかの組織が見よう見まねでやっても一時的だったり効果が得られないのは、ほかのディスシプリンを実践できていないからだと思いました。 自身が何かしらの実践したときにもうまく継続できていなかったのは、ディスシプリンの一部だけを実践していたからだと反省しました。

また、アジャイル開発手法の 1 つにスクラムというフレームワークがあります。 本書を読んだ際に、スクラム5 つのディスシプリンとアジャイルを融合させ具体化させたものだと個人的に思いました。 スクラムも方法論の 1 つですので、スクラムガイドの徹底はもちろんのこと、最終的にディスシプリンにつながっているかまで考えられなければいけないと思いました。

個人的に印象に残ったこと

個人的に印象に残った箇所をいくつか抜粋します。 今後も追加すると考えています。

1 つめは「ビール・ゲーム」による、個人の問題ではなくシステムの課題に対する話です。 システムの構造を把握していないがため、急な状況に対応できない組織的な問題だという話でした。 これを読んだ際に、ほとんどの組織が似たような状況に面しており、自分の置かれている状況と一致していると思いました。 書籍の英語版は初版 1990 年、改訂版が 2006 年に出版されていますが、問題を抱えている組織が多いと考えているので、非常に印象に残りました。

2 つめは、システム思考がうまくいなかくなる例であげられていた、「治療が病気よりも手に負えないこともある」です。 これは問題のすりかわりと呼ばれ、「非システム的な解決策を適用すると、長期的には、まったく気がつかないうちに、いっそう多くの解決策を打つ必要性が高まる」と記述しています。 日々の業務改善の中で、対処療法的な対応が中長期的に別の問題を生み出す可能性は身に沁みて実感しているので、この対策が非常に重要だと思いました。

3 つめは、共有ビジョンについてです。 本書では、共有ビジョンについて以下のように記述しています。

共有ビジョンとは「自分たちは何を想像したいのか?」という問いに対する答えである。個人ビジョンが人それぞれの頭や心の中に描くイメージがであるのと同じように、共有ビジョンも組織中のあらゆる人々が思い描くイメージである。共有ビジョンは組織に浸透する共通性の意識を生み出し、多様な活動に一貫性を与える。

今までの考えでは個人ビジョンと共有ビジョンを分けて考えていました。 しかし、本書では次のように延長線上にあると考えています。

共有ビジョンは個人ビジョンから生まれる。だからこそエネルギーを発揮し、コミットメントを育むのだ。

経験的にそれらを一致させることが難しかったので、断言していることに対して印象に残りました。

4 つめは、メンタル・モデルです。 個人的にドメイン駆動設計に関心があるので、メンタル・モデルの考え方を持っていました。 しかし、メンタル・モデルという言葉があまり浸透していないので、人と話す際には使っていませんでした。 本書では、エンジニアリングと関係なしでメンタル・モデルという単語を使っていることに非常に驚き印象に残りました。

次に関連で勉強すること

本書を踏まえて次に勉強することは、 2 つです。 1 つめはスクラムへの適用と理解を深めることです。 今月から業務でスクラムを実践します。 最初はスクラムを模倣するだけですが、よりシステム思考の概念を取り入れたいと考えています。 2 つめは本書を再度読み直すことです。 より深く理解するために、組織で実践した後に再度読もうと考えています。

まとめ

出版は昔ですが、現代のエンジニアリング組織に対しても、十分に通用する内容でした。 本書の内容を実践できていない組織は非常に多く、自身が所属する組織もそうですので、刺さる部分が多かったです。 個人的に最も良いビジネス書の 1 つになりました。 本書の内容を実践し、再度学び直すのがマネジメントや組織論観点での当面の目標になりました。

2024年1月の目標

概要

2024 年 1 月の目標です。

勉強関連

SRE・DevOps、Kotlin、英語を対象に OKR を実施しています。

1 月〜3 月の目標

1 月〜3 月を終えた時点での目標は下記です。

注力分野 Objective(3 ヵ月経過後の目標) Key Result(必要だと考えていること)
SRE・DevOps SRE の考え方を学ぶのはいったん完了とする。スクラムによって仮説検証を回すプロセスを体験する 書籍ベースの SRE の学習にひと区切終える。スクラム開発を実践する。
Kotlin 自身の Kotlin の知識を把握して、新しい知識を拡充する 自身が作成した書籍の更新。公式ドキュメントを読む
英語 英語で技術系のコンテンツをなんとなく読めるようになる 基本的な英語の知識から始めて、3 月には技術系記事に対してやってみる

1 月の目標

それを達成するための 1 月の目標は以下になります。

注力分野 Objective(1 ヵ月度ごとの目標) Key Result(具体的な行動予定)
SRE・DevOps 書籍ベースで、SRE を学ぶ。業務でスクラムを実践してみる 「セキュアで信頼性のあるシステム構築」の勉強会をやる。
Kotlin 自分が持っている Kotlin の知識を更新する ハンズオンで学ぶサーバーサイド Kotlin」更新のために、SpringDoc を調査して実践する。
英語 英語学習のとっかかりをつかむ 自分にあった英語の学習方法を模索する。

読書

OKR の本では下記の本を読みます。

2024年1月〜3月の目標

概要

2024 年 1 月〜3 月の目標です。

1 月〜3 月の目標

目標は、DevOps を技術とマネジメントの側面から実践できるエンジニアになることです。 1月から3月は SRE・DevOps、Kotlin、英語に注力します。

それぞれ以下の理由です。

  • SRE・DevOps
    • 信頼性観点から、ソフトウェアについて考えられるようになるため。仮説検証には DevOps の考え方を理解し、実践することが早道のため
  • Kotlin
    • 自身が好きな言語であり、保守性の高いコードを書けると考えているので、知識を拡充したいため
  • 英語
    • 技術書や動画といった技術コンテンツが好きだが、英語で作られたものに手を出せていないので、今年は克服したいため

勉強関連

3 ヵ月間の OKR は以下です。

注力分野 Objective(3 ヵ月経過後の目標) Key Result(必要だと考えていること)
SRE・DevOps SRE の考え方を学ぶのはいったん完了とする。スクラムによって仮説検証を回すプロセスを体験する 書籍ベースの SRE の学習にひと区切終える。スクラム開発を実践する。
Kotlin 自身の Kotlin の知識を把握して、新しい知識を拡充する 自身が作成した書籍の更新。公式ドキュメントを読む
英語 英語で技術系のコンテンツをなんとなく読めるようになる 基本的な英語の知識から始めて、3 月には技術系記事に対してやってみる

そのための 1 ヵ月ごとに OKR を具体的に以下のように定めます。

注力分野 Objective(1 ヵ月度ごとの目標) Key Result(具体的な行動予定)
SRE・DevOps 1 月 書籍ベースで、SRE を学ぶ。業務でスクラムを実践してみる 「セキュアで信頼性のあるシステム構築」の勉強会をやる。
2 月 書籍ベースで、SRE を学ぶ。業務でスクラムを実践した結果を振り返る、必要な知識を拡充する 「セキュアで信頼性のあるシステム構築」の勉強会を終える。「データベースリライアビリティエンジニアリング」の勉強会を開始する。
3 月 書籍ベースで、SRE に区切りをつける。業務でスクラムを再度実践する 「データベースリライアビリティエンジニアリング」の勉強会を終える。
Kotlin 1 月 自分が持っている Kotlin の知識を更新する ハンズオンで学ぶサーバーサイド Kotlin」更新のために、SpringDoc を調査して実践する。
2 月 自分が持っている Kotlin の知識を更新する ハンズオンで学ぶサーバーサイド Kotlin」を Spring Boot 3 系に更新する。
3 月 Kotlin の知識を公式ドキュメントから抑える 公式ドキュメントを押さえていく
英語 1 月 英語学習のとっかかりをつかむ 自分にあった英語の学習方法を模索する。
2 月 英語学習を継続している 1 月に模索した勉強法を継続している
3 月 英語の技術ドキュメント・動画で学習してみる 興味がある分野に対して、とりあえず実践してみる

読書

年間の目標と同様に、注力分野に対して最低 1 冊ずつ読み、読書感想文を書きます。 90 分読書法で、5 冊読み、読書メーターに投稿します。

技術記事の作成

この 3 ヵ月では、「ハンズオンで学ぶサーバーサイド Kotlin」を更新します。

まとめ

前月と比較して、身近な内容にしました。 いつも通り最初の 2 ヵ月ぐらいで勘所をつかみ、勉強の解像度を上げていきます。