今更ながらアジャイル開発についてIPAの資料を読んだので、その感想です。アジャイルの考え方は重要ですが、アジャイル開発手法自体はあんまり必要ないのでは・・・
今更ながらですが、アジャイルについて学びなおしました。
今までSIerに勤務していて言葉だけ知っていましたが、現職ではよく言葉を聞くので、
IPAで公開された資料を読みました。
結論として、
・アジャイルを適用するプロジェクトは限られるのではないか
・アジャイルに限った話では無く、ウォーターフォールでも意識すべき点は多い。
と思いました。
ちなみに読んだ資料はこちらです。
IPAより2020年2月に公開された
「アジャイルソフトウェア開発宣言の読みとき方」です。
https://www.ipa.go.jp/files/000065601.pdf
まず、そもそもアジャイルって何?って言うと
アジャイル開発とは、ビジネス価値の最大化に向けて、顧客に価値のあるソフトウェアを早く、継続的に提供するためのアプローチです。
何故必要なのかと言うと、
昨今のビジネス環境は絶えず変化します。それに俊敏に対応するため、ベストではないものの、ベターなビジネス解を徐々に改善していく傾向が強くなっています。こうした状況から生み出されるシステム要求も、ビジネス解の継続的な変化に対応し、変更し続けることになります。アジャイル開発では変化に対応して、価値のあるソフトウェアを早く、継続的に提供していくことが求められます。
とのことです。
ここで結構な違和感です。確かにビジネス環境は変化します。
ただ、システム要求が常に変化することとは必ずしも紐づきません。
レガシーシステムの入れ替えやスタッフ向けの業務システム等は言わずもがなですし、
完全に新規でどこにも無いサービスで無い限りはモデルになるシステムがすでにあり、
かなりの範囲はシステム要求を描けるはずです。
なので、適用すべきプロジェクトは限られる と思います。
昨今とりあえずアジャイルって言えばいい雰囲気もあるので、分かりやすいですが
結構微妙な気がします。
そしてアジャイルの原則は以下の12点挙がっています。
1.顧客の満足を求め続ける
2.要求の本質を見抜き、変更を前向きに
3.成果物を2-3週間で、リリースし続ける
4.全員で共通の目標に向かおう
5.人の意欲は信頼から
6.コミュニケーションは直接対話で
7.進捗も品質も現物で
8.一定のペースでプロジェクトにリズムを
9.よい技術、よい設計、よい品質の追求
10.ムダ=価値を生まない、を探してヤメる
11.よいモノはよいチームから
12.自分たちのやり方を毎週、調整する
この内、1,4,5,6,8,9,10,11,12はほぼウォーターフォールでも必要な要素です。
2,3も広義に解釈するとウォーターフォールでも必要です。とすると7くらいかな、アジャイルのみは。
顧客の満足求め続けるとか、当たり前過ぎます・・・人の意欲は信頼から とか、そりゃそうでしょう、と思います。
こう考えると、僕としては早めにプロトタイプ(SaaSで言えばトライアル等)を作成し、それを元に要求を洗い出し、アジャイルの原則で挙がったマインドを意識して進めるウォーターフォールがいいのではないかと思いました。
アジャイルの役割であるようなプロダクトオーナー・スクラムマスターとか役割変えなくていいのではと思います。呼び方変わったらなんかカッコいいですけどね。
スプリントという2-3週間で何かを実施し続けることも、ウォーターフォールの工程を短く区切り実施することで近しい成果が得られるような感覚があります。
また、IPAの資料では無いですが、アジャイルに関する本(アジャイル開発とスクラム 第2版 顧客・技術・経営をつなぐ協調的ソフトウェア開発マネジメント)を見た限りでは、アジャイルのドキュメントがバックログというユーザー要求をまとめた資料中心になっていました。
基本的には動くプログラムを主要な成果物として扱う点に違和感があるんですよね。
確かにプログラムは大事です。それ無しだと意味ありません。とはいえ、DB設計や共通規約等、資料も必ず必要だと思っています。
僕がSIer出身だからかもしれませんが、後からプロジェクトに入るメンバーであったり、数年後の自分達向けに必ず必要だと思っている派です。
アジャイルがドキュメントを軽視していることにはならないと言われそうですが、ドキュメントへの言及が少なく、その印象を持ってしまいました。
僕が重要なポイントを理解できていない可能性も十分ありますが、今時点ではこういった感想でした。
ウォーターフォールでアジャイルの要素を入れられるわけないだろ、という指摘もバリバリあると思いますが、やろうとするとある程度の規模感までは出来ると思います。10億くらいまではウォーターフォールにアジャイルの要素を加味して行けるのではないでしょうか。
それ以上は経験が無いので、ちょっと分かりませんが。。。。
今日はこんなところです。
せっかくなので、最後にアジャイルソフトウェア開発宣言を。