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

PDF
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
PDF
Presto in Yahoo! JAPAN #yjdsnight
PDF
Prestoクエリログの保存/分析機能の構築 #yjdsnight
PDF
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
PDF
AMPと広告とOpenRTBと #yjmu
PDF
ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4
PDF
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
PDF
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
Presto in Yahoo! JAPAN #yjdsnight
Prestoクエリログの保存/分析機能の構築 #yjdsnight
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
AMPと広告とOpenRTBと #yjmu
ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション①

What's hot (20)

PDF
kukai: 省エネ世界2位のディープラーニング・スパコン
PDF
タブブラウザSDKを作った話 #yjcamp
PDF
ニュースアプリで起きた不具合から学んだ 最適への一歩
PDF
プランニングツールにおけるインタラクティブな可視化を支えるバックエンド
PDF
Yahoo!ブラウザーアプリのプロダクトマネージャーが考えていること
PDF
広告における機械学習の適用例とシステムについて
PDF
Yahoo! JAPANのOSS Cassandra貢献の今までとこれから
PDF
Spring Cloud Data Flow の紹介 #streamctjp
PDF
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
PPTX
セキュリティ教育とUX ~結ばれていた赤い糸~
PDF
データの見える化で進めるデータドリブンカンパニー #devsumiC
PDF
絶対にタダでは転ばない広告エンジニア #yjmu
PDF
YJTC18 A-1 大規模サーバの戦略
PDF
ヤフーにおけるHadoop Operations #tdtech
PDF
Yahoo!ブラウザーにおける市場環境の分析と戦略化
PDF
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
PDF
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
PPTX
大規模インフラで考える インフラチームの未来
PDF
#ibis2017 Description: IBIS2017の企画セッションでの発表資料
PDF
Bonfire API #1 APIのリトライ処理
kukai: 省エネ世界2位のディープラーニング・スパコン
タブブラウザSDKを作った話 #yjcamp
ニュースアプリで起きた不具合から学んだ 最適への一歩
プランニングツールにおけるインタラクティブな可視化を支えるバックエンド
Yahoo!ブラウザーアプリのプロダクトマネージャーが考えていること
広告における機械学習の適用例とシステムについて
Yahoo! JAPANのOSS Cassandra貢献の今までとこれから
Spring Cloud Data Flow の紹介 #streamctjp
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
セキュリティ教育とUX ~結ばれていた赤い糸~
データの見える化で進めるデータドリブンカンパニー #devsumiC
絶対にタダでは転ばない広告エンジニア #yjmu
YJTC18 A-1 大規模サーバの戦略
ヤフーにおけるHadoop Operations #tdtech
Yahoo!ブラウザーにおける市場環境の分析と戦略化
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
大規模インフラで考える インフラチームの未来
#ibis2017 Description: IBIS2017の企画セッションでの発表資料
Bonfire API #1 APIのリトライ処理
Ad

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

PDF
ぼくのかんがえた iOSテスト戦略
PDF
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
PDF
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
PPTX
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
PDF
iOSアプリ開発でもTravis CI #eytokyo
PDF
Agile japan2010 rakuten様プレゼン資料
PDF
エクストリーム・プログラミング開発におけるUIテスト #yjbonfire
PPTX
QuizNow yapcasia
PDF
iOS豆知識ver0.0.5
PDF
ワンクリックデプロイ101 #ocdeploy
PDF
20140920 CreatorsMeetup20
PDF
Conference withdevelopers 第二版
PPTX
AbemaTV モバイルアプリの開発体制と開発プロセスの話
PPTX
iOSアプリの自動テストをはじめよう
PDF
iQONの開発手法 at iQONエンジニアセミナー
PPTX
アプリ開発作業の効率改善
PDF
Spath for enterprise
PDF
Developers.IO / Developer day 2015 ”モバイル アプリ開発現場でよくある課題と対策”
PDF
はこだてIKA 第4回勉強会 単体テスト
PDF
第4回勉強会 単体テストのすすめ
ぼくのかんがえた iOSテスト戦略
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発でもTravis CI #eytokyo
Agile japan2010 rakuten様プレゼン資料
エクストリーム・プログラミング開発におけるUIテスト #yjbonfire
QuizNow yapcasia
iOS豆知識ver0.0.5
ワンクリックデプロイ101 #ocdeploy
20140920 CreatorsMeetup20
Conference withdevelopers 第二版
AbemaTV モバイルアプリの開発体制と開発プロセスの話
iOSアプリの自動テストをはじめよう
iQONの開発手法 at iQONエンジニアセミナー
アプリ開発作業の効率改善
Spath for enterprise
Developers.IO / Developer day 2015 ”モバイル アプリ開発現場でよくある課題と対策”
はこだてIKA 第4回勉強会 単体テスト
第4回勉強会 単体テストのすすめ
Ad

More from Yahoo!デベロッパーネットワーク (20)

PDF
ゼロから始める転移学習
PDF
継続的なモデルモニタリングを実現するKubernetes Operator
PDF
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
PDF
オンプレML基盤on Kubernetes パネルディスカッション
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
PDF
Persistent-memory-native Database High-availability Feature
PDF
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
PDF
eコマースと実店舗の相互利益を目指したデザイン #yjtc
PDF
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
PDF
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
PDF
ビッグデータから人々のムードを捉える #yjtc
PDF
サイエンス領域におけるMLOpsの取り組み #yjtc
PDF
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
PDF
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
PDF
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
PDF
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PDF
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
PDF
「新しいおうち探し」のためのAIアシスト検索 #yjtc
PDF
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ゼロから始める転移学習
継続的なモデルモニタリングを実現するKubernetes Operator
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Persistent-memory-native Database High-availability Feature
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
eコマースと実店舗の相互利益を目指したデザイン #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
ビッグデータから人々のムードを捉える #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc

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

  • 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.