47
Copyright (c) 2014 Eiwa System Management, Inc. テスト自動化やTDDを チームに広めていく コツをお伝えします 1 株式会社永和システムマネジメント 2014年 9月3日 家永英治

Install tdd

Embed Size (px)

Citation preview

Page 1: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

!

テスト自動化やTDDを チームに広めていくコツをお伝えします

1

株式会社永和システムマネジメント 2014年 9月3日 家永英治

Page 2: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

自己紹介■ 家永英治 □ 永和システムマネジメント □ アジャイルコーチ(Scrumの導入のお手伝い) □ 時々、受託開発 !

■ 近年は、Scrum導入に関連して、テストの自動化やTDDのコツを個人やチームに伝える広めるお仕事も

2

Page 3: Install tdd

http://www.esm.co.jp/news_seminar/seminar/758.html

宣伝

Page 4: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

私のポジションがアジャイルコーチと少し異色ですが、この発表で、テスト自動化などアイデアをチームに広めるヒントを持ち帰っていただければ幸いです

4

Page 5: Install tdd

エバンジェリスト(1)  [Evangelist]:  小さな成功(2)  [Small  Successes]:  ステップバイステップ(3)  [Step  by  Step]:  予備調査(4)  [Test  the  Waters]:  ふりかえりの時間(5)  [Time  for  Reflection]:協力を求める(6)  [Ask  for  Help]:  ブラウンバッグ・ミーティング(7)  [Brown  Bag]:  コネクター(8)  [Connector]:  何か食べながら(9)  [Do  Food]:  電子フォーラム(10)  [e-Forum]:  アーリーアダプター(11)  [Early  Adopter]:外部のお墨付き(12)  [External  Validation]:グループのアイデンティティ(13)  [Group  Identity]:達人を味方に(14)  [Guru  on  Your  Side]:  空間を演出する(15)  [In  Your  Space]:  イノベーター(16)  [Innovator]:  やってみる(17)  [Just  Do  It]:  感謝を伝える(18)  [Just  Say  Thanks]:  次のアクション(19)  [Next  Steps]:  個人的な接触(20)  [Personal  Touch]:  便乗(21)  [Piggyback]:  種をまく(22)  [Plant  the  Seeds]:適切な時期(23)  [The  Right  Time]:定期的な連絡(24)  [Stay  in  Touch]:  勉強会(25)  [Study  Group]:テイラーメイド(26)  [Tailor  Made]:著名人を招く(27)  [Big  Jolt]:  経営層の支持者(28)  [Corporate  Angel]:正式な推進担当者(29)  [Dedicated  Champion]:  アーリーマジョリティ(30)  [Early  Majority]:  達人のレビュー(31)  [Guru  Review]:体験談の共有(32)  [Hometown  Story]:  みんなを巻き込む(33)  [Involve  Everyone]:ちょうど十分(34)  [Just  Enough]:  身近な支援者(35)  [Local  Sponsor]:  場所重要(36)  [Location,  Location,  Location]:メンター(37)  [Mentor]:  謁見(38)  [Royal  Audience]:  相談できる同志(39)  [Shoulder  to  Cry  On]:  成功の匂い(40)  [Smell  of  Success]:勢いの持続(41)  [Sustained  Momentum]:トークン(42)  [Token]:橋渡し役(43)  [Bridge-Builder]:  懐疑派代表(44)  [Champion  Skeptic]:根回し(45)  [Corridor  Politics]:  怖れは無用(46)  [Fear  Less]:お試し期間(47)  [Trial  Run]:  将軍の耳元でささやく(48)  [Whisper  in  the  General’s  Ear]:

結論:アイデアを広げるヒントはこれがオススメ

テスト自動化やTDDにも効く

Page 6: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

TDDのおさらい

6

スキップ

Page 7: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

TDD のリズム

7

red green

refactor設計

実装

ユニット テスト

テスト

timetime

Red Green Refactor のサイクルは 小さくリズムよく(例えば1ヶ月)

スキップ

Page 8: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

自動化・TDDの期待される効果

8

(例えば3年)

技術的負債の議論はこちらがオススメ

スキップ

Page 9: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

テスト自動化や TDD導入の際に私(コーチ)が が行っている活動

9

Page 10: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

制限時間で お伝えできるかぎりを!

10

Page 11: Install tdd

自動化・TDDエバンジェリスト候補(の発見)注)イメージ図です

Page 12: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

■ コーチは最初に誰へ技能を伝承すべきかを明らかに出来る(師匠と弟子の関係)

□ 導入の初期に伝えるべき人は、抵抗者ではなく、仲間になってくれそうな人

□ 自分で課題を自覚でき、解決案の選択が出来る人であればGOOD

□ 謙虚に学びができる人であれば、なおGOOD

□ 周りに良い影響を与えることが出来る人であればなおGOOD

■ 対象の候補者が技能を習得できれば、周囲に広めることができる(弟子が師匠に)

■ コーチがいなくなっても自動化やTDDの(広める)活動を維持できる

!:-( もちろん、抵抗者ばかり見つかって、候補者を発見できずにがっかりすることも

12

自動化・TDDエバンジェリスト候補

Page 13: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

参考

13

https://speakerdeck.com/kawaguti/fearless-change-falsebu-kifang#17

まずは ここ見つけて

Page 14: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

新しいアイデアを組織に広めるヒントはこれがオススメ

14

エバンジェリスト(1) 小さな成功(2) ステップ・バイ・ステップ(3) 予備調査(4) ふりかえりの時間(5) 協力を求める(6) … メンター(37) …

Page 15: Install tdd

インタビュー(ヒアリング)注)イメージ図です

Page 16: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

インタビュー(ヒアリング)■ 人別にテスト自動化に取り組んだ結果の嬉しさ発見できる。整理できる

□ コーチやエバンジェリスト候補は、下記の質問に答えられる状態が望ましい

• 「ビジネス側や開発側や品質保証にとって、普段困っていることは何だろうか?」

• 「困り事が解決した結果の嬉しい状態はなんだろうか?」

• 人によって困り事・嬉しい結果が異なる

• 「自動化やTDDの導入の不安事は?」(どんなアプローチにも副作用はある)

• 「どんな順番で着手すると、嬉しい結果が(早くから)得られるだろうか?」

■ 親身になって話を聴くことで、信頼関係づくりのきっかけになる(副次的効果) !

:-( もちろん、各々の見解があまりにバラバラであったり、誤解から過剰な期待を持っている、無関心であることがわかり、頭を抱えることも

16

Page 17: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

参考

17

個人的な接触(20)

http://designthinking.or.jp/bootleg.pdf

4 インタビューの準備5 共感のためのインタビュー

協力を求める(6)

Page 18: Install tdd

自動化・TDD導入用のゴール設定注)イメージ図です

Page 19: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

自動化・TDD導入用のゴール設定■ 取り組むべき問題の定義、解くアプローチの概要を関係者とすり合わせできる

□ 「自動化」「TDDをやる」自体はゴールじゃないはず

□ 「関係者の現状の困り事や嬉しい状態はなにか?」->「期待する結果になるようにA,B,Cを実施する」を整理

□ 大まかな実施項目のスケジュールを作成

■関係者に協力して欲しいことを伝えることができる !

:-(もちろん、合意できないや協力が得られない結論になる場合も

19

Page 20: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

参考

20

インセプションデッキ

!

協力を求める(6) テーラメイド(26) 身近な支援者(35)

Page 21: Install tdd

自動化・リファクタリング対象の優先順位付け注)イメージ図です

Page 22: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

自動化・リファクタリング対象の優先順位付け■ 自動化やTDDの効果が見込めそうなものから順番に取り組むことができる • バグが頻発しているコンポーネントは? • ビジネスで重要な機能の使い方は? • 手動のEnd to Endテストでは確認の手間がかかり過ぎるのは? • コード・設計が複雑化してメンテナンス性を低下させている箇所は? • etc

!

:-(もちろん、当初考えていたよりずっと自動化やリファクタリングするのに時間かかることを知って落胆してしまうことも

22

Page 23: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

参考

23

テスト自動化戦略

技術的負債

http://blog.codeclimate.com/blog/2013/12/05/refactoring-without-good-tests/

小さな成功(2) ステップバイステップ(3)

Page 24: Install tdd

ふりかえり

注)イメージ図です

Page 25: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

ふりかえり■ 新しい取り組みのうまく行っている点、改善点を早期に定期的(1週間ごと)に明らかにできる

■ 小さな成功が確認できれば、お祝いするチャンス ■ 経験を踏まえて、次のアクションを明らかにして実施できる !

:-(もちろん、失敗の連続で落胆してしまうことも

25

Page 26: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

参考

26

ふりかえりの時間(5) 小さな成功(2) 次のアクション(19)

Page 27: Install tdd

学びの記録(YWT+気分)

注)イメージ図です

Page 28: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

学びの記録(YWT+気分)■ 対象者やコーチが1日を内省し、経験したことを整理できる

■ 次のアクションが具体化できる ■ 周囲の人からアドバイスがもらえる ■ 読み返すことで、再学習できる

!

:-(もちろん、日誌を記録するのが苦手や手間に感じる人も

28

Page 29: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

参考

29

ふりかえりの時間(5) 空間を演出する(15) 次のアクション(19)

学びを記録する 学びを共有する

Page 30: Install tdd

厳選オススメ本棚(+Web記事)注)イメージ図です

Page 31: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

厳選オススメ本棚(+Web記事)■ 基礎知識をコーチと対象者で揃えることができる ■ エンジニアとしての基礎的な学びの姿勢を身につけることが出来る(学びの姿勢ができると自動化やTDDのコツをお伝えしやすくなる) !

!

:-(もちろん、本を読んで学ぶことが好きじゃない人も

31

Page 32: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

参考

32

2章 カップを空にする 読書リスト 継続した読書

空間を演出する(15)

Page 33: Install tdd

TDDの練習(社内TDDBootCamp)注)イメージ図です

Page 34: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

TDDの練習(社内TDDBootCamp)■ 練習場であれば安心して失敗できる(失敗からも学ぶことができる)

■ 練習を繰り返すことで、自動化やTDDのスキルを身につけることができる !

!

:-(もちろん、本番と練習の場には大きな差異あって、本番ではどうすればよいか悩むことも

34

Page 35: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

参考

35

勉強会(25)

コミュニティイベント TDD Boot Camphttp://devtesting.jp/tddbc/

練習、練習、練習

Page 36: Install tdd

ペアで作業する注)イメージ図です

Page 37: Install tdd

ミニ・ライブコーディング注)イメージ図です

Page 38: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

ミニ・ライブコーディング■ ペアで作業よりも広くコーチから対象者に伝承できる □ (周囲の人も見学できる) ■ 設計や(テスト)コードの書き方の良し悪しの判断の議論が即時できる □ 近くにホワイトボードを ■ 他人のエディタやリファクタリングツールの使い方やテストの書き方を真似て学ぶことが出来る !

:-( もちろん、知識レベルが揃っていて、対象が簡単で一人でも解けるであれば非効率になる

38

Page 39: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

参考

39

各種技術 コミュニティイベント のライブコーディング

ペアで開発する

Page 40: Install tdd

Copyright (c) 2014 Eiwa System Management, Inc.

レガシーコード改善のシナリオの場合

40

Page 41: Install tdd

絞り込み点・割り込み点・接合部の発見注)イメージ図です

Page 42: Install tdd

仕様化テスト(テストで保護)注)イメージ図です

Page 43: Install tdd

ベイビーステップ・リファクタリング(TDD)注)イメージ図です

Page 44: Install tdd

他にも工夫はたくさん

Page 45: Install tdd

今日いちばん お伝えしたいことをもう一度

Page 46: Install tdd

エバンジェリスト(1)  [Evangelist]:  小さな成功(2)  [Small  Successes]:  ステップバイステップ(3)  [Step  by  Step]:  予備調査(4)  [Test  the  Waters]:  ふりかえりの時間(5)  [Time  for  Reflection]:協力を求める(6)  [Ask  for  Help]:  ブラウンバッグ・ミーティング(7)  [Brown  Bag]:  コネクター(8)  [Connector]:  何か食べながら(9)  [Do  Food]:  電子フォーラム(10)  [e-Forum]:  アーリーアダプター(11)  [Early  Adopter]:外部のお墨付き(12)  [External  Validation]:グループのアイデンティティ(13)  [Group  Identity]:達人を味方に(14)  [Guru  on  Your  Side]:  空間を演出する(15)  [In  Your  Space]:  イノベーター(16)  [Innovator]:  やってみる(17)  [Just  Do  It]:  感謝を伝える(18)  [Just  Say  Thanks]:  次のアクション(19)  [Next  Steps]:  個人的な接触(20)  [Personal  Touch]:  便乗(21)  [Piggyback]:  種をまく(22)  [Plant  the  Seeds]:適切な時期(23)  [The  Right  Time]:定期的な連絡(24)  [Stay  in  Touch]:  勉強会(25)  [Study  Group]:テイラーメイド(26)  [Tailor  Made]:著名人を招く(27)  [Big  Jolt]:  経営層の支持者(28)  [Corporate  Angel]:正式な推進担当者(29)  [Dedicated  Champion]:  アーリーマジョリティ(30)  [Early  Majority]:  達人のレビュー(31)  [Guru  Review]:体験談の共有(32)  [Hometown  Story]:  みんなを巻き込む(33)  [Involve  Everyone]:ちょうど十分(34)  [Just  Enough]:  身近な支援者(35)  [Local  Sponsor]:  場所重要(36)  [Location,  Location,  Location]:メンター(37)  [Mentor]:  謁見(38)  [Royal  Audience]:  相談できる同志(39)  [Shoulder  to  Cry  On]:  成功の匂い(40)  [Smell  of  Success]:勢いの持続(41)  [Sustained  Momentum]:トークン(42)  [Token]:橋渡し役(43)  [Bridge-Builder]:  懐疑派代表(44)  [Champion  Skeptic]:根回し(45)  [Corridor  Politics]:  怖れは無用(46)  [Fear  Less]:お試し期間(47)  [Trial  Run]:  将軍の耳元でささやく(48)  [Whisper  in  the  General’s  Ear]:

https://github.com/kawaguti/fearless-change-pub/raw/master/Fearless%20Change%20patterns.pdfチートシートあるよ

Page 47: Install tdd

エバンジェリスト(1)  [Evangelist]:  小さな成功(2)  [Small  Successes]:  ステップバイステップ(3)  [Step  by  Step]:  予備調査(4)  [Test  the  Waters]:  ふりかえりの時間(5)  [Time  for  Reflection]:協力を求める(6)  [Ask  for  Help]:  ブラウンバッグ・ミーティング(7)  [Brown  Bag]:  コネクター(8)  [Connector]:  何か食べながら(9)  [Do  Food]:  電子フォーラム(10)  [e-Forum]:  アーリーアダプター(11)  [Early  Adopter]:外部のお墨付き(12)  [External  Validation]:グループのアイデンティティ(13)  [Group  Identity]:達人を味方に(14)  [Guru  on  Your  Side]:  空間を演出する(15)  [In  Your  Space]:  イノベーター(16)  [Innovator]:  やってみる(17)  [Just  Do  It]:  感謝を伝える(18)  [Just  Say  Thanks]:  次のアクション(19)  [Next  Steps]:  個人的な接触(20)  [Personal  Touch]:  便乗(21)  [Piggyback]:  種をまく(22)  [Plant  the  Seeds]:適切な時期(23)  [The  Right  Time]:定期的な連絡(24)  [Stay  in  Touch]:  勉強会(25)  [Study  Group]:テイラーメイド(26)  [Tailor  Made]:著名人を招く(27)  [Big  Jolt]:  経営層の支持者(28)  [Corporate  Angel]:正式な推進担当者(29)  [Dedicated  Champion]:  アーリーマジョリティ(30)  [Early  Majority]:  達人のレビュー(31)  [Guru  Review]:体験談の共有(32)  [Hometown  Story]:  みんなを巻き込む(33)  [Involve  Everyone]:ちょうど十分(34)  [Just  Enough]:  身近な支援者(35)  [Local  Sponsor]:  場所重要(36)  [Location,  Location,  Location]:メンター(37)  [Mentor]:  謁見(38)  [Royal  Audience]:  相談できる同志(39)  [Shoulder  to  Cry  On]:  成功の匂い(40)  [Smell  of  Success]:勢いの持続(41)  [Sustained  Momentum]:トークン(42)  [Token]:橋渡し役(43)  [Bridge-Builder]:  懐疑派代表(44)  [Champion  Skeptic]:根回し(45)  [Corridor  Politics]:  怖れは無用(46)  [Fear  Less]:お試し期間(47)  [Trial  Run]:  将軍の耳元でささやく(48)  [Whisper  in  the  General’s  Ear]:Fearless Change

アイデアを広めること 行き詰まったらこれ!

テスト自動化やTDDにも効く

チートシートあるよ https://github.com/kawaguti/fearless-change-pub/raw/master/Fearless%20Change%20patterns.pdf