テスト普及者1年目としての試行錯誤の話

1,615 views

Published on

DevLOVE「隣り合わせのアジャイルとテストと青春」
https://devlove.doorkeeper.jp/events/53997

社内でのテスト普及者1年目として、実際に社内のテスト普及のために行ってきたこと・方法(行ったこと・失敗談など)についてお話したいと思います。これから何か新しい技術的なことをチームに広めたいという方の参考にしていただければと思っています。

Published in: Engineering
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,615
On SlideShare
0
From Embeds
0
Number of Embeds
1,400
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

テスト普及者1年目としての試行錯誤の話

  1. 1. 1 ヤフー株式会社 システム統括本部 森 高 テスト普及者1年目としての 試行錯誤の話 2016年11月30日
  2. 2. 2 自己紹介 • 森 高 (もり たかし) • 2009年新卒入社 • 経歴 • データ編集・開発 • 品質管理系の業務を経て、 • 現在は、テスト自動化の 支援業務を行っています。 • 趣味 • 食べること 本 人 画 像
  3. 3. このセッションの概要 テスト自動化の普及を 始めてから1年間、 右も左もわからないまま 支援業務を行ってきました。 あたりまえですが、 全てがうまく行ったわけでは ありません。
  4. 4. 4 このセッションの概要 私の試行錯誤の話をし、 何か新しいことを広めるにあたり、 ・どのように行って ・どのような結果だったか をお伝えしたいと思っています。 これから新しく技術的なことを チームに広めたいという方の 普及方法の参考にして いただければと思っています。
  5. 5. 1年間でテスト普及のために 行った作戦と結果 5 画像:アフロ
  6. 6. 私が、この1年で至った 現時点での結論 画像:アフロ
  7. 7. 普及するためには… 「急がばまわれ」 画像:アフロ
  8. 8. 普及対象 • 社内の開発チーム(開発者約30名) に対して、ユニットテストが書けるように していくミッション 画像:アフロ
  9. 9. 普及作戦1 「セミナー作戦」 9 画像:アフロ
  10. 10. 10 普及作戦1「セミナー作戦」 • 作戦の概要 • 一気に早く・広く広めたい • 一度に多くのメンバーに伝えられる 「進行1名×受講者30名のセミナー 形式」がいいと考えました。 • 作戦の詳細 • 様々なスキルレベルの人の存在する 問題はどうしよう? • 全員ができるようになるため、 初心者レベルに合わせ、 基本的なことをサンプルコードを 使って伝えました。 画像:アフロ
  11. 11. 11 普及作戦1「セミナー作戦」 - 結果 • 良かったこと • 基本的な知識の流し込みだけには 良いアプローチ。 • 終了後のやりきった感は大きいです。 (ビールはうまい) • 反省点 • 「へぇー」で終わってしまいました。 • 簡単なサンプルコードは可能ですが、 複雑なプロダクションコードに テストコードを書いてもらうことが 難しかったです。 (実践に結びつかない) • 毎回同じ30名を集めて行うことは 難しかったので、継続的学習は無理。 画像:アフロ
  12. 12. 普及作戦2 「ワークショップ作戦」 12 画像:アフロ
  13. 13. 13 普及作戦2「ワークショップ作戦」 • 作戦の概要 • 作戦1「セミナー作戦」の反省から、 代表者を8~10名くらいに参加して もらい、「進行1名×受講者8~10名 のワークショップ形式」で行いました。 • 作成の詳細 • 実践経験をどう積んでもらうか? • サンプルコードだけでなく、 プロダクションコードに対しても テストコードを書くようにしました。 • 継続的に参加してもらうためには? • 普及をサポートする人を 開発チームに立ててもらいました。 画像:アフロ
  14. 14. 14 普及作戦2「ワークショップ作戦」 - 結果 • 良かった点 • セミナー形式よりはいろいろな事が できます。 • 実践的なプロダクションコード • 質問対応 • 反省点 • サポート役の人がいたものの、 それでも参加者全員のスケジュール を同時に抑えるのは 4回くらいが限界でした。 • 実際のプロダクションコードに対して テストコードを書いてもらった時に、 個人のスキル差が出てしまい、 吸収率や興味・関心に差が 出始めてしまいました。 画像:アフロ
  15. 15. 普及作戦3 「ペアプロ作戦」 15 画像:アフロ
  16. 16. 16 普及作戦3「ペアプロ作戦」 • 作戦の概要 • 普及作戦2「ワークショップ作戦」の 反省点を踏まえて、 もうペアプロしかないと思い実行。 • 作戦の詳細 • 約5名以下のチームに対して実施。 • コードを書く1人に対して1人がついて 一緒にコードを書いていきました。 • 予め毎週時間を決めて実施。 • 「テストやりたいです!」という 前向きな人がいたので、 その人を中心に自律→普及を してもらう形にしました。 画像:アフロ
  17. 17. 17 普及作戦3「ペアプロ作戦」 - 結果 • 良かった点 • 1人1人のスキルに合わせた対応が できました。 • 毎回のペアプロで新しいテストコード が追加されることで、テスト自動化が 回り始め、周りの人達が意識し始める ことができました。 • 前向きな人がチームを先導してくれ、 積極的に周りの人に声をかけて くれました。 • 結果 • 品質に意識のある 「新しい技術に前向きな人」に 伝播し始めました。 画像:アフロ
  18. 18. 作戦3「ペアプロ作戦」により 普及が軌道に乗りました! 18
  19. 19. しかし、1ヶ月後ちょっと変化が… 19
  20. 20. 20 普及作戦3「ペアプロ作戦」 - 1ヶ月経過 • 反省点 • 作戦3「ペアプロ作戦」が 軌道に乗り始めて1ヶ月くらい 経ったころ・・・ • ペアプロが単調になってきたのか、 「これ、いつまでやるといいのかな?」 という、お互いの空気感(マンネリ感) が漂ってきました。 画像:アフロ
  21. 21. 普及作戦4 「目標振り返り作戦」 21 画像:アフロ
  22. 22. 22 普及作戦4「目標の振り返り作戦」 • 作戦概要 • ちょうど1ヶ月なので、 振り返りをしました。 • 作戦詳細 • 話し合ったことは、以下の3つ。 • (K)お互いの成長点を褒め合う • (P)各個人の課題を洗い出して もらう • (T)次回以降の目標を作成して もらう
  23. 23. 23 普及作戦4「目標の振り返り作戦」 - 結果 • 良かった点 • 毎月の目標ができたので、 次のアクションが明確になりました。 • ペアプロの時だけでは話せない、 ・「不安点」 ・「まだ理解が十分でない点」 とかが、意外とポロポロ出てきました。 なので、習熟度に合わせた 予定の切り替えができました。 • 本人が気づいていない成長に、 気づいてもらうことができました。 • 開発状況に応じたスケジュールの 調整もできました。 画像:アフロ
  24. 24. その他の作戦 24
  25. 25. 普及作戦α 「ツール作戦」 画像:アフロ
  26. 26. 26 普及作戦α「ツール作戦」 • サービスのコードの特性に応じた テストツールの導入 • 外部依存している箇所が staticメソッドになっていて、 モックにしづらい箇所がありました。 • そこで、「AspectMock」を導入 • モックが簡単に作成できることは とても心地よく、テストの作成時間も 抑えられました。 画像:アフロ
  27. 27. 普及作戦β 「お菓子作戦」 画像:アフロ
  28. 28. 28 普及作戦β「お菓子作戦」 • ペアプロを行うときは、雰囲気も大事 • そこで、「お菓子」を導入 • 「お菓子」を食べて機嫌を悪くする人 はあまりいないです。 • ちょっとした時間の間を埋める 役割 • 頭のリフレッシュの役割 • 休憩中の会話のキッカケづくりの 役割 画像:アフロ
  29. 29. くわしくは、こちら 29
  30. 30. まとめ
  31. 31. まとめ △:1度に大勢に良さを伝える ◯:少人数に繰り返し良さを伝える
  32. 32. 普及するためには… 「急がばまわれ」 画像:アフロ
  33. 33. 画像:アフロ

×