SlideShare a Scribd company logo
1 of 47
Download to read offline
!テスト自動化やTDDを 
チームに広めていく 
コツをお伝えします 
Copyright (c) 2014 Eiwa System Management, Inc. 
1 
株式会社永和システムマネジメント 
2014年 9月3日 
家永英治
自己紹介 
■ 家永英治 
□ 永和システムマネジメント 
□ アジャイルコーチ(Scrumの導入のお手伝い) 
□ 時々、受託開発 
! 
■ 近年は、Scrum導入に関連して、テストの自動化や 
TDDのコツを個人やチームに伝える広めるお仕事も 
Copyright (c) 2014 Eiwa System Management, Inc. 
2
宣伝 
http://www.esm.co.jp/news_seminar/seminar/758.html
私のポジションがアジャイルコー 
チと少し異色ですが、この発表 
で、テスト自動化などアイデア 
をチームに広めるヒントを持ち 
帰っていただければ幸いです 
Copyright (c) 2014 Eiwa System Management, Inc. 
4
エバンジェリスト(1) [Evangelist]: 小さな成功(2) [Small Successes]: ステップバ 
イステップ(3) [Step by Step]: 予備調査(4) [Test the Waters]: ふりかえりの時間 
(5) [Time for Reflection]:ティング(7) 結[Brown 論:協ア力をイ求めるデ(6) ア[Ask をfor 広Help]: げブラる 
ウンバッグ・ミー 
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 TDDGroup]:にもテ効イラ営層の支持者(28) [く 
ーメイド(26) [Tailor Made]:著名人を招く(27) [Big Jolt]: 経 
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のおさらい 
Copyright (c) 2014 Eiwa System Management, Inc. 
6 
スキップ
TDD のリズム 
スキップ 
… 
(例えば1ヶ月) 
Copyright (c) 2014 Eiwa System Management, Inc. 
7 
red green 
設計refactor 
実装 
ユニット 
テスト 
テスト 
time time 
Red Green Refactor のサイクルは 小さくリズムよく
自動化・TDDの期待される効果 
技術的負債の議論は 
こちらがオススメスキップ 
Copyright (c) 2014 Eiwa System Management, Inc. 
8 
(例えば3年)
テスト自動化や 
TDD導入の際に私(コーチ)が 
が行っている活動 
Copyright (c) 2014 Eiwa System Management, Inc. 
9
制限時間で 
お伝えできるかぎりを! 
Copyright (c) 2014 Eiwa System Management, Inc. 
10
自動化・TDDエバンジェリスト候補(の発見) 
注)イメージ図です
■ コーチは最初に誰へ技能を伝承すべきかを明らかに出来る 
(師匠と弟子の関係) 
□ 導入の初期に伝えるべき人は、抵抗者ではなく、仲間になってくれそうな人 
□ 自分で課題を自覚でき、解決案の選択が出来る人であればGOOD 
□ 謙虚に学びができる人であれば、なおGOOD 
□ 周りに良い影響を与えることが出来る人であればなおGOOD 
■ 対象の候補者が技能を習得できれば、周囲に広めることが 
できる(弟子が師匠に) 
■ コーチがいなくなっても自動化やTDDの(広める) 
活動を維持できる 
! 
:-( もちろん、抵抗者ばかり見つかって、候補者を発見できずにがっかりすることも 
Copyright (c) 2014 Eiwa System Management, Inc. 
12 
自動化・TDDエバンジェリスト候補
まずは 
ここ見つけて 
Copyright (c) 2014 Eiwa System Management, Inc. 
参考 
13 
https://speakerdeck.com/kawaguti/fearless-change-falsebu-kifang#17
新しいアイデアを組織に広めるヒントはこれがオススメ 
Copyright (c) 2014 Eiwa System Management, Inc. 
14 
エバンジェリスト(1) 
小さな成功(2) 
ステップ・バイ・ステップ(3) 
予備調査(4) 
ふりかえりの時間(5) 
協力を求める(6) 
… 
メンター(37) 
…
インタビュー(ヒアリング) 
注)イメージ図です
インタビュー(ヒアリング) 
■ 人別にテスト自動化に取り組んだ結果の嬉しさ 
発見できる。整理できる 
□ コーチやエバンジェリスト候補は、下記の質問に答えられる状態が望ましい 
• 「ビジネス側や開発側や品質保証にとって、普段困っていることは何だろうか?」 
• 「困り事が解決した結果の嬉しい状態はなんだろうか?」 
• 人によって困り事・嬉しい結果が異なる 
• 「自動化やTDDの導入の不安事は?」(どんなアプローチにも副作用はある) 
• 「どんな順番で着手すると、嬉しい結果が(早くから) 
得られるだろうか?」 
■ 親身になって話を聴くことで、信頼関係づくりのきっか 
けになる(副次的効果) 
! 
:-( もちろん、各々の見解があまりにバラバラであったり、誤解から過剰な期待を持ってい 
る、無関心であることがわかり、頭を抱えることも 
Copyright (c) 2014 Eiwa System Management, Inc. 
16
4 インタビューの準備 
5 共感のためのインタビュー 
Copyright (c) 2014 Eiwa System Management, Inc. 
参考 
17 
個人的な接触(20) 
http://designthinking.or.jp/bootleg.pdf 
協力を求める(6)
自動化・TDD導入用のゴール設定 
注)イメージ図です
自動化・TDD導入用のゴール設定 
■ 取り組むべき問題の定義、解くアプローチの概 
要を関係者とすり合わせできる 
□ 「自動化」「TDDをやる」自体はゴールじゃないはず 
□ 「関係者の現状の困り事や嬉しい状態はなにか?」 
->「期待する結果になるようにA,B,Cを実施する」を整理 
□ 大まかな実施項目のスケジュールを作成 
■ 関係者に協力して欲しいことを伝えること 
ができる 
! 
:-(もちろん、合意できないや協力が得られない結論になる場合も 
Copyright (c) 2014 Eiwa System Management, Inc. 
19
Copyright (c) 2014 Eiwa System Management, Inc. 
参考 
20 
インセプションデッキ 
! 
協力を求める(6) 
テーラメイド(26) 
身近な支援者(35)
自動化・リファクタリング対象の優先順位付け 
注)イメージ図です
自動化・リファクタリング対象の優先順位付け 
■ 自動化やTDDの効果が見込めそうなものから順番 
に取り組むことができる 
• バグが頻発しているコンポーネントは? 
• ビジネスで重要な機能の使い方は? 
• 手動のEnd to Endテストでは確認の手間がかかり過ぎるのは? 
• コード・設計が複雑化してメンテナンス性を低下させている箇所は? 
• etc 
Copyright (c) 2014 Eiwa System Management, Inc. 
! 
:-(もちろん、当初考えていたよりずっと自動化やリファクタリングする 
のに時間かかることを知って落胆してしまうことも 
22
小さな成功(2) 
ステップバイステップ(3) 
Copyright (c) 2014 Eiwa System Management, Inc. 
参考 
23 
テスト自動化戦略 
技術的負債 
http://blog.codeclimate.com/blog/2013/12/05/refactoring-without-good-tests/
ふりかえり 
注)イメージ図です
ふりかえり 
■ 新しい取り組みのうまく行っている点、改善点を 
早期に定期的(1週間ごと)に明らかにできる 
■ 小さな成功が確認できれば、お祝いするチャンス 
■ 経験を踏まえて、次のアクションを明らかにして実 
施できる 
! 
:-(もちろん、失敗の連続で落胆してしまうことも 
Copyright (c) 2014 Eiwa System Management, Inc. 
25
Copyright (c) 2014 Eiwa System Management, Inc. 
参考 
ふりかえりの時間(5) 
小さな成功(2) 
次のアクション(19) 
26
注)イメージ図です 
学びの記録(YWT+気分)
学びの記録(YWT+気分) 
■ 対象者やコーチが1日を内省し、経験したこと 
を整理できる 
■ 次のアクションが具体化できる 
■ 周囲の人からアドバイスがもらえる 
■ 読み返すことで、再学習できる 
! 
:-(もちろん、日誌を記録するのが苦手や手間に感じる人も 
Copyright (c) 2014 Eiwa System Management, Inc. 
28
Copyright (c) 2014 Eiwa System Management, Inc. 
参考 
29 
ふりかえりの時間(5) 
空間を演出する(15) 
次のアクション(19) 
学びを記録する 
学びを共有する
厳選オススメ本棚(+Web記事) 注)イメージ図です
厳選オススメ本棚(+Web記事) 
■ 基礎知識をコーチと対象者で揃えることができる 
■ エンジニアとしての基礎的な学びの姿勢を身につ 
けることが出来る 
(学びの姿勢ができると自動化やTDDのコツをお 
伝えしやすくなる) 
Copyright (c) 2014 Eiwa System Management, Inc. 
! 
! 
:-(もちろん、本を読んで学ぶことが好きじゃない人も 
31
Copyright (c) 2014 Eiwa System Management, Inc. 
参考 
32 
2章 カップを空にする 
読書リスト 
継続した読書 
空間を演出する(15)
TDDの練習(社内TDDBootCamp) 
注)イメージ図です
TDDの練習(社内TDDBootCamp) 
■ 練習場であれば安心して失敗できる(失敗から 
も学ぶことができる) 
■ 練習を繰り返すことで、自動化やTDDのスキ 
ルを身につけることができる 
Copyright (c) 2014 Eiwa System Management, Inc. 
! 
! 
:-(もちろん、本番と練習の場には大きな差異あって、 
本番ではどうすればよいか悩むことも 
34
Copyright (c) 2014 Eiwa System Management, Inc. 
参考 
35 
勉強会(25) 
コミュニティイベント 
TDD Boot Camp 
http://devtesting.jp/tddbc/ 
練習、練習、練習
ペアで作業する 
注)イメージ図です
ミニ・ライブコーディング 
注)イメージ図です
ミニ・ライブコーディング 
■ ペアで作業よりも広くコーチから対象者に伝承できる 
□ (周囲の人も見学できる) 
■ 設計や(テスト)コードの書き方の良し悪しの判断の 
議論が即時できる 
□ 近くにホワイトボードを 
■ 他人のエディタやリファクタリングツールの使い方や 
テストの書き方を真似て学ぶことが出来る 
! 
:-( もちろん、知識レベルが揃っていて、対象が簡単で一人でも解ける 
であれば非効率になる 
Copyright (c) 2014 Eiwa System Management, Inc. 
38
Copyright (c) 2014 Eiwa System Management, Inc. 
参考 
39 
各種技術 
コミュニティイベント 
のライブコーディング 
ペアで開発する
レガシーコード改善の 
シナリオの場合 
Copyright (c) 2014 Eiwa System Management, Inc. 
40
絞り込み点・割り込み点・接合部の発見 
注)イメージ図です
仕様化テスト(テストで保護) 
注)イメージ図です
ベイビーステップ・リファクタリング(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
エバンジェリスト(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]: アーTDDリーアダにプタもー(効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) 
Fearless [Token]:橋渡し役(43) [Bridge-Builder]: 懐疑派代表(44) [Champion Skeptic]:根 
回し(45) [Corridor Politics]: Change 
怖れは無用(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

More Related Content

Similar to Install tdd

新入社員の方による就活体験談と現場での人材育成
新入社員の方による就活体験談と現場での人材育成新入社員の方による就活体験談と現場での人材育成
新入社員の方による就活体験談と現場での人材育成You&I
 
20121117 01 dir-mtgスライド01
20121117 01 dir-mtgスライド0120121117 01 dir-mtgスライド01
20121117 01 dir-mtgスライド01Kenta Nakamura
 
成長する組織へ導くコミュニケーション変革 - 事例に学ぶコミュニケーション革命 -Agile Japan 2010
成長する組織へ導くコミュニケーション変革 - 事例に学ぶコミュニケーション革命 -Agile Japan 2010成長する組織へ導くコミュニケーション変革 - 事例に学ぶコミュニケーション革命 -Agile Japan 2010
成長する組織へ導くコミュニケーション変革 - 事例に学ぶコミュニケーション革命 -Agile Japan 2010Akihito Enomoto
 
成長する組織へ導くコミュニケーション変革 - Agile Japan 2010
成長する組織へ導くコミュニケーション変革 - Agile Japan 2010成長する組織へ導くコミュニケーション変革 - Agile Japan 2010
成長する組織へ導くコミュニケーション変革 - Agile Japan 2010Kazuyoshi Takahashi
 
eXtremeProgramming入門
eXtremeProgramming入門eXtremeProgramming入門
eXtremeProgramming入門You&I
 
すくすくスクラム要求開発入門(公開用).Key
すくすくスクラム要求開発入門(公開用).Keyすくすくスクラム要求開発入門(公開用).Key
すくすくスクラム要求開発入門(公開用).KeyEiichi Hayashi
 
GMOテクノロジーブートキャンプ2015(アジャイル編)
GMOテクノロジーブートキャンプ2015(アジャイル編)GMOテクノロジーブートキャンプ2015(アジャイル編)
GMOテクノロジーブートキャンプ2015(アジャイル編)Arata Fujimura
 
マシュマロ・チャレンジでチームビルディング体験
マシュマロ・チャレンジでチームビルディング体験マシュマロ・チャレンジでチームビルディング体験
マシュマロ・チャレンジでチームビルディング体験You&I
 
ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたYoshitaka Kawashima
 
Scrum talk at Agile Japan 2010
Scrum talk at Agile Japan 2010Scrum talk at Agile Japan 2010
Scrum talk at Agile Japan 2010Ren Ando
 
アジャイル開発&TFS導入
アジャイル開発&TFS導入アジャイル開発&TFS導入
アジャイル開発&TFS導入You&I
 
ワークショップ 明日からはじめるアジャイル
ワークショップ 明日からはじめるアジャイルワークショップ 明日からはじめるアジャイル
ワークショップ 明日からはじめるアジャイルESM SEC
 
納涼!みんなで持ち寄る『ゾッ!とする話』
納涼!みんなで持ち寄る『ゾッ!とする話』納涼!みんなで持ち寄る『ゾッ!とする話』
納涼!みんなで持ち寄る『ゾッ!とする話』You&I
 
No42 01-suc3rum-20131031
No42 01-suc3rum-20131031No42 01-suc3rum-20131031
No42 01-suc3rum-20131031Sukusuku Scrum
 
アジャイル開発を始めてみませんか?(思い出編)
アジャイル開発を始めてみませんか?(思い出編)アジャイル開発を始めてみませんか?(思い出編)
アジャイル開発を始めてみませんか?(思い出編)Miho Nagase
 
#agilejapan #agilesendai Agile Japan 2013 仙台サテライト 『強いチームに変える7つのステップ 〜組織を変革するリ...
#agilejapan #agilesendai Agile Japan 2013 仙台サテライト 『強いチームに変える7つのステップ 〜組織を変革するリ...#agilejapan #agilesendai Agile Japan 2013 仙台サテライト 『強いチームに変える7つのステップ 〜組織を変革するリ...
#agilejapan #agilesendai Agile Japan 2013 仙台サテライト 『強いチームに変える7つのステップ 〜組織を変革するリ...Yosuke Matsuura
 
KLabのエンジニアを支えるカルチャー
KLabのエンジニアを支えるカルチャーKLabのエンジニアを支えるカルチャー
KLabのエンジニアを支えるカルチャーKLab Inc. / Tech
 

Similar to Install tdd (20)

スクラム再入門
スクラム再入門スクラム再入門
スクラム再入門
 
新入社員の方による就活体験談と現場での人材育成
新入社員の方による就活体験談と現場での人材育成新入社員の方による就活体験談と現場での人材育成
新入社員の方による就活体験談と現場での人材育成
 
20121117 01 dir-mtgスライド01
20121117 01 dir-mtgスライド0120121117 01 dir-mtgスライド01
20121117 01 dir-mtgスライド01
 
成長する組織へ導くコミュニケーション変革 - 事例に学ぶコミュニケーション革命 -Agile Japan 2010
成長する組織へ導くコミュニケーション変革 - 事例に学ぶコミュニケーション革命 -Agile Japan 2010成長する組織へ導くコミュニケーション変革 - 事例に学ぶコミュニケーション革命 -Agile Japan 2010
成長する組織へ導くコミュニケーション変革 - 事例に学ぶコミュニケーション革命 -Agile Japan 2010
 
成長する組織へ導くコミュニケーション変革 - Agile Japan 2010
成長する組織へ導くコミュニケーション変革 - Agile Japan 2010成長する組織へ導くコミュニケーション変革 - Agile Japan 2010
成長する組織へ導くコミュニケーション変革 - Agile Japan 2010
 
Scrum"再"入門
Scrum"再"入門Scrum"再"入門
Scrum"再"入門
 
eXtremeProgramming入門
eXtremeProgramming入門eXtremeProgramming入門
eXtremeProgramming入門
 
すくすくスクラム要求開発入門(公開用).Key
すくすくスクラム要求開発入門(公開用).Keyすくすくスクラム要求開発入門(公開用).Key
すくすくスクラム要求開発入門(公開用).Key
 
GMOテクノロジーブートキャンプ2015(アジャイル編)
GMOテクノロジーブートキャンプ2015(アジャイル編)GMOテクノロジーブートキャンプ2015(アジャイル編)
GMOテクノロジーブートキャンプ2015(アジャイル編)
 
アジャイルと私
アジャイルと私アジャイルと私
アジャイルと私
 
マシュマロ・チャレンジでチームビルディング体験
マシュマロ・チャレンジでチームビルディング体験マシュマロ・チャレンジでチームビルディング体験
マシュマロ・チャレンジでチームビルディング体験
 
ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかた
 
Scrum talk at Agile Japan 2010
Scrum talk at Agile Japan 2010Scrum talk at Agile Japan 2010
Scrum talk at Agile Japan 2010
 
アジャイル開発&TFS導入
アジャイル開発&TFS導入アジャイル開発&TFS導入
アジャイル開発&TFS導入
 
ワークショップ 明日からはじめるアジャイル
ワークショップ 明日からはじめるアジャイルワークショップ 明日からはじめるアジャイル
ワークショップ 明日からはじめるアジャイル
 
納涼!みんなで持ち寄る『ゾッ!とする話』
納涼!みんなで持ち寄る『ゾッ!とする話』納涼!みんなで持ち寄る『ゾッ!とする話』
納涼!みんなで持ち寄る『ゾッ!とする話』
 
No42 01-suc3rum-20131031
No42 01-suc3rum-20131031No42 01-suc3rum-20131031
No42 01-suc3rum-20131031
 
アジャイル開発を始めてみませんか?(思い出編)
アジャイル開発を始めてみませんか?(思い出編)アジャイル開発を始めてみませんか?(思い出編)
アジャイル開発を始めてみませんか?(思い出編)
 
#agilejapan #agilesendai Agile Japan 2013 仙台サテライト 『強いチームに変える7つのステップ 〜組織を変革するリ...
#agilejapan #agilesendai Agile Japan 2013 仙台サテライト 『強いチームに変える7つのステップ 〜組織を変革するリ...#agilejapan #agilesendai Agile Japan 2013 仙台サテライト 『強いチームに変える7つのステップ 〜組織を変革するリ...
#agilejapan #agilesendai Agile Japan 2013 仙台サテライト 『強いチームに変える7つのステップ 〜組織を変革するリ...
 
KLabのエンジニアを支えるカルチャー
KLabのエンジニアを支えるカルチャーKLabのエンジニアを支えるカルチャー
KLabのエンジニアを支えるカルチャー
 

More from eiji ienaga

More from eiji ienaga (6)

TDD & Pull Request入門
TDD & Pull Request入門TDD & Pull Request入門
TDD & Pull Request入門
 
XP再解釈
XP再解釈XP再解釈
XP再解釈
 
DDD
DDDDDD
DDD
 
XP Customer Testing
XP Customer TestingXP Customer Testing
XP Customer Testing
 
20100420
2010042020100420
20100420
 
What is JSpec
What is JSpecWhat is JSpec
What is JSpec
 

Install tdd

  • 1. !テスト自動化やTDDを チームに広めていく コツをお伝えします Copyright (c) 2014 Eiwa System Management, Inc. 1 株式会社永和システムマネジメント 2014年 9月3日 家永英治
  • 2. 自己紹介 ■ 家永英治 □ 永和システムマネジメント □ アジャイルコーチ(Scrumの導入のお手伝い) □ 時々、受託開発 ! ■ 近年は、Scrum導入に関連して、テストの自動化や TDDのコツを個人やチームに伝える広めるお仕事も Copyright (c) 2014 Eiwa System Management, Inc. 2
  • 4. 私のポジションがアジャイルコー チと少し異色ですが、この発表 で、テスト自動化などアイデア をチームに広めるヒントを持ち 帰っていただければ幸いです Copyright (c) 2014 Eiwa System Management, Inc. 4
  • 5. エバンジェリスト(1) [Evangelist]: 小さな成功(2) [Small Successes]: ステップバ イステップ(3) [Step by Step]: 予備調査(4) [Test the Waters]: ふりかえりの時間 (5) [Time for Reflection]:ティング(7) 結[Brown 論:協ア力をイ求めるデ(6) ア[Ask をfor 広Help]: げブラる ウンバッグ・ミー 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 TDDGroup]:にもテ効イラ営層の支持者(28) [く ーメイド(26) [Tailor Made]:著名人を招く(27) [Big Jolt]: 経 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]:
  • 6. TDDのおさらい Copyright (c) 2014 Eiwa System Management, Inc. 6 スキップ
  • 7. TDD のリズム スキップ … (例えば1ヶ月) Copyright (c) 2014 Eiwa System Management, Inc. 7 red green 設計refactor 実装 ユニット テスト テスト time time Red Green Refactor のサイクルは 小さくリズムよく
  • 8. 自動化・TDDの期待される効果 技術的負債の議論は こちらがオススメスキップ Copyright (c) 2014 Eiwa System Management, Inc. 8 (例えば3年)
  • 10. 制限時間で お伝えできるかぎりを! Copyright (c) 2014 Eiwa System Management, Inc. 10
  • 12. ■ コーチは最初に誰へ技能を伝承すべきかを明らかに出来る (師匠と弟子の関係) □ 導入の初期に伝えるべき人は、抵抗者ではなく、仲間になってくれそうな人 □ 自分で課題を自覚でき、解決案の選択が出来る人であればGOOD □ 謙虚に学びができる人であれば、なおGOOD □ 周りに良い影響を与えることが出来る人であればなおGOOD ■ 対象の候補者が技能を習得できれば、周囲に広めることが できる(弟子が師匠に) ■ コーチがいなくなっても自動化やTDDの(広める) 活動を維持できる ! :-( もちろん、抵抗者ばかり見つかって、候補者を発見できずにがっかりすることも Copyright (c) 2014 Eiwa System Management, Inc. 12 自動化・TDDエバンジェリスト候補
  • 13. まずは ここ見つけて Copyright (c) 2014 Eiwa System Management, Inc. 参考 13 https://speakerdeck.com/kawaguti/fearless-change-falsebu-kifang#17
  • 14. 新しいアイデアを組織に広めるヒントはこれがオススメ Copyright (c) 2014 Eiwa System Management, Inc. 14 エバンジェリスト(1) 小さな成功(2) ステップ・バイ・ステップ(3) 予備調査(4) ふりかえりの時間(5) 協力を求める(6) … メンター(37) …
  • 16. インタビュー(ヒアリング) ■ 人別にテスト自動化に取り組んだ結果の嬉しさ 発見できる。整理できる □ コーチやエバンジェリスト候補は、下記の質問に答えられる状態が望ましい • 「ビジネス側や開発側や品質保証にとって、普段困っていることは何だろうか?」 • 「困り事が解決した結果の嬉しい状態はなんだろうか?」 • 人によって困り事・嬉しい結果が異なる • 「自動化やTDDの導入の不安事は?」(どんなアプローチにも副作用はある) • 「どんな順番で着手すると、嬉しい結果が(早くから) 得られるだろうか?」 ■ 親身になって話を聴くことで、信頼関係づくりのきっか けになる(副次的効果) ! :-( もちろん、各々の見解があまりにバラバラであったり、誤解から過剰な期待を持ってい る、無関心であることがわかり、頭を抱えることも Copyright (c) 2014 Eiwa System Management, Inc. 16
  • 17. 4 インタビューの準備 5 共感のためのインタビュー Copyright (c) 2014 Eiwa System Management, Inc. 参考 17 個人的な接触(20) http://designthinking.or.jp/bootleg.pdf 協力を求める(6)
  • 19. 自動化・TDD導入用のゴール設定 ■ 取り組むべき問題の定義、解くアプローチの概 要を関係者とすり合わせできる □ 「自動化」「TDDをやる」自体はゴールじゃないはず □ 「関係者の現状の困り事や嬉しい状態はなにか?」 ->「期待する結果になるようにA,B,Cを実施する」を整理 □ 大まかな実施項目のスケジュールを作成 ■ 関係者に協力して欲しいことを伝えること ができる ! :-(もちろん、合意できないや協力が得られない結論になる場合も Copyright (c) 2014 Eiwa System Management, Inc. 19
  • 20. Copyright (c) 2014 Eiwa System Management, Inc. 参考 20 インセプションデッキ ! 協力を求める(6) テーラメイド(26) 身近な支援者(35)
  • 22. 自動化・リファクタリング対象の優先順位付け ■ 自動化やTDDの効果が見込めそうなものから順番 に取り組むことができる • バグが頻発しているコンポーネントは? • ビジネスで重要な機能の使い方は? • 手動のEnd to Endテストでは確認の手間がかかり過ぎるのは? • コード・設計が複雑化してメンテナンス性を低下させている箇所は? • etc Copyright (c) 2014 Eiwa System Management, Inc. ! :-(もちろん、当初考えていたよりずっと自動化やリファクタリングする のに時間かかることを知って落胆してしまうことも 22
  • 23. 小さな成功(2) ステップバイステップ(3) Copyright (c) 2014 Eiwa System Management, Inc. 参考 23 テスト自動化戦略 技術的負債 http://blog.codeclimate.com/blog/2013/12/05/refactoring-without-good-tests/
  • 25. ふりかえり ■ 新しい取り組みのうまく行っている点、改善点を 早期に定期的(1週間ごと)に明らかにできる ■ 小さな成功が確認できれば、お祝いするチャンス ■ 経験を踏まえて、次のアクションを明らかにして実 施できる ! :-(もちろん、失敗の連続で落胆してしまうことも Copyright (c) 2014 Eiwa System Management, Inc. 25
  • 26. Copyright (c) 2014 Eiwa System Management, Inc. 参考 ふりかえりの時間(5) 小さな成功(2) 次のアクション(19) 26
  • 28. 学びの記録(YWT+気分) ■ 対象者やコーチが1日を内省し、経験したこと を整理できる ■ 次のアクションが具体化できる ■ 周囲の人からアドバイスがもらえる ■ 読み返すことで、再学習できる ! :-(もちろん、日誌を記録するのが苦手や手間に感じる人も Copyright (c) 2014 Eiwa System Management, Inc. 28
  • 29. Copyright (c) 2014 Eiwa System Management, Inc. 参考 29 ふりかえりの時間(5) 空間を演出する(15) 次のアクション(19) 学びを記録する 学びを共有する
  • 31. 厳選オススメ本棚(+Web記事) ■ 基礎知識をコーチと対象者で揃えることができる ■ エンジニアとしての基礎的な学びの姿勢を身につ けることが出来る (学びの姿勢ができると自動化やTDDのコツをお 伝えしやすくなる) Copyright (c) 2014 Eiwa System Management, Inc. ! ! :-(もちろん、本を読んで学ぶことが好きじゃない人も 31
  • 32. Copyright (c) 2014 Eiwa System Management, Inc. 参考 32 2章 カップを空にする 読書リスト 継続した読書 空間を演出する(15)
  • 34. TDDの練習(社内TDDBootCamp) ■ 練習場であれば安心して失敗できる(失敗から も学ぶことができる) ■ 練習を繰り返すことで、自動化やTDDのスキ ルを身につけることができる Copyright (c) 2014 Eiwa System Management, Inc. ! ! :-(もちろん、本番と練習の場には大きな差異あって、 本番ではどうすればよいか悩むことも 34
  • 35. Copyright (c) 2014 Eiwa System Management, Inc. 参考 35 勉強会(25) コミュニティイベント TDD Boot Camp http://devtesting.jp/tddbc/ 練習、練習、練習
  • 38. ミニ・ライブコーディング ■ ペアで作業よりも広くコーチから対象者に伝承できる □ (周囲の人も見学できる) ■ 設計や(テスト)コードの書き方の良し悪しの判断の 議論が即時できる □ 近くにホワイトボードを ■ 他人のエディタやリファクタリングツールの使い方や テストの書き方を真似て学ぶことが出来る ! :-( もちろん、知識レベルが揃っていて、対象が簡単で一人でも解ける であれば非効率になる Copyright (c) 2014 Eiwa System Management, Inc. 38
  • 39. Copyright (c) 2014 Eiwa System Management, Inc. 参考 39 各種技術 コミュニティイベント のライブコーディング ペアで開発する
  • 40. レガシーコード改善の シナリオの場合 Copyright (c) 2014 Eiwa System Management, Inc. 40
  • 46. エバンジェリスト(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
  • 47. エバンジェリスト(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]: アーTDDリーアダにプタもー(効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) Fearless [Token]:橋渡し役(43) [Bridge-Builder]: 懐疑派代表(44) [Champion Skeptic]:根 回し(45) [Corridor Politics]: Change 怖れは無用(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