アジャイル開発とは

Jan 09, 2023

アジャイル開発とは

大きな単位でシステムを区切ることなく、小さい単位でシステムを区切り、実装とテストを繰り返していく開発方法のこと。開発期間が短縮されることがメリットである。

従来の開発では、「ウォーターフォール開発」が主流で、最初に全体の機能の設計と計画を決定し、開発・実装をしていく手法のことである。

ウォーターフォール型の開発イメージ

「要件定義」→「設計」→「開発」→「テスト」→→→「リリース」

アジャイル型の開発イメージ

【機能1】 「計画」→「設計」→「開発」→「テスト」→→→「リリース」

【機能2】 「計画」→「設計」→「開発」→「テスト」→→→「リリース」

【機能3】 「計画」→「設計」→「開発」→「テスト」→→→「リリース」

アジャイル開発の流れ

リリース計画

アジャイル開発では、詳細までの仕様は決めずに大体の仕様だけを決めます。開発途中で仕様や設計を変更していくことが前提で開発を進めていきます。ユーザーのニーズに合わせて柔軟に対応していくことが可能。

イテレーション

反復という意味。「計画」→「設計」→「開発」→「テスト」→→→「リリース」を機能ごとに繰り返し行う。

アジャイル開発の手法

スクラム

1〜4週間の開発工程を複数回繰り返すアジャイル開発の手法のこと。スプリントと呼ぶ。

【4つのプロセス】

  • スプリントプランニング
  • スプリントを開始する時に行うミーティング。

    スプリントの開発内容や進め方を決める。

  • デイリースクラム
  • 毎日ミーティングを行い、進捗確認や課題の共有を行う。

  • スプリントレビュー
  • スプリントの最後に行う会議の一つ。

    今回のスプリントの成果や今後の流れを共有する。

    【メリット】

    チームで開発するので、タスク分担をして効率的に作業を進めることができる。

    【デメリット】

    チーム内でコミュニケーションがうまく取れないと、開発効率の低下や質が悪くなる。

    エクストリームプログラミング

    プロジェクトの最初に細かい計画は立てずに、短期間の開発サイクルを繰り返す中で計画を決めていくことで、仕様の変更があった時に変更コストを抑えて、状況変化への対応力を高めるための手法。

    【メリット】

    仕様変更が生じても素早く対応できる。

    ユーザーのニーズに細かく素早く対応することができ、ユーザーの満足度向上につながる。

    【デメリット】

    ペアプログラミングのような共同作業が基本となるので、コミュニケーションや相性が合わないと、作業効率が下がる。

    ユーザー機能駆動開発

    ユーザーから見た機能単位で開発チームを分けることで、大規模なプロジェクトにも対応できる手法のこと。

    開発単位を小さいすることで、

  • 反復するサイクルが短く、1〜2日程度
  • チーム内外のコミュニケーションは、ドキュメントが中心
  • という特徴があります。

    【メリット】

    機能重視で開発を進めるので、高品質なシステムを作ることができる。

    大規模案件にも対応できる。

    【デメリット】

    ユーザーの優先する機能を重視するので、ニーズを把握するのに時間がかかるとスケジュールに遅延が発生しやすい。

    リーンソフトウェア開発

    無駄な作業を省いて高品質を重視する開発手法。

    適応型ソフトウェア開発

    継続的な仕様変化に適応することを重視した手法で、複雑なシステムや状況変化の激しい場合に適した開発手法のこと。

    最適なアジャイル開発手法を選ぶためのポイント

  • 開発メンバーの規模に合わせて選ぶ。
  • チームの技術レベル感に合わせて選ぶ。
  • ※参考サイト https://hnavi.co.jp/knowledge/blog/agile_software_development/

    https://www.galk-jp.com/blog/agile-development-type/

    ← Back