こんにちは。
前回のアジャイルについてつらつら その1のつづきです。
アジャイルのながれからやっていきます。
アジャイルのながれ
大枠の企画が決まるとイテレーションと呼ばれる開発サイクルに入ります。
1サイクル内で計画〜テストまでを行い、次のイテレーションに進む前にプログラムのリリースが行われます。
それらを繰り返していくことで方向性の認識齟齬や要求との乖離を最小化することができるようになります。
いいねー、かっこいいねー。
よくアジャイル開発と比較される開発手法にウォーターフォールがありますが、こちらは企画、計画、実装という各工程において基本的には戻らない(上流から下流へ一方向)思想のため、アジャイルとは全く異なった開発手法とされています。
自身はこれをべったりやっています。
アジャイル開発についてよく言われている1問1答をまとめました。
※実体験じゃありません(だってやったことない
【1】アジャイル開発って気合いですよね?
・どんな開発手法でも必要な部分ではありますが、アジャイル開発は常に変化する状況に対応したり、チーム内のコミュニケーションを重視する習慣から、経験が豊富でコミュニケーション能力が高く、アジャイル開発に慣れたコントローラが必要となることがほとんどです。
チームメンバーの性格を鑑みて適した判断を行えるリーダーがいれば、よりスムーズでよりよいアジャイル開発ができるでしょう。
【2】アジャイル開発ってドキュメントを書かないんでしょ?
・いえいえ。そんなことはありません。
完成したドキュメントよりも実際のプログラムを重視するだけでドキュメントもきちんと書きます。
他の開発手法よりもプログラムの優先順位が高いだけです。
イテレーションごとにしっかりと計画を立てて、実装もドキュメントも作成します。
【3】設計しないんじゃないの?
・前述の通り、1つのイテレーションの中で設計も行います。
ドキュメントについても必要最小限となることが多いですが、きちんと書きます。
場当たり的に進めてしまってはプログラムの完成度が低くなります。
しっかりとした計画・設計の上にアジャイル開発は成り立ちます。
【4】仕様変更はいつでも受け入れ可能でしょ?
・開発サイクルが短く、プログラムに反映させやすい開発手法ではありますが、なんでもかんでも仕様変更を受け入れ可能とは異なります。
1つのイテレーションの中でも設計、実装がありますので、仕様変更を受け入れることによって少なからず手戻りは発生します。
プログラムへの影響度とクライアントの温度感をしっかりと見極めることが大事でしょう。
といったかんじです。
開発手法は流行り廃りがあって、諸説あることが多いですが、アジャイルにかぎらず、どの開発手法でも総じて言えることが多い印象ですね。
ソフトウェアも、人がつくり、対人のためにつくっているというのを念頭に置いて進めるんだろうな、と思いました。
いろんな手法があって、それを選択できるような知識とノウハウと行動力を伴い、
よりよい取捨選択ができるようになりたいなと思います。
アウトプットして、ちしき固めていくぞ〜。