アジャイル開発は、「短納期で考えながらシステム開発するのを繰り返す手法・考え方」のことです。
「アジャイル開発」と言う単語は、「具体的にこうやって開発する!」みたいな、きちんとした方法があるわけではなく、モノを作る考え方を表しています。
アジャイルと一緒に使われるキーワードを覚えて、なんとなく言葉の雰囲気をとらえる方が頭に入りやすいかと(基本情報や応用情報でも、他のキーワードやアジャイルの特徴の方がよく出る!)。
他のキーワードを踏まえて、ひとことでアジャイル開発をまとめると、「短納期で考えながらシステム開発するのを繰り返す手法・考え方」となります。
アジャイル開発とは?
アジャイル開発は、「短納期で考えながらシステム開発するのを繰り返す手法・考え方」のことです。
【おさらい】ウォーターフォールモデル
アジャイル開発と、ほぼ正反対と言えるウォーターフォールモデルについて簡単に説明します。
ウォーターフォールモデルでは、それぞれの工程の結果を、ガチガチに固めるので、後戻りがない(一度決めたことは、変えない)前提です。
アジャイル開発では考えながら動く
反対に、アジャイル開発では考えながら動くのが特徴。
「こんなものを作りたいな~」ってなったら、早速、作り始めます。
「さすがに要件定義はやるけれども、設計に時間をかけない。すぐプログラミングやテストを始めるよ」みたいなイメージ。
プログラミングしつつ、お客様(PO)も見てるところで、「ちょっと違うかも」となれば。
また、作戦会議(要件定義のやりなおし)をする。
「要件定義⇒ちょっとだけ設計⇒プログラミング⇒要件定義⇒・・・」を繰り返す前提です。
考えながら素早くシステム開発をするのがアジャイル開発の考え方です。
アジャイル開発と一緒によく使われるキーワード
アジャイル開発と一緒によく使われるキーワードを冒頭にも書きましたが、もう一度書きます。
あまり深みに、はまらないほうがいい
頭がごちゃごちゃになった人へ。
あまり深く考えてはいけません 笑。
ひよこSEも「アジャイル開発は素晴らしいぜ♪」的な研修を受けたことあるけれども、正直、よくわからんところもたくさんあります。(資料はとってあるけれども、ここで見せたらたぶん怒られる 汗)
基本情報、応用情報で点を取るなら、過去問の指示に従うことに専念です。
※個人的には、アジャイルとそれ関連のワードは、カッコよく見せた横文字だし嫌い(*´ω`)。
アジャイルとイテレーションの違い
「アジャイルとイテレーションって結局、何が違うんだ?」ってなった人もいるかもです。
アジャイルは、プロジェクトそのもの。
イテレーションは、アジャイル開発を行う回数、カウント、サイクルのこと。
「1stイテレーション」とは書くけれども、「1stアジャイル」とはいいません。
PO(プロダクトオーナー)とステークホルダー(利害関係者)の違い
PO(プロダクトオーナー)は、お客様のこと。
強いて言えば、お客様の中でも、あれこれ文句を言いに来るお偉いさんのイメージです。
※「スクラム」では、POと協力するらしい。
ステークホルダー(利害関係者)は、システム開発に関係するお客様全員(間接的に影響ある人も含めて全員)です。
KPTとフィードバックの違い
「KPTとフィードバックって、何が違うんだ?」となった人もいるかもです。
振り返って改善していくという点は同じですが・・・。
KPTは、開発メンバーの中だけの話。
フィードバックは、対象を限定しません。
フィードバックをもらうのは、開発メンバーからかもしれないし、お客様から頂く場合もあります。
アジャイル開発とスパイラルモデルの違い
アジャイル開発とスパイラルモデルは、「開発を繰り返す」という点で似ていますが、あえて違いを書くとすれば、下記の通り。
- 【アジャイル開発】改善しつつ、開発を繰り返す
- 【スパイラルモデル】一度に作るのは大変だから、ウォーターフォールモデルで開発するのを複数回に分けた
勘違いしないでほしいのが、「スパイラルモデルだから、改善をしない」わけではない点。
もとの考え方で、「アジャイルは短納期プロジェクト向きで、スパイラルモデルは大規模なプロジェクトに使われやすい」というのがあるので。
「アジャイルは、よりよくしていきたい。スパイラルモデルは、単に分けただけ。」というニュアンスが強いんだな~と思ってください。
※ここら辺になると人によって考え方がバラバラになるところだし、カッコよく見せた横文字は嫌い(*´ω`)。(2回目)
まとめ
アジャイル開発ときたら、「短納期で考えながらシステム開発するのを繰り返す手法・考え方」のこと。
ウォーターフォールモデルと違って、後戻り前提である上に。
イテレーション(アジャイル開発の1カウント)が終われば、KPT(振り返り)をやって次のイテレーションに活かします。
「ガチガチに固めてシステム開発するというよりは、短い時間で柔軟に動いてく考え方を、それっぽく言ってるんだなぁ〜」くらいに思ってくださいまし(-_-;)。
コメント