はじめに
この記事はスクラム開発に関するものです。私がスクラムを1年間経験して感じたことや、アジャイル開発の背景、スクラムの原則について共有していきます。
アジャイルって何?
スクラムはアジャイル開発の手法の1つですが、そもそもアジャイルとは何なのでしょうか。
アジャイルは、ソフトウェア開発における手法の1つであり、従来のソフトウェア開発手法とは異なる手法を実践することを目的としています。アジャイル開発の背景となっているのが「アジャイルソフトウェア開発宣言」です。この宣言は、ユーザーのニーズ、プログラミングの手法や言語、ソフトウェアの設計などについて、17人のソフトウェア技術者が議論を通じて生み出しました。
アジャイルソフトウェア開発宣言には以下のように書かれています。
「アジャイルソフトウェア開発宣言」は下記の通りです。
私たちは、ソフトウェア開発の実践
あるいは実践を手助けをする活動を通じて、
よりよい開発方法を見つけだそうとしている。
この活動を通して、私たちは以下の価値に至った。プロセスやツールよりも 個人と対話 を、
包括的なドキュメントよりも 動くソフトウェア を、
契約交渉よりも 顧客との協調 を、
計画に従うことよりも 変化への対応 を、価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。
また「アジャイルソフトウェアの12の原則」というものもあります。
- 顧客満足を最優先し、
価値のあるソフトウェアを早く継続的に提供します。- 要求の変更はたとえ開発の後期であっても歓迎します。変化を味方につけることによって、お客様の競争力を引き上げます。
- 動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短い時間間隔でリリースします。
- ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働かなければなりません。
- 意欲に満ちた人々を集めてプロジェクトを構成します。環境と支援を与え仕事が無事終わるまで彼らを信頼します。
- 情報を伝えるもっとも効率的で効果的な方法はフェイス・トゥ・フェイスで話をすることです。
- 動くソフトウェアこそが進捗の最も重要な尺度です。
- アジャイル・プロセスは持続可能な開発を促進します。一定のペースを継続的に維持できるようにしなければなりません。
- 技術的卓越性と優れた設計に対する不断の注意が機敏さを高めます。
- シンプルさ(ムダなく作れる量を最大限にすること)が本質です。
- 最良のアーキテクチャ・要求・設計は、自己組織的なチームから生み出されます。
- チームがもっと効率を高めることができるかを定期的に振り返り、それに基づいて自分たちのやり方を最適に調整します。
アジャイルソフトウェア開発宣言には、プロセスやツールよりも個人との対話が重視されるべきだと明確に述べられていることがわかります。
簡単に進め方を説明すると以下のようになります。
- 関係者は目的の達成のためにお互いに協力し合いながら進める。
- 利用者の反応や関係者からのフィードバックを継続的に得ながら、計画を調整する。一度にまとめてではなく、少しずつつくる。
- そして実際にできあがったものが求めているものと合っているかを頻繁に確認する。
スクラムとは何か?
スクラムとは、ラグビーのスクラムが語源となっている、アジャイル開発手法の1つで、プロジェクトの現状を把握するためのフレームワークです。チームのワークフローを管理するための規律的な手法で、軽量ながらきちんと組み立てられています。スクラムは、技術的なプラクティスを具体的に指定するものではなく、チーム内での作業の流れを定義し、チームが用いる具体的な役割(ロール)と作業を調整するプラクティスを規定しています
勘違いしては行けないのは 問題を解決するためのフレームワークでは無いということです。
スクラムのルール
スクラムには様々なルールがありますが、最大で20個ものルールがあるため、今回は名前だけの紹介に留め、次回以降詳しく説明していきます。
必ずしも全てのルールを守らなければいけないわけではありません。初めてスクラムを始める際には、全てのルールを一度に実践するのではなく、スモールスタートして徐々に導入していくのがいいかなと個人的に思っています。
スクラム3つの柱
今回は概要ということでスクラムの3つの柱について少しだけ説明していきます。
3つの柱はプロジェクトの現状を把握するために担保している必要要素です。
- 検査 - Inspect
進捗状況や作っているプロダクトが正しいか、作業の進め方に問題がないかどうかを定期的に確認すること - 適応 - Adapt
やり方に問題があったり、もっとうまくできる方法があったりすれば、やり方そのものを変えること - 透明性 - Transparency
正しい情報が1カ所に整理され、次の行動が誘発されることを担保すること
その他のスクラムのルールは、上記3つの柱を満たすためにあると言っても過言ではありません。