gile
oftware
engineering
ソフトウェア工学の分岐点における、
アジャイルの役割
㈱永和システムマネジメント
㈱チェンジビジョン
平鍋 健児
1
Change Vision, Inc.
概要
ソフトウェア工学という言葉が生まれて40年を過ぎるが、ソフトウ
ェア開発現場の中で、その占める位置と影響力は激しい変化
にさらされている。
過程で現れたオブジェクト指向技術の主導者たちは、「ソフトウェ
アパターン」そして「アジャイル」と呼ばれる活動に参加し、開
発の中でのより人間的活動、ソーシャルなダイナミクスにより
注目することによって、ソフトウェア工学と現場のギャップを埋
めようとしている。
この講演では、ソフトウェアパターン、アジャイルの歴史的流れ
を追いながら、これらのムーブメントが掬い取ろうとした、ソフ
トウェア工学の課題を見つめるとともに、ソフトウェア工学の
延長方向を探る。さらに、現状のアジャイル自身の課題を認
識することで、開発現場の未来のあり方について考える。
2
Change Vision, Inc.
自己紹介

㈱永和システムマネジメント
– 本社:福井県福井市、支社:東京(2002-)
– Ruby と Agileを使ったシステム開発

株式会社チェンジビジョン
– 本社: 東京
– astah*(JUDE) で見える化

平鍋健児
http://www.change-vision.com/
– リアルタイム,CAD, オブジェクト指向の実践
– UMLエディタJUDE/astah*の開発
– アジャイルプロセス協議会、副会長
– 翻訳、XP関連書籍、『リーン開発の本質』等多数。
– 2008 Gordon Pask Award Recipient for contributions to Agile practice
ソフトウェア工学についての後悔

Tom Demarco
– ソフトウェア工学、そのときは去った。

Ed Yourdon
– ソフトウェア工学に大切なことは?

Barry Boehm
- あの指数曲線は間違いだった。

Mary Poppendieck
– アジャイルは早晩滅びる?

Ivar Jacobson
– ソフトウェア業界は、ファッション業界のようだ。

Tom Gilb
– ソフトウェア工学は定義を間違った。
Change Vision, Inc.
IEEE SOFTWARE 2009
Change Vision, Inc.
Software development is and always will
be somewhat experimental. The actual
software construction isn’t necessarily
experimental, but its conception is. And
this is where our focus ought to be. It’s
where our focus always ought to have
been.
–Tom DeMarco
ソフトウェア工学で
最も大切な
10の考え方
Ed Yourdon
Blog: www.yourdonreport.com,
Twitter, Flickr, Facebook, LinkedIn:
“yourdon”
Version 11.1, spring 2009
Slideshare.net version
Japanese translation by
Kenji Hiranabe
日本語訳:平鍋健児
Top Ten Eleven
Items
1. 計測できないものは制御できない
2. ピープルウェア(Peopleware)
3. インクリメンタル(Incrementalism)
4. 反復(Iteration)
5. 欠陥が下流に漏れること、修正コストが増加する
6. トレードオフは、非線形
7. 再利用は重要
8. リスクマネジメントが鍵
9. 一貫性は才能+デスマーチに勝る
10.車輪を再発明しない
11. 透明性を重視。何も隠さないこと
Published under the GNU Free Documentation License (GFDL)
8
2. ピープルウェア

人は(いつの時代でも)プロジェクトにおける最大の生産性要因である。

最もよい人材を採用して、Google の人材管理をまねよ。

質問:一番頭のよい大学卒業生が、あなたの会社を選択しますか(選択権が彼ら
にあると仮定して)?

注意! 彼らのほとんどは MS Outlook を見たことがない。 (もし見たら恐れるだろう)

彼らは、すべての人がFacebook にブログを書き、とiPhone/Android上で IM していると思っている。

彼らは、 COBOLでのプログラミングできる人がまだ生きている、ということに仰天する。

彼らによいオフィス空間をあたえて、仕事環境でのインタラプトを最小限にせよ。

「チーム殺し(teamicide)」をするな。

『ピープルウェア』: ICSE 2007 パネルセッション、「peopleware20周年記念」のレ
ポートを見よ(Sep 2007 IEEE Software). 私のブログでも無料でみれる。(訳者
注:ぼくのブログに解説あり)

“Meet the Life Hackers,” を見よ(Oct 16, 2005 New York Times). 西海岸にあ
る2つのハイテク会社での1,000時間にわたる観察に基づいている。”
•
“社員は、プロジェクトの中で11分ごとにインタラプトされ、別のことに振り回される。11分のタスクは、email の返信、のようなより短い3分
のタスクに分断され、タスクから引き離されるたびに、戻るのに平均で25分の時間がかかる。”
Published under the GNU Free Documentation License (GFDL)
9
Barry Beohm
http:[email protected]/131796142/
Damage from
over/underplanning
The “correct” mix of planning vs. reacting
depends on the individual project’s risk exposure.
Plan-driven
sweet spot
Agile
sweet spot
Time and Effort Invested in Plans
from “Get Ready for Agile Methods – With Care”
(Barry Boehm, IEEE Computer, January 2001)
Call for Action(1/2)
ソフトウェア工学は未成熟なプラクティス(immature
practices)によって、重大な阻害(gravely hampered)を今
日受けている。例えば、具体的には以下のように:
言葉の流行が、工学の一分野というより
ファッション業界のようだ。
しっかりした広く受け入れられた、理論的基礎の欠如。
非常に多くの方法論(methods)とその派生。またそれらの
違いがほとんど理解されずに作為的に強調されている。
信頼できる実験的評価(experimental evaluation)と妥
当性確認(validation)の欠如。
産業界の実践(industry practice)と学界の研究
(academic research)の乖離。
Change Vision, Inc.
Call for Action(2/2)
私たちは、ソフトウェア工学を堅固な理論および検証さ
れた原則とベストプラクティスを基礎として、再建するプ
ロセスを支援する。そのプロセスは、以下の特徴を備え
ている。
広く合意された要素からなる、
特定用途に拡張可能なカーネルを含み、
技術の問題と人の問題の両方を扱い、
産業界、学界、研究者そして、ユーザに支援され、
要求とテクノロジの変化に応じて追随できるような拡
張性を備えている。
Change Vision, Inc.
SEMAT Signatories (1/3)






Scott Ambler
『アジャイルモデリング』著者。アジャイルデータ。現在IBM。
Victor Basili
GQM アプローチによるプロセス改善。現在はフラウンホーファー。
Barry Boehm
COCOMO 見積もりモデル、「変更コストは指数関数的に増加する」。『ア
ジャイルと規律』にて、はじめて計画駆動とのバランスと「アジャイルのス
イートスポット」を言った人。
Alistair Cockburn
ソルトレイクに住む、ソフトウェア人類学者。アジャイル宣言、Crystal ファ
ミリー方法論を作った。『ユースケース実践ガイド』。『アジャイルソフトウェ
[email protected]
Larry Constantine
ヨードンとともに、構造化設計から、コヒージョンとカプリング(凝集度と結
合度)、という概念を導いた人。現在はユーザエクスペリエンス。
Erich Gamma
Change Vision, Inc.
SEMAT Signatories (2/3)





Tom Gilb
Evo [email protected]lb。
David Harel
状態遷移図の開祖。状態遷移図のことを、「ハレル図」っていうことを
知っているか?彼は、ユースケースのことを大粒度の状態、とも呼ん
でいる。
Watts Humphrey
カーネギメロン大学(SEI: Software Engineering Institute)。ソフトウェア
品質の父、とも呼ばれる。成熟度モデルCMM, TSP, PSPの祖。
Capers Jones
見積もりといえばこの人。FP(ファンクションポイント)法の祖。2008年
JaSSTで講演。
Ivar Jacobson
UMLを作った3アミーゴの1人。OOSE開発方法論。ユースケースの開
祖。「ソフトウェアプロセスの話はもうたくさんだ!」と、RUPを離れて、
Change Vision, Inc.
SEMAT Signatories (3/3)






Robert Martin
90年代 C++ Report 編集長。Fitnesse 開発者。ソフトウェア設計原則
SOLID。『オブジェクト指向開発の奥義』 @unclebobmartin
Stephen Mellor
シュレイヤ・メラー法。実行可能UMLによって、アジャイル宣言の一人。
Bertrand Meyer
大著『オブジェクト指向入門』。契約による設計(Design by Contract)。
オブジェクト指向プログラミング言語、Eiffelを設計した。
Dieter Rombach
ロンバック博士。現在フラウンホーファーのエグゼキュティブディレクタ。
Experimental Software Engineering
Ken Schwaber
アジャイル方法論Scrumの父。
Richard Soley
OMGの会長。
Change Vision, Inc.
Definition of Software Engineering
from Wikipedia (= SWEBOK)
“Software engineering is the application
of a systematic, disciplined,
quantifiable approach to the
development, operation, and
maintenance of software, and the study
of these approaches; that is, the
application of engineering to software”
Definition of Software Engineering
Tom Gilb
“Software engineering is the engineering
discipline of enabling and motivating
software systems to deliver a
balanced
set of values, directly or indirectly, to a
balanced set of stakeholders,
throughout their lifecycle…
The concept ‘balanced set of value’ (above) is
Alistair
Cockburn
Change Vision, Inc.
But people are stuffed full of
personality
Methodology
Activities
Quality
Ecosystem
Values
Milestones
Process
Products
Techniques
Standards
Tools
Values
Teams
Jim
Peter
Jenny
Annika
Tester
Designer
Documenter
Project manager
Roles
Skills
People
Personality
Agileは何だったか
23
理想と現実の出会う現場へ
プロセスとしてのAgile


短いサイクルで、分析、設計、実装、テストを
並列に行う
タイムボックス型、進化型開発
Waterfall
要求(スコープ)
Agile
要求(スコープ)
分析
設計
実装
時間
テスト
時間
Royce 1970
24
Beck 2000
Change Vision, Inc.
Scrumの例
朝会
24 時間
製品
バックログ
スプリント
バックログ
出荷可能
ソフトウェア
1-4 週
25
Change Vision, Inc.
Agileの価値観
私たちは,
プロセスとツールよりも
……… 個人と対話に.
包括的なドキュメントよりも ……… 動くソフトウェアに.
契約交渉よりも
……… 顧客との協調に.
計画に沿うことよりも
……… 変化に対応することに.
価値をおく.
アジャイル開発宣言(http://agilemanifesto.org/iso/ja/)
背後にある原則(http://agilemanifesto.org/iso/ja/principle.html)
26
Change Vision, Inc.
astah* 開発チームの「朝会」(standup)
27
Change Vision, Inc.
アジャイルの現在位置
2000
2001
2010
FDD, Crystal,
DSDM, ASD
Patterns
Evo
XP
Agile
SCRUM
TPS
•大規模
•組織改革
•Lean/Agile
•Agile/UX
Lean Software
Development
Lean
Deming
28
Change Vision, Inc.
ソフトウェアパターンとXP
ソフトウェアパターンとXPは ,Kent Beck が
Christopher Alexander のアイディアをソフト
ウェアで実践しようとした,「最初の挑戦」と
「二度目の挑戦」なのです.
– Ralph Johnson
Change Vision, Inc.
From Patterns to Agile Movement
’70s
‘02
A Pattern Language,
The Timeless Way of Building, etc.
Nature Of Order
Christopher Alexander
Christopher Alexander
‘93
‘95
Refactoring
Design Patterns
William Opdyke/
Ralph Johson/
Using Pattern Languages for
Object-Oriented Programs
Ward Cunningham/
Kent Beck
Refactoring
(Book)
Martin Fowler
GoF
‘93
‘87
‘00
Refactoring To
Patterns
Joshua Kerievsky
‘00
PLoP
XP
Embrace Change
Ward/Kent/Ralph Johnson/
Jim Coplien/Grady Booch
‘95
Kent Beck
EPISODES
‘94
‘04
Ward Cunningham
Organizational/Process
Patterns
‘02
SCRUM
James Coplien
Ken Schwaber/Mike Beedle
‘98
Process Patterns
Scott Ambler
‘01
Agile Modeling
Scott Ambler
‘01
Agile Alliance
Agileの価値観
私たちは,
プロセスとツールよりも
……… 個人と対話に.
包括的なドキュメントよりも ……… 動くソフトウェアに.
契約交渉よりも
……… 顧客との協調に.
計画に沿うことよりも
……… 変化に対応することに.
価値をおく.
アジャイル開発宣言(http://agilemanifesto.org/iso/ja/)
背後にある原則(http://agilemanifesto.org/iso/ja/principle.html)
31
Change Vision, Inc.
32
Mary
Poppendieck
Change Vision, Inc.
Change Vision, Inc.
1968
NATO Conference on Software Engineering
1968
“Go-to Considered Harmful” – Dijkstra
1970
Waterfall [doesn’t work] – Royce
1971
Information Hiding – Parnas
1975
“Mythical Man Month” – Brooks
1982
1987
“Life Cycle Concept Considered Harmful”
Daniel McCracken & Michael Jackson
“Peopleware” – Tom DeMarco & Tim Lister
1988
Spiral Life-Cycle – Barry Boehm
1990s CMM
2001
Agile Manifesto
こ
の
間
ソ
フ
ト
ウ
ェ
ア
プ
ロ
ジ
ェ
ク
ト
は
失
敗
し
続
け
て
い
る
!
Change Vision, Inc.
ソフトウェア開発の中での、Agile の位置づけ
ビジネス
ソフトウェア工学
(SWEBOK)
Agileが
埋める領域
プロジェクト管理
(PMBOK)
ソーシャル工学
Change Vision, Inc.
Definition of Software Engineering
Tom Gilb
“Software engineering is the engineering
discipline of enabling and motivating
software systems to deliver a
balanced
set of values, directly or indirectly, to a
balanced set of stakeholders,
throughout their lifecycle…
The concept ‘balanced set of value’ (above) is
The end of software engineering and the start of
economic-cooperative gaming - Alistair Cockburn
“Software development is not “naturally” a
branch of engineering. It was proposed in
1968…The term “software engineering” fails a
crucial test, that of suggesting good actions to
the busy practitioner. …”
“Viewing software development as a “series
of
resource-limited, cooperative games
of invention and communication”
meets the objectives …”
Software development is and always will
be somewhat experimental. The actual
software construction isn’t necessarily
experimental, but its conception is. And
this is where our focus ought to be. It’s
where our focus always ought to have
been.
–Tom DeMarco
ソフトウェア=工学+管理
ソフトウェアは、
人が、
人のために
作っている。
参照文献

Tom DeMarco “Software Engineering: An Idea Whose Time Has Come and Gone ?”
– http://www.computer.org/portal/web/computingnow/0709/whatsnew/software-r

Ed Yourdon “Top 10 Software Engineering Concepts”, “Peopleware panel session”
– http://www.slideshare.net/yourdon/top-ten-s-econcepts-v111
– http://www.yourdonreport.com/index.php/2007/05/29/icse-peopleware-panelsession/

Mary Poppendieck “Is Agile A Fad”
– http://www.bestbrains.dk/Is_Agile_a_Fad.pdf

Ivar Jacobson, Bertrand Meyer, Richard Soley “SEMAT”
– http://www.semat.org/

Tom Gilb, “Definition of Software Engineering”
– http://se9book.wordpress.com/2010/03/23/semat-and-the-definition-of-softwareengineering/

Alistair Cockburn “The end of software engineering and the start of economic cooperative gaming” (ComSIS Journal, Computer Science and Information System
Feb 2004 issue)
– http://alistair.cockburn.us/The+end+of+software+engineering+and+the+star
Change Vision, Inc.
解説ブログ記事

「測定できないものは制御できない」は誤りだった
– http://blogs.itmedia.co.jp/hiranabe/2009/07/---by-tom-demar.html

Ed Yourdon の『ソフトウェア工学で大切な10の考え方』
– http://blogs.itmedia.co.jp/hiranabe/2009/03/ed-yourdon-ca9f.html

「要求は変化する。Boehm は間違っていた、と DeMarco が暴い
た。」というYourdon のブログ
– http://blogs.itmedia.co.jp/hiranabe/2008/05/it-is-all-barry.html
– http://www.yourdonreport.com/index.php/2007/05/29/icse-peoplewarepanel-session

SEMAT.org にて「ソフトウェア工学再建」運動が開始
– http://blogs.itmedia.co.jp/hiranabe/2010/02/sematorg-2a87.html

パターン・ムーブメントからアジャイル・ムーブメントへ
– http://blogs.itmedia.co.jp/hiranabe/2005/10/post_dc1e.html

アジャイルとソフトウェア工学、プロジェクト管理
– http://blogs.itmedia.co.jp/hiranabe/2008/06/post-fec2.html
Change Vision, Inc.
祝! 第30回ソフトウェアシンポジウム
ご清聴
ありがとうございました
Change Vision, Inc.
ダウンロード

発表資料(PPT)