この記事はディップ Advent Calendar 2023の21日目の投稿です。
はじめに
こんにちは。ディップ株式会社に今年新卒入社して、今はAndroidアプリエンジニアをやってる氏家拓海と申します。
今年の5月にスクラムの資格であるProfessional Scrum Masterを取得しました。
今回はその経緯についてお話ししたいと思います。
スクラムってなんぞや
まずスクラムについて解説します。スクラムとは、アジャイル開発のフレームワークの一つです。
ソフトウェア開発は主に2つの開発手法に分けられます。
それがウォーターフォール開発とアジャイル開発です。
ウォーターフォール
ウォーターフォールはイメージしやすい一般的な開発手法で、下記の図のように、設計、開発、テスト、リリースといった流れです。
アジャイル開発
それに対してアジャイルは、ウォーターフォールの開発の一連の流れを、短いサイクルで回しながら進めていきます。
アジャイル開発は2001年に「アジャイルソフトウェア開発宣言」が出されて以降、広く知られるようになりましたが、近年は特に注目を集めています。
アジャイルの強みは、ユーザーに速く価値を届けられることで、時代の変化にプロダクトを対応させやすいということです。
例えば、今年はChatGPTを登場を筆頭に、AIの活用が時代の節目を迎えていると感じます。AIが注目され始めたのもずいぶん昔のことだと思いますが、あそこまで自然な解答を会話形式で得られる時代が急に訪れるのは、誰にでも予想できたものではないでしょう。
といったように、市場を取り巻く状況は急に変わります。
どんどん変わります。ぐんぐん変わります。
どんな需要が生まれてどんな需要がなくなるか予想しにくい現代では、速く世に出してユーザーのフィードバックを得ることが大事だと感じます。
スクラムはそんなアジャイル開発のフレームワークの一つです。
アジャイル開発にはいくつかフレームワークがあります。代表的なものは以下のものです。
- スクラム
- カンバン
- XP(エクストリームプログラミング)
この中でも、特に採用率が高いのがスクラムです。
スクラムには3つのロールと5つのイベントがあります。
簡単に図にするとこんな感じです。
詳細な説明をしようとすると長くなるので省きますが、
なんとなく役割や流れがある程度決まっているんだなーってことは伝わるかなと思います。
これは個人的な考えですが、スクラムはスプリントの概念がアジャイル開発を体感的に掴みやすいのと、進め方や役割がある程度決まっていることから共通認識を持ちやすいんだと思います。
実際に現場で使われる時はアジャイルのフレームワークの比較は特にされず、アジャイルといえばスクラムくらいの気持ちで採用されてると思いますが。
スクラムの資格を取ろうと思った経緯
弊社では入社後の新卒研修で、チーム開発を実践しました。開発の手法や進め方についてはかなり自由になっていて、学生時代にスクラムで開発をした経験がある私は、これを機会にスクラムマスターをやってみたいと考えました。
しかし私が学生時代に実践していたスクラムの知識は、かなりまばらで良い加減なものでした。
スプリントごとに区切って開発をすること、スクラムマスターはスクラムの管理を、プロダクトオーナーはプロダクトの管理を、開発者は開発をする。
そこらへんは基本は覚えていましたが、当時の曖昧な記憶を頼りに自分がスクラムマスターをやるのは、さすがに無責任だなと思い、勉強を始めました。
まず、SCRUM BOOT CAMP THE BOOKを買って読みました。大学生の私がスクラムを始めた時、最初に読んでスクラムに興味を持ったきっかけでもあります。
この本は文章と漫画でスクラムについて解説している本で、細かい実践を省いている代わりにわかりやすいです。スクラムの目的や基本的な概念、進め方を一読してわかった気になれます。
2年くらい読んでなかったので、久しぶりにワンピース全巻を読み直すような気持ちで楽しく読みました。
しかし1冊本を読んだだけでは、スクラムマスターとしてスクラムを提案し、軌道に乗せる自信はありませんでした。
そこで考えたのが、資格を取るという勉強のやり方です。
まず、資格なら「なんとなくわかった気」になっても取れないので、少なくとも合格ラインまで問題を解けるようになる必要があります。
また、資格を取ったというアピールにもなります。「スクラムの勉強をした」「スクラムの書籍を読んだ」これは例えば1冊本をななめ読みしただけでも同じことが言えますが、資格を取得することでスクラムの最低限の知識が担保されることになります。
私はそういう狙いで、スクラムの資格を取ることにしました。
スクラムの資格の種類
スクラムにはいくつか有名な資格があります。
- Certified ScrumMaster
- Professional Scrum Master
- Registered Scrum Master
スクラムマスターの資格で有名なものを3つ挙げてみました。
私が取ることにしたのは、Professional Scrum Masterの資格です。
理由はいたってシンプルで、値段が安いからです。
他の2つの資格は、資格取得にあたって研修を受ける必要があります。この研修が高く、20〜30万以上の値段がかかります。新卒1年目でこの値段を払うのはお財布に厳しいわけです。
それに対して、PSMは研修が必須ではないため、資格取得のために必要な金額は200ドル(3万円くらい)なので、なんとか手が届く金額でした。
そういうわけでPSMを選びます。
PSM(Professinal Scrum Master)について
Scrum.orgが提供している認定スクラムマスターの資格です。
3つのレベルがあり、私が受けたのはProfessional Scrum Master Iです。
簡単に概要だけご紹介したいと思います
形式:オンライン
問題形式:選択問題、複数回答、正誤問題
問題数:80問
合格:85点以上
時間:60分間
永久認定・年間更新料不要
一度取得すれば、その後の更新が必要ないのも嬉しいですね
勉強方法
前提として、Scrum Boot Camp The Bookを読了して、
スクラムの基本的な概念、スクラムイベント、スクラムの5つの役割などについては押さえているものとします。
基本的に、ひたすらUdemyの問題集を解きます。
こちらがおすすめのUdemyの問題集です。問題はたっぷり80問×4回セット!
値段がセール時に1500円くらいですので、コスパも良くお手頃価格です。
とりあえず問題を解いていき、間違えた箇所をスクラムガイドを読みながらメモしていきます。
合格点が85点なので、90点以上を安定して取れるようになれば本番での合格が見えてきます。
結果
結果は…
91点(合格ライン85点)で合格しましたー!!
いやーちょっと危なかったですね。100点に近い点数で合格したかったんですが、いやいや、意外と難しいんですよ。
というわけで、どこらへんが難しい問題だったのかをご紹介したいと思います。
めっちゃ間違えた問題
よかったら、読みながら答えはどれか考えてみてください。
チームに6人の開発者がいて、スプリントの長さが2週間の場合、スプリントレビューの通常のタイムボックス化された期間はどれくらいですか?
- 2時間
- 4時間
- 8時間
- 3時間
はい、答えは・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
1番の2時間です
こういう問題も出ます。
スクラムガイドには1ヶ月あたりのスクラムイベントのタイムボックスが記載されているので、その時間さえ覚えておけば、単純な割り算で計算することができます(デイリースクラムは除く)。
スクラムイベント | 1ヶ月あたりのタイムボックス |
---|---|
スプリントプランニング | 最大8時間 |
デイリースクラム | 15分固定 |
スプリントレビュー | 最大4時間 |
スプリントレトロスペクティブ | 最大3時間 |
ちなみに私はどれがどれがよくわからなくなったので繰り返し間違えました。
本来は暗記するものではないので忘れてしまうのです。
続いて紹介する問題がこちら
スプリント中に変更すべきではないものは次のうちどれですか?
- プロダクトバックログ
- 最低限の品質レベル
- スプリントバックログ
- 完成の定義
はい、答えは・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
2番の最低限の品質レベルです
これは難問なんじゃないでしょうか。パッと答えられる人は、スクラムに慣れている人かと思います。
間違いから解説していきます。
まず1つ目。プロダクトバックログはスプリント中に変えていいのか?変えていいんです。
プロダクトバックログはいつでも変更される可能性があります。
スクラムガイドには、以下のように記載されています。
スプリントでは、プロダクトバックログを必要に応じてリファインメントする。
3つ目。スプリントバックログもスプリント中に変えてOKです。
スクラムガイドにいくつか根拠があります。
スプリントバックログには、スプリントゴールを達成するために開発者がスプリントで⾏う作業がリアルタイムに反映される。
デイリースクラムの⽬的は、計画された今後の作業を調整しながら、スプリントゴールに対する進捗を検査し、必要に応じてスプリントバックログを適応させることである。
上記の通り、スプリントバックログは主にデイリースクラムの中で検査され、必要に応じて変更されていくのを前提としています。
4つ目。完成の定義は変更されることがあります。この辺はちょっとややこしいです。まず、スクラムガイドに「完成の定義を変更してはいけない」といった記載はありません。
完成の定義とは、すべてのプロダクトバックログアイテムに対して共通して適用されるもので、コードレビューやテストの実行範囲、ドキュメントなどが挙げられます。
完成の定義はチームの成熟度や進行に応じて変更していくものなので、スプリント中での変更が必要となる場面も考えられます。
最後に、正解の選択肢2番の解説をします。
最低限の品質レベルは、スプリント中に変えてはいけないことがスクラムガイドで明記されています。
スプリントでは、スプリントゴールの達成を危険にさらすような変更はしない。品質を低下させない。プロダクトバックログを必要に応じてリファインメントする。学習が進むにつれてスコープが明確化され、プロダクトオーナーとの再交渉が必要になる場合がある。
品質基準がもれた状態だと、次回以降でバグや保守性に欠けたコードを修正する手戻りが発生し、進捗を妨げる原因になることがあります。
いかがでしょうか?
どの問題も、基本的にスクラムガイドを参照すれば根拠を拾うことができます。
でも、実はさっき挙げた2つ目の問題は最後に間違えた問題で、当時は調べてもよくわからなかったので面倒臭くて放置していました。
今記事を書き始めて、スクラムガイドやアジャイルコーチの記事を参照して、やっと理解できたと思います。やはりスクラムでわからないことがあった時、基本的にスクラムガイドを参照するべきなんですよね。実感します。
間違えた問題を理解しながら繰り返し問題を解いていけば、3、4週目あたりで90点台には到達できると思います。
ちなみに私は、最初やった時の正答率が57%でした。うーん、難しい
取ってみての感想
意外と時間がかかりました。1週間くらいでサクっと取得するくらいの気持ちでいたんですが、結果として3週間近くスクラムの勉強をしてから、なんとか合格できました。
最初に受けた模擬試験で57%しか正当できず、スクラムの経験があっても知識レベルやスクラムへの理解はこの程度なんだな…とショックを受けたのを覚えています。
この記事を読んでくださっている人の中にも、スクラムで開発しているという人がいらっしゃると思います。
ぜひPSMを受験してみることをオススメします。学び直しになりますし、新しい発見もあって楽しいです。