開発とテストが一体となったソフトウェア開発

469 views

Published on

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

No Downloads
Views
Total views
469
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

開発とテストが一体となったソフトウェア開発

  1. 1. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 2017年8月30日 ヤフー株式会社 山口 鉄平 開発とテストが一体となった ソフトウェア開発
  2. 2. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. お持ち帰りいただきたいこと • 様々な形での協働のイメージ • 組織・プロセスの変化例 写真:アフロ
  3. 3. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 今日の話 • 前提とする状況 • プログラマとテストエンジニアが同じチームにいる開発 • 世の中/ヤフー内での事例 • 現状に至る組織・プロセスの変化 • まとめ 前提とする 状況 協働開発 現状に 至る過程 まとめ
  4. 4. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 自己紹介 山口 鉄平 (ヤフー株式会社) • ソフトウェア開発技術の普及、開発改善の推進 • ソフトウェア開発技術の技術開発 • 組込みのソフトウェア開発および開発改善を経て、WEBへ • ソフトウェア開発に関係する様々なイベントの企画、運営や発 表など社外活動も実施中
  5. 5. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. セッションの進め方 前提とする 状況 協働開発 現状に 至る過程 まとめ
  6. 6. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved.Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 前提とする状況
  7. 7. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 背景 • サービス開発は不確実が高くかつ 正解が不明 • どのようなサービスが現れるか予想しにくい • お客様に響くサービスの正解がない
  8. 8. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 背景 • お客様への提供コストが低い • WEBサービスやアプリはインフラとしては 無償で提供できる環境すら存在する • 提供を楽にするツールが充実している
  9. 9. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 背景 • 不具合の深刻度が低い • 不具合により発生する損失が少ない • 不具合の改修コストが低い
  10. 10. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. サービス開発で目指すもの サービス開発の基本方針 • 早くリリースしフィードバックを得て 改善する 1. 不具合の少ないサービス・アプリの開発 2. サービス・アプリの素早い提供
  11. 11. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. ヤフーの開発
  12. 12. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. プロダクト
  13. 13. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 開発に関わる人は約2000名 13 チームA カンパニー チームC カンパニー ビジネス・プログラマ・ デザイナ・テストなど 支援部門
  14. 14. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. プロセス • 基本的には短期の開発 • アジャイル開発とフェーズ型の開発半々くらい • プロセスの多くはチームや組織に委ねられる • 全社的に標準プロセスは規定しているが絶対ではない • セキュリティやブランドなどに関しては規定があり チーム側でチェックする
  15. 15. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. セッションの進め方 前提とする 状況 協働開発 現状に 至る過程 まとめ
  16. 16. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved.Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. プログラマとテストエンジニアが 同じチームにいる開発
  17. 17. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 世の中の場合
  18. 18. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 参考となる書籍 Janet Gregory, Lisa Crispin. 実践アジャイルテスト. 2009. 翔泳社. Janet Gregory, Lisa Crispin. Agile Testing. 2008. Addison-Wesley Professional.
  19. 19. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. アジャイルテスティング • Whole Team Approach • 質はビジネス、開発、テストなどチーム全体の責任で あり、全員が関わる • テストエンジニアはプロジェクト初期から関わり続ける • テストエンジニアはテスティングや自動化だけではなく、 完成の定義や要求の明確化に向けた質問をする
  20. 20. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 例えば… 「どうなったら それ完成ですか?」 「昨日渡したテストをパスできたら 次にこれやってもらえませんか?」 「この場合どう 動くのですか?」 「次の反復でやり方 変えませんか?」 「このリリース受け入れ基準で提供 したいこと満たせますよね?」
  21. 21. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. ヤフーの場合
  22. 22. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 書籍とは異なる形での協働 パターン2 「テストエンジニア がテスト設計」 パターン3 「手動テストはパートナー」 パターン4 「リリース前テストは テストエンジニア」 自動テストケース 作成・実施 皆で手動テスト ケース作成・実施 テスト設計 自動テストケース 作成・実施 手動テストケース 作成・実施 変更点に基づく テストケース作成・実施 変更点を含む サービス全体のテスト設計、 テストケース作成・実施 パターン1 「テストエンジニア不在」 皆でテストケース 作成・実施 シニアプログラマ 中心にテスト設計 テスト設計/ テスト管理
  23. 23. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. パターン1:テストエンジニア不在 • 効果 • 手戻りの削減 • プログラマによる開発物の 使い勝手の理解が高い ここ ここ 皆でテストケース 作成・実施 シニアプログラマ 中心にテスト設計
  24. 24. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. パターン1:テストエンジニアが不在 • リスク • 開発物への全体的な視点が 失われがち • テストの質が、プログラマの テストスキルに依存する 皆でテストケース 作成・実施 シニアプログラマ 中心にテスト設計 ここ ここ
  25. 25. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. パターン2:テストエンジニアがテスト設計 • 効果 • 手戻りの削減 • プログラマの開発物への オーナーシップ増加 自動テストケース 作成・実施 皆で手動テスト ケース作成・実施 テスト設計 ここ ここ
  26. 26. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. パターン2:テストエンジニアがテスト設計 • リスク • テストの質が、テストエンジニア のテストスキルに依存する • テストエンジニアが不在時に テスト設計が止まる 自動テストケース 作成・実施 皆で手動テスト ケース作成・実施 テスト設計 ここ ここ
  27. 27. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. パターン3:手動テストはパートナー • 効果 • 実施できるテストの増加 • チームの状況に合わせたテスト 業務委託の実現 自動テストケース 作成・実施 手動テストケース 作成・実施 テスト設計/ テスト管理 ここ ここ
  28. 28. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. パターン3:手動テストはパートナー • リスク • テストエンジニアへの負荷が高い • プログラマの開発物への理解が 小さくなる 自動テストケース 作成・実施 手動テストケース 作成・実施 テスト設計/ テスト管理 ここ ここ
  29. 29. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. パターン4:リリース前テストはテストエンジニア • 効果 • フェーズ開発との大きなギャップ がなく、素早いリリースごとの テスト実現 変更点に基づく テストケース 作成・実施 サービス全体の テスト設計、 テストケース作成・実施 ここ ここ
  30. 30. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. パターン4:リリース前テストはテストエンジニア • リスク • リリース前でサービス全体の 不具合が発覚し手戻る可能性高変更点に基づく テストケース 作成・実施 サービス全体の テスト設計、 テストケース作成・実施 ここ ここ
  31. 31. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. セッションの進め方 前提とする 状況 協働開発 現状に 至る過程 まとめ
  32. 32. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved.Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 現状に至る組織・プロセスの変化
  33. 33. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 変化前の状態 • 組織・プロセス ビジネス部門 開発部門 QA部門 発注 リリース 承認依頼 開発物 リリース許可 ビジネス部門 開発部門 リリース 依頼 リリース
  34. 34. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 変化前の課題① • 業務目標の不一致 • 情報の速度と精度が低い ビジネス部門 開発部門 QA部門 発注 リリース 承認依頼 開発物 リリース許可 ビジネス部門 開発部門 リリース 依頼 リリース
  35. 35. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 変化前の課題② • サービス責任者がリリースしたい時にリリース できない ビジネス部門 開発部門 QA部門 発注 リリース 承認依頼 開発物 リリース許可 ビジネス部門 開発部門 リリース 依頼 リリース
  36. 36. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. サービス単位に 組織を再編 変化の流れ 2012/4 2014/10 QAのリリース承認必須 サービスへのリリース権限委譲 開発組織 テストメンバの 開発チーム参加開始 経営陣刷新 開発支援組織への 品質向上組織の統合 品質向上組織 の整備 プロセス 支援組織 承認プロセス削減 2011年度以前 2013/4
  37. 37. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 変化の過程
  38. 38. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. サービス単位に 組織を再編 変化のきっかけ 2012/4 2014/10 QAのリリース承認必須 サービスへのリリース権限委譲 開発組織 テストメンバの 開発チーム参加開始 経営陣刷新 開発支援組織への 品質向上組織の統合 品質向上組織 の整備 プロセス 支援組織 承認プロセス削減 2011年度以前 2013/4
  39. 39. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. サービス単位に 組織を再編 変化の流れ 2012/4 2014/10 QAのリリース承認必須 サービスへのリリース権限委譲 開発組織 テストメンバの 開発チーム参加開始 経営陣刷新 開発支援組織への 品質向上組織の統合 品質向上組織 の整備 プロセス 支援組織 承認プロセス削減 2011年度以前 2013/4
  40. 40. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 組織/承認プロセスの変更 • なぜ? • 「状況把握→意思決定→実行のスピードを爆発的に 速める」という経営陣の意思 • サービス責任者の判断でリリースできない課題への 課題感の増加
  41. 41. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 組織/承認プロセスの変更 • アクション • サービス単位に組織を再編 • プロジェクトを小さく保つ • 承認プロセス削減
  42. 42. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. • 縦割り組織から、サービスを基本とした 小チーム制へ組織を再編 ビジネス部門 開発部門 サービス単位に組織を再編/プロジェクトを小さく保つ チームA チームC サービスα
  43. 43. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 承認プロセス削減 • 承認プロセス数: 8→2※サービスへのリリース権限委譲
  44. 44. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 組織/承認プロセスの変更 • 結果 • リリース速度の向上 • 不具合への意識改善 • 開発メンバーのモチベーション向上
  45. 45. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. サービス単位に 組織を再編 変化の流れ 2012/4 2014/10 QAのリリース承認必須 サービスへのリリース権限委譲 開発組織 テストメンバの 開発チーム参加開始 経営陣刷新 開発支援組織への 品質向上組織の統合 品質向上組織 の整備 プロセス 支援組織 承認プロセス削減 2011年度以前 2013/4
  46. 46. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. テストメンバの開発チーム参加開始/品質向上組織の整備 • なぜ? • サービス内でのテストの意識向上 • 品質に関係するチームがいくつもあり、それぞれの 存在意義がわからない状態になっていた
  47. 47. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. テストメンバの開発チーム参加開始/品質向上組織の整備 • アクション • サービスへのテストエンジニアの異動 • 品質向上支援のあるべき姿の議論実施 • サービスの品質向上のためのあらゆる支援を行う
  48. 48. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. テストメンバの開発チーム参加開始/品質向上組織の整備 • 結果 • サービスでのテストスキル向上 • サービス開発組織が専門家の知見を活用しやすい • 支援組織にとしてニーズ変化への対応力向上
  49. 49. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. サービス単位に 組織を再編 変化の流れ 2012/4 2014/10 QAのリリース承認必須 サービスへのリリース権限委譲 開発組織 テストメンバの 開発チーム参加開始 経営陣刷新 開発支援組織への 品質向上組織の統合 品質向上組織 の整備 プロセス 支援組織 承認プロセス削減 2011年度以前 2013/4
  50. 50. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 開発支援組織への品質向上組織の統合 • なぜ? • より良い開発に向けては、テスト工程だけ改善して も全体は良くならない • 計画の改善やテスト自動化は分断された支援組織 の中では難しい • サービス内でのテストスキルが自律的には向上しな かった
  51. 51. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 開発支援組織への品質向上組織の統合 • アクション • 支援組織の統合とチームの再構成 • 肩代わりによる作業支援からサービスのスキル向上 による自律実施支援へ変更
  52. 52. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 開発支援組織への品質向上組織の統合 • 結果 • 計画やテスト自動化の改善および実施者増加 • サービスのテストスキル向上
  53. 53. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. サービス単位に 組織を再編 変化の流れ 2012/4 2014/10 QAのリリース承認必須 サービスへのリリース権限委譲 開発組織 テストメンバの 開発チーム参加開始 経営陣刷新 開発支援組織への 品質向上組織の統合 品質向上組織 の整備 プロセス 支援組織 承認プロセス削減 2011年度以前 2013/4
  54. 54. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 変化の中での失敗 • 「質」の定義が曖昧になってしまった • 起きたこと: • サービス内で不具合やサービス間での不均一さが 増えてきた • 改善策: • 領域や観点からなる表を公開し、サービス内で 「質」に対する基本概念の醸成をおこなっている
  55. 55. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 現状の課題 • テストエンジニアの育成 • テストスキルの強化 • 支援部門の課題抽出および解決技術強化
  56. 56. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. セッションの進め方 前提とする 状況 協働開発 現状に 至る過程 まとめ
  57. 57. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved.Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. まとめ
  58. 58. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved. 開発とテストが一体となったソフトウェア開発 • 不具合の少ないサービス・アプリを素早く提供 するために、ゲートとしてのテストはもはや現 実的ではない。 • 開発とテストの協働の形は、サービスや組織の 大きさ、所属する人のスキル、過去の経緯など により様々な形がとり得る。
  59. 59. Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved.Copyright© 2017 Yahoo Japan Corporation. All Rights Reserved.

×
Save this presentationTap To Close