SlideShare a Scribd company logo
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
山下 真一郎
市場で勝ち続けるための
品質とテストの技術
2017年2月16日
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
自己紹介
山下 真一郎
iOS版ヤフオク!
開発リーダー
過去の担当サービス
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
課題
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
従来開発の課題①
ビルド時間推移
ビルド時間
2010年 現在
増加
開発効率低下
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
従来開発の課題②
UIテスト
受け入れテスト
単体
テスト
手動テスト
単体テスト
不十分な
増加
リードタイム
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Pivotal Labs
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
新しい開発手法
リーンソフトウェア開発
XP(エクストリームプログラミング)
画像
LEAN XP
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
LEAN XP
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
登場人物
プロダクトマネージャー
• バックログマネジメント
エンジニア
• ペアプログラミング
• テスト駆動開発
プロダクトマネージャー
エンジニア
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアプログラミング
A B
C DE F
タスク1
タスク2タスク3
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアプログラミング
A B
C DE F
タスク1
タスク2タスク3
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアプログラミング
A B
C DE F
タスク1
タスク2タスク3
自分が知らなかった
実装方法
トラブルシューティング
ショートカット
の学習
技術力底上
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアプログラミング
//
// ViewController.swift
// YAuction
//
// Created by 山下 真一郎 on 2017/02/12.
// Copyright © 2017年 山下 真一郎.
// All rights reserved.
//
import UIKit
class ViewController: UIViewController {
}
ソースコードの
共同所有
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアプログラミング
import UIKit
class ViewController: UIViewController {
}
削除
ソースコードの
共同所有
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアプログラミング
// Copyright削除
import UIKit
class ViewController: UIViewController {
}
$ git duet A-san B-san
A-san B-san
ソースコードの
共同所有
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアプログラミング
// Copyright削除
import UIKit
class ViewController: UIViewController {
}
$ git duet A-san B-san
A-san B-san
ソースコードの
共同所有
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
テスト駆動開発
テスト駆動開発
1. 失敗するテストを書く
2. テストを通す
3. リファクタリング
RED
GreenRefactor
ナビゲーター
ドライバーナビゲーター
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
テスト駆動開発
RED
ナビゲーター
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
テスト駆動開発
Green
ドライバー
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
テスト駆動開発
Refactor
ナビゲーター
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
バックログマネジメント
ペルソナ
・
・
・
シナリオ ストーリー
(タスク)
・
・
・
入札
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
シナリオ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ストーリー
詳細
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
詳細
ストーリー
前提条件
もし
かつ
ならば
Gherkin format
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ストーリー
詳細
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
開発の1サイクル
エンジニアPM
開発の1サイクル
1. ストーリーを渡す
2. ジャンケン見積もり
3. 実装
4. 受け入れテスト
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ジャンケン見積もり
数字 意味
0 単体テストに影響のない実装
1 単体テストに影響があり、実装が簡単
2 単体テストに影響があり、実装が面倒
3 実装方針が分からず調査が必要
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
結果
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
結果
受け入れテスト失敗数
激減
受け入れテスト失敗数推移
前回 今回
3%
20%
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
結果
リードタイム
激減
リードタイム
前回 今回
2週
16週
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
総括
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
総括
• より小さくより価値の高いもの順に
• 単体テストの修復は最優先
• 実装は自分以外が確認
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
総括
高品質なソフトウェアを
高速に届けることが
約束できる強力なチーム
• より小さくより価値の高いもの順に
• 単体テストの修復は最優先
• 実装は自分以外が確認
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.

More Related Content

市場で勝ち続けるための品質とテストの技術①

  • 1. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 山下 真一郎 市場で勝ち続けるための 品質とテストの技術 2017年2月16日
  • 2. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 自己紹介 山下 真一郎 iOS版ヤフオク! 開発リーダー 過去の担当サービス
  • 3. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 課題
  • 4. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 従来開発の課題① ビルド時間推移 ビルド時間 2010年 現在 増加 開発効率低下
  • 5. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 従来開発の課題② UIテスト 受け入れテスト 単体 テスト 手動テスト 単体テスト 不十分な 増加 リードタイム
  • 6. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Pivotal Labs
  • 7. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 新しい開発手法 リーンソフトウェア開発 XP(エクストリームプログラミング) 画像 LEAN XP
  • 8. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. LEAN XP
  • 9. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 登場人物 プロダクトマネージャー • バックログマネジメント エンジニア • ペアプログラミング • テスト駆動開発 プロダクトマネージャー エンジニア
  • 10. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアプログラミング A B C DE F タスク1 タスク2タスク3
  • 11. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアプログラミング A B C DE F タスク1 タスク2タスク3
  • 12. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアプログラミング A B C DE F タスク1 タスク2タスク3 自分が知らなかった 実装方法 トラブルシューティング ショートカット の学習 技術力底上
  • 13. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアプログラミング // // ViewController.swift // YAuction // // Created by 山下 真一郎 on 2017/02/12. // Copyright © 2017年 山下 真一郎. // All rights reserved. // import UIKit class ViewController: UIViewController { } ソースコードの 共同所有
  • 14. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアプログラミング import UIKit class ViewController: UIViewController { } 削除 ソースコードの 共同所有
  • 15. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアプログラミング // Copyright削除 import UIKit class ViewController: UIViewController { } $ git duet A-san B-san A-san B-san ソースコードの 共同所有
  • 16. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアプログラミング // Copyright削除 import UIKit class ViewController: UIViewController { } $ git duet A-san B-san A-san B-san ソースコードの 共同所有
  • 17. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. テスト駆動開発 テスト駆動開発 1. 失敗するテストを書く 2. テストを通す 3. リファクタリング RED GreenRefactor ナビゲーター ドライバーナビゲーター
  • 18. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. テスト駆動開発 RED ナビゲーター
  • 19. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. テスト駆動開発 Green ドライバー
  • 20. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. テスト駆動開発 Refactor ナビゲーター
  • 21. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. バックログマネジメント ペルソナ ・ ・ ・ シナリオ ストーリー (タスク) ・ ・ ・ 入札
  • 22. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. シナリオ
  • 23. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ストーリー 詳細
  • 24. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 詳細 ストーリー 前提条件 もし かつ ならば Gherkin format
  • 25. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ストーリー 詳細
  • 26. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 開発の1サイクル エンジニアPM 開発の1サイクル 1. ストーリーを渡す 2. ジャンケン見積もり 3. 実装 4. 受け入れテスト
  • 27. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. ジャンケン見積もり 数字 意味 0 単体テストに影響のない実装 1 単体テストに影響があり、実装が簡単 2 単体テストに影響があり、実装が面倒 3 実装方針が分からず調査が必要
  • 28. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 結果
  • 29. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 結果 受け入れテスト失敗数 激減 受け入れテスト失敗数推移 前回 今回 3% 20%
  • 30. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 結果 リードタイム 激減 リードタイム 前回 今回 2週 16週
  • 31. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 総括
  • 32. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 総括 • より小さくより価値の高いもの順に • 単体テストの修復は最優先 • 実装は自分以外が確認
  • 33. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 総括 高品質なソフトウェアを 高速に届けることが 約束できる強力なチーム • より小さくより価値の高いもの順に • 単体テストの修復は最優先 • 実装は自分以外が確認
  • 34. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.