Upload
eiji-ienaga
View
585
Download
1
Embed Size (px)
Citation preview
Copyright (c) 2014 Eiwa System Management, Inc.
!
テスト自動化やTDDを チームに広めていくコツをお伝えします
1
株式会社永和システムマネジメント 2014年 9月3日 家永英治
Copyright (c) 2014 Eiwa System Management, Inc.
自己紹介■ 家永英治 □ 永和システムマネジメント □ アジャイルコーチ(Scrumの導入のお手伝い) □ 時々、受託開発 !
■ 近年は、Scrum導入に関連して、テストの自動化やTDDのコツを個人やチームに伝える広めるお仕事も
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]:協力を求める(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にも効く
Copyright (c) 2014 Eiwa System Management, Inc.
TDDのおさらい
6
スキップ
Copyright (c) 2014 Eiwa System Management, Inc.
TDD のリズム
7
red green
refactor設計
実装
ユニット テスト
テスト
timetime
Red Green Refactor のサイクルは 小さくリズムよく(例えば1ヶ月)
…
スキップ
Copyright (c) 2014 Eiwa System Management, Inc.
自動化・TDDの期待される効果
8
(例えば3年)
技術的負債の議論はこちらがオススメ
スキップ
Copyright (c) 2014 Eiwa System Management, Inc.
テスト自動化や TDD導入の際に私(コーチ)が が行っている活動
9
Copyright (c) 2014 Eiwa System Management, Inc.
制限時間で お伝えできるかぎりを!
10
自動化・TDDエバンジェリスト候補(の発見)注)イメージ図です
Copyright (c) 2014 Eiwa System Management, Inc.
■ コーチは最初に誰へ技能を伝承すべきかを明らかに出来る(師匠と弟子の関係)
□ 導入の初期に伝えるべき人は、抵抗者ではなく、仲間になってくれそうな人
□ 自分で課題を自覚でき、解決案の選択が出来る人であればGOOD
□ 謙虚に学びができる人であれば、なおGOOD
□ 周りに良い影響を与えることが出来る人であればなおGOOD
■ 対象の候補者が技能を習得できれば、周囲に広めることができる(弟子が師匠に)
■ コーチがいなくなっても自動化やTDDの(広める)活動を維持できる
!:-( もちろん、抵抗者ばかり見つかって、候補者を発見できずにがっかりすることも
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) …
インタビュー(ヒアリング)注)イメージ図です
Copyright (c) 2014 Eiwa System Management, Inc.
インタビュー(ヒアリング)■ 人別にテスト自動化に取り組んだ結果の嬉しさ発見できる。整理できる
□ コーチやエバンジェリスト候補は、下記の質問に答えられる状態が望ましい
• 「ビジネス側や開発側や品質保証にとって、普段困っていることは何だろうか?」
• 「困り事が解決した結果の嬉しい状態はなんだろうか?」
• 人によって困り事・嬉しい結果が異なる
• 「自動化やTDDの導入の不安事は?」(どんなアプローチにも副作用はある)
• 「どんな順番で着手すると、嬉しい結果が(早くから)得られるだろうか?」
■ 親身になって話を聴くことで、信頼関係づくりのきっかけになる(副次的効果) !
:-( もちろん、各々の見解があまりにバラバラであったり、誤解から過剰な期待を持っている、無関心であることがわかり、頭を抱えることも
16
Copyright (c) 2014 Eiwa System Management, Inc.
参考
17
個人的な接触(20)
http://designthinking.or.jp/bootleg.pdf
4 インタビューの準備5 共感のためのインタビュー
協力を求める(6)
自動化・TDD導入用のゴール設定注)イメージ図です
Copyright (c) 2014 Eiwa System Management, Inc.
自動化・TDD導入用のゴール設定■ 取り組むべき問題の定義、解くアプローチの概要を関係者とすり合わせできる
□ 「自動化」「TDDをやる」自体はゴールじゃないはず
□ 「関係者の現状の困り事や嬉しい状態はなにか?」->「期待する結果になるようにA,B,Cを実施する」を整理
□ 大まかな実施項目のスケジュールを作成
■関係者に協力して欲しいことを伝えることができる !
:-(もちろん、合意できないや協力が得られない結論になる場合も
19
Copyright (c) 2014 Eiwa System Management, Inc.
参考
20
インセプションデッキ
!
協力を求める(6) テーラメイド(26) 身近な支援者(35)
自動化・リファクタリング対象の優先順位付け注)イメージ図です
Copyright (c) 2014 Eiwa System Management, Inc.
自動化・リファクタリング対象の優先順位付け■ 自動化やTDDの効果が見込めそうなものから順番に取り組むことができる • バグが頻発しているコンポーネントは? • ビジネスで重要な機能の使い方は? • 手動のEnd to Endテストでは確認の手間がかかり過ぎるのは? • コード・設計が複雑化してメンテナンス性を低下させている箇所は? • etc
!
:-(もちろん、当初考えていたよりずっと自動化やリファクタリングするのに時間かかることを知って落胆してしまうことも
22
Copyright (c) 2014 Eiwa System Management, Inc.
参考
23
テスト自動化戦略
技術的負債
http://blog.codeclimate.com/blog/2013/12/05/refactoring-without-good-tests/
小さな成功(2) ステップバイステップ(3)
ふりかえり
注)イメージ図です
Copyright (c) 2014 Eiwa System Management, Inc.
ふりかえり■ 新しい取り組みのうまく行っている点、改善点を早期に定期的(1週間ごと)に明らかにできる
■ 小さな成功が確認できれば、お祝いするチャンス ■ 経験を踏まえて、次のアクションを明らかにして実施できる !
:-(もちろん、失敗の連続で落胆してしまうことも
25
Copyright (c) 2014 Eiwa System Management, Inc.
参考
26
ふりかえりの時間(5) 小さな成功(2) 次のアクション(19)
学びの記録(YWT+気分)
注)イメージ図です
Copyright (c) 2014 Eiwa System Management, Inc.
学びの記録(YWT+気分)■ 対象者やコーチが1日を内省し、経験したことを整理できる
■ 次のアクションが具体化できる ■ 周囲の人からアドバイスがもらえる ■ 読み返すことで、再学習できる
!
:-(もちろん、日誌を記録するのが苦手や手間に感じる人も
28
Copyright (c) 2014 Eiwa System Management, Inc.
参考
29
ふりかえりの時間(5) 空間を演出する(15) 次のアクション(19)
学びを記録する 学びを共有する
厳選オススメ本棚(+Web記事)注)イメージ図です
Copyright (c) 2014 Eiwa System Management, Inc.
厳選オススメ本棚(+Web記事)■ 基礎知識をコーチと対象者で揃えることができる ■ エンジニアとしての基礎的な学びの姿勢を身につけることが出来る(学びの姿勢ができると自動化やTDDのコツをお伝えしやすくなる) !
!
:-(もちろん、本を読んで学ぶことが好きじゃない人も
31
Copyright (c) 2014 Eiwa System Management, Inc.
参考
32
2章 カップを空にする 読書リスト 継続した読書
空間を演出する(15)
TDDの練習(社内TDDBootCamp)注)イメージ図です
Copyright (c) 2014 Eiwa System Management, Inc.
TDDの練習(社内TDDBootCamp)■ 練習場であれば安心して失敗できる(失敗からも学ぶことができる)
■ 練習を繰り返すことで、自動化やTDDのスキルを身につけることができる !
!
:-(もちろん、本番と練習の場には大きな差異あって、本番ではどうすればよいか悩むことも
34
Copyright (c) 2014 Eiwa System Management, Inc.
参考
35
勉強会(25)
コミュニティイベント TDD Boot Camphttp://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]: アーリーアダプター(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