Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
agile459-feedback
Search
eiji.ienaga
September 08, 2018
1
1.9k
agile459-feedback
Agile Japan 2018 高知サテライト
https://agile459.connpass.com/event/96027/
eiji.ienaga
September 08, 2018
Tweet
Share
More Decks by eiji.ienaga
See All by eiji.ienaga
tdd-hajime-no-ippo
haru01
0
150
テストオートメーションと末長くお付き合いするための17のこと
haru01
3
650
20240913知識ポートフォリオ
haru01
0
30
Agile Studioウェビナー~モブプログラミング&テスト駆動開発はじめの一歩~
haru01
0
310
XP祭り2022 xUnit Test Patterns勉強会
haru01
0
790
心理的安全性とリファクタリングステップでモブプログラミングはめっちゃ輝く
haru01
4
2.1k
書籍『テスト駆動開発』の紹介(みんなのPython勉強会#37 の発表資料)
haru01
2
7.8k
書籍『テスト駆動開発』7つの魅力のご紹介
haru01
1
1.2k
いえぴょんによる弾丸特急フィードバック講座
haru01
5
630
Featured
See All Featured
Fireside Chat
paigeccino
37
3.5k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
How GitHub (no longer) Works
holman
314
140k
GitHub's CSS Performance
jonrohan
1031
460k
Embracing the Ebb and Flow
colly
86
4.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
The Invisible Side of Design
smashingmag
301
51k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
KATA
mclloyd
30
14k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Transcript
' $ &% Expected
- Actual = 0 " Agile Japan 2018 !)(#
• =GE> • Tiwtter: @haru01 • G<!%-,( .5& •
/3# • ScrumC 0'$&%!& 2 )"25 TDD …B D • +41, • 8;Java 6@Ruby A PythonHF9?GoI:7 • *4 https://twop.agile.esm.co.jp/ 2
3 https://agile.esm.co.jp/
(.+"#63F8. ,-)$B5 0!1-%;4:?2<97 F8. ,-)$&* E@
'/!,100C = D > A !!
*0 IN ,'=;(XWAH*B:6!O 8)CF*9?LJZYQP2&/E-7 6!@5<"+I3 QP%#1$D4TM 1$RVUKSK.>G
etc…. (#+ ! "/$4.1% 35206)', *-&
= -X;6$ H #%N$ YO ?. ,)<* % EU
GJ1HD@' R[ !"%^+C2 Flow++LK + 894 _T > IV] /0 /0 /0 W5 /0 /0 F7:S ZQ 4&(A \ P B M 3 B
! % % ' &
Expected22℃ Actual3℃ ℃ Time ExpectedActual "# $ Expected22℃ Actual3℃
P Action Expected Actual People ≒
Expected: Happy!! Actual:Sad!!
N C Expected: Build OK! I N Actual:
Build Fail! G expected actual
! −−
* $& !) + "
% #' (
"!
"! "!
l͋ͱ͔ΒௐͯΈΕɺ ຊʹΛղ͍ͯ΄͔ͬͨ͠ਓ ͦΜͳʹ͍ͳ͍ͷͩ M
Fail First P?FL\X)# QN \XS 1/@0 5G QN
,!?R9VZ &*- H3 =K >MYC B (AE :62 OYC B (AE %"' (A E 7J4W[D.[D$+ U8 >MYC …;T <I
!#% & $ "
Customer Discovery Customer Validation Customer Creation Customer Building
"! $ # TDD−ATDD
$ #(%!" '&*) $
l࣭ͱ୭͔ʹͱͬͯͷՁ Ͱ͋Δ M
UP UP Xxx
UP UP
− UP People( ) UP
UP UP -> -> UP
(' QA
(' &#)$"!%" etc….
) ( ( 1 *20/. )#!$-&' 1 ",(+#%
lΤΫετϦʔϜϓϩάϥϛϯά ͱιʔγϟϧνΣϯδͰ͋Δ
# $ ! "
! ! ! ! !
! ! ! !
PeopleHappy 2+0!.4* %-4*& :;<7 8',65
@? " 89>/$)1-(=3#
”No
lγϯϓϧ͞ʢϜμͳ͘࡞ΕΔ ྔΛ࠷େݶʹ͢Δ͜ͱʣ͕ຊ ࣭Ͱ͢ɻ
$ ! No #"
* %&" No! $ * # No! $ * # No! $
lͱ ·Εͨࣄฑͱೝࣝ͞Εͨࣄฑͷ૬ҧͰ͋Δ M
Expected – Actual =
0 people.reduce(0){ |diff, person| diff + (person.expteced - person.actual).abs }
assertEquals(expected, actual);
None
Expected Actual UP
Actual Expected
Expected Actual
" $ ! #
A A
A XXX "!
#
" !
Expected Actual
!
%"!' & + $ *(#)
!"" #%& ') 0+,.- $(/*
! $( %) #& " ! '*
http://bliki-ja.github.io/ConversationalStories/ Who
What Why Who What Why
%"CRC " &# People$ !
http://gc.sfc.keio.ac.jp/class/2006_23636/slides/05/5.html −
−
T DCA t C A ,) ( E A A
c AC t e C T c c R () .
"#%%!( +!'8A<74 : 23 ;> B: -
&0*&/16$) ? ?= .1,58A<7@9 https://www.slideshare.net/kkd/user-story-mapping-for-agile-team http://gc.sfc.keio.ac.jp/class/2006_23636/slides/05/5.html
l࠷ྑͷΞʔΩςΫνϟɾཁ ٻɾઃܭɺࣗݾ৫తͳ νʔϜ͔ΒੜΈग़͞Ε·͢ɻ
ü '+*(,B79RG@ ü 0T=P3CIU% ü )YO X ü
;> %A< ü .Z[`#&!/_ ü V%0T3C: JV ü 7 H4 ü ?-28M^ %SKWQ6 " $5DL\NF1E #&!/_] Expected Actual
Red Green or Expected Actual
,/ GUI .*" +%6
#&7 ' GUI Spy 3) 1 ,/ (- ! 90$ 25 assert execute 80$ .*" 4 Expected Actual
& ( !#$ ' … void
printOwing(double amount) { printBanner(); // %" System.out.println("name:" + name); System.out.println("amount:" + amount); } void printOwing(double amount) { printBanner(); printDetails(amount); } private void printDetails(double amount) { // System.out.println("name:" + name); System.out.println("amount:" + amount); } ಈ࡞͢Δ͕ෆ٢ͳष͍ ͕͢Δίʔυ ಡΜͰཧղ͢Δ·Ͱͷ͕࣌ؒେ ػೳͷՃमਖ਼ʹ͕͔͔࣌ؒΔɾෆՄೳ ίʔυʹ͖߹͏ͱਏ͍ ಈ࡞͢Δ͖Ε͍ͳίʔυ ಡΜͰཧղ͢Δ·Ͱͷ͕࣌ؒখ ػೳͷՃमਖ਼͕Ͱ͖Δ ίʔυʹ͖߹͏ͷָ͕͍͠ Expected Actual
() ਓ͕ଟ͗ͯ͢ௐίετߴ ৽ϝϯόʔ͕ࢀՃͯ͠ཧղ͢Δ·Ͱ͕࣌ؒେ టஂࢠΞʔΩςΫτͰσϓϩΠ͕͍͠ Τϥʔղੳ͕͍͠
దͳνʔϜαΠζͰௐίετখ ৽ϝϯόʔ͕ࢀՃͯ͠ཧղ͢Δ·Ͱͷ͕࣌ؒখ ୯ҰతαʔϏεͰಠཱͯ͠σϓϩΠ͠ݕূ͍͢͠ ہॴԽͰΤϥʔղੳ͍͢͠ ҙɿৗʹαʔϏεͷநग़͕ྑ͠ͱݶΒͳ͍ɻϞδϡʔϧύʔέʔδׂʹཹΊΔɺ ٯʹαʔϏεͷΠϯϥΠϯԽͯ͠·ͱΊΔͷબࢶͱτϨʔυΦϑஅ Expected Actual
People
lٕज़తӽੑͱ༏Εͨઃܭʹ ର͢Δෆஅͷҙ͕ػහ͞Λ ߴΊ·͢ɻ
# &+(0%' ". !#" )*$/,-
9/(%#!% ?< )' 4; expected actual +, 32=> .657*
%!%NG "NG NG ,2 80/ %!%OK "OK OK $OK :1 -&
0 1 5
lνʔϜ͕ͬͱޮΛߴΊΔ͜ͱ͕ Ͱ͖Δ͔ΛఆظతʹৼΓฦΓɺ ͦΕʹج͍ͮͯࣗͨͪͷΓํΛ ࠷దʹௐ͠·͢ɻ
lࢲຊʹͦΕΛղ͖͍͔ͨʁ M
lͷग़ॴͬͱ͠͠ΘΕΘ Εࣗͷதʹ͋Δ M
None
None
. 3 . 2 1 84 1 .
#"!
None
Change!!
Expected Expected Actual
A A E E P
E A
% ! $#"
z91ͱɺ͋ͳ͕ͨࣗͷཧʹ͍ͭͯߟ͑ɺͦͷཧ ʹͱ͍ͮͯߦಈ͢ΔͨΊͷํ๏ͩɻ
) * Expected "−$( * Actual#
%−' * 2 !& aE 2 c lE 2 E 2 Epo A d E 2 d E 2 d E 2 : E E E 2 E E S E e2
l91ͷ伴࣮ੑʢJOUFHSJUZʣͩɻຊͷՁͱௐͷ ͱΕͨߦಈΛ͢Δ͜ͱͩɻ
*0 IN ,'=;(XWAH*B:6!O 8)CF*9?LJZYQP2&/E-7 6!@5<"+I3 QP%#1$D4TM 1$RVUKSK.>G
etc…. $(& , 1+.! 02/-3%#) ' *"
(%/1'0-4 #)& *#
"0# "352 . !$ ,+
= -X;6$ H #%N$ YO ?. ,)<* % EU
GJ1HD@' R[ !"%^+C2 Flow++LK + 894 _T > IV] /0 /0 /0 W5 /0 /0 F7:S ZQ 4&(A \ P B M 3 B