筆者自身が読了し、ビジネス上で幅広い方達にきっと役に立つと思った書籍を紹介したいと思います。
今回ご紹介する書籍はこちらです。
SCRUM BOOT CAMP THE BOOK スクラムチームではじめるアジャイル開発
現在Webやアプリを含めたソフトウェア開発のプロジェクトに従事されている方向けになります。
筆者もこれまでWebやアプリの開発に多く携わってきましたが、ほとんどウォーターフォール型の開発手法を採用していました。
ただ現職のアプリ開発のプロジェクトにて、昨年からこのアジャイル開発を取り入れることになったため読んだ1冊になります。
書籍の内容はとある会社でスクラムチームを組んで、アジャイル開発に挑戦することになった「ボク」が主役となってストーリー形式で話が進んでいきます。
セクション毎に漫画が差し込んであったり、「スクラムチームとは何か?」から入っていくので、アジャイル開発未経験の方でもとても読みやすい作りになっています。
ポイントを説明していきます。
Contents
アジャイル開発とは
・関係者は目的の達成のためにお互いに協力し合いながら進める
・一度にまとめてではなく少しずつ作り、早い段階から実際に動作するものを届け続けて評価を繰り返す
・利用者の反応や関係者からのフィードバックを継続的に得ながら、作っているもの自体や計画を調整する
上記が「アジャイル開発」と呼ばれているやり方の基本です。
従来のウォーターフォール型の開発では、あらかじめ全ての要件を決め、それを作るにはどれくらいの期間・工数がかかるか見積もって開発を始めます。
一方、アジャイル開発では「事前に全てを正確に予測し、計画することはできない」ことを前提に考えられた開発手法です。
この考え方から、どのくらいの期間や人数で仕事をするかを決めて、その範囲の中で大事な要件から順に開発を進めていきます。
従来の開発でよく起きがちな「仕様が途中で変わった」「想定よりも多く工数がかかってしまった(見積もりが甘かった)」などを防ぐために、あらかじめ期間と人数を決めて、その中で重要なものだけにスコープを当てて開発をしようというのがアジャイル開発の基本的な考えです。
スクラムって何?
・要求を価値やリスクや必要性を基準にして並べ替えて、その順にプロダクトを作ることで成果を最大化します。
・スクラムでは固定の短い期間に区切って作業を進めます。固定の時間のことをタイムボックスと呼びます。
・現在の状況や問題点を明らかにします。これを透明性と呼びます。
・定期的に進捗状況や作っているプロダクトで期待されている成果を得られるのか、仕事の進め方に問題がないかどうかを確認します。これを検査と呼びます。
・やり方に問題があったり、もっとうまくできる方法があったりすれば、やり方そのものを変えます。これを適応と呼びます。
上記がスクラムの基本的な考え方です。
前述したように「優先順位を決めて」、「短い期間で」、「決められた人数で」開発を行い、「定期的にその振り返りを行う」ことでチームの成果をあげていくという形です。
ロール(役割)
スクラムチームには下記の3つの役割が存在します。
◆プロダクトオーナー
・プロダクトのWhatを担当
・プロダクトの価値を最大化する
・プロダクトの責任者(結果責任)で、プロダクトに1人必ず必要
・開発チームに相談できるが干渉はできない
・ステークホルダーとの協業
ステークホルダーと協業しながら、プロダクトの目的やビジョンを明確にし、全体のスケジュール管理をする人ですね。
私も現在参画しているプロジェクトではこのロールを担当しています。
◆スクラムマスター
・フレームワーク・仕組みがうまくまわるようにする
・妨害の排除
・支援と奉仕
・教育、ファシリテーター、コーチ、推進役
・マネージャーや管理職ではない
・タスクのアサインも進捗管理もしない
スクラムマスターはスクラムチームでは欠かせない存在です。
スクラムのルールや進め方を開発チームに理解させ、効果的に開発を進めていく支援を行う人です。
時には本来の開発に支障が出ないように、外部からの割り込みなどを排除することもあります。
◆開発チーム
・プロダクトのHowを担当
・モノを作る
・3人〜9人が適切な規模
・全員揃えばプロダクトを作る能力が揃う
・肩書やサブチームはなし
実際開発を行うメンバーですね。
Web開発であればサーバー、フロント、アプリ開発であればiOSエンジニアにAndroidエンジニアと各役割毎のメンバーがアサインされ、基本的にこのチームのみでプロダクトの開発を進められる形になります。
スプリント
アジャイル開発は前述した通り、決められた期間を設けて、その中で優先順位を決めて開発を行っていきます。
この期間のことを「スプリント」と呼び、この期間は最長1ヶ月までの期間で区切ります。
※私の現職のプロジェクトでは2週間で区切っています。
このスプリントが終了するタイミングで「スプリントレビュー」を行い、タスクの消化具合を確認し、次回のスプリントのスコープを改めて決めていきます。
またスプリント期間中は毎日「デイリースクラム」という時間を設けて、スクラムチーム全員で進捗の確認を行います。
まとめ
アジャイル開発は慣れていないメンバー同士だと、最初は導入するのに結構ハードルが高いと思います。
自分のプロジェクトも当初は慣れていないメンバーが多かったので、それなりにまわるまでは結構時間を要しました。
おすすめはスクラムチームとして参画する予定のメンバーで勉強会を行うことをおすすめします。
筆者の現在のプロジェクトチームも、実際導入する前に全員で勉強会を行いました。
全員の理解を深めてから行うことで、何もなく始めるよりもスムーズに入っていけたと思います。
あとは最初からガチガチにやろうとしないことです。
最初は流れを掴むくらいにして、実際の成果との結びつきにそんなに固執しなくても良いと思います。
スプリントを重ねていき、改善を進めていけば自ずと成果に繋がっていきます。
まさにそれこそがアジャイル開発の基本ともいえる形だと思います。
これから自身が携わるプロジェクトでアジャイル開発を導入しようと考えている方はぜひこの本で基本をマスターしてもらえればと思います!