このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

目次

アジャイル開発

  • プロジェクトの途中で起こる変化を受け入れることを前提に、タイムボックスを適用して反復・進化型の開発を行う手法。
    • タイムボックスとは、動かせない時間の箱のこと。開発からリリースまでの期間を1週間や1ヶ月などと決め、その範囲で機能を作りこむこと。新しく出ててきた機能は延期せず次のタイムボックスで対応する。
  • 1週間・2週間といった短いサイクルで、幹となる機能から開発しユーザに評価させて、また拡張して行くインクリメンタル開発の形を取る。

アジャイル開発の特徴

  • 開発者とユーザが一緒の部屋にいる。
  • 1回の反復(要求→設計→実装⇔テスト)の期間を毎回顧客と決めながら、反復が終わる度に動作する製品をリリースする。
  • 動作するプログラムを最重視しており、ドキュメントには重きを置いていない。

アジャイル開発の問題点

  • アジャイル開発可能な技術者の不足
  • 請負契約*1の問題
    • アジャイル開発は顧客とやり取りしながら反復期間をその都度決める。これは請負契約では難しい。
      • 顧客側から見れば請負契約ならば工期をオーバーしても金額的に負担のない。一方アジャイル開発のために期間契約にすると反復をたびに契約をしなければならない。
  • 顧客への責任と負荷
    • アジャイル開発は今までの丸投げ式の請負契約開発に比べて、顧客にそれなりの責任と負担をかける。
  • 工期の長さ
    • 顧客要件が変わらないという前提ならば、要求をその都度確認しながら反復を行うアジャイル開発よりも、要求を確定した後で一気に開発を行うウォータフォール型開発では、後者の方が理屈上工期が短くなる。

アジャイル宣言

 2001年に発表されたアジャイル宣言は次のように、機械よりも人間に焦点を当てた原則となっている。

プロセスやツールよりも個人と相互作用を
完全なドキュメントよりも動作するソフトウェアを
顧客との契約交渉よりも顧客との協調を
計画にしたがうよりも変化への対応を

計画駆動型開発とアジャイル開発

  • 計画駆動型開発
    • 従来の方式
    • ソフトウェア工学に基づいてソフトウェアの開発を進めていくものであり、ドキュメントを作成することに最新の注意を払い、場合によってはドキュメントが完成するまで次の作業に進まない。
      • 例:ウォータフォール
  • アジャイル開発
    • ソフトウェアの職人によってソフトウェア開発を進めていこうというものであり、ドキュメントは重視せず(まったく作らないわけではなくコストとの兼ね合い)、開発者の暗黙知で作業を進めていく。

参考文献

  • 『ITアーキテクト×コンサルタント』
  • 『プログラムの育てかた』


*1 請負契約とは最初に要求を確定し、その要求を満たすための工数と金額を提示する契約方式である