スクラム開発の全体像
アジャイル開発が重要な理由
昨今では開発に限らず「アジャイル」という言葉をよく耳にしますね!アジャイルはagile=素早くを意味する言葉ですが、なぜ開発現場で重要とされているのでしょうか?
アジャイル開発が必要な理由は、現代のビジネス環境での迅速な市場対応、顧客満足度の向上、リスク管理、そしてチームの生産性向上にあります。
例えば新しいスマートフォンアプリの開発では、短いスプリントでのリリースを繰り返すことで、ユーザーの期待に応える頻繁なアップデートが可能です。また、オンラインショッピングサイトでは、顧客からのフィードバックを迅速に反映し使い勝手の改善や新機能の追加を行うことで顧客満足度が向上します。金融ソフトウェアの開発においても、スプリントと呼ばれる短い期間ごとに成果物をリリースすることで、早期に不具合を発見・修正し、重大なリスクを回避できます。さらにデイリースクラムで進捗を共有し、問題解決のために協力することでチーム全体の生産性向上を狙います。
このようにアジャイル開発は現代の変化の激しいビジネス環境で成功するために重要な手法であり、進化の早いIT業界で重要視されている考えの一つと言えます。
アジャイル開発とスクラム開発の位置づけ
これまで説明してきたアジャイル開発の具体的な方法としてメジャーなものがスクラム開発になります。スクラム以外によく言われるのがXP(エクストリームプログラミング)、リーン開発などがあります。
スクラム開発の概要を下図に示します。スクラム開発ではイベントと呼ばれるプロセスが定義されており(下図の1~4)、これをスプリントと呼ばれる単位で繰り返し実施しながらプロダクトの開発をしていくスタイルです。
富士通, スクラムのプロセス概要
XPのサイクルは下図のようなイテレーションを含む開発になります。しかし、XPで重要なのは開発プロセスではなく、プロセスの中で実施されるプラクティスにあります。そのためスクラム開発(開発プロセスメイン)と相性がよく、スクラム開発を開発全体のフレームとして、具体的なやり方をXPで導入するパターンが多いと感じます。
富士通, XPのプロセス概要
スクラムガイド
スクラム開発の基礎を学ぶ上で、原点ともいうべき著書があります。それがスクラムガイドと呼ばれるPDFドキュメントで、数年おきに更新がなされ英語や日本語のほか様々な言語に翻訳されて公開されています。
スクラムの基本をしっかり押さえるにはやはりスクラムガイドをチェックした方がいいかなと思います。スクラムガイドは何年かおきに更新されているスクラムの無料ガイドであり、マインドセット・価値観に加えて役割、イベント、成果物が定義されています。一方、世の中の名著はこのスクラムガイドをベースに、現場で得られたノウハウを上手に体系化・具体化してあります。そう考えるとスクラムガイドは憲法で、名著はその憲法に従って体系化された法律のようにも感じますね!
その中に定義されている重要な用語を抜粋すると下記になります。本記事では詳細な中身に触れませんが、現実的には役割、イベント、成果物の定義をしっかり理解することでプロジェクトを円滑に進めることができます。
- 3つの柱
透明性、検査、適応 - 5つの価値基準
確約、集中、公開、尊敬、勇気 - 3つの役割
開発者、プロダクトオーナー、スクラムマスター - 5つのイベント
スプリント、スプリントプランニング、デイリースクラム、スプリントレビュー、レトロスペクティブ - 3つの成果物
プロダクトバックログ、スプリントバックログ、インクリメント
ここで抑えて頂きたいことはスクラムの概念は限られた用語が成り立っているということです。その分プロジェクトに応じていろいろと考えることがありますので次の章ではそのポイントについて解説します。
スクラム開発導入のポイント
スクラムは「軽量級フレームワーク」であることを理解する
スクラムガイドにはスクラムの定義が下記の通り書かれています。
スクラムとは、複雑な問題に対応する適応型のソリューションを通じて、⼈々、チーム、組織が価値を⽣み出すための軽量級フレームワークである。
(中略)
スクラムフレームワークは意図的に不完全なものであり、スクラムの理論を実現するために必要な部分のみが定義されている。スクラムは実践する⼈たちの集合知で構築されている。スクラムのルールは詳細な指⽰を提供するものではなく、実践者の関係性や相互作⽤をガイドするものである。
Ken Schwaber & Jeff Sutherland, スクラムガイド P4
ここで重要なのはスクラムは軽量級フレームワークということです。つまりスクラムはあくまで骨組みを整理してあるだけで、具体的な進め方はそれぞれのプロジェクトごと決める必要があります。
自由度が高い故、自分たちで自分たちのプロジェクトをどうするかを決めていく必要がある。個人的にはここがとても難しいところだと感じます。巷には様々なプラクティスがあり何を導入すればいいか迷うかもしれません。ですが、まよったら様々なノウハウをどんどん取り入れて見ることをおススメします!
「やるやらない」を考える
正直スクラムガイドだけでは具体的なアクションが見えづらく、多くのプロジェクトでは書籍等に書かれているような具体的なプラクティスを導入していると思います。例えば進捗管理はカンバンボードで実施、スプリントバックログはJiraで管理するなどです。
具体的なやり方を考えるのは大事ですし考えやすいですが、私が大事にしているのは具体的なプラクティスの「やるやらない」をしっかり考えることです。
書籍のプラクティスをそのまま取り入れることは、多くの場合時間や人的リソース、技術力の制約で現実的でないことが多いと感じます。(ただし理想形がどんな状態かを理解し、それを目標にすることはとても大事だと思います。)そのため書籍や研修で紹介されている内容は理想形と割り切り、現実的に何をやるか/やらないかを明確に線引きすることが重要です。特にやらないことを決めるのはとても勇気が入りますが、がんばって決断しましょう!
「なぜやるのか?」を「チーム」で意識する
ここまで導入のポイントを解説してきましたが、最後のポイントはなぜやるのかを常に意識するということです。ビジネス用語でゴールデンサークルというものがありますが、これはWHY(なぜ)」→「HOW(どうやって)」→「WHAT(何が)」の順番で物事を伝えることで、相手から共感を得られるという理論です。
プロジェクトが進む上でさまざまなことを考慮する必要が出てくると思いますが、検討すればするほど「なぜやるのか?」がおざなりになる傾向があるように感じます。なぜを意識しないと重要でない機能を実装したりと無駄にリソースを割くことにつながってしまいます。どんなことをやるかも大事ですが、それ以上になぜやるかを意識するようにしましょう。
そして、ここまでに述べてきたことはチーム全員で考えることが望ましいと考えます。なぜならば関係者は同じ目的を達成するための仲間(スクラム)であり、全員で考えることでお互いの信頼を向上できるからです。もちろん専門的な内容(実装技術面、ビジネス面など)は特定の方しかわからないことはよくあるので「よくわからないことに関わるのは面倒だな」とか「わかる人にやってほしいな」と思う気持ちはとても理解できます。それでも根気強くお互いの理解に努めましょう。信頼関係があるチームになることできっとアジャイル開発が成功するはずです!
まとめ
本記事では、スクラム開発の全体像とその導入・定着するためのポイントを紹介しました。スクラムは簡単に言うと軽量級フレームワークであり、開発やプロジェクトのPDCAを高速で回すための考え方だと思います。そのためには技術よりもチーム作りが何よりも大事であると感じます。
簡単にできる方法ではありませんが、時代の変化についていくための考え方と思いますので、本記事に紹介した内容を少しでも現場で実践してノウハウを蓄積していただきたいと思います。プロジェクトの成功、祈っています!
参考
・書籍
スクラムブートキャンプ
アジャイルサムライ
・webサイト
アジャイルプラクティスマップ, アジャイルスタジオ社