28
Agile Japan - Tokyo 2013 www.renaissancesoftware.net [email protected] Copyright © 2008-2013 James W. Grenning All Rights Reserved. For use by training attendees. Present to Tokyo, Japan By James Grenning Demand Technical Excellence http://www.pragprog.com/titles/jgade アジャイルにおける技術と品質の重要性 Talk to me on Twitter @jwgrenning Find me on linkedin.com jwgrenning Please remind me how we met. 2 Agile Japan - Tokyo 2013 www.renaissancesoftware.net [email protected] Copyright © 2008-2013 James W. Grenning All Rights Reserved. For use by training attendees. Kent Beck Ron Jeffries Ward Cunningham Martin Fowler 3 Agile Japan - Tokyo 2013 www.renaissancesoftware.net [email protected] Copyright © 2008-2013 James W. Grenning All Rights Reserved. For use by training attendees. How Did I Find Myself at Agile Manifesto Meeting? James, do you want to go to the Lightweight Methods Summit in Snowbird? Skiing! Sure Bob, Ill go…. なぜアジャイル宣言に参加したか? Robert Martin 4 Agile Japan - Tokyo 2013 www.renaissancesoftware.net [email protected] Copyright © 2008-2013 James W. Grenning All Rights Reserved. For use by training attendees. Before the Manifesto アジャイル宣言以前

Demand Technical Excellence James Grenning keynote at AgileJapan 2013

Embed Size (px)

DESCRIPTION

James Grenning's Keynote at Agile Japan 2013. "Demand Technical Excellence" with Japanese subtitle by Kenji Hiranabe. http://www.agilejapan.org/2013/program.html#01

Citation preview

Page 1: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Present to

Tokyo, JapanBy

James Grenning

Demand Technical Excellence

http://www.pragprog.com/titles/jgade

アジャイルにおける技術と品質の重要性

Talk to me on Twitter@jwgrenning

Find me on linkedin.comjwgrenning

Please remind me how we met.

2Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Kent Beck Ron Jeffries

Ward Cunningham Martin Fowler

3Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

How Did I Find Myself at Agile Manifesto Meeting?

James, do you want to go to the Lightweight Methods Summit in Snowbird?

Skiing!

Sure Bob, I’ll go….

なぜアジャイル宣言に参加したか?

Robert Martin

4Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Before the Manifestoアジャイル宣言以前

Page 2: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

5Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

6

7Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

8Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

That may not have been Watts’ intention, but it was the

message that industry was hearing

Watts’ は意図していなかもしれないが、これが産業に与えたメッセージ。

Page 3: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

9Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees. 9

RWaScZ^\TUR,��$

=?G/Z^\TUR,�F�*1O2G�*Q��7Q;O�Q+:B/LNL2,���Q#A7><3C9B2O0

8F�Q+9B/ =?G��F��E"@=0

_dYXK[fc.LNJ.��C�'Q/��D]Vb`e\.LNJ.6Z^\TUR

Q/�!��.LNJ.-�CF�)Q/

%�E�38C.LNJ.��HF��Q/��C;O0;DP?/�&F8C5ME��51O8CQ(ID5MJ/ =?G &F8C5MELN��Q460

11Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees. 11

一行目であり、一番重要な文章は「人」を強調している。12

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

People and Values were Central to Forming Agile

「人」と「価値」がアジャイルの中心

Page 4: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

13Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

13

Software development is

not centrally about the

process and documents

ソフトウェア開発は「プロセス」と「ドキュメント」が中心ではない。

14Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

It’s about the code, the customer, the product!

than

ks:

lum

axar

thtt

p:/

/ww

w.f

rees

tock

photo

s.biz

/lic

ense

.php?i

d=

9749

それは、「コード」、「顧客」、「プロダクト」なのだ!

15Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Great teams of people

build great products

Process is secondary,

at best

すごいチームがすごい製品を作る。

プロセスは、せいぜいでも二次的。

16Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Will anyone care about these bullet points?

もうだれもこの4つを気にしていない?

Page 5: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

17Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Agile’s Impact is

Beyond our Wildest

Dreams

It’s likely no one will care.

だれも気にしなくなる。

アジャイルの衝撃は、想像を超えた。

18

0

37500

75000

112500

150000

2002 2003 2004 2005 2006 2007 2008 2009 2010

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Certified Scrum Masters認定スクラムマスターの数

19Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

What is Scrum? Scrum is a very simple framework within which the “game” of complex

product development is played. Scrum exposes every inadequacy or

dysfunction within an organization’s product and system development

practices. The intention of Scrum is to make them transparent so the

organization can fix them.

From an interview with Ken Schwaber on agilecollab - http://www.agilecollab.com/interview-with-ken-schwaber

Ken SchwaberScrumは新製品開発(複雑系)というゲームのルールとしての、シンプルなフレームワーク。Scrumは組織の製品およびシステム開発の能力不足、機能不全を露にする。Scrumの意図は、それらを「透過的にし」、組織が

自らそれを修正できるようにすることである。

Scrumとは?

20Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

What Can Scrum Do?

20

Jeff SutherlandFrom: Scrum with XP and Beyond

Productivity 5-10 times industry average has been observed in many

Scrum teams since 1993.

1993以降、Scrumを使うことで生産性が産業平均の5-10倍というケースが観測されている。

Scrumに何ができるか

Page 6: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

21Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Ken, What is Happening Generally in Scrum Adoption?

Unfortunately, many organizations change Scrum to accommodate the

inadequacies or dysfunctions instead of solving them.

From an interview with Ken Schwaber on agilecollab - http://www.agilecollab.com/interview-with-ken-schwaber

Ken Schwaber

不幸にも、多くの組織がその能力不足や機能不全を解決するのではなく、それに合わせて

Scrumのやり方を調整してしまう。

Kenに聞く。Scrumの採用で起こりがちなことは?

22Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

23Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

24Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

欠かすことのできないデブリーフィング

Page 7: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

25Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Debriefing is about continuous

improvement

James Murphy

Debriefing とは、継続的改善だ。

26Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Not long after graduating college, I joined an office product company and started selling copiers. I loved

what i did.

James Murphy

大学卒業後、事務機会社に就職。コピー機を販売した。自分の仕事を気に入っていた。

27Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

I had no flight experience…, but I was

going to fly jets.

James Murphy

If I could not learn fast, I would be out of the

program

フライトの経験はなかった。でも、ジェット機を操縦することになった。

もし速く学習することができなければ、すぐに外されてしまう。

28Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Just two years after signing up, I was not only flying, I was flying the supersonic F-15 Eagle

サインアップしてから2年後に、飛行機を操縦できた。それも、超音速 F-15 イーグルを。

Page 8: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

29Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

欠かすことのできないデブリーフィング

30Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

We don’t hide our weaknesses... we

think it weak to hide our mistakes.

自分の「弱さ」を隠さない。間違いを隠すことこと、「弱さ」だ。

31Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

10年前のアジャイル宣言。その記念企画を思いついた。日付は2011年2月12日、場所はスノーバード。そこに行って会議室を予約してきた。

32Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Page 9: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

33Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Debrief: What do

we, as members

of the agile

community

need to fix?

デブリーフィング:アジャイルコミュニティとして、私たちは何を直すべきだろう?

34Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

10 Year Agile Celebration

35Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees. Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

We believe the agile community must:

#1 Demand technical excellence

#2 Promote Individual [Change] and Lead Organizational Change

#1:技術的卓越を重要視する#2:個人の(変化の)重要さを尊重しながら組織変革をリードする。

アジャイルコミュニティがしなければいけないこと

Page 10: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

37Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Remember what Ken Said?

"…………………………………………….…………………………...…………………

…………………………………...…… The intention of Scrum is to make them [the problems] transparent so the

organization can fix them."

Ken Schwaber Unfortunately, many organizations change Scrum to accommodate the

inadequacies or dysfunctions instead of solving them.

Kenが言ったことを思い出す。

38Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

What’s the Problem?

from: Scrum with XP and Beyond

The biggest problem worldwide for Scrum teams is getting shippable code

at the end of every sprint.

Jeff Sutherland

何が問題か?

世界中のScrumチームで最大の問題は、毎回のスプリント毎に出荷可能なコードを作ること。

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Hardening Sprints

39

Sprint 1 Sprint 2 Sprint 3 Sprint 4 Hardening SprintTest and Fix

Test and Fix Test and Fix

Test and FixTest and FixTest and Fix

(焼きなまし=品質向上のためのスプリント)

[email protected]

Copyright © 2008-2011 James W. GrenningAll Rights Reserved. For use by training attendees.

Do Your Hardening Sprints Degrade into a Fire Fight?

40

品質向上スプリントが、消火活動になってない?

Page 11: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

41Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Being good at chasing and managing bugs is not Technical Excellenceバグを追っかけて管理することは、技術的卓越ではない。

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

We believe the agile community must:

#1 Demand technical excellence

#2 Promote Individual [Change] and Lead Organizational Change

#1:技術的卓越を重要視する#2:個人の(変化の)重要さを尊重しながら組織変革をリードする。

アジャイルコミュニティがしなければいけないこと

43Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

The cadence of development changes with Scrum

Are you changing the how you engineer your products?

開発の順序がScrumでは違う。

自分の製品をどうエンジニアリングするか、にも変化が必要

44Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

The Marriage of Scrum and XP

44

ScrumとXPの結婚

Page 12: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

45

0

37500

75000

112500

150000

2002 2003 2004 2005 2006 2007 2008 2009 2010

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

So Far the Marriage is Unequal

Certifi

ed Sc

rum M

aster

s

249 CSDs

現在の結婚は、不調和

46Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

- A Brief Debrief - Current Development Practice in Industry

47Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees. 48Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

May 7 11:21:17: --- last message repeated 1 time ---May 7 11:21:17 Cowboy kernel[0]: IOSurface: buffer allocation size is zeroMay 7 11:22:51 Cowboy kernel[0]: IOSurface: buffer allocation size is zeroMay 7 11:23:36 Cowboy kernel[0]: IOSurface: buffer allocation size is zeroMay 7 11:24:06: --- last message repeated 1 time ---May 7 11:26:54 Cowboy kernel[0]: IOSurface: buffer allocation size is zeroMay 7 11:27:24: --- last message repeated 1 time ---May 7 11:41:44 Cowboy kernel[0]: IOSurface: buffer allocation size is zeroMay 7 11:42:14: --- last message repeated 4 times ---May 7 11:51:45 Cowboy kernel[0]: nspace-handler-set-snapshot-time: 1336409506May 7 12:08:58 Cowboy kernel[0]: hibernate image path: /var/vm/sleepimageMay 7 12:08:58 Cowboy kernel[0]: sizeof(IOHibernateImageHeader) == 512May 7 12:08:58 Cowboy kernel[0]: Opened file /var/vm/sleepimage, size 8589934592, partition base 0x0, maxio 400000 ssd 1May 7 12:08:58 Cowboy kernel[0]: hibernate image major 14, minor 0, blocksize 512, pollers 5May 7 12:08:58 Cowboy kernel[0]: hibernate_alloc_pages flags 00000000, gobbling 0 pagesMay 7 12:08:58 Cowboy kernel[0]: hibernate_setup(0) took 0 msMay 7 12:09:01 Cowboy kernel[0]: en1: BSSID changed to 00:40:96:a1:33:c9May 7 12:09:01 Cowboy kernel[0]: wlEvent: en1 en1 Link DOWNMay 7 12:09:01 Cowboy kernel[0]: AirPort: Link Down on en1. Reason 8 (Disassociated because station leaving).May 7 12:09:01 Cowboy kernel[0]: May 7 12:09:37 Cowboy kernel[0]: hibernate_page_list_setall start 0xffffff80d4cff000, 0xffffff80d4f98000May 7 12:09:37 Cowboy kernel[0]: hibernate_page_list_setall time: 415 msMay 7 12:09:37 Cowboy kernel[0]: pages 2040801, wire 338507, act 950045, inact 182445, spec 36, zf 113125, throt 0, could discard act 169869 inact 207719 purgeable 38826 spec 40229May 7 12:09:37 Cowboy kernel[0]: hibernate_page_list_setall found pageCount 1584158May 7 12:09:37 Cowboy kernel[0]: IOHibernatePollerOpen, ml_get_interrupts_enabled 0May 7 12:09:37 Cowboy kernel[0]: IOHibernatePollerOpen(0)May 7 12:09:37 Cowboy kernel[0]: writing 1583874 pagesMay 7 12:09:37 Cowboy kernel[0]: encryptStart 4f820May 7 12:09:37 Cowboy kernel[0]: encryptEnd 108b02c0May 7 12:09:37 Cowboy kernel[0]: image1Size 474682880, encryptStart1 4f820, End1 108b02c0May 7 12:09:37 Cowboy kernel[0]: encryptStart 1c4b1600May 7 12:09:37 Cowboy kernel[0]: encryptEnd b7957b30May 7 12:09:37 Cowboy kernel[0]: PMStats: Hibernate write took 35189 msMay 7 12:09:37 Cowboy kernel[0]: all time: 35189 ms, comp bytes: 6487916544 time: 6366 ms 971 Mb/s, crypt bytes: 2882564048 time: 4618 ms 595 Mb/s, May 7 12:09:37 Cowboy kernel[0]: image 3080027136, uncompressed 6487916544 (535388), compressed 3068648576 (47%), sum1 ec64ffd2, sum2 571d97a2May 7 12:09:37 Cowboy kernel[0]: wired_pages_encrypted 224499, wired_pages_clear 113814, dirty_pages_encrypted 1245651May 7 12:09:37 Cowboy kernel[0]: hibernate_write_image done(0)May 7 12:09:37 Cowboy kernel[0]: sleepMay 7 14:06:05 Cowboy kernel[0]: Wake reason: EC.LidOpen (User)May 7 14:06:05 Cowboy kernel[0]: en1: 802.11d country code set to 'X0'.May 7 14:06:05 Cowboy kernel[0]: en1: Supported channels 1 2 3 4 5 6 7 8 9 10 11 36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140 149 153 157 161 165May 7 14:06:06 Cowboy kernel[0]: Sound assertion "0 == fAudioEngineArray" failed in AppleHDADriver at line 3163 goto ExitMay 7 14:06:08 Cowboy kernel[0]: Previous Sleep Cause: 5May 7 14:06:08 Cowboy kernel[0]: MacAuthEvent en1 Auth result for: 00:40:96:a0:63:95 MAC AUTH succeededMay 7 14:06:08 Cowboy kernel[0]: wlEvent: en1 en1 Link UPMay 7 14:06:08 Cowboy kernel[0]: AirPort: Link Up on en1May 7 14:06:08 Cowboy kernel[0]: en1: BSSID changed to 00:40:96:a0:63:95May 7 14:06:47 Cowboy kernel[0]: nspace-handler-set-snapshot-time: 1336417608

Page 13: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

49Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees. 50Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

51Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

1979

52Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

2013

Page 14: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

53Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Debug-later Programming

Congratulations! These are

state of the art circa 1979おめでとう!これは、1979年ころの状態!

デバッグ後付プログラミング

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

The Physics of Debug Later Programming (DLP)

• As Td increases, Tfind increases dramatically• Tfix is usually short, but can increase with Td

54

Bug discoveryMistake made(bug injection)

Bug found Bug fixed

Td Tfind T fix

Time

デバッグ後付プログラミングの原理

•Td が増加すると、Tfind が劇的に増加。•Tfixは通常短いが、Tdが長いと増加する。

55Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

A Bug’s Life

55

From http://www.softwaretestinghelp.com/bug-life-cycle/

56Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

56

Your program will have bugs. And they will surprise you when you find them.

プログラムにはバグがある。バグ自身も、見つけられたときにびっくりする。

Page 15: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

57Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Zune 30G

57Dec

embe

r 31,

2008

58Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees. 58

BOOL ConvertDays(UINT32 days, SYSTEMTIME* lpTime)

59Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

59

One That Got Awaystatic void SetYearAndDayOfYear(RtcTime* time){ int days = time->daysSince1980; int year = STARTING_YEAR; while (days > 365) { if (IsLeapYear(year)) { if (days > 366) { days -= 366; year += 1; } } else { days -= 365; year += 1; } }

time->dayOfYear = days; time->year = year;}

見逃したバグ

60Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

This Test Could Have Prevented it

TEST(Rtc, check20081231){ days = daysSince1980(2008, 366); CHECK(ConvertDays(days, &time)); assertDate(WED, 2008, 12, 31);}

(あれば)見つけられたであろうテスト

Page 16: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

61Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Where do the bugs come from?バグはどこから来るのか?

62

6363 64Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

It’s Our Fault

James D. Murphy

We put them there

自分自身のしわざ

Page 17: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

This Work Flow is Designed to Allow Defects

65

Development

Test

Defects

このワークフローは、欠陥の存在を許してしまうように設計されている。

66Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

A Bug’s Life

66

From http://www.softwaretestinghelp.com/bug-life-cycle/

67Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

The Meaning of the Marriage of Scrum and XP

67 68Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

XP Defines the Technical Practices Needed for Evolving Designs

XPは進化的設計に必要な技術的プラクティスを定義している。

Page 18: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

69Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Edsger DijkstraThose who want really reliable software will discover that they must find means of avoiding the majority of bugs to start with, and as a result, the programming process will become cheaper. If you want more effective programmers, you will discover that they should not waste their time debugging, they should not introduce the bugs to start with.

信頼性の高いソフトウェアが必要であれば、バグの大部分を最初から「避ける」方法を探さなければならない、ということに気づくだろう。その結果としてプログラミングのプロセスは安価になる。よいプログラマとは、最初からバグを作り込まないようにし、大切な時間をデバッグに無駄遣いしないプログラマだ、ということに気づくだろう。

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

• Write a test• Watch it fail• Make it pass• Refactor (improve)• Repeat until done

TDD

•テストを書く•失敗することを確認•通過させる•リファクタリング(改善)•繰り返す

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Development and Test are a ContinuumPreventing Defects

71

Development

Test

「開発」と「テスト」は欠陥予防の連続体

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

The Physics of Test Driven Development

• When Td approaches zero, Tfind approaches zero• In many cases, bugs are not around long enough to be considered

bugs.• See: http://www.renaissancesoftware.net/blog/archives/16

72

Mistake discovery

Mistake made

Root cause found

Mistake fixed

T d Tfind T fix

Time

テスト駆動開発の物理学

•Td が0に近づけば、Tfind が0に近づく。•多くの場合、バグはバグと呼ばれるほど長く存在しない。

Page 19: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

73Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Unit Tests are Critical!

Is your team doing TDD?

Does your team create unit tests?

ユニットテストは、クリティカルだ!

あなたのチームはTDDしている?

あなたのチームはユニットテストを作っている?

74Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

System Level Tests Cannot be Thorough

• How many sub-system tests are needed?

10 states

10 states

10 states

5 interactions

5 interactions

5 interactions

Tests

サブシステムテストはいくつ必要?

システムレベルテストは、完璧には書けない

75Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

TDD unit tests can be thorough

• How many unit tests are needed?

10 states

10 states

10 states

5 interactions

5 interactions

5 interactions

Tests Tests

ユニットテストはいくつ必要?

ユニットテストは十分に書くことができる。

76Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Tests Must be Automated

テストは自動化すること

Page 20: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

test

Assume Test Effort is Proportional to

Development Effort

dev

Iterations

Effort

5

10

15

20

25

テストのコストは開発のコストに比例すると課程

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

If a system is working, leave it alone. Don't change anything.

Systems don’t appreciate being fiddled and diddled with.

• 25% of all defects are introduced while changing and fixing code.

[R.B Grady, Software Process Improvement]

システムが動いているなら、触るな!何も変えてはいけない。

システムは、勝手に手を加えられるのを嫌がる。

25%の欠陥は、変更したり修正したりするときに混入する。

82Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Because systems act up -- we have to be very careful.システムの振る舞いは気まま。私たちが注意していないといけない

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

test

Manual Test is Unsustainable

Effort

Iterations

Unsustainable growth

dev

5

10

15

20

25 手動テストは継続できない

Page 21: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Risk Accumulates in the Untested Code

Effort

Iterations

Unsustainable growth

dev

5

10

15

20

25 Untested Code Gap

testテストされないコードギャップに、リスクが累積する

85Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

My Take Away

85

Keep the cost of retest low

Keep the system

running

Tests Must be Automated

今日持って帰って欲しいこと

•テストは自動化する•再テストのコストを低く保つ•システムを動かし続ける

86Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Try to Reframe the Problem

86

We can’t afford to write automated tests, it takes away from adding new features

We can’t afford to not automate tests,

the manual retest time takes away from

adding new features

問題をリフレーム

自動テストを書いている時間がとれない。新機能が追加できない。

自動テストなしという余裕はとれない。手動テストの再テストで、新機能が追加できない。

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

We believe the agile community must:

#1 Demand technical excellence

#2 Promote Individual [Change] and Lead Organizational Change

#1:技術的卓越を重要視する#2:個人の(変化の)重要さを尊重しながら組織変革をリードする。

Page 22: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

88Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Technical Excellence isn’t Just Passing TEsts

技術的卓越とは、単にテストを通過させることではない!

89Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

What’s Wrong?

Any fool can write code that the compiler

understands, but it takes real skill to write code

other programmers can understand.

From “Refactoring - Improving the Design of Existing Code

どんなバカでもコンパイラが理解できるコードを書くことはできる。しかし、本当にスキルが必要なのは他のプログラマが理解できるコードを書くことだ。

90Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Why does code

structure matter?

コードの構造がなぜ大切か?

91Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

The Two Values of Software

ソフトウェアの2つの価値

Page 23: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

92Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Spaghetti Slide

97Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

What are We Supposed to Do?

The intention of Scrum is to make them [your problems] transparent so

the organization can fix them.

From an interview with Ken Schwaber on agilecollab - http://www.agilecollab.com/interview-with-ken-schwaber

Ken Schwaber

98Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

What is the biggest problem of getting there?

from: Scrum with XP and Beyond

The biggest problem worldwide for Scrum teams is getting shippable code

at the end of every sprint.

96Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

96

Why aren’t you using TDD and Refactoring and

the other technical practices of Agile?

なぜ、TDD、リファクタリング、アジャイルのその他の技術プラクティスを使わないのか?

Page 24: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

100Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

What is in your

way?

何が障害なのか?

101101

I don’t have time!!

http://commons.wikimedia.org/wiki/File:Clock_at_St._Mary%27s_Church_in_Gda%C5%84sk.jpg

時間がないのです。

102Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Learn TDD and Agile Development skills.

TDD is faster than DLP

More fun too!

TDDとアジャイル開発スキルを学びましょう。

TDDはDLPより速い。しかも、楽しい!

105Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Developers TODO

105

Beware of limits

ものづくりのプロになれ

新しいことを学んで挑戦せよ自分の組織のアドバイザーになれ

信頼関係を築け。自分の仕事を透明に見えるようにせよ

Page 25: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

106

I’ve got 10 years experience!

1 year 1 year 1 year 1 year 1 year

1 year 1 year 1 year 1 year 1 year

107Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

10 Years of Experience Doesn’t Mean You’ve Got Your 10,000 Hours

10年の経験、ということは10,000時間あるということではない。

19991999 2012 2008

2002

2004

20122001

[email protected]

Copyright © 2008-2011 James W. GrenningAll Rights Reserved. For use by training attendees.

`My Boss won’t let me

上司がやらせてくれないんです。

108Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

thanks: lumaxarthttp://www.freestockphotos.biz/license.php?id=9746

We have stretch goals

You know, for motivation.

ストレッチ目標

モチベーションのために。

Page 26: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

104Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees. 104

109Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Managers! Realize...

109

個人や組織のモチベーションを上げるのは難しい

でも、モチベーションを下げるのは簡単!

110Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Demotivators

110

非現実的な締め切り

モチベーションを下げるもの

事実を責める

低い品質の仕事をさせる信頼関係がない111

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

I Tried to Avoid Computers

111

コンピュータを避けてきた

Page 27: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

113Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Scrum Masters TODO

113

自分のチームが最新のプラクティスの知識を持っているように。

自分の組織が、その重要さを知っているように。

ScrumMasterのToDO

114Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

People are generally doing the best they know

人々は自分が知っている範囲で最善を行う。

必ずしも「知らない」ことを知らない。

115Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Scrum Masters TODO

115

問題解決、を奨励すること

宗教信者にならないように

覚書:Scrumスレーブはない。116

Agile Japan - Tokyo 2013www.renaissancesoftware.net

[email protected] © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Managers TODO:

116

マネジャーのToDo

最高のチームを育てる

モチベーションを下げる要素をなくす

チームのモチベーションを上げようとしない。

Page 28: Demand Technical Excellence James Grenning keynote at AgileJapan 2013

117Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

117

How to Improve - Build a Learning Environment

自分のスキルは自分で

ふりかえり

どうやって改善するか – 学習する環境をいかに作るか

118Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

You don’t delight customers with the untested code gap

テストされていないコードギャップでは顧客を喜ばせられない。

119Agile Japan - Tokyo 2013

[email protected]

Copyright © 2008-2013 James W. GrenningAll Rights Reserved. For use by training attendees.

Demand Technical Excellence

Talk to me on Twitter@jwgrenning

Find me on linkedin.comjwgrenning

Please remind me how we met.