アジャイル開発の教育で、リリースパターンを説明することがあって、

よくこの質問を受けます。

質問者:Q 私:A

 

Q:「アジャイル開発でイテレーション(スプリント)ごとにリリースしますか?」

A:「開発しているシステムやお客様が希望しているかなど、環境によりますね。」

Q:「やっぱりそうなんですね。毎回リリースできないですよね。」

と言って安心される方がいます。

 

ここで、安心される方には、「できるわけないよ」とか、「やりたくない」とか、

「やりなさい」と言いたくない、というのが含まれていると思います。

当然にイテレーション(もしくはスプリント)の期間は、1から4週間なのですから、

最初からリリースしたところで、業務としては使えないかもしれません。

だとしたらなぜ

「アジャイル宣言の背後にある原則」に

「動くソフトウェアを、2-3週間から2-3ヶ月という
 できるだけ短い時間間隔でリリースします。」

書かれているのでしょうか。

 

安心している人に言うのは、

A:「毎回システムテストを実施して、受け入れテストを実施して、

  提供するレベルを維持してください。

  また、開発チームには毎回リリースする覚悟でやらせてください。」

と言うようにしています。

この部分が大切だと思っています。

 

話はちょっと変わりますが、私が開発リーダーだった時、

1カ月間隔でリリースする提供物を作成していました。

リリースして利用するか、お客様利用時期、欲しい機能に

よりますので、一カ月に一回修正をあてていたわけでは

ありません。

当然ながら、システムテストで結果がNGになり、

提供できなかったこともあります。

 

「あのチームは1カ月に1回リリースし、

 アジャイル開発だと言っているが、

 品質が悪いんだよ」

と言われたこともあります。

 

「品質が悪い」について言えば、

アジャイル開発を社内で進めようとした時の抵抗だった

のかもしれないです。

また、製品機能が不十分であるといわれていたのかもしれません。

(当時そう思い、さらなる良い製品を目指そうと思っていました)

 

ただし、私たちのチームのストロングポイントは、

「テストでOKが出ればお客先に出ていくんだ」

という覚悟だと思います。

その覚悟があったからこそ、

デグレートさせてはいけない、リグレッションテストで確認しよう

となっていたのです。

 

実際に新機能の不具合はありましたが、

非互換以外のデグレートはありませんでした。

 

「え?気合だけ」って思うかもしれません。

実態は違います。

しかし、その覚悟があるからこそ実態が伴ってくるのです。

 

「LeanとDevOpsの科学」にも書かれているので、

続きを書きたいと思います。