シリーズ「標準ソフトウエア工学教科書」を作ってみたいと思います
今回は「2.7 アジャイル、特にスクラム」です。
■2.7 アジャイル、特にスクラム
前回、少し書きましたが、今まであげてきたソフトウエアの開発モデルは、基本的には、開発する内容や要求が、極端に変わらないものでした。
しかし、現代の社会においては、状況が劇的に変わり、要望もそれにつれて大きく変わることがあります。極端な場合、真逆にすらなります。
たとえば、フリーソフト。昔は、「ビジネスに使うな!」という指示があったほどです。
90年代前半までは、まだそうだったと思います。
今、そんなことをいう人はいません。むしろ、ApacheやTomcatを「使え」という指示です。
真逆です。
たしか、2000年ごろか、それくらいかに、大きく逆転したと思います。
現在、真逆化?していることといえば、ケータイの私物でしょうか?
いままでビジネスで私物をつかうとか、考えられなかったけど、
あと数年たてば、あたりまえになるかもしれません。
自分のケータイを会社でつかうことが・・・
ここまで大きな変化でなくても、最近は要望は時々刻々と変化します。
開発期間中でさえ、「あ、この高速処理は、新しいハードになったから、いらなくなったよ」とか、「今開発中のシステム、会社の部門を再編するから、業務フロー変わるよ!」といった、大きな仕様変更が起こりえます。
そのような事態に対応するには、今までのような、要求を固定化するようなやり方ではだめです。もっと要求を短期間に、俊敏に変えられるやり方でないとだめです。
その要求の変化に「俊敏に」対応できるのが、アジャイルです。
アジャイルには、XP、SCRUMなど、いろいろあります。
今回は、SCRUM(スクラム)を見てみます。
SURUMの説明としては、
http://www.mountaingoatsoftware.com/system/asset/file/195/RedistributableIntroToScrum_JA.ppt
にみんなが使える?PowerPointのプレゼンテーションがあります。
今回は、そこの図を使います。こんなかんじ
![](https://blogimg.goo.ne.jp/user_image/19/47/377c88afc6f58ef18f9bb5534ffd8bb3.png)
まず、いろいろな要求、図だと、「ギフト包装」とか「クーポン」とか「キャンセル」とか「返品」とか。これらを、「プロダクトバックログ」として記録しておきます。
「クーポン」が2つあるように、すでに記録された要求に、追加、修正されることもあります。
さて、それら要求されていることを、どのようにして開発していくか?
ということですが、まず、開発期間を、2~4週のスプリントという期間
に分けます。そして、その中でやることをプログラムバックログから
取り出して(例では「返品」を取り出しています)、スプリントゴールと
します。
そのスプリントゴールを細分化して、スプリントバックログとし、
朝、朝会をして、今日やることを、そのスプリントバックログから
取り出し、一日のうちに、その課題を行う(24時間のループ)
ということを繰り返します。
こんなかんじで、時々刻々と要求が変わると、時々刻々とバックログも変わり、
それに対応してやることも変わっていくというわけです。
このようにして、要求にアジャイルに対応する方法論がではじめています。
今回は「2.7 アジャイル、特にスクラム」です。
■2.7 アジャイル、特にスクラム
前回、少し書きましたが、今まであげてきたソフトウエアの開発モデルは、基本的には、開発する内容や要求が、極端に変わらないものでした。
しかし、現代の社会においては、状況が劇的に変わり、要望もそれにつれて大きく変わることがあります。極端な場合、真逆にすらなります。
たとえば、フリーソフト。昔は、「ビジネスに使うな!」という指示があったほどです。
90年代前半までは、まだそうだったと思います。
今、そんなことをいう人はいません。むしろ、ApacheやTomcatを「使え」という指示です。
真逆です。
たしか、2000年ごろか、それくらいかに、大きく逆転したと思います。
現在、真逆化?していることといえば、ケータイの私物でしょうか?
いままでビジネスで私物をつかうとか、考えられなかったけど、
あと数年たてば、あたりまえになるかもしれません。
自分のケータイを会社でつかうことが・・・
ここまで大きな変化でなくても、最近は要望は時々刻々と変化します。
開発期間中でさえ、「あ、この高速処理は、新しいハードになったから、いらなくなったよ」とか、「今開発中のシステム、会社の部門を再編するから、業務フロー変わるよ!」といった、大きな仕様変更が起こりえます。
そのような事態に対応するには、今までのような、要求を固定化するようなやり方ではだめです。もっと要求を短期間に、俊敏に変えられるやり方でないとだめです。
その要求の変化に「俊敏に」対応できるのが、アジャイルです。
アジャイルには、XP、SCRUMなど、いろいろあります。
今回は、SCRUM(スクラム)を見てみます。
SURUMの説明としては、
http://www.mountaingoatsoftware.com/system/asset/file/195/RedistributableIntroToScrum_JA.ppt
にみんなが使える?PowerPointのプレゼンテーションがあります。
今回は、そこの図を使います。こんなかんじ
![](https://blogimg.goo.ne.jp/user_image/19/47/377c88afc6f58ef18f9bb5534ffd8bb3.png)
まず、いろいろな要求、図だと、「ギフト包装」とか「クーポン」とか「キャンセル」とか「返品」とか。これらを、「プロダクトバックログ」として記録しておきます。
「クーポン」が2つあるように、すでに記録された要求に、追加、修正されることもあります。
さて、それら要求されていることを、どのようにして開発していくか?
ということですが、まず、開発期間を、2~4週のスプリントという期間
に分けます。そして、その中でやることをプログラムバックログから
取り出して(例では「返品」を取り出しています)、スプリントゴールと
します。
そのスプリントゴールを細分化して、スプリントバックログとし、
朝、朝会をして、今日やることを、そのスプリントバックログから
取り出し、一日のうちに、その課題を行う(24時間のループ)
ということを繰り返します。
こんなかんじで、時々刻々と要求が変わると、時々刻々とバックログも変わり、
それに対応してやることも変わっていくというわけです。
このようにして、要求にアジャイルに対応する方法論がではじめています。