無料ブログはココログ

« 自動改札機のエラー音が鳴る理由 | トップページ | スポンサーのいるオープンソース »

アジャイル開発の生産性の高さを考える

ソフトウェアをアジャイルで開発すると生産性が高い、と言われるのはなぜでしょう。普通に考えると、

  • 手戻りの減少(継続的インテグレーション、小規模リリース、オンサイト顧客)
  • 信頼性向上(ペアプログラミング・テストファースト)
  • 保守性の向上(シンプルデザイン、リファクタリング、コーディング標準)
  • 知識や作業の共有・時間軽減による生産性向上(オンサイト顧客、メタファ、コード共有、40時間)
  • コミットメントによるやる気(計画ゲーム)

といったところなのでしょうか(カッコ内はXPのプラクティス。最近はWikipediaにあるように体系的に整理されたようですが、ObjectClubの定義に合わせました)。しかし、最近はYAGNIによる2割8割の効果が最も大きいような気がしています。

2割8割と言うのは、パレートの法則から来ているものです。パレートは多く(8割)の問題が、一部(2割)の原因によるものであるとしていますが、ソフトウェア機能のほとんど(8割)が少ない工数(2割)で開発できるが、残り(2割)に多くの工数(8割)がかかると言うものです。

アジャイルソフトウェア開発では、開発に優先順位をつけて段階的に開発していきます(
計画ゲーム、継続的インテグレーション、小規模リリース)。そこではYAGNIと言われる今必要でないものは後回しにする思想のもと、保守の容易な構造で開発されます(シンプルデザイン)。

難しい2割の機能が全て後回しになるわけではありませんが、必須であるかどうかわからない難しい機能は後回しになり、場合によっては開発されないこともあるでしょう。これが、決定を遅らせるというリーン開発の実践になり、生産性を高めているのではないでしょうか。

このエントリーをはてなブックマークに追加

« 自動改札機のエラー音が鳴る理由 | トップページ | スポンサーのいるオープンソース »

私のアジャイル」カテゴリの記事

ソフトウェア」カテゴリの記事

プログラミング」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: アジャイル開発の生産性の高さを考える:

« 自動改札機のエラー音が鳴る理由 | トップページ | スポンサーのいるオープンソース »