アジャイル開発の生産性の高さを考える
ソフトウェアをアジャイルで開発すると生産性が高い、と言われるのはなぜでしょう。普通に考えると、
- 手戻りの減少(継続的インテグレーション、小規模リリース、オンサイト顧客)
- 信頼性向上(ペアプログラミング・テストファースト)
- 保守性の向上(シンプルデザイン、リファクタリング、コーディング標準)
- 知識や作業の共有・時間軽減による生産性向上(オンサイト顧客、メタファ、コード共有、40時間)
- コミットメントによるやる気(計画ゲーム)
といったところなのでしょうか(カッコ内はXPのプラクティス。最近はWikipediaにあるように体系的に整理されたようですが、ObjectClubの定義に合わせました)。しかし、最近はYAGNIによる2割8割の効果が最も大きいような気がしています。
2割8割と言うのは、パレートの法則から来ているものです。パレートは多く(8割)の問題が、一部(2割)の原因によるものであるとしていますが、ソフトウェア機能のほとんど(8割)が少ない工数(2割)で開発できるが、残り(2割)に多くの工数(8割)がかかると言うものです。
アジャイルソフトウェア開発では、開発に優先順位をつけて段階的に開発していきます(
計画ゲーム、継続的インテグレーション、小規模リリース)。そこではYAGNIと言われる今必要でないものは後回しにする思想のもと、保守の容易な構造で開発されます(シンプルデザイン)。
難しい2割の機能が全て後回しになるわけではありませんが、必須であるかどうかわからない難しい機能は後回しになり、場合によっては開発されないこともあるでしょう。これが、決定を遅らせるというリーン開発の実践になり、生産性を高めているのではないでしょうか。
« 自動改札機のエラー音が鳴る理由 | トップページ | スポンサーのいるオープンソース »
「私のアジャイル」カテゴリの記事
- One fact in one placeとチケット駆動開発 - Software Processes are Software, Too -(2021.12.21)
- マルチスレッド処理と進捗管理・配員・作業分割/割り当て- Software Processes are Software, Too -(2021.12.20)
- カプセル化と組織パターン - Software Processes are Software, Too -(2021.12.20)
- Greedy algorithmと2割8割の法則 - Software Processes are Software, Too -(2021.12.12)
- 「任せて、任せず」「魚を与えるのではなく"釣り"を教えよ」(2021.08.16)
「ソフトウェア」カテゴリの記事
- One fact in one placeとチケット駆動開発 - Software Processes are Software, Too -(2021.12.21)
- マルチスレッド処理と進捗管理・配員・作業分割/割り当て- Software Processes are Software, Too -(2021.12.20)
- カプセル化と組織パターン - Software Processes are Software, Too -(2021.12.20)
- 論文研修会(導入編)- 論理的思考のすすめ -(2019.12.01)
- デブサミ関西でNode-REDとペンギンと勇気の話をしました #devsumiB(2018.10.28)
「プログラミング」カテゴリの記事
- Greedy algorithmと2割8割の法則 - Software Processes are Software, Too -(2021.12.12)
- 論理的に考え伝える – SEA関西「開発現場で役立つ論文の書き方のお話」 -(2021.05.09)
- 論文研修会(導入編)- 論理的思考のすすめ -(2019.12.01)
- スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会(2019.01.27)
- デブサミ関西でNode-REDとペンギンと勇気の話をしました #devsumiB(2018.10.28)
この記事へのコメントは終了しました。
コメント