PSD（Professional Scrum Developer）の受験日記

## 1.はじめに
先日、Scrum.orgが認定するPSDという資格を取得しました。
結構マイナーな資格で、日本語での勉強法などの情報が少ないため、この記事を執筆して情報共有をしたいと考えました。

## 2.PSDってなに？
PSDとは**Professional Scrum Developer**の略でScrum.orgが認定するスクラム資格です。

https://www.scrum.org/assessments/professional-scrum-developer-certification

スクラムの資格を認定している団体としては、以下の３つがメジャーです。
- Scrum.Aliance
- Scrum.Inc
- Scrum.org

Scrum.orgが認定する資格は沢山あり、PSDは名の通り**スクラムの開発者向け知識**に関する資格です。
開発者向け以外にもPSM（スクラムマスターの知識）、PSO（プロダクトオーナーの知識）などがあり、変わったものではPSF（ファシリテータの知識）やPSPBM（プロダクトバックログ管理の知識）などもあります。


## 3.Scrum.orgをおススメする理由
日本ではScrum.orgよりは、その他２団体の資格を取得している人が多い印象です。
その理由としては以下の２点と予想しています。
- Scrum.orgは英語での試験となる
- その他２団体はトレーニング用の講習とセット

上記だけ見るとその他２団体の方が良いように思えますが、私は以下の理由からScrum.orgの資格をおススメしています。
- **資格に有効期限がない**（個人でも資格を維持しやすい）
- 受験費用が安い
    - 入門資格なら２万円程度で受験できます
    - **他２団体は講習がセットとなるため数十万程度の費用が発生する**
- 試験は英語だが**日本語翻訳して受験できる**（筆者も英語は全くできません。。）

現在勤めている企業が数十万する必要を負担してくれる場合は問題ないですが、それが厳しく資格の維持費も安くしたい人にはScrum.orgの資格をおススメします。

## 4.出題範囲
アジャイルの基礎的な知識に加えて、アジャイルと親和性の高い開発よりのプラクティスに関する知識が求められます。
後者は一般的な知識でもあるので、アジャイル経験のない人でも知ってる人は多いと思います。

ざっくりとは以下のような内容となります。
### スクラムの基礎知識
- 経験主義
    - 透明性、検査、適応とは？
- 価値基準
    - 確約、集中、公開、尊敬、勇気とは？
- チームでの役割
    - PO、SM、開発者それぞれの役割とは？
        - 良く出題される問題としては、「Xについて責任を持つ役割は何か」みないなものが多いです。
        - 誤った回答の選択肢として「テスター」や「品質保証担当」などスクラムに存在しない役割の人が出てくるパターンが多いです。
        - どの役割が何の進捗に責任を持つのかなども出題されます。
        - 推奨人数は？
- イベント
    - スプリント、スプリント計画、デイリースクラム、スプリントレビュー、レトロスペクティブ
        - 各イベントでは何をするのか？
        - 各イベントのタイムボックスは何か？
        - スプリントの長さはどう決めるのか？
        - バックログリファイメントはイベントとしては定義されていませんが、いつ・誰が・何をするのかは問題として出題されるので覚えておきましょう。
- 完了の定義とは？
    - 誰が定義するのか？どのような内容が効果的か？なども問題が多いです。
- ドキュメント
    - 役割として誰が責任を持つのか？
    - 完了の定義に含めるのか？
- 複数スクラムチームの運用
    - プロダクトバックログは分けるべきか？
    - POはチームごとに必要か？

### スクラムの開発知識
- コーディングの原則
    - DAY、KISS、YAGNI、SOLID原則とは何か？
    - 命名規則はなぜ定めるのか？
- テスト
    - 単体テスト、結合テスト、機能テスト、パフォーマンステスト、探索型テスト、アドホックテスト
        - それぞの違いは？
    - 自動テストハーネス
        - 自動化できるテストは何か？
        - テストクラスの作成時の留意点は？（小さく・高速になど）
        - メリットは何か？
        - コードカバレッジとは何か？
        - モックやスタブとは？
- 開発手法
    - TFD、TDD、ATDD、BDD
        - それぞれどのような手法か？
        - それぞれのメリットは何か？
        - BDDなどは少しややこしいので、各手法のポイントをおさえていれば十分だと思います。
- アーキテクチャ
    - スクラムではアーキテクチャはどのように扱われる？
    - 創発的アーキテクチャとは？
- CI/CD
    - CI・CDそれぞれどのような考え方のものか？
    - そのようなメリットがあるのか？
    - 自動ビルドはどのタイミングで実行されるべきか？
- バグレポート
    - 優れたレポートはどのような情報が含まれているのか？
- DevOps
    - どのようなプラクティスなのか？
- 技術的負債
    - スクラムにおける技術的負債とはなにか？


出題形式は選択式（１つ or 複数 or 正しい・誤り）なので、各用語のつづりまで厳密に覚える必要はありません。


## 5.学習方法
日本語の参考書は無いと思うので、以下の勉強法が効率的かと思います。

- [スクラムガイド](https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Japanese.pdf)を熟読
- Scrum.org公式の模擬テストを実施
    - [ScrumOpen](https://www.scrum.org/open-assessments/scrum-open)
    - [ScrumDeveloperOpen](https://www.scrum.org/open-assessments/scrum-developer-open)
- Udemyの模擬テスト（数回分）を実施

基本的には、初めにスクラムガイドを読んだ後、後はひたすら模擬テストをして間違った箇所を学習するというサイクルを回せば大丈夫です。
合格は85%以上とそれなりの難易度なので、模擬試験で安定して90%以上の正答率となれば合格の可能性が高いと思います。

## 6.補足事項
- 試験はオンラインでいつでも受験できます
    - 時間帯なども決まっておらず、自分の好きなタイミングで受験できます。
- 英語の日本語翻訳は違和感大
    - ブラウザで英語を日本語翻訳した際、かなり違和感のある文章となる事が多い
    - 適宜、英語の文章も確認した方が良い
    - 模擬試験を実施しまくれば慣れる


## 7.最後に
日本でもアジャイルは有名ですが、実務でアジャイル経験のある人は少ないと思います。
正しい知識が身につけば、皆さん自身でアジャイルの提案なども行えると思いますので、是非ともスクラム関連の資格を取得して、アジャイルでの価値提供も手札として加えて下さい。