開発手法

開発技術

開発手法はウォーターフォールモデル、スパイラルモデル、アジャイル開発などがあります。
それぞれの特徴について説明をします。


アジャイル開発

アジャイル開発の特徴

アジャイル(Agile)は、「すばやい」「俊敏な」という意味の言葉です。
従来のシステム開発は、ウォーターフォールモデル(説明は次章)を採用することが多かったのですが、開発スピードが遅く、初期の要件定義や設計でのミスが後で発覚すると大きな手戻りが発生するので、最近はアジャイル開発を採用することが多いです。

アジャイル開発の特徴は次の通りです。

特徴説明
動くものを作るが優先ドキュメント作成よりも、動くものを作る(つまりプログラミングや構築作業)優先する。
変更を前向きに改善につながる要求変更を受け入れる
2~3週間でリリースし続ける短期開発を小出しでリリース

開発手法「スクラム」の進め方

用語の説明

  • プロダクトバックログ
    プロダクトバックログは要望や要求事項の一覧で、要求内容、優先度、見積といった情報が記載されています。
    アジャイル開発は、このプロダクトバックログをもとに開発を進めます。
    プロダクトバックログには要求事項だけでなく、バグ修正も記載します。
    このリストは、優先順位づけされて並んでいることが重要です。
    このリスト1行のことをプロダクトバックアイテム(PBI)と言います。

    プロダクトバックアイテムを作成は「質の高いユーザーストーリーとなっているかどうかを評価する。」という観点で行い、ポイントとしてINVESTというのがあります。
    INVESTは次の頭文字を取ったものです。
     I: 独立している (Independent)
     N:交渉可能である (Negotiable)
     V:価値がある (Valuable)
     E:見積もり可能である (Estimatable)
     S:小さい (Small)
     T:テスト可能である (Testable)
  • スプリントとスプリントバックログ
    スプリントは、は1~4週間の時間枠です。(この時間枠をタイムボックスと言う。)
    スプリントバックログは、スプリントという一定の時間枠内で実施する作業内容のリストです。(ToDoリスト)
    ポイントとして、ユーザー視点で書くこと。

アジャイル開発の進め方

スクラムによる進め方は、「チームビルディング」→「プロダクトバックログ」と進めます。
次にスプリントという時間枠で区切って開発を進めます。

  1. チームビルディング
    スクラムは「プロダクトオーナー」、「スクラムマスター」、「開発チーム」の3つのメンバーで構成されます。
    ・プロダクトオーナー・・・何を開発するのか決める
    ・スクラムマスター・・・スクラムの責任者
    ・開発チーム・・・開発メンバー
  2. プロダクトバックログ作成
    プロダクトバックログは、製品の実現に必要な要求のリストです。
    プロダクトバックログで管理する要求をプロダクトバックアイテム(PBI)といいます。
    必要な機能だけでなく、調査や不具合修正もプロダクトバックログにします。
    PBIには優先順位を付けて管理をします。
  3. スプリントプランニング
    プロダクトバックログの項目の中から直近のスプリントで扱う項目を抜き出しをします。
  4. デイリースクラム
    開発チームが毎日同じ時間に15分程度実施する進捗報告会です。
    進捗のほかに課題が発生した場合はメンバーに共有します。

XP (Extreme Programming)

XPは変化する顧客の要求への対応力を高めることを目的としたソフトウェア開発プロセスです。
XPはいくつかの方法があります。

ペアプログラミングは開発チームのメンバーが常に2 人1 組で作業を行うことで、お互いに刺激し合いながら多様な視点を持ち寄って、質の高いプログラムの開発を目指す。


ウォーターフォール

ウォーターフォールの特徴

ウォーターフォールは、開発全体を「要件定義→設計→プログラミング→テスト」と上流工程から下流工程へと順番に進めます。
原則、前の工程が完了してから次の工程に進みます。

ウォーターフォールのメリット・デメリット

メリットデメリット
・開発スケジュールを作成しやすい
・開発工数を簡単出せる
・後半の工程(テストなど)で仕様漏れなどが発生すると追加コストが大きい

スパイラルモデル

スパイラルモデルの特徴

「要件分析→設計→プログラミング→テスト」の工程を繰り返しながら開発をする手法です。
最初に機能やフェーズに分割して、1つ目の機能やフェーズに対して「要件分析→設計→プログラミング→テスト」と開発を進めます。
次に2つ目の機能やフェーズに対して「要件分析→設計→プログラミング→テスト」と開発を進めます。

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

アジャイル開発とスパイラルモデルは、機能ごとに工程を繰り返すという点は同じです。
しかし、スパイラル開発は品質を重視し、アジャイル開発はとにかく動くものを開発するという点を重視するという点が異なります。

スパイラルモデルのメリット・デメリット

メリットデメリット
反復的に進めるため次のメリットがある。
・各フェーズでリスクを評価してリスク管理ができる
・仕様変更に柔軟に対応できる
・進捗や全体像が把握しにくい
・工数(コスト)や開発の時間が多くなる

メリットについて、改良及び機能追加を繰り返すことによって利用者の要求の変動に柔軟に対応できます。


インクリメンタルモデル

インクリメンタルモデルの特徴

インクリメンタルモデルは、スパイラルモデルと似ています。
スパイラルモデルは 要求定義〜テスト工程 を繰り返しますがが,インクリメンタルモデルは要求定義は最初の1回だけ行い,それ以後の 設計〜テスト工程 のみを繰り返します。

次に例では、最初に要件定義を行い、優先度の高い順に「登録機能→検索機能→ログイン機能」という流れで開発することになった場合です。

インクリメンタルモデルのメリット・デメリット

メリットデメリット
・主要部分の開発が完了したタイミングで早期リリースができる
・要件定義後の各機能開発は並列開発が可能
・各機能の依存関係が複雑になると、統合時に問題が発生することがある

エボリューショナルモデル

エボリューショナルモデルの特徴

エボリューショナルモデル(進化的モデル)は、最初から完璧な形を目指すのではなく、簡単な部分から開発していき、段階的に改善しながら進化させていきます。

コメント

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