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