SE基本情報に出るIT用語

アジャイル開発とは?短納期で考えながらシステム開発するのを繰り返す手法

アジャイル開発は、「短納期で考えながらシステム開発するのを繰り返す手法・考え方」のことです。

「アジャイル開発」と言う単語は、「具体的にこうやって開発する!」みたいな、きちんとした方法があるわけではなく、モノを作る考え方を表しています。

アジャイルと一緒に使われるキーワードを覚えて、なんとなく言葉の雰囲気をとらえる方が頭に入りやすいかと(基本情報や応用情報でも、他のキーワードやアジャイルの特徴の方がよく出る!)。

アジャイルの特徴
  • アジャイル=agile=すばやいの意味
  • 【短納期・少人数】アジャイルは考えながら開発するので、短納期で人数が少ないことが多い。
  • 【工程の後戻り前提】システムの仕様が変更される(作りなおす)前提であること。
アジャイルと一緒に使われるワード
  • 【イテレーション】アジャイルで繰り返し開発を行う1つの単位、回数のカウント。1stイテレーション、2ndイテレーション・・・みたいな感じ。
  • 【振り返り(KPT)】イテレーションが終わるごとに、よかったこと(Keep)・悪かったこと(Problem)を振り返って次に活用(Try)する。
  • 【PO(プロダクトオーナー)】お客様のこと(直訳すると「製品の持ち主」)。
  • 【スクラム】PO(お客様)と協力してシステム開発しようぜ的な考え。
  • 【XP(エクストリームプログラミング)】お互いにフィードバックしたりコミュニケーションとりながら共同でプログラミングしようぜ的な考え。

他のキーワードを踏まえて、ひとことでアジャイル開発をまとめると、「短納期で考えながらシステム開発するのを繰り返す手法・考え方」となります。

スポンサーリンク

アジャイル開発とは?

アジャイル開発は、「短納期で考えながらシステム開発するのを繰り返す手法・考え方」のことです。

【おさらい】ウォーターフォールモデル

アジャイル開発と、ほぼ正反対と言えるウォーターフォールモデルについて簡単に説明します。

ウォーターフォールモデル
システム開発の工程
  • 要件定義(どんなシステムを作るか、決めること。「ドラクエを作るのか?FFを作るのか?」みたいな、「そもそも論」)
  • 基本設計(見た目の部分、ざっくりのストーリーを決める。)
  • 詳細設計(そのストーリーは、プログラムでどうやって実現するのかを書く)
  • プログラミング(ソースコードを書いて、プログラム(製品)にする
  • 単体テスト(1つのプログラムを単体で動かすんだな~くらいでOK)
  • 結合テスト(複数のプログラムを合体させるテストがあるんだな~でOK)
  • 総合テスト(使い物になるかを確認して仕上げるんだな~でOK)
  • 運用・保守(ドラクエを発売した後に、バグがあったら直さないかん)

ウォーターフォールモデルでは、それぞれの工程の結果を、ガチガチに固めるので、後戻りがない(一度決めたことは、変えない)前提です。

アジャイル開発では考えながら動く

反対に、アジャイル開発では考えながら動くのが特徴。

「こんなものを作りたいな~」ってなったら、早速、作り始めます。

アジャイル開発

「さすがに要件定義はやるけれども、設計に時間をかけない。すぐプログラミングやテストを始めるよ」みたいなイメージ。

プログラミングしつつ、お客様(PO)も見てるところで、「ちょっと違うかも」となれば。

また、作戦会議(要件定義のやりなおし)をする。

「要件定義⇒ちょっとだけ設計⇒プログラミング⇒要件定義⇒・・・」を繰り返す前提です。

考えながら素早くシステム開発をするのがアジャイル開発の考え方です。

スポンサーリンク

アジャイル開発と一緒によく使われるキーワード

アジャイル開発と一緒によく使われるキーワードを冒頭にも書きましたが、もう一度書きます。

アジャイルと一緒に使われるワード
  • 【イテレーション】アジャイルで繰り返し開発を行う1つの単位、回数のカウント。1stイテレーション、2ndイテレーション・・・みたいな感じ。
  • 【振り返り(KPT)】イテレーションが終わるごとに、よかったこと(Keep)・悪かったこと(Problem)を振り返って次に活用(Try)する。
  • 【PO(プロダクトオーナー)】お客様のこと(直訳すると「製品の持ち主」)。
  • 【スクラム】PO(お客様)と協力してシステム開発しようぜ的な考え。
  • 【XP(エクストリームプログラミング)】お互いにフィードバックしたりコミュニケーションとりながら共同でプログラミングしようぜ的な考え。

あまり深みに、はまらないほうがいい

頭がごちゃごちゃになった人へ。

あまり深く考えてはいけません 笑。

ひよこSEも「アジャイル開発は素晴らしいぜ♪」的な研修を受けたことあるけれども、正直、よくわからんところもたくさんあります。(資料はとってあるけれども、ここで見せたらたぶん怒られる 汗)

基本情報、応用情報で点を取るなら、過去問の指示に従うことに専念です。

※個人的には、アジャイルとそれ関連のワードは、カッコよく見せた横文字だし嫌い(*´ω`)。

アジャイルとイテレーションの違い

「アジャイルとイテレーションって結局、何が違うんだ?」ってなった人もいるかもです。

アジャイルは、プロジェクトそのもの。

イテレーションは、アジャイル開発を行う回数、カウント、サイクルのこと。

「1stイテレーション」とは書くけれども、「1stアジャイル」とはいいません。

PO(プロダクトオーナー)とステークホルダー(利害関係者)の違い

PO(プロダクトオーナー)は、お客様のこと。

強いて言えば、お客様の中でも、あれこれ文句を言いに来るお偉いさんのイメージです。

※「スクラム」では、POと協力するらしい。

ステークホルダー(利害関係者)は、システム開発に関係するお客様全員(間接的に影響ある人も含めて全員)です。

KPTとフィードバックの違い

「KPTとフィードバックって、何が違うんだ?」となった人もいるかもです。

振り返って改善していくという点は同じですが・・・。

KPTは、開発メンバーの中だけの話。

フィードバックは、対象を限定しません。

フィードバックをもらうのは、開発メンバーからかもしれないし、お客様から頂く場合もあります。

アジャイル開発とスパイラルモデルの違い

アジャイル開発とスパイラルモデルは、「開発を繰り返す」という点で似ていますが、あえて違いを書くとすれば、下記の通り。

勘違いしないでほしいのが、「スパイラルモデルだから、改善をしない」わけではない点。

もとの考え方で、「アジャイルは短納期プロジェクト向きで、スパイラルモデルは大規模なプロジェクトに使われやすい」というのがあるので。

「アジャイルは、よりよくしていきたい。スパイラルモデルは、単に分けただけ。」というニュアンスが強いんだな~と思ってください。

※ここら辺になると人によって考え方がバラバラになるところだし、カッコよく見せた横文字は嫌い(*´ω`)。(2回目)

まとめ

アジャイル開発ときたら、「短納期で考えながらシステム開発するのを繰り返す手法・考え方」のこと。

ウォーターフォールモデルと違って、後戻り前提である上に。

イテレーション(アジャイル開発の1カウント)が終われば、KPT(振り返り)をやって次のイテレーションに活かします。

「ガチガチに固めてシステム開発するというよりは、短い時間で柔軟に動いてく考え方を、それっぽく言ってるんだなぁ〜」くらいに思ってくださいまし(-_-;)。

▼この記事がいいと思ったら、下の画像をクリックしてくれたら励みになります!

にほんブログ村 IT技術ブログ システムエンジニアへ
スポンサーリンク
ひよこSEのつぶやきブログ

コメント

タイトルとURLをコピーしました