msksgm’s blog

msksgm’s blog

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

2023年3月の振り返り

概要

2023 年 3 月の振り返りです。

今月は以下を目標にしていました。

msksgm.hatenablog.com

勉強概要

今月は下表のように勉強していました。 合計で約 161 時間でした。 JaSST に参加したり、連休を作ったりして勉強時間を長めに取れました。

項目 1 週目(3/1~3/5) 2 週目 3 週目 4 週目 5 週目(3/27~3/31)
平日朝の勉強時間 約 10 時間(24 ポモドーロ) 約 15 時間(36 ポモドーロ) 約 15 時間(36 ポモドーロ) 約 10 時間(24 ポモドーロ) 約 10.4 時間(25 ポモドーロ)
平日夕方の勉強時間 約 0.417 時間(1 ポモドーロ) 0 時間 約 0.833 時間(2 ポモドーロ) 0 時間 約 0.417 時間(1 ポモドーロ)
休日の勉強時間 約 12.1 時間(29 ポモドーロ) 約 11.7 時間(28 ポモドーロ) 約 10.0 時間(24 ポモドーロ) 約 25.4 時間(61 ポモドーロ) + 3 時間 0 時間
Kotlin+Spring Boot 勉強会 約 2 時間 約 5 時間 約 3.5 時間 約 6 時間 約 2 時間
単体テストの考え方/使い方」/「ソフトウェアテスト技法ドリル」勉強会 1.5 時間 1.5 時間 0 時間 0 時間 0 時間
そのほかの勉強会 0 時間 約 13 時間 0 時間 約 1.5 時間 約 1 時間
合計 約 26.0 時間 約 46.2 時間 約 29.3 時間 約 45.9 時間 約 13.8 時間

3 月の OKR 結果

2023年1月〜3月の目標に記述した OKR 目標は CI/CD とテストです。 具体的には下表の通りになります。

注力分野 Objective(3 ヵ月経過後の目標) Key Result(必要だと考えていること)
CI/CD CI/CD の実践や構築に対して恐れがない状態 CI/CD の概念とツール、シェルスクリプトの知識
テスト 品質観点のテスト知識を持ち、テスト計画が立てられる状態。 ソフトウェアテストの基礎知識、テスト技法、品質、ツールの知識

3 月は 2 月の OKR も踏まえ、以下の通りに落とし込んでいました。

注力分野 Objective(1 ヵ月度ごとの目標) Key Result(具体的な行動予定)
CI/CD 実務で使われている CI/CD についてまとめる 業務の CI/CD について設計書やドキュメントにまとめる。業務のリポジトリに新しい CI を組み込む。アウトプットとインプットのバランスを意識しながら、シェルスクリプトを学ぶ
テスト 規格としてのソフトウェアテストを学ぶ JSTQB の勉強をする。JaSST に参加する。「単体テストの考え方/使い方」の勉強会を実施する。業務のテストドキュメントを意識して改善する。

それぞれの注力分野に対する結果は以下です。

注力分野 達成度(100 点満点) Key Result(行動結果)
CI/CD 65 点 業務の CI/CD について設計書やドキュメントについてまとめられなかった。業務のリポジトリに新しい CI を組み込めなかった。シェルスクリプトについて学び、業務で活かせる機会はあったが、CI/CD にまで活用できていない
テスト 80 点 JaSST'23 Tokyo に参加した。「単体テストの考え方/使い方」の勉強会を終えた。業務において設計時点でテスト設計について考えたり、案件ごとにインセプションデッキを作成したりと、シフトレフトを実践できた

注力分野の振り返り

CI/CD

65 点の理由は下記の 2 つです。1 つ目はポジティブな振り返りですが、 2 つ目はネガティブな振り返りです。順番に詳細を説明します。

  • シェルスクリプトについて一次ソースから学び、業務効率の向上ができた
  • 業務の CI/CD についてまとめられず、設計書やドキュメントにまとめられなかった

今月は CI/CD の知見を高めるために、シェルスクリプトの勉強を主にしていました。 勉強方法としては、日本語化した man コマンド、公式ドキュメント、シェルスクリプトの書籍が挙げられます。 結果、scrap に grepsed についてオプションや使い方についてまとめました。

zenn.dev

zenn.dev

普段使っているコマンドをあらためて学習したうえで実感して、以下の 2 点あります。

  • man コマンドや GNU の公式チュートリアルは十分すぎる説明が書いてあって、意外と学習ハードルが低かった
  • 膨大なオプションを前に勉強を躊躇していたが、蓋を開けてみると明確な意図があり、覚えるべきことと覚えなくてよいことを意識しながら勉強できた

1 つ目にいたった経緯は 2 つあります。 まず、「マスタリング Linux シェルスクリプト第 2 版」で、man コマンドの日本語化について触れられていたからです。 man コマンドの存在は知っていても英語のため利用する機会はほとんどありませんでした。 日本語化すればハードルが低くなりそうだったので日本語化しました。 そのため、今回学習するときにシェルスクリプトを man コマンドから学ぼうという意識が高まり、実践できました。 続いて、GNU の公式チュートリアルは調べている際に発見したものです。 内容は非常に長いため、全部読み切ることは到底できていませんが、説明の段取りや温度感がわかりやすく、学習ソースとして非常に役立ちました。
2 つ目にいたった経緯は、1 つ目の勉強方法に関連しています。 ネットで検索してもオプションが箇条書きでユースケースがわからず、勉強を中断することが多かったです。 しかし、シェルスクリプトは一次ソースに説明されている概念から触れることで、用途やユースケースと使い方を関連付けながら学ぶことができました。

CI/CD に限らずシェルスクリプトを活用できる場面が実務でありました。 今までは手作業で記載していた部分をワンライナーで実践できたため、業務効率の向上に寄与できました。

しかし、CI/CD そのもに対しては、あまりうまくいきませんでした。 既存の CI/CD について設計書やドキュメントにまとめられず、新しい CI も組み込めなかったことが原因です。 前者に関しては現状 CI/CD に対する業務的な優先度が低いからです。 後者も同様で CI を利用して解決したいことの優先度が高くなかったため回しになってしまいました。 よくあり、業務における解決すべき課題よりも、やりたいことが専攻するとうまくいかなかった例になりました。 CI/CD は自分のものだけではないので、業務に導入するには若干ハードルが高い部分を実感しました。 対策としては、引き続きシェルスクリプトの勉強をしつつ、個人のリポジトリで CI/CD を実践していきます。

テスト

85 点 の理由は、JaSST'23 Tokyo に参加したこと、「単体テストの考え方/使い方」の勉強会を終えたこと、シフトレフトを実践できたことです。 順番に説明していきます。

JaSST'23 Tokyo に参加し、感想を書きました。 参加することで、ソフトウェア関連について広く知れたほかに自分の興味がある分野もなんとなく理解してきました。 同様に知識不足な部分も多かったので、よりソフトウェアテストの勉強を進めていきます。 JaSST つながりで JaSST nano vol.22 に参加しました。 紹介している事例が身近でわかりやすかったです。 自分も発表してみたいと思いました。

他には、「単体テストの考え方/使い方」の勉強を終えました。 全体的に自分が考えていたことが言語化されており、本書の言葉を使えばチーム内でも合意が取れそうだと思いました。 まだ、具体的な計画にはなっていませんが、チームの勉強会を実施する予定です。

業務においては、品質観点から業務を考えるために 3 つのアクティビティを実施しました。
1 つ目は、2 月から実践していた、チームの品質について考え定義できたことです。 2 ヵ月ほどかかってしまいましたが、やりきれてよかったです。
2 つ目は、インセプションデッキの導入です。 「プロダクトマネジメントのすべて」の記載されていた 10 個の質問を、プロジェクト毎に実践することを提案しました。 すべてを実践するわけではなく、チームと該当プロジェクトに合わせて必要な質問だけ残して実践しています。 あらためて話してみると案件以上に本質な部分が見えてきました。 以前よりも対話の機会を増やしたつもりでしたが、インセプションデッキを元に議論すると、まだまだ対話が足りないことを知りました。
3 つ目は、設計段階からテスト設計について考えられるようになったことです。 W 字モデルの考え方を取り入れて基本設計と詳細設計の時点で統合テストとユニットテストについて話すようにしました。 開発観点から洗い出すことで、仕様へ理解を深め、コーディング時にはテスト駆動開発が実践できました。
全体を通して、シフトレフトの考え方を実践でき、チームの開発プロセスに組み込まれてきた実感があります。

他に JSTQB の勉強をしています。 一通りシラバスを読み切り、演習問題を解きつつ、記憶があいまいな部分を読み返しています。 意識できていなかった部分や、チームに適用できそうな部分を理解できてきました。 すべてをそのまま適用できませんが、先述したような適用できそうな部分から適用していきます。 4 月の 1 週目に受験します。

今月を通して、全体的にソフトウェアテストの知識を得られて、品質面でも実践できることが多かったので満足できました。 課題としては、ソフトウェアテストの知識はまだまだ浅いこと、品質面の考え方が開発プロセスとして定着しきれていないことです。 来月も、ソフトウェアテストの知識を拡充しつつ、業務の開発プロセスに組み込むことを継続します。

4 月の OKR

1 月に OKR を計画してから 3 ヵ月経過しましたので、1〜3月の OKR の振り返りおよび4〜6月の目標で再設定します。

読書

OKR の書籍

OKR として下記の本を読むことを掲げていました。

ソフトウェアテスト教科書 JSTQB Foundation 第 4 版 シラバス 2018 対応

JSTQB 受験のために読んでいました。 今月で一通り読みました。 JSTQB の受験を終えたら、感想を書きます。

単体テストの考え方/使い方

勉強会の課題図書でした。 非常に良かったです。 まだ確定していませんが、社内でも勉強会を実施予定です。

msksgm.hatenablog.com

ソフトウェアテスト技法ドリル【第 2 版】

勉強会の課題図書でしたが、3 月は勉強会がペンディングしたため、いったん放置しています。

プロダクトマネジメントのすべて

プロダクト志向で品質について考える機会が増えたので、読みました。

msksgm.hatenablog.com

その他

JaSST'23 Tokyo

今月は JaSST'23 Tokyo に参加しました。 大きなシンポジウムがあるのはコミュニティがしっかりしていて助かります。

www.jasst.jp

感想も書きました。

msksgm.hatenablog.com

JaSST つながりで JaSST nano vol.22 に参加しました。 紹介している事例が身近でわかりやすかったです。

jasst-nano.connpass.com

JaSST nano で紹介されていた、「QA Career Talk vol.3」にも参加しました。

reiwatravel.connpass.com

技術記事の作成

zenn で技術同人誌「ハンズオンで学ぶサーバーサイド Kotlin」が完成しました。 Kotlin の入門的な内容から始まり、Either 型によるエラーハンドリングを用いた Web API の作成方法まで解説しています。 非常に時間がかかりましたが、なんとか終わらせられて良かったです。 いったん完成ですが、まだまだ推敲していきたいです。 Like いただけるとうれしいです。

zenn.dev

3 月の振り返りまとめ

今月は先日とは対照的にソフトウェアテストについて注力して、CI/CD にあまり注力できませんでした。 ソフトウェアテストに関しては JaSST'23 Tokyo があったため考える機会に恵まれ、業務でも実践する機会が多かったからです。 CI/CD はソフトウェアテストに注力していたのと、ソフトウェアテストと比較して、業務に対して個人ができる範囲を決められずでうまくいきませんでした。 そのため、今後はソフトウェアテストと CI/CD のできたことの評価軸を分けたほうが良さそうに思えました。 ソフトウェアテストは業務でコミットできたことや得られた知見を軸にして、CI/CD は個人レベルで知見を得られたものやまとめられたものを評価した方が良さそうに思えました。 OKR の目標が業務へのコミット指向に偏重気味でしたし指標の 1 つとして間違えていると考えていませんが、もう少し目標と実際にできることの解像度を上げた方が良さそうに思えました。 今回はあまり馴染みのない分野だったので再設定するときに意識して決めます。

2023 年が開始してから 3 ヵ月が経過しました。 3 ヵ月は OKR 目標の 1 区切りとなっているので、3 ヵ月の振り返り記事を作成します。 また、4 月には社会人 3 年目になります。 この 2 年間で仕事においていろいろなことができたりできなかったりとありました。 「とりあえず 3 年」という言葉通り 3 年目は仕事の今後を見極める 1 年間になることを確信しています。 自分の技術的関心事について拡充しつつ、業務においてできることできないことを整理して考えていきます。