スクラム研修まとめ①

少し前にスクラムの研修に行ってきました。これから数回に分けて研修で学んだことを復習もかねてまとめていきたいと思います。

スクラム(Scrum)とはアジャイル開発におけるマネジメント手法の一つです。

そもそも私は研修を受けるまで、アジャイル開発すらどんなものなのかもよくわかっておらず、最近「スクラム」ってよく見かけるな~ちょうど研修があるみたいだから受けてみようかな~というぐらいのノリで受講してみたという状態で、まだ実際のプロジェクトで実践もしておりませんので、ど素人には変わりありません。ですので間違っている部分もあるかもしれませんがその点、暖かい目でご覧いただけると幸いです。

まず、アジャイル開発について簡単に書いてみたいと思います。

アジャイル開発の目的は、お客様の満足を最優先とすることです。
その手段として
①短い間隔で、継続的に、動くソフトウェアをリリースする
②お客様と開発者が協調してプロジェクトを成功に導く
があげられ、そのような特徴を持ったソフトウェア開発技法をアジャイル開発といいます。

では、お客様の満足度を最優先とするとはどういうことでしょうか?それは
・お客様が必要と思う、今使いたいシステムを最優先で提供する
・お客様からの意見をフィードバックして、満足度の高いシステムを作成する
・使わない機能は作らない、という決断を促す
があげられます。
アジャイル開発はリーンという考え方がベースにあり、QDCを固定してスコープ(開発対象要件)を可変にするという基本的な考え方があります。アジャイル開発とよく対比されるウォーターフォール開発との大きな違いはここにあります。ウォーターフォール開発は要件定義フェーズで最初にそのシステム全体の要件を固めてしまい、その後設計、開発、テストという流れに沿って開発を進めていきますが、アジャイル開発はビジネスの流れの中で、その時に最も優先順位の高い機能から開発・リリースしていきます。要求の追加・変更には、その優先順位が高ければ順次対応していきますが、QDCの範囲に収まらない(つまり優先順位の低い)機能は作りません。

アジャイル開発とウォーターフォール開発は全く違う手法のように思われがちですが、今まで行ってきたウォーターフォール開発の要件定義・設計・開発・テストという流れを、今必要な機能単位で何回も繰り返すと考えていただいても間違えではないと思っています。

また、アジャイル開発はウォーターフォール開発と比べ、
・ドキュメント等の作成は省略できる
・安く、早くシステムを構築できる
というイメージを持っておられる方もいらっしゃるかもしれませんが、それは間違えです。
ドキュメントは作らなくていいわけではなく、無駄な(使われない)ドキュメントは作らないだけです。開発や運用上必要なドキュメントは必要なので作成します。
また、機能毎にリリースしますがユーザのフィードバックを受けての戻りを前提にしていますし、リリースされたものもシステムの機能の一部でしかありませんので、安く早くシステムが構築できるわけではありません。

アジャイル開発もウォーターフォール開発もお客様に喜んでいただけるシステムを提供するという開発側の思いに違いはありませんので、アジャイル開発はウォーターフォール開発を否定するものではありません。アジャイル開発が向いているシステムもありますし、ウォーターフォール開発が向いているシステムもあります。お客様に満足いただけるシステムを提供するためにはどの手法が最適なのかを考えて選択する、その選択肢の一つとしてアジャイル開発という手法が最近注目されているのだと思っていただければと思います。

なお、以下のようなサイトがありますので、ご興味が有られる方はどうぞ。
アジャイルソフトウェア開発宣言
http://www.agilemanifesto.org/iso/ja/

次回からはスクラムについて書いていこうと思います。