Information-technology Promotion Agency, Japan
Software
Engineering
Center
アジャイル開発適用のヒント
~ IPA/SECにおける
非ウォーターフォール型開発に関する調査検討結果から ~
独立行政法人情報処理推進機構(IPA)
技術本部ソフトウェア・エンジニアリング・センター(SEC)
山 下 博 之
於)e-とぴあ・かがわBBスクエア
2012年12月7日
かがわ情報化推進協議会設立20周年記念事業
IPAセミナーin高松
~セキュリティとソフトウェアエンジニアリング~
SEC
Software Engineering for Mo・No・Zu・Ku・Riアジャイル開発に関するIPA/SECの取組み
H21年度
H22年度
H23年度
H24年度
非ウォーターフォール
型開発研究会
非ウォーターフォール
型開発WG
非ウォーターフォール
型開発WG
非ウォーターフォール
型開発WG
非ウォーターフォール
型開発に関する調査
実証/模擬実験
(契約形態)
大規模開発
普及要因
▲
報告書
▲
報告書
▲
報告書
報告書(公開中)
H21年度版
http://sec.ipa.go.jp/reports/20100330a.html
H22年度版
http://sec.ipa.go.jp/reports/20110407.html
H23年度版
http://sec.ipa.go.jp/reports/20120326.html
(事例)
http://www.ipa.go.jp/about/press/20120328.html
(普及要因)
http://sec.ipa.go.jp/reports/20120611.html
事例収集(1)
課題抽出
課題検討
検証・改善
事例収集(2)
提案
▲
報告書
▲
報告書
▲
報告書
▲
報告書
事例収集(3)
SEC
Software Engineering for Mo・No・Zu・Ku・Ri目 次
1. アジャイル型開発への注目の背景
2. アジャイル型開発手法
3. アジャイル型開発の活用に向けた課題
4. アジャイル型開発の普及に向けた課題
5. アジャイル型開発の適用領域
6. 適切な開発手法の選択
7. アジャイル開発の今後(まとめに代えて)
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
SEC
Software Engineering for Mo・No・Zu・Ku・Ri注目の背景:現状のソフトウェア開発を取り巻く課題(1)
ビジネス・ニーズへの適切な対応
他社に先駆けた市場投入が必須で、それにより徐々に明確
となるニーズを迅速に反映し改善していくことが必要な分野の
出現
顧客ニーズは最初に全ては把握できず、またビジネス環境の
激しい変化に伴いニーズも変化するが、この状況に迅速な対
応が必要
→早期サービス提供と効果確認、ニーズ変化への俊敏な対
応
H21年度
SEC
Software Engineering for Mo・No・Zu・Ku・Ri注目の背景:現状のソフトウェア開発を取り巻く課題(2)
(純粋な)ウォーターフォール型開発における問題点
初期段階では必ずしも全ての要求内容は確定しない
誤要求や要求の誤解が総合テスト段階で判明すると、多大な
影響
開発途中で要求が変更されると、対応が非常に困難
→要求確定部分からの順次開発開始と、妥当性の早期確認
H21年度
SEC
Software Engineering for Mo・No・Zu・Ku・Ri注目の背景:現状のソフトウェア開発を取り巻く課題(3)
ソフトウェア産業構造(多重下請構造)上の課題
開発者(特に若者)の参画意識・達成感が低い
→開発の過程と各開発者の役割や成果を可視化し、創造的
な開発スタイルを採り入れ、モチベーション向上をはかる
H21年度
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
SEC
Software Engineering for Mo・No・Zu・Ku・Ri反復
(イテレーション)
アジャイル開発の概要
スコープ
時間
要求
開発
テスト
スコープ
時間
要求
開発
テスト
スコープ
時間
反復
スコープ
時間
反復
顧客の要求
にしたがって
,
優先度
の高い機能から
順に
,
要求・開発・テスト(・リリース)を短い期間で繰り返しながら,
システム全体を構築していく.
原則として,
事前に開発の詳細な計画は作らず,
1~4週間という
一定の短い周期
で要求・開発・テストを
繰り返し
ながら,
動作可能なソフトを作り上げる.
<アジャイル型開発>
<ウォーターフォール型開発>
(対比)
SEC
Software Engineering for Mo・No・Zu・Ku・Riアジャイル型開発の特徴
アジャイル開発は、不確実なビジネス環境の中で変化する
ニーズへの迅速な対応を目的としたソフトウェア開発手法。
この目的を達成するために、アジャイル開発では、
徐々に明確となる顧客ニーズや要件をシステムへ反映し、プロジェクトマ
ネジメント・リスクの早期低減、顧客側と開発側のギャップを解消。
アジャイル開発は、
•「顧客の参画の度合いが強い」
•「動くソフトウェアを成長させながら作る」
•「反復・漸進型である」
•「人と人のコミュニケーション、コラボレーションを重視する」
•「開発前の、要求の固定を前提としない」
という特徴を持つ。
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
非ウォーターフォール型開発の例
非ウォーターフォール型開発とは、仕様を開発前に固定し、それを分析、設計、テスト等のフェイズ
を順次踏んでいくという1970年の Winston W. Royce の論文「Managing the Development of
Large Software Systems」での
ウォーターフォール型以外の開発モデルの総称
である。
非ウォーターフォール型開発の例として、以下のものが挙げられる:
・プロトタイプ (Frederick P.Brooks, Jr.-1975年「人月の神話」)
・スパイラル (Barry w. Boehm-1988 年
「A Spiral Model of Software Development and Enhancement」)
・RAD (James Martin-1991年 「ラピッドアプリケーションデベロップメント」)
・RUP (Philippe Kruchten-2000年「ラショナル統一プロセス入門」)
・
アジャイル
Evo (Tom Gilb-1976年「Software Metrics」)
Scrum (Ken Schwaber-1993年「アジャイルソフトウェア開発スクラム」)
DSDM (1995年「DSDM ver1」)
XP (Kent Beck-1996年「XPエクストリーム・プログラミング入門 」)
FDD-Feature-Driven Development
(Peter Coad-1997年「Javaエンタープライズ・コンポーネント」)
Lean Software Development
(Mary Poppendieck, Tom Poppendieck-2002年「リーンソフトウェア開発」)
Crystal Clear (Alistair Cockburn-2004年「アジャイルソフトウェア開発」)
EssUp-Essential UP
(Ivar H.Jacobson-2005年「Rational Software Development Conference」)
Kanban (David Anderson-2010年「Kanban」)
SEC
Software Engineering for Mo・No・Zu・Ku・Riアジャイル宣言における4つの価値
アジャイル宣言(Agile Manifesto)
アジャイルな開発手法の提唱者17名が集まり,2001年に発表.
http://agilemanifesto.org/iso/ja/manifesto.html
私たちは,ソフトウェア開発の実践を手助けする活動を通じて,
よりよい開発方法を見つけだそうとしている.
この活動を通して,私たちは以下のことを重視する:
①プロセスやツールよりも,個人と対話を
②包括的なドキュメントよりも,動くソフトウェアを
③契約交渉よりも,顧客との協調を
④計画に従うことよりも,変化への対応を
すなわち,①~④の各文の前者(「よりも」の前の言葉)に価値
があることを認めながらも,私たちは後者(「よりも」の後の言葉)
の事柄により価値をおく.
SEC
Software Engineering for Mo・No・Zu・Ku・Riアジャイル宣言の背後にある12の原則
私たちは以下の原則に従う。
①顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供する。
②要求の変更はたとえ開発の後期であっても歓迎する。
変化を味方につけることによって、顧客の競争力を引き上げる。
③動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短い時間間隔でリリースする。
④ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働く。
⑤意欲に満ちた人々を集めてプロジェクトを構成する。
環境と支援を与え仕事が無事終わるまで彼らを信頼する。
⑥情報を伝える最も効率的で効果的な方法は、フェイス・トゥ・フェイスで話をすることである。
⑦動くソフトウェアこそが進捗の最も重要な尺度である。
⑧アジャイル・プロセスは持続可能な開発を促進する。
一定のペースを継続的に維持できるようにしなければならない。
⑨技術的卓越性と優れた設計に対する不断の注意が機敏さを高める。
⑩シンプルさ(ムダなく作れる量を最大限にすること)が本質である。
⑪最良のアーキテクチャ・要求・設計は、自己組織的なチームから生み出される。
⑫チームがもっと効率を高めることができるかを定期的に振り返り、それに基づいて自分たち
のやり方を最適に調整する。
参考
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
アジャイル開発のプロセス・モデル
(H21年度調査結果に基づく)
SEC
Software Engineering for Mo・No・Zu・Ku・Ri調査事例から導かれた開発プロセス・モデル(1)
モデル1
企画
システム運用
• n=1のケースもあり。
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第1リリース
・・・
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第2リリース
・・・
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第mリリース
考え方
シンプルな基本形
SEC
Software Engineering for Mo・No・Zu・Ku・Ri調査事例から導かれた開発プロセス・モデル(2)
モデル2
要求・アーキテ
クチャ設計
・基盤開発
企画
システム運用
• 比較的大規模システム/新規開発で全体のシステム構造が不明確なケースなど
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第1リリース
・・・
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第mリリース
考え方
拡張形.基盤・共通部といくつかの機能部とから構
成されるソフトウェア(右図)において,最初にまず,
基盤・共通部の開発を終えた後,機能部群につい
て,アジャイル開発を行う.基盤・共通部が確固とし
ていないと,追加・変更時の機能部への影響が大き
くなりすぎることを避ける.アジャイル開発では,基
盤・共通部の変更は,原則として行わない.
基盤・共通部
機
能
1
機
能
2
機
能
3
機
能
4
…
SEC
Software Engineering for Mo・No・Zu・Ku・Ri調査事例から導かれた開発プロセス・モデル(3)
モデル3
システム運用
・ アジャイル開発では反復ごとにリリースできる品質までテストを行うことが原則だが、
各リリース工程前に行う重点的なテストを実施することがある。
・ リリースは複数回繰り返される
企画
リリース前
テスト
・・・・・・
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第1リリース
リリース前
テスト
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第mリリース
考え方
顧客やビジネスの特徴から,特に高い品質が求められたり,品質がクリ
ティカルであったりする場合に,リリース前に品質確保のための特別のア
クションを実施する.
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
SEC
Software Engineering for Mo・No・Zu・Ku・Riアジャイル開発のモデル - プロセスの対応 -
要求
開発
テスト
<標準>
ソフトウェアライフサイクル
プロセス(SLCP)
要求
開発
テスト
<実際>
注) 図形のサイズは意
味を持たない(時間,
規模を表さない).
(部品)
ウォーターフォール型
大きなプロセスを
順に実施し,
それを1回で終了
アジャイル型
小さなプロセスを
行き来しつつ実施し,
それを何回も反復
注) 図形のサイズは意味を持つ.
SEC
Software Engineering for Mo・No・Zu・Ku・Riアジャイル開発の利点:迅速なリリース・要求変化対応
ウォーターフォール
アジャイル
イテレーション
顧客と
開発者の
距離
時間
可視性
イテレーション毎に
動作させて確認
リリース
優先機能から早期にリリース可能
技術リスク
動作するものを
ベースに徐々に
機能を追加
変更容易性
確定できた要件が
あれば開発可能
<出典>
永和システムマネジメント:新しい契約形態での受託開発実践記,SECセミナー資料,2011-10-04.
SEC
Software Engineering for Mo・No・Zu・Ku・Riウォーターフォール型とアジャイル型との手法の違い
ウォーターフォール型
(開発が)
失敗しない
ための手法
ケースバイケースで使い分け
「プロセス」重視
「人」重視
文化が
異なる
“計画”駆動型
(顧客)“価値”駆動型
アジャイル開発
(ビジネスが)
成功する
ための手法
少し試して,その結果に基づいて
次のステップを進める.
例) ビルや橋の建設
作るものも使用する技術も明確
計画時には,ビジネス上,システム上の
課題が未解決,
開始後も変更の可能性大
最初から綿密な計画を立て
計画に従って着実に進める.
SEC
Software Engineering for Mo・No・Zu・Ku・Ri計画
駆動
Q:品質
S:スコープ
(R:要求)
C:コスト
D:納期
開発プロジェクトのパラメータ間の関係
機能N
:
機能M
:
機能
3
機能
2
機能
1
要求(優先順)
価値
実装範囲
S:スコープ
(R:要求)
C:コスト
Q:品質
D:納期
固定
見積り→実際には変動
固定
固定
優先順に従って変動
価値
駆動
品質を維持
しようとすると
コストと納期に影響
スコープ(要求)の
サイズが品質に影響
優先度の低い機能は
実装しても結局は使われない
→無駄な実装はしない
参考
QCDの優先順位
SEC
Software Engineering for Mo・No・Zu・Ku・Riシステム機能の利用度(要求の劣化)
参考
全く使われない
45%
ほとんど使われな
い
19%
たまに使う
16%
よく使う
13%
いつも使う
7%
システムの機能の利用度
<出典> Standish group study report in 2000 chaos report
(平鍋健児氏のプレゼン資料掲載)
SEC
Software Engineering for Mo・No・Zu・Ku・Riシステム開発におけるQCDの優先順位
システム企画工程におけるQCDの優先順位
品質 : 29%
コスト: 24%
納期 : 47%
<出典> ソフトウェアメトリックス調査2012,一般社団法人 日本情報システム・ユーザー協会(JUAS).
参考
調査で収集した801プロジェクトのうち,
「QCDのうちのどれかを優先した」という
回答(313プロジェクト)の内訳
<出典> CIOの哲学:三菱重工業 児玉敏雄氏,日経コンピュータ,2012.10.25.
そうした事業環境の中,いわゆる「QCD」のうち,特に
納期
を
重視してものづくりを進めている.品質の確保は当たり前.開
発・製造期間を短縮して製品の投入スピードをいかに速くでき
るかが,世界を相手に競争優位を築くカギになる.
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
SEC
Software Engineering for Mo・No・Zu・Ku・Riアジャイル型開発に関わる重点課題
日本のソフトウェア競争力を高める
生き生きと働ける環境を作る
(日本にふさわしい)契約のあり方
日本におけるソフトウェア開発の在り方
ユーザ・ベンダ経営層の意識
人材の育成と適正配置
適用領域と適用事例の調査
欧米の競争力(普及要因)の調査
普及
事例収集(1)に
より抽出された
重点課題
目指すべき
ゴール
管理手法や技術面の整備
ツールによる支援
環境整備
領域
見定め
契約
価値評価
人材
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
SEC
Software Engineering for Mo・No・Zu・Ku・Ri37%
29%
26%
23%
18%
16%
15% 14%
11%
10%
9%
5%
0%
5%
10%
15%
20%
25%
Ti
me
-to
-M
a
rk
et
の
加速
変化す
る
優先順位
管理の
た
め
生産性向上
ソ
フ
ト
ウ
ェ
ア
品質
の
向上
IT
と
ビ
ジ
ネ
ス
の
融合改善
プ
ロ
ジ
ェ
ク
ト
の
見え
る
化
リ
ス
ク
削減
開発プ
ロ
セ
ス
の
簡易化
分散チ
ー
ム
管理
エ
ン
ジ
ニ
ア
リ
ン
グ
の
導入
/向上
コ
ス
ト
削減
保守性/
拡張性
向上
チ
ー
ム
の
や
る
気改善
1.Time-to-Marketの加速
2.変化する優先順位管理のため
(VersionOne社 アジャイル開発の現状調査第6回
2011
より)
参考
アジャイル型開発手法の導入理由 (海外)
35%
30%
40%
39%
SEC
Software Engineering for Mo・No・Zu・Ku・Ri顧客・経営層は開発への一層の関与が必要
顧客(ユーザ)経営層
ビジネス環境が激しく変化する現状において,ITシステムに関し,従来
のように情報システム部門に任せきりでは適切に対応できない.開発
形態(*)にも深く関与する必要がある.
(*) アジャイル開発の採用,クラウドコンピューティングの利用,など
ベンダ経営層
俊敏な開発の実績を武器に受注を狙う海外勢等に対抗するためには,
自ら俊敏な開発を実施できる体制作りに取り組むと共に,その結果を
顧客に売り込む必要がある.
<経営層の責任>
・情報システムに関する理解の増進
・迅速かつ適切な意思決定
・関係部門との経営上の綿密な調整
SEC
Software Engineering for Mo・No・Zu・Ku・Ri顧客・経営層が開発上で考慮すべき点
顧客・経営層は、アジャイル開発の採用を決断した時点で、顧客が
チー
ムの一員として参画
し、タイムリーな意思決定を行ったり、品質や進捗状
況の把握等に関し、主体的に開発に関わらざるを得ないということに十
分な理解と覚悟を持つ。
「最初に全ての要件を決めないでもよく、途中で適宜明確にしていけば
よい」という
安易な心構え
で開始すると、
途中で破たん
することが多い。
アジャイル開発の特徴に応じた「見える化」項目を用いて開発プロジェク
トとの
円滑なコミュニケーション
を図り、アジャイル開発採用の本来の目
的が損なわれないように努める。
ユーザ/ベンダ間の
信頼感の醸成
が、円滑に進めるために重要。
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
SEC
Software Engineering for Mo・No・Zu・Ku・Riベンダ経営層はアジャイル開発の体制作りが必要
顧客(ユーザ)経営層
ビジネス環境が激しく変化する現状において,ITシステムに関し,従来
のように情報システム部門に任せきりでは適切に対応できない.開発
形態(*)にも深く関与する必要がある.
(*) アジャイル開発の採用,クラウドコンピューティングの利用,など
ベンダ経営層
俊敏な開発の実績を武器に受注を狙う海外勢等に対抗するためには,
自ら俊敏な開発を実施できる体制作りに取り組むと共に,その結果を
顧客に売り込む必要がある.
<経営層の責任>
・情報システムに関する理解の増進
・迅速かつ適切な意思決定
・関係部門との経営上の綿密な調整
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
アジャイル開発プロセスの流れ:スクラムの例
ToDo
Doing
Done
タスクボード
<出典> 株式会社豆蔵 堀江弘志:「初めての取組み事例に見るアジャイル導入の勘所」 ,
SEC
Software Engineering for Mo・No・Zu・Ku・Riユーザ側・ベンダ側に求められるスキル
アジャイル開発におけるユーザ側に求められること:
(全ての機能の仕様を洗い出す能力よりも)
コア
となる機能を
見定め
,
優先度を図りながら
開発プロジェクトの運営を指揮していく能力
明確な仕様を決めなくても良いとはいうものの,定期的なサイクル
で実物を見てフィードバックのポイントを増やすことにより,実際のシ
ステムを目で確認しながら,積み上げるように仕様を決定していく
アジャイル開発のベンダ開発者にとって重要なスキル:
① プロジェクトのアウトプットに関わる判断ではなく,アジャイル開発の
進め方を踏襲させるための
ファシリテーション
スキル
② 反復活動の中で,実際に動くものを作りながら,小規模に,かつト
ータルにプロジェクトの
アウトプットを
積み重ね
ていくスキル
③ 設計,コーディング,テストを
一貫して実施出来るスキル
SEC
Software Engineering for Mo・No・Zu・Ku・Ri人材の育成の考え方
価値
原則
手法
<アジャイル開発の実際>
一つのプロジェクトで全てのプラクティスを使う訳ではない
各プラクティスに厳格な規範はない
様々な方法論・数あるプラクティスから,
プロジェクトや組織に
適した
ものを取捨選択し,
カスタマイズ
することが必要
(平時) 一通りのプラクティスを理解する
(プロジェクト参画時) 使用するプラクティスの習得
↓
全てを完全に身につけるより,
価値に従って行動する
習慣
を確実に身につけることが重要
SEC
Software Engineering for Mo・No・Zu・Ku・Ri件数
14
12
10
8
6
4
2
0
16
18
20
22
頻繁なふりかえり
計画ゲーム
日次のスタンドアップミーティング
(朝会)
継続的インテグレーション
ペアプログラミング
バーンダウンチャート
リファクタリング
テスト駆動開発
コードの共同所有
かんばん
自動化された回帰テスト
ニコニコカレンダー
顧客プロキシ
タスクカード
ポストイット
タイムボックス
頻繁なリリース
コーディング規約
ストーリーカード
単体テストの自動化
スクラムのスプリント
スプリントバックログ
チーム全体が一つに
71.4%
52.4%
47.6%
42.9%
38.1%
28.6%
23.8%
19%
14.3%
15
11
10
10
9
8
8
6
5
4
4
4
3
3
3
3
3
2
2
2
2
2
2
9.5%
9.5%
9.5%
9.5%
9.5%
9.5%
14.3%
14.3%
14.3%
14.3%
19%
19%
38.1%
47.6%
反復型計画
100%
21
※1事例は活用プラクティス不明
参考
調査事例:活用されているプラクティス
SEC
Software Engineering for Mo・No・Zu・Ku・Ri人材の配置(プロジェクト対応)の考え方
自社用のシステム開発から,アジャイル開発OJT
初めの頃の実プロジェクトでは,
コンサルタント(アジャイル・コ
ーチ等)
の支援を得る
個人プラクティスは個人で,チーム・プラクティスを組織で
とはいっても,
アジャイル開発に向いている技術者と,
ウォーターフォール型開発に向いている技術者と,
人材の見極めと適切な配置
が必要
「
個人
の生き残りの条件は、変わり続けること、学び続けること」
会社が変わらなければいけない時は,個人も変わる必要に迫られている
--- 竹内健(中央大学理工学部 教授),Tech-On 2012/08/27
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
モチベーション…科学的実証の結果
http://www.ted.com/talks/lang/ja/dan_pink_on_motivation.html
<出典> Dan Pink on the surprising science of motivation
ダニエル・ピンク 「やる気に関する驚きの科学」
モチベーションと報酬の関係性を,科学的証拠に基づいて丁寧に説明.
報酬
のインセンティブは,視野を狭め,心を集中させることから,単純な
仕事では効果があるが,そうでない
創造的な仕事では逆効果
.
成果を高める
のは,
内的な動機付け
に基づくアプローチ.
すなわち,重要だからやる,好きだからやる,面白いからやる,何か重要
なことの一部を担っているからやる,というもの.
仕事において重要な要素は次の3つ:
•
自主性
…自分の人生の方向は自分で決めたい
•
成長
…何か大切なことについて上達したい
•
目的
…私たち自身よりも大きな何かのためにやりたい
参考
(ある程度
の)裁量
顧客の"価値"
を高める
スキルアップ
になる
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
4. アジャイル型開発の普及に向けた課題
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
海外における普及要因の調査
SEC
Software Engineering for Mo・No・Zu・Ku・Ri海外におけるアジャイル開発の普及要因調査
各調査対象国における普及要因を明らかにするため,次の3項目を調査
駆動要因
土壌
普及要因
① ソフトウェア開発
プロジェクトの比較
(例:プロジェクト種別,
ユーザの関与等)
② IT人材の状況
(例:IT技術者の就労状況や
人材の流動性等)
③ IT人材育成
(教育カリキュラム)の比較
調査項目
日本
デンマーク
英国
米国
中国
ブラジル
調査対象国
調査範囲
欧米の競争力になっている
アジャイル開発の
普及要因
を調査し,
日本における
普及や定着を促進する施策
のヒントとする.
駆動要因
ビジネス的背景,産業構造等
土壌
人材,社会的環境等
SEC
Software Engineering for Mo・No・Zu・Ku・RiScrum Master等の推移から見るアジャイル開発の普及状況
アジャイル型開発方法論で最も有名なスクラムに関する資格者が、2005年以降急増
米国の取得者が群を抜いて多く、ついで英国が多い。日本は極めて少ない(試験は英語)
出典:
Scrum Allianceによる協力
Scrum Master等人数の経年変化
CSM (Certified Scrum Master)
チーム全体の支援者
CSPO(Certified Scrum Product Owner)
製品の責任者
CSP(Certified Scrum Professional)
スクラムの実践者
略称説明
単位(人)
Scrum Master等の人数の経年変化
2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 TOTAL CSM 5 344 907 2,647 6,841 12,857 22,514 26,886 34,601 43,028 150,630 CSPO 83 503 1,891 3,514 5,325 8,629 19,945 CSP 1 2 14 26 38 116 264 366 534 501 1,862 TOTAL 6 346 921 2,673 6,962 13,476 24,669 30,766 40,460 52,158 172,437各国の現在のScrum Master等人数 (2012年3月)
米国 英国 中国 デンマーク ブラジル 日本 TOTAL CSM 67,000 11,800 3,800 3,700 4,600 350 91,250 CSPO 8,000 1,800 400 750 900 120 11,970 CSP 1,100 0 30 30 60 6 1,226 TOTAL 76,100 13,600 4,230 4,480 5,560 476 104,446単位(人)
単位(人)
各国の現在のScrum Master等人数 (2012年3月)
海外普及要因調査
SEC
Software Engineering for Mo・No・Zu・Ku・Riソフトウェア開発プロジェクトの比較 【特徴的データ】
米国では、ソフトウェアに対する投資は「
自社開発(内製)
」「
市販パッケージソフトの利用
」が約2/3を
占めている(下図「米国民間部門における ソフトウェア投資」参照)
さらに、他国に比べて
多くのIT技術者がユーザ企業に所属
している(下図「IT技術者の所属先」参照)
米国のプロジェクトの形態の特徴は、37%が
内製している
こと
941,410
0
1,452,000
450,000
0
771,426
1,446,809
49,024
128,000
100,000
2,362,300
0
554,069
150,000
19,961254,721
365,416
49,669
104,732
124,170
0
500,000
1,000,000
1,500,000
2,000,000
2,500,000
3,000,000
3,500,000
ユーザ企業
ITサービス企業
出典: 「グローバル化を支えるIT人材確保・育成施策に関する調査」概要
報告書 2011年 3月 (IPA)
N
/A
N
/A
IT技術者の所属先
Prepackaged : パッケージソフトを購入
Custom : 外部発注作業
Own account : 自社開発ソフト
出典:「Bureau of Economic Analysis
http://www.bea.gov/national/xls/soft-invest.xls
」
単位(人)
73.4
88.2
96.3
Prepackaged
Custom
Own account
単位(Billions of dollars)
米国民間部門における
ソフトウェア投資
海外普及要因調査
SEC
Software Engineering for Mo・No・Zu・Ku・Riソフトウェア開発プロジェクトの比較 【特徴的インタビュー】
ブラジルでは、
アジャイルは圧倒的
(massive)。私たちの80%の顧客がアジャイルを取り入れてお
り、そのうち半分がアジャイルを「メインの開発手法」としている。
普及要因は、やってみて
実際の
成功率
。従来のウォーターフォールよりも
ビジネスが成功しやすい
。
それから、これは推測だが、ブ
ラジル人は強い管理が苦手。ソフトな管理手法の方がマッチしている。また、これは経済が急速に
発展していることとも関係すると思う。急速な成長には柔軟な手法が合う。また、ブラジルは北米
と時差がなく、このことは、
北米からのソフトウェア開発のアウトソーシングを受ける受託開発
では
大きな要因。アジャイルは顧客との高レベルなコミュニケーションが必要。質問があったときに顧客
に電話等で不明点を明らかにできることは、非常に重要。我々の会社は中国にも支社があるが、
中国では米国から受託できない。このように、顧客と開発チームはアジャイルでは、
時差が少ない
ことが要求される
。
ブラジルの状況
ブラジルではアジャイル型開発が
普及している
実践
した結果、
顧客のビジネスの成功率が高い
ことが普及要因
北米からの
アジャイル受託開発
が伸びている
理由は北米とブラジルは
時差が少なく
、
リアルタイムコミュニケーション
が可能であること
(出典: Bruno Guicardi氏 インタビュー)
海外普及要因調査
SEC
Software Engineering for Mo・No・Zu・Ku・RiIT人材の状況 【特徴的なデータ】
米国では
IT関連職が人気の職業
2009年:
Systems Engineer が1位
2010年:
Software Architectが1位
システムズ・エンジニア
看護師
医師助手
大学教授
ITプロジェクト
マネージャー
ソフトウェア開発者
ソフトウェア
プロダクト
マネージャー
弁護士
最高給与
給与中央値
ランク
<出典>
Focus, Best Jobs in America:
http://kelsocartography.com/blog/?p=3585
CNN Money:
http://money.cnn.com/magazines/moneymag/bestjobs/2010/index.html
米国では
恒常的
にIT関連職の給与が高く、
人気も高い
中国、ブラジルでは、 IT関連職の
人材が不足しているため
、IT関連職の給与が高く、
人気が高い
米国、中国、ブラジルでは、IT関連職が人気であるため、
優秀な人材
が集まる
システムズ・エンニアとは、日本のSEのニュアンスとは
異なる。ソフトウェアを含むシステム全体の構造を検
討・定義する役割を持つ職種をさす(出典:CNN
Money をもとに編集)
海外普及要因調査
SEC
Software Engineering for Mo・No・Zu・Ku・Ri日本におけるアジャイル型開発にふさわしい
契約モデルの提案
http://sec.ipa.go.jp/reports/20120326.html
SEC
Software Engineering for Mo・No・Zu・Ku・Ri調査事例:契約形態の集計(H21年度)
契約の種類
件数
比率
請負契約
6
33.3%
請負契約(月毎)
1
5.6%
請負契約+準委任契約
1
5.6%
準委任契約
7
38.9%
労働者派遣契約
1
5.6%
不明
2
11.1%
合計
18
100 %
(社内開発:契約無し)
(4)
ー
⇒海外では、直接雇用やTime&Materialの準委任型契約が中心だが、
日本では、アジャイル型開発とはなじみにくい請負契約の割合も高い。
参考
SEC
Software Engineering for Mo・No・Zu・Ku・RiWF型開発と比較したアジャイル開発の特徴
ユーザとベンダの
緊密な協力体制
が必須
-
相手方の問合せへの迅速な応答
-
担当作業の迅速な実施
-
ユーザ/ベンダ間の責任分担が不明確になりがち
ユーザ要求の詳細が
契約時点では未確定
-
何を作るか決まっていない(成果物未定)
-
性能・品質等が不明確
-
工数見積りが困難(コスト未定)
開発途中での
ユーザ要求の変化
を柔軟に受け入れる必要
-
決定した事項も変更されることがある
契約
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
Software Engineering Center
50
アジャイル開発と契約の対立
契約
合意内容を固定
して、当事者を
法的に拘束
する
アジャイル開発
変化に対応すべく、合意内容の
変更を柔軟に認め
、
当事者をなるべく
拘束しない
⇒アジャイル開発にはふさわしい契約とは?
契約
SEC
Software Engineering for Mo・No・Zu・Ku・Riシステム開発において主に使われる契約類型
請負契約(民法632条~642条)
一方が仕事を完成させることを請負い、その相手方が完成した
仕事に対して報酬を支払うことを約束する契約。
⇒契約時点で、ベンダが完成すべき仕事の内容を明確にしてお
く必要。
準委任契約(民法643条~656条)
事務処理を目的とする契約であり、仕事の完成を目的としない。
ベンダは、善良な管理者の注意をもって、委任された事務を処理
する義務(善良管理者注意義務)を負う。
⇒ベンダに完成義務がなく、ユーザにとって不安。
契約
SEC
Software Engineering for Mo・No・Zu・Ku・Riアジャイル開発には、どんな契約がふさわしいのか?
開発内容が決まっていない
段階で、開発プロジェクト全体に
つき、一つの
請負契約
を結ぶのは適切ではない(何をいくら
で完成させるか不明)。
他方、開発プロジェクト全体を
準委任契約
にすることは、ベ
ンダが完成義務を負わない点で、
ユーザ側に不安
がある(た
とえ成果物が完成しなくても、ユーザは対価を支払う必要) 。
また、アジャイル開発の特徴である
ユーザとベンダの協働関
係
を、契約に取り入れる必要がある。
契約
注) ユーザ側での
労働者派遣契約
に基づく開発チーム構成
には,契約上の問題は特にない.
(
内製
傾向の高まりに伴い増加?)
SEC
Software Engineering for Mo・No・Zu・Ku・Ri契約問題PTで検討された契約モデル案
基本/個別契約モデル
:
プロジェクト全体に共通する事項につき、基本契約を締結し、
小さな機能単位ごとに、開発対象と費用がある程度確定し
たタイミングで個別契約(請負/準委任)を順次締結する。
組合モデル
:
ユーザとベンダが共同で
ジョイント・ベンチャー
としての組合を
組成し、協力してシステム開発(収益性のあるもの)を企画・
実施する(開発された成果から得られた収益は、ベンダと
ユーザに分配される)。
契約
SEC
Software Engineering for Mo・No・Zu・Ku・Ri基本/個別契約モデルの概要
企画
システム運用
• n=1のケースもあり。
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第1リリース
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第2リリース
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第mリリース
基本契約
個別契約
個別契約
個別契約
企画
システム運用
• n=1のケースもあり。
第1反復
テ
ス
ト
開発
要求
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第1リリース
第1反復
テ
ス
ト
開発
要求
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第2リリース
第1反復
テ
ス
ト
開発
要求
第1反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
第n反復
テ
ス
ト
開発
要求
・・・
第mリリース
基本契約
個別契約
個別契約
個別契約
個別契約
個別契約
個別契約
契約
基本契約
個別契約
個別契約
個別契約
- 例 -
SEC
Software Engineering for Mo・No・Zu・Ku・Ri5. アジャイル型開発の適用領域
[注]
•適用領域も変化する
•領域のコンテキストに応じ,適切な開発手法を
SEC
Software Engineering for Mo・No・Zu・Ku・Riアジャイル開発の適用領域・試行領域
全てのソフトウェア開発に、これらの特徴を有するアジャイル開発
手法を適用できる、あるいはすべきだ、という
立場ではない
。
ビジネスや市場、その他の開発の“コンテキスト”によって、ウォー
ターフォール型の開発が適している場面もあれば、アジャイル型の
開発が適している場面もある。
アジャイル開発は、
•「顧客の参画の度合いが強い」
•「動くソフトウェアを成長させながら作る」
•「反復・漸進型である」
•「人と人のコミュニケーション、コラボレーションを重視する」
•「開発前の、要求の固定を前提としない」
という特徴を持つ。
SEC
Software Engineering for Mo・No・Zu・Ku・Riアジャイル開発の適用領域
アジャイル開発が得意とし、現在、その適用により効果を挙げて
いる領域:
①ビジネス要求が変化する領域
・要求の変化が激しく,あらかじめ要求が固定できない領域。
②リスクの高い領域
・不確実な市場を対象としたビジネス領域(市場リスク)
・技術的な難易度が高い開発領域(技術リスク)
③市場競争領域
・他社に先駆けた製品・サービス市場投入が命題であり,TTM(Time to
Market)の短縮が優先となる領域(Webのサービス,パッケージ開発,
新製品開発).
SEC
Software Engineering for Mo・No・Zu・Ku・Riアジャイル開発の試行領域
アジャイル開発による経験が十分には蓄積されておらず、現在、
チャレンジと創意工夫が求められている領域:
①大規模開発
・開発者10人程度を超えると、システム分割、チーム分割が必要。その分
割方法、及び、分割されたチーム間のコミュニケーションが課題。
②分散拠点(オフショア含む)開発
・開発拠点が分散し、さらに時差によって分断される場合のコミュニケーショ
ン手法、また、それをサポートするツールが必要。
③組織(会社)間をまたぐ開発チームによる開発
・共通のビジネスゴールを持ったチームを組むことが難しい。
④組込みシステム開発
・リリース後のソフトウェア修正が極めて困難であり、採用には工夫要。
SEC
Software Engineering for Mo・No・Zu・Ku・RiNo.
事例概要
1 小売業における業務システム開発事例
2 ソーシャルネットワーキングサービス(SNS)システム開発事例
3 サプライチェーンマネジメントシステム開発事例
4 研修運営システム開発事例
5 開発案件管理Webアプリケーション開発事例
6 製造業向けプロトタイプシステム開発事例
7 携帯ソーシャルゲーム開発事例
8 携帯端末向けブログシステム開発事例
9 パッケージソフトウェア開発事例
10 共通認証システム開発事例
11 プロジェクト管理システム開発事例
参考
H21年度調査事例一覧(1/2)
SEC
Software Engineering for Mo・No・Zu・Ku・RiNo.
事例概要
12 アプリケーションプラットフォーム開発事例
13 教務Webシステム開発事例
14 教育機関向け統合業務パッケージ開発事例
15 検索エンジン開発事例
16 システム管理ミドルウェア開発事例
17 株式取引のためのWebアプリケーション開発事例
18 プラント監視制御用計算機システム開発事例
19 生産管理システム開発事例
20 Webメディア開発事例
21 アジャイル型開発の支援環境開発事例
22 業界共通電子データ交換基盤構築事例
参考
H21年度調査事例一覧(2/2)
SEC
Software Engineering for Mo・No・Zu・Ku・Riチ
ー
ム
の
人数
(
人)
2
4
6
8
10
12
2
4
6
8 10 12 14 16 18 20 22 24
開発期間 (月)
⇒チームの人数は8割が
10人以下
⇒開発期間は
2~4ヶ月
が45%、1年超が35%
参考
事例:アジャイル型開発プロジェクトの規模
SEC
Software Engineering for Mo・No・Zu・Ku・Ri
中・大規模開発事例の調査
SEC
Software Engineering for Mo・No・Zu・Ku・Ri中・大規模開発事例の調査:事例一覧
No.
規
模
部分
適用
採用手法
対象システム種別
契約
1 大
独自
B2Cサービス (SNS)
無(自社内)
2 大
Scrum
B2Cサービス (ソーシャルゲーム) 無(自社内)
3 大 ○ Scrum
ゲームソフト
受託(未公開)
4 大 ○ Scrum+独自 基幹システム
受託(準委任)
5 中
Scrum
B2Cサービス (会員サービス)
無(自社内)
6 中
Scrum+XP
B2Cサービス (医療・健康)
無(自社内)+オフショア*
7 中
Scrum+XP
B2Cサービス (エンタテインメント) 無(自社内)+オフショア*
8 中
XP
B2Cサービス (会員サービス)
受託(請負)
9 中
○ XP
B2Cサービス (ECサイト)
受託(請負)
10 中 ○ XP
B2Cサービス (会員サービス)
受託(準委任)
中規模:30~100名,大規模:100名以上
独自:特に手法を決めず自ら定義,Scrum+XP:両手法を組み合わせて実践
*:準委任
SEC
Software Engineering for Mo・No・Zu・Ku・Ri適用にあたっての主な工夫(1/3) (一覧)
中・大規模開発特有の工夫
組織体制
チーム間ローテーション
コミュニケーション
段階的朝会
チーム跨ぎのふりかえり
展開
漸進的な人数増加
漸進的な展開
社内勉強会
分散拠点開発
同一拠点から分散へ
TV会議
アーキテクチャ
組織の共通基盤アーキテク
チャの利用
アーキテクチャについての教育
システム分割/インテグレーション
同じリズム
小規模開発と同様だが
特に注意して実施する工夫
コミュニケーション
完全透明性
展開
パイロット導入
認定研修・コンサルタントの利用
分散拠点開発
チケットシステム
リアルタイムチャット
アーキテクチャ
アーキテクチャの改善
システム分割/インテグレーション
疎結合で分割
早期からのインテグレーション
継続的インテグレーション
品質
重視するビジネス価値
ビジネス価値の変化
タイムボックス優先の品質
自動単体テスト
小規模開発とは逆の
アプローチをとる工夫
アーキテクチャ
最初のアーキテクチャ構築
アーキテクチャ専門チーム
運用保守チーム
品質
テスト・フェーズ
品質
第三者テスト
部分適用
必要な部分のみ適用
疎結合なチーム
工程の見える化
SEC
Software Engineering for Mo・No・Zu・Ku・Ri適用にあたっての主な工夫(2/3)
チーム間ローテーション
チーム間の知識伝播促進のため,メンバのローテーションを行う.一時的に
速度は落ちるが,各チームの知識を効率よく伝播でき多能工化が高まる.
段階的朝会
複数チーム間は朝会を段階的に実施.チーム→全体(→チーム).
漸進的な展開
一度にすべてのチームに広げるのではなく,まずは導入障壁の低いところ,
最も必要なところから順次導入し,少しずつ展開.ふりかえりで,次はどこ
に広げていけばいいかを考える.
コミュニケーション・ツールの活用
TV会議システム,雑記帳システム(SNS,Blog等)
工夫例(1/2)
SEC
Software Engineering for Mo・No・Zu・Ku・Ri適用にあたっての主な工夫(3/3)
アーキテクチャの重視
プロジェクト前半にアーキテクチャを構築する事例が多く,アーキテクチャ専
門チームを編成して構築.
構築されたアーキテクチャを組織の共通基盤とし,再利用できるようにして
いる事例あり.
疎結合な機能分割
疎結合な機能でサブシステム分割を行う.
7割のチームがCI(継続的インテグレーション)を実施.
テスト専用フェーズ
プロジェクト後半で専用のテストフェーズを実施.プログラム開発の反復を
停止する事例と,テストのみの反復期間を設ける事例あり.
工夫例(2/2)
SEC
Software Engineering for Mo・No・Zu・Ku・Ri浮かび上がった問題点
全体計画の把握困難
要求の変化や開発状況に応じて着手する順番や範囲を決めるため,
プロジェクト開始時にプロジェクト全体の把握が困難な事例あり.
ビジネス企画側にボトルネック発生
スクラム導入の結果,ビジネス企画者の決定待ち等のボトルネック
が発生した事例が多い.中には開発者の信頼をなくした事例もあり.
反復リズムとの不適合状態の発生
セキュリティ監査や外部テスト業者,発注者の外部組織や関連組織
との関係において,反復リズムと適合せずに問題が発生している事
例あり.
主な問題点
SEC
Software Engineering for Mo・No・Zu・Ku・Ri