アジャイルとウォーターフォールについて - Hashimoto-Noriaki/IT-basic GitHub Wiki
アジャイルとウォーターフォールとは
システム開発の進め方の違いです。
アジャイルとは
短い期間(1週間単位)で実装やテストを繰り返し迅速に開発をする手法です。作りながら試行錯誤して開発していくと言う意味です。
⚫︎意味 agileという単語の意味は『素早い』『機敏な』『頭の回転が早い』という意味で、 臨機応変に対応しながら開発していきます。
⚫︎進め方 まず開発チームの力量を確認していきます。 ***週単位(スプリント)***で計画を立てて下の3点の順番で繰り返し開発していきます。
①設計 ②プログラミング(開発) ③テスト これを繰り返し作業していくことになります。
別の言い方をすると 計画 、開発、リリースの繰り返しです。
⚫︎細かい進め方
①プロダクトバックログを作成
やりたいことを決めたリストのことです。
・特徴 プロダクトオーナー(PO)に仕様などの決定権がある
・注意点 工数(上記の手順)は見積もらず、POには権限がない 期限は希望 優先順位をつける 担当は決めずPOは個人に指示ができません。
・スクラムマスター チームのリーダー的存在です。
・スプリント計画
1 タスクの工数を洗い出す (相対的な見積りをする。プランニングポーカーを使う)
2 今週のタスクを決定
⚫︎種類 代表的な種類は以下の3点です。
・スクラム 1週間から4週間のサイクルで作りながら開発を進めます。 1番主流のやり方です。
・XP 変更を許容し、少数開発に適用しやすいです。
・リーン 必要なものを必要な時に必要なだけ供給し開発します。
⚫︎引用資料 https://qiita.com/kyawphyonaing/items/8cd30ac818da2c7ce0e0
上の引用資料に詳細が載っているので調べてみてください。
ウォーターフォール
最初に開発の計画をし、各工程通りに進めていく開発手法です。 プロジェクトの初めに計画を完璧に決めていきます。変更は基本しません。 ex)仕様 スケジュール
⚫︎意味 ウォーターフォールとは水が落ちるつまり上から順に進めていくという意味です。 下の進め方の①〜④の順に進めていきます。
⚫︎進め方
① 要件定義
クライアントとこう言う機能を作ろうみたいなやりとりです。
② システム設計
ゲームなどの秘密基地の設計図みたいなイメージです。
・***外部設計 *** デザインなどの見た目の部分の設計
・内部設計 データベースやクラスなどの内部の設計
③ プログラミング(開発)
システムを作る
④ テスト
想定通りにシステムが動くか検証
それぞれの工程を終えてから次に進みます。
⚫︎デメリット 利用者の確認ができるのは最終段階に入ってからです。後で「これは想定したものとは違う」 となっても前の工程(手戻り)は想定せずに進めているので、 プロジェクトが失敗してしまうケースがあるみたいです。 失敗率が49%とかなり高いです。
⚫︎補足 ①と②はSE(システムエンジニア)が担当、③と④はPG(プログラマー)が担当。
⚫︎参考書籍 [https://www.amazon.co.jp/キタミ式イラストIT塾-基本情報技術者-令和03年-きたみりゅうじ/dp/4297117819](https://www.amazon.co.jp/%E3%82%AD%E3%82%BF%E3%83%9F%E5%BC%8F%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88IT%E5%A1%BE-%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-%E4%BB%A4%E5%92%8C03%E5%B9%B4-%E3%81%8D%E3%81%9F%E3%81%BF%E3%82%8A%E3%82%85%E3%81%86%E3%81%98/dp/4297117819)
⚫︎参考動画 https://m.youtube.com/watch?v=xD64eQjO9sk&list=PL-1KBX2gDRuiDf7R-YR4NjFf_nYu3RG3y&index=27