SE	oftware	engineeringA	 	gile

ソフトウェア工学の分岐点における、アジャイルの役割	
㈱永和システムマネジメント	
㈱チェンジビジョン	
平鍋 健児	
1

Change Vision, Inc.

概要	

ソフトウェア工学という言葉が生まれて40年を過ぎるが、ソフトウェア開発現場の中で、その占める位置と影響力は激しい変化にさらされている。
過程で現れたオブジェクト指向技術の主導者たちは、「ソフトウェアパターン」そして「アジャイル」と呼ばれる活動に参加し、開発の中でのより人間的活動、ソーシャルなダイナミクスにより注目することによって、ソフトウェア工学と現場のギャップを埋めようとしている。
この講演では、ソフトウェアパターン、アジャイルの歴史的流れを追いながら、これらのムーブメントが掬い取ろうとした、ソフトウェア工学の課題を見つめるとともに、ソフトウェア工学の延長方向を探る。さらに、現状のアジャイル自身の課題を認識することで、開発現場の未来
Change Vision, Inc.
2 のあり方について考える。

自己紹介	l㈱永和システムマネジメント	
– 本社：福井県福井市、支社：東京(2002-)– Ruby と Agileを使ったシステム開発	

l

株式会社チェンジビジョン	– 本社: 東京	– astah*(JUDE) で見える化	

l

平鍋健児	

http://www.change-vision.com/– リアルタイム，CAD, オブジェクト指向の実践	
– UMLエディタJUDE/astah*の開発	
– アジャイルプロセス協議会、副会長	
– 翻訳、XP関連書籍、『リーン開発の本質』等多数。	
– 2008 Gordon Pask Award Recipient for contributions to Agile practiceソフトウェア工学についての後悔	l Tom Demarco– ソフトウェア工学、そのときは去った。	
l Ed Yourdon– ソフトウェア工学に大切なことは？	
l Barry Boehm- あの指数曲線は間違いだった。	
l Mary Poppendieck– アジャイルは早晩滅びる？	
l Ivar Jacobson– ソフトウェア業界は、ファッション業界のようだ。	
l 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 tohave been.
– Tom DeMarcoソフトウェア工学で最も大切な１０の考え方
Ed Yourdon
Blog: www.yourdonreport.com,
Twitter, Flickr, Facebook, LinkedIn:“yourdon”
Version 11.1, spring 2009
Slideshare.net version

Japanese translation byKenji Hiranabe
日本語訳：平鍋健児

Top Ten ElevenItems

1. 計測できないものは制御できない
2. ピープルウェア(Peopleware)
3. インクリメンタル(Incrementalism)
4. 反復(Iteration)5. 欠陥が下流に漏れること、修正コストが増加する
6. トレードオフは、非線形
7. 再利用は重要
8. リスクマネジメントが鍵
9. 一貫性は才能+デスマーチに勝る
10.車輪を再発明しない
11. 透明性を重視。何も隠さないこと	
Published under the GNU Free Documentation License (GFDL)

8

2. ピープルウェア	q

人は（いつの時代でも）プロジェクトにおける最大の生産性要因である。

q

最もよい人材を採用して、Google の人材管理をまねよ。

q

質問：一番頭のよい大学卒業生が、あなたの会社を選択しますか（選択権が彼らにあると仮定して）？
ü

注意！ 彼らのほとんどは MS Outlook を見たことがない。 (もし見たら恐れるだろう)ü

彼らは、すべての人がFacebook にブログを書き、とiPhone/Android上で IM していると思っている。

ü

彼らは、 COBOLでのプログラミングできる人がまだ生きている、ということに仰天する。

q

彼らによいオフィス空間をあたえて、仕事環境でのインタラプトを最小限にせよ。

q「チーム殺し(teamicide)」をするな。

q『ピープルウェア』: ICSE 2007 パネルセッション、「peopleware20周年記念」のレポートを見よ(Sep 2007 IEEE Software). 私のブログでも無料でみれる。（訳者注：ぼくのブログに解説あり）

q

“Meet the Life Hackers,” を見よ(Oct 16, 2005 New York Times). 西海岸にある２つのハイテク会社での1,000時間にわたる観察に基づいている。”•“社員は、プロジェクトの中で11分ごとにインタラプトされ、別のことに振り回される。11分のタスクは、email の返信、のようなより短い3分のタスクに分断され、タスクから引き離されるたびに、戻るのに平均で25分の時間がかかる。”

Published under the GNU Free Documentation License (GFDL)

9Barry Beohm
http://www.flickr.com/photos/74987020@N00/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)	
ソフトウェア工学は未成熟なプラクティス(immaturepractices)によって、重大な阻害(gravely hampered)を今日受けている。例えば、具体的には以下のように：		l言葉の流行が、工学の一分野というより	ファッション業界のようだ。	
lしっかりした広く受け入れられた、理論的基礎の欠如。	
l非常に多くの方法論(methods)とその派生。またそれらの違いがほとんど理解されずに作為的に強調されている。	
l信頼できる実験的評価(experimental evaluation)と妥当性確認(validation)の欠如。	
l産業界の実践(industry practice)と学界の研究
Change Vision, Inc.

Call for Action(2/2)	

私たちは、ソフトウェア工学を堅固な理論および検証された原則とベストプラクティスを基礎として、再建するプロセスを支援する。そのプロセスは、以下の特徴を備えている。		
l広く合意された要素からなる、特定用途に拡張可能なカーネルを含み、	
l技術の問題と人の問題の両方を扱い、	
l産業界、学界、研究者そして、ユーザに支援され、	l要求とテクノロジの変化に応じて追随できるような拡張性を備えている。	

Change Vision, Inc.

SEMAT Signatories (1/3)
Scott Ambler『アジャイルモデリング』著者。アジャイルデータ。現在IBM。	
l Victor Basili
GQM アプローチによるプロセス改善。現在はフラウンホーファー。	
l Barry Boehm
COCOMO 見積もりモデル、「変更コストは指数関数的に増加する」。『アジャイルと規律』にて、はじめて計画駆動とのバランスと「アジャイルのスイートスポット」を言った人。	
l Alistair Cockburn
ソルトレイクに住む、ソフトウェア人類学者。アジャイル宣言、Crystal ファ
ミリー方法論を作った。『ユースケース実践ガイド』。『アジャイルソフトウェア開発』。@TotherAlistairl Larry Constantine
ヨードンとともに、構造化設計から、コヒージョンとカプリング(凝集度と結合度)、という概念を導いた人。現在はユーザエクスペリエンス。	
l Erich Gamma
Change Vision, Inc.
l

SEMAT Signatories (2/3)
Tom Gilb
Evo という「世界初のアジャイル方法論者」。@imtomgilb。	
l David Harel
状態遷移図の開祖。状態遷移図のことを、「ハレル図」っていうことを知っているか？彼は、ユースケースのことを大粒度の状態、とも呼んでいる。	
l Watts Humphrey
カーネギメロン大学（SEI: Software Engineering Institute）。ソフトウェア品質の父、とも呼ばれる。成熟度モデルCMM, TSP, PSPの祖。	
l Capers Jones
見積もりといえばこの人。FP(ファンクションポイント)法の祖。2008年
JaSSTで講演。	
l Ivar Jacobson
UMLを作った３アミーゴの１人。OOSE開発方法論。ユースケースの開祖。「ソフトウェアプロセスの話はもうたくさんだ！」と、RUPを離れて、Change Vision, Inc.
l

SEMAT Signatories (3/3)

Robert Martin
90年代 C++ Report 編集長。Fitnesse 開発者。ソフトウェア設計原則
SOLID。『オブジェクト指向開発の奥義』 @unclebobmartinl Stephen Mellor
シュレイヤ・メラー法。実行可能UMLによって、アジャイル宣言の一人。	
l Bertrand Meyer
大著『オブジェクト指向入門』。契約による設計(Design by Contract)。
オブジェクト指向プログラミング言語、Eiffelを設計した。	
l Dieter Rombach
ロンバック博士。現在フラウンホーファーのエグゼキュティブディレクタ。
Experimental Software Engineering	l Ken Schwaber
アジャイル方法論Scrumの父。	
l Richard Soley
Change Vision, Inc.
OMGの会長。	
l

Definition of Software Engineeringfrom Wikipedia (= SWEBOK)“Software engineering is the applicationof a systematic, disciplined,
quantifiable approach to thedevelopment, operation, andmaintenance of software, and the studyof these approaches; that is, theapplication of engineering to software”	

Definition of Software Engineering
Tom Gilb	

“Software engineering is the engineering
discipline of enabling and motivating softwaresystems to deliver a balanced set ofvalues, directly or indirectly, to abalanced set of stakeholders,throughout their lifecycle…
The concept ‘balanced set of value’ (above) isAlistair
Cockburn

Change Vision, Inc.

But people are stuffed full ofpersonality
Methodology
Activities

Ecosystem
ValuesMilestones

Quality

Process

Products

Techniques

Standards

Tools

Values

Teams

Jim
Peter
Jenny
AnnikaTesterDesignerDocumenter
Project manager

Roles

SkillsPeoplePersonality

Agileは何だったか	

23

理想と現実の出会う現場へ	プロセスとしてのAgilel 短いサイクルで、分析、設計、実装、テストを並列に行う	l タイムボックス型、進化型開発	
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

EvoXP

Agile
SCRUM

TPS•大規模	•組織改革	
•Lean/Agile•Agile/UX
Lean SoftwareDevelopmentLeanDeming
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 ProgramsWard Cunningham/
Kent Beck

Refactoring(Book)
Martin Fowler	

GoF

ʻ93

ʻ87

ʻ00

ʻ00

PLoPXP
Embrace Change

Ward/Kent/Ralph Johnson/
Jim Coplien/Grady Booch

ʻ95

Kent Beck

EPISODES

ʻ94

Ward Cunningham

ʻ02

Organizational/ProcessPatterns

SCRUM

James Coplien

Ken Schwaber/Mike Beedle

ʻ98
Process Patterns
Scott Ambler

ʻ01
Agile Modeling
Scott Ambler

ʻ04
Refactoring To
Patterns
Joshua Kerievsky

ʻ01
Agile AllianceAgileの価値観
私たちは，	 	 	 	 プロセスとツールよりも	 	 	 	 	 	 	 ……… 個人と対話に．	 	 	 包括的なドキュメントよりも	 ……… 動くソフトウェアに．	 	 	 契約交渉よりも	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ……… 顧客との協調に．	 	  	 計画に沿うことよりも	  	  	  	  	  	  	  	  	  	 ……… 変化に対応することに．	 	 
価値をおく．	 
アジャイル開発宣言(http://agilemanifesto.org/iso/ja/)
背後にある原則(http://agilemanifesto.org/iso/ja/principle.html)
31

Change Vision, Inc.

32

Mary
PoppendieckChange 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	 “Life Cycle Concept Considered Harmful”
Daniel McCracken & Michael Jackson	
1987 “Peopleware” – Tom DeMarco & Tim Lister1988	 Spiral Life-Cycle – Barry Boehm	
1990s CMM
Agile Manifesto	

2001

厵叏間吔
听
吟叽
叾
叹
吮
呄
吏叾
吆吟
叐
失敗厹
続厳叇
厦召！

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 softwaresystems to deliver a balanced set ofvalues, directly or indirectly, to abalanced set of stakeholders,throughout their lifecycle…
The concept ‘balanced set of value’ (above) is

The end of software engineering and the start ofeconomic-cooperative gaming - Alistair Cockburn	“Software development is not “naturally” abranch of engineering. It was proposed in
1968…The term “software engineering” fails a
crucial test, that of suggesting good actions tothe busy practitioner. …”“Viewing software development as a “series ofresource-limited, cooperative gamesof invention and communication”
meets the objectives …”	Software development is and always will
be somewhat experimental. The actual
software construction isn’t necessarilyexperimental, but its conception is. And
this is where our focus ought to be.
It’s where our focus always ought tohave been.
– Tom DeMarcoソフトウェア＝工学＋管理	ソフトウェアは、人が、	人のために	作っている。	

参照文献	l

Tom DeMarco “Software Engineering: An Idea Whose Time Has Come and Gone ?”	
‒ http://www.computer.org/portal/web/computingnow/0709/whatsnew/software-r	l

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/	lMary Poppendieck “Is Agile A Fad”	
‒ http://www.bestbrains.dk/Is̲Agile̲a̲Fad.pdf	

l

Ivar Jacobson, Bertrand Meyer, Richard Soley “SEMAT”	
‒ http://www.semat.org/	l

Tom Gilb, “Definition of Software Engineering”	
‒ http://se9book.wordpress.com/2010/03/23/semat-and-the-definition-of-softwareengineering/	lAlistair Cockburn “The end of software engineering and the start of economic cooperative gaming” (ComSIS Journal, Computer Science and Information SystemFeb 2004 issue)	
‒ http://alistair.cockburn.us/The+end+of+software+engineering+and+the
Change Vision, Inc.

解説ブログ記事	
l「測定できないものは制御できない｣は誤りだった	‒ http://blogs.itmedia.co.jp/hiranabe/2009/07/---by-tom-demar.html	l

Ed Yourdon の『ソフトウェア工学で大切な１０の考え方』	
‒ http://blogs.itmedia.co.jp/hiranabe/2009/03/ed-yourdon-ca9f.html	

l「要求は変化する。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	

l

SEMAT.org にて「ソフトウェア工学再建」運動が開始	
‒ http://blogs.itmedia.co.jp/hiranabe/2010/02/sematorg-2a87.html	

l

パターン･ムーブメントからアジャイル・ムーブメントへ	‒ http://blogs.itmedia.co.jp/hiranabe/2005/10/post̲dc1e.html	

l

アジャイルとソフトウェア工学、プロジェクト管理	
‒ http://blogs.itmedia.co.jp/hiranabe/2008/06/post-fec2.html	
Change Vision, Inc.

祝！ 第30回ソフトウェアシンポジウム	

ご清聴ありがとうございました	
Change Vision, Inc.