172

Click here to load reader

アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

Embed Size (px)

DESCRIPTION

【13-E-2】アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

Citation preview

Page 1: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

アート・オブ・

アジャイルデベロップメント~テストが駆動するビジネス価値~

木下 史彦(株)永和システムマネジメント

[email protected]

目黒雅叙園; 2009-02-13(金)

つなぐ、つながる、そして未来へDevelopers Summit 2009

【13-E-2】

Page 2: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

私たちはあなたがアジャイル開発の「道」を極める手助けをしたい。

We want to help you master the art of agile development.

Page 3: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

自己紹介✓木下史彦✓(株)永和システムマネジメント✓オブジェクト倶楽部✓日本XPユーザグループスタッフ✓http://fkino.net

Page 4: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 5: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

好評発売中

Page 6: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 7: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

デブサミ会場内にて

先行発売

Page 8: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

サイン会をやってます2/12 12:20~12:502/12 16:15~16:352/13 12:20~12:50@オブジェクト倶楽部ブース

Page 9: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

私事ですが

Page 10: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

Birthday

Page 11: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

「木下さん」で検索してください。

Page 12: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

謝辞✓岩切晃子さん✓和田卓人さん✓角谷信太郎さん✓平鍋健児さん✓日本のアジャイルコミュニティのみなさん✓永和システムマネジメントのみなさん

Page 13: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 14: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

2009年2月13日

Page 15: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

デブサミ2日目

Page 16: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 17: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

DevelopmentStyle(Test)

Page 18: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

テストにまつわる話

Page 19: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

デブサミといえば

Page 20: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

翔泳社

Page 21: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

2007年4月

Page 22: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 23: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 24: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ツール✓テスト✓JUnit✓jMock✓jWebTest

✓自動化✓Maven2✓Continuum

Page 25: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

テストの戦略

Page 26: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

継続的インテグレーション

Page 27: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 28: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

本日のお品書き✓アジャイル デベロップメント✓アート・オブ・アジャイル テスティング✓テストが駆動するビジネス価値✓組織を成功に導くエクストリームプログラミングの道

Page 29: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

アジャイルデベロップメント

Page 30: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

開発がアジャイルであるということは、協調性を重んじる環境で、フィードバックに基づいた調整を行い続けることである。

出典:『アジャイルプラクティス』

Page 31: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

Copyright (c) 2009 Eiwa System Management, Inc.

イテレーション (1週間) の流れ要求

リリース可能なソフトウェア Ship It!

次のイテレーションへ

内部リリース

ふりかえりKPTベロシティ

バックログ

タスクプログラミング

機能バグデータ移行ドキュメント環境構築性能ジョーカー 受入テストを

書く 受入テストをする

完了基準

TDDCI

仕様の確認見積りスパイク

ふりかえりやバックログの優先度付けなどはお客さまにご協力いただきながら進めていきます。

Page 32: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

イテレーションの流れストーリー

開発する

顧客テスト

イテレーションデモ

ふりかえり

完了基準

Page 33: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

アート・オブ・アジャイルテスティング

Page 34: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

テストの分類✓Developer Testing✓Customer Testing✓QA Testing

http://www.slideshare.net/t_wada/devsumi-2008-developer-testing

Page 35: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

DeveloperTesting

Page 36: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

イテレーションの流れストーリー

開発する

顧客テスト

イテレーションデモ

ふりかえり

完了基準

Page 37: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

テスト駆動開発Test-Driven Development

Page 38: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 39: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

TDDの目標動作するきれいなコード

Ron Jeffries

Page 40: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

TDDのサイクルきれい

汚い

(すぐには)動かない 動作する

Green

Refactoring

Red

Page 41: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

TDDのサイクル

出典:『The Art of Agile Development』

Page 42: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

TDDのサイクル

出典:『アート・オブ・アジャイル デベロップメント』

Page 43: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

TDDのサイクル

出典:『アート・オブ・アジャイル デベロップメント』

インクリメント

Page 44: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

インクリメント考える

レッドバー

グリーンバー

リファクタリング

Page 45: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

インクリメント考える

レッドバー

グリーンバー

リファクタリング

Page 46: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

何を

Page 47: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

考える✓コードでやりたい動作が何であるかを想像する✓5行以下のコードで済む小さなインクリメントを考え出す✓テストを考え出す

Page 48: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

設計行為

Page 49: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

誰が

Page 50: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

主にナビゲータ

Page 51: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ペアプログラミング

Page 52: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

主にナビゲータ

Page 53: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ピンポンペアリング考える

レッドバー

グリーンバー

リファクタリング

ペア交代

Page 54: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

事例: テスト駆動開発✓1ヶ月✓7人✓Ruby✓Test::Unit✓Mocha

Page 55: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

プロダクトコード10Kステップ

Page 56: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

プロダクトコード10Kステップ

テストコード20Kステップ

Page 57: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

カバレッジ97%

Page 58: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

Developer Testingの分類✓ユニットテスト✓インテグレーションテスト✓エンドツーエンドテスト

Page 59: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ユニットテスト✓外部とのやり取りがない✓「シンプルな設計」が不可欠✓スピード重要

Page 60: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

テスティングツール✓JUnit✓RSpec✓Google Test

Page 61: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

10分ビルド

Page 62: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ユニットテストは高速に実行できる。もし高速に実行できないなら、それはユニットテストではない。̶̶ Michael C. Feathers

Page 63: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

インテグレーションテスト✓外部とのやり取りをする✓データベース✓ネットワーク✓ファイルシステム✓プロセス境界

Page 64: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

エンドツーエンドテスト✓ユニットテストとインテグレーションテストが完全にかみ合っていることを確認する✓実行に時間がかかる✓準備と後始末に手間がかかる✓このテスト自体が技術的負債になる

Page 65: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

小さく速く回す

Page 66: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

テストの分類✓Developer Testing✓Customer Testing✓QA Testing

http://www.slideshare.net/t_wada/devsumi-2008-developer-testing

Page 67: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

CustomerTesting

Page 68: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

イテレーションの流れストーリー

開発する

顧客テスト

イテレーションデモ

ふりかえり

完了基準

Page 69: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

顧客テスト説明

サンプル

開発する

テストする

自動化

完了基準

Page 70: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

コミュニケーションのためのもの

Page 71: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

テスティングツール✓Fit✓Selenium✓Cucumber

Page 72: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

10顧客に決断してもらう

『アジャイルプラクティス』より

Page 73: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 74: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

Executable User Stories R Spec Bdd

http://www.slideshare.net/deimos/aslak-hellesoy-executable-user-stories-r-spec-bdd

Page 75: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

✓ユビキタス言語✓「完了」に対する共通の認識

Page 76: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

顧客との関係を変える

Page 77: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

テストの分類✓Developer Testing✓Customer Testing✓QA Testing

http://www.slideshare.net/t_wada/devsumi-2008-developer-testing

Page 78: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

QATesting

Page 79: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

存在しない

Page 80: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

XPチームには独立したQA部門というものはない

Page 81: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

XPチームの目標はそもそもバグを書かないことだ

Page 82: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

✓バグなし✓探索的テスト

Page 83: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

バグなしNo Bugs

Page 84: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

バグを書かないこと

Page 85: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ほぼバグゼロを実現する方法✓バグをほとんど書かない✓バグの繁殖場所を撲滅する✓バグをすぐに修正する✓プロセスをテストする✓プロセスを修正する

Page 86: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ほぼバグゼロを実現する方法✓バグをほとんど書かない✓バグの繁殖場所を撲滅する✓バグをすぐに修正する✓プロセスをテストする✓プロセスを修正する

ほぼすべてのXPプラクティス

Page 87: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ほぼバグゼロを実現する方法✓バグをほとんど書かない✓バグの繁殖場所を撲滅する✓バグをすぐに修正する✓プロセスをテストする✓プロセスを修正する

ほぼすべてのXPプラクティス

リファクタリング

Page 88: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ほぼバグゼロを実現する方法✓バグをほとんど書かない✓バグの繁殖場所を撲滅する✓バグをすぐに修正する✓プロセスをテストする✓プロセスを修正する

ほぼすべてのXPプラクティス

リファクタリング

割れ窓

Page 89: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ほぼバグゼロを実現する方法✓バグをほとんど書かない✓バグの繁殖場所を撲滅する✓バグをすぐに修正する✓プロセスをテストする✓プロセスを修正する

ほぼすべてのXPプラクティス

リファクタリング

割れ窓

探索的テスト

Page 90: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

使用上の注意✓XPのあらゆる仕組みと裏付けを拠り所にしている。✓結果を出すためには、ほぼすべてのXPプラクティスを実践する必要がある。

Page 91: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

‣ 考えること✓ ペアプログラミング✓ 活き活きとした仕事✓ 情報満載の仕事場✓ 根本原因分析✓ ふりかえり‣ 協力すること✓ 信頼✓ 全員同席✓ 真の顧客の参加✓ ユビキタス言語✓ スタンドアップミーティング✓ コーディング標準✓ イテレーションデモ✓ 報告‣ リリースすること✓ 「完全Done」✓ バグなし✓ バージョン管理✓ 10分ビルド✓ 継続的インテグレーション✓ コードの共同所有

✓ ドキュメント‣ 計画すること✓ ビジョン✓ リリース計画✓ 計画ゲーム✓ リスク管理✓ イテレーション計画✓ ゆとり✓ ストーリー✓ 見積り‣ 開発すること✓ インクリメンタルな要件✓ 顧客テスト✓ テスト駆動開発✓ リファクタリング✓ シンプルな設計✓ インクリメンタルな設計とアーキテクチャ

✓ スパイクソリューション✓ パフォーマンスの最適化✓ 探索的テスト

Page 92: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

‣ 考えること✓ ペアプログラミング✓ 活き活きとした仕事✓ 情報満載の仕事場✓ 根本原因分析✓ ふりかえり‣ 協力すること✓ 信頼✓ 全員同席✓ 真の顧客の参加✓ ユビキタス言語✓ スタンドアップミーティング✓ コーディング標準✓ イテレーションデモ✓ 報告‣ リリースすること✓ 「完全Done」✓ バグなし✓ バージョン管理✓ 10分ビルド✓ 継続的インテグレーション✓ コードの共同所有

✓ ドキュメント‣ 計画すること✓ ビジョン✓ リリース計画✓ 計画ゲーム✓ リスク管理✓ イテレーション計画✓ ゆとり✓ ストーリー✓ 見積り‣ 開発すること✓ インクリメンタルな要件✓ 顧客テスト✓ テスト駆動開発✓ リファクタリング✓ シンプルな設計✓ インクリメンタルな設計とアーキテクチャ

✓ スパイクソリューション✓ パフォーマンスの最適化✓ 探索的テスト

Page 93: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

探索的テスト

Page 94: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

探索的テストテストの設計

テストの実行

結果の解釈

Page 95: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

探索的テスト✓自動テストを補完する✓品質保証ではない✓チームの品質保証に対するやり方に関するフィードバック✓ソフトウェア✓チームのプロセス

Page 96: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

事例: ペアテスト✓ペアでテストを行う✓手動テスト✓タイムボックス (2時間)✓たとえばデモの前の時間を使う✓バグが見つかれば修正して、自動テストに組み込む

Page 97: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

前半のまとめ

Page 98: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

アジャイル開発におけるテスト✓小さく速く回す✓いつでも (技術的には) リリースできる状態にしておく✓顧客との関係を変える✓プロセスを改善していく

Page 99: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

石橋を叩いて渡る

Page 100: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

テストが駆動するビジネス価値

Page 101: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 102: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

組織を成功に導くエクストリームプログラミング

Page 103: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

テスト

Page 104: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ビジネス価値

テスト

Page 105: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

組織的な成功

ビジネス価値

テスト

Page 106: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

開発 ビジネス価値

ビジネス要件

Page 107: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

開発 ビジネス価値

ビジネス要件

開発 ビジネス価値

ビジネス要件

Page 108: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

開発 ビジネス価値

ビジネス要件

Page 109: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

Copyright (c) 2009 Eiwa System Management, Inc.

イテレーティブかつインクリメンタルな開発

1週間 = 1イテレーション

可視性状況が見えない

イテレーション毎に動くものべースで確認できる

変更容易性初期に要件を確定しなければならない

変更は最後のイテレーションがはじまるまで可能

技術リクス低減最後まで動いているものを確認することができない

動くものをベースに徐々に機能を追加していく

ビジネス価値最後の最後までリリースできない

早期にリリース可能な動くソフトウェアが入手できる

アジャイル開発

従来型の開発

打ち合わせ&

リリース

時間

ユーザと開発者の距離

Page 110: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

バスタブモデル

Page 111: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

Copyright (c) 2009 Eiwa System Management, Inc.

イテレーティブかつインクリメンタルな開発

1週間 = 1イテレーション

可視性状況が見えない

イテレーション毎に動くものべースで確認できる

変更容易性初期に要件を確定しなければならない

変更は最後のイテレーションがはじまるまで可能

技術リクス低減最後まで動いているものを確認することができない

動くものをベースに徐々に機能を追加していく

ビジネス価値最後の最後までリリースできない

早期にリリース可能な動くソフトウェアが入手できる

アジャイル開発

従来型の開発

打ち合わせ&

リリース

時間

ユーザと開発者の距離

Page 112: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

いいことずくめ

Page 113: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

アジャイル開発

時間

ユーザと開発者の距離

打ち合わせ&

リリース

Page 114: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型

時間

ユーザと開発者の距離

打ち合わせ デモ リリース

要件定義 設計・実装 テスト

Page 115: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型 ̶̶リスク

時間

ユーザと開発者の距離

打ち合わせ デモ リリース

要件定義 設計・実装 テスト

Page 116: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型 ̶̶技術的負債

時間

ユーザと開発者の距離

打ち合わせ デモ リリース

要件定義 設計・実装 テスト

Page 117: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型→アジャイル

時間

ユーザと開発者の距離

打ち合わせ デモ リリース

要件定義 設計・実装 テスト

✓テスト駆動開発✓インクリメンタルな設計とアーキテクチャ

Page 118: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型→アジャイル

時間

ユーザと開発者の距離

打ち合わせ デモ リリース

要件定義 設計・実装 テスト

✓テスト駆動開発✓インクリメンタルな設計とアーキテクチャ

Page 119: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型→アジャイル

時間

ユーザと開発者の距離

打ち合わせ デモ リリース

要件定義 設計・実装 テスト

✓顧客テスト✓バグなし✓探索的テスト

Page 120: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型→アジャイル

時間

ユーザと開発者の距離

打ち合わせ デモ リリース

要件定義 設計・実装

✓顧客テスト✓バグなし✓探索的テスト

Page 121: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型→アジャイル

時間

ユーザと開発者の距離

打ち合わせ デモ リリース

要件定義 設計・実装

✓顧客テスト✓バグなし✓探索的テスト

Page 122: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型→アジャイル

時間

ユーザと開発者の距離

打ち合わせ リリース

要件定義

✓顧客テスト✓バグなし✓探索的テスト

Page 123: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型→アジャイル

時間

ユーザと開発者の距離

打ち合わせ リリース

要件定義

✓ビジョン✓インクリメンタルな要件

Page 124: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型→アジャイル

時間

ユーザと開発者の距離

リリース

要件定義

✓ビジョン✓インクリメンタルな要件

打ち合わせ&

リリース

Page 125: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

従来型→アジャイル

時間

ユーザと開発者の距離

リリース

✓ビジョン✓インクリメンタルな要件

打ち合わせ&

リリース

Page 126: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

アジャイル開発

時間

ユーザと開発者の距離

打ち合わせ&

リリース

Page 127: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

FAQ

Page 128: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

既存のコードにテストがなかったら……

Page 129: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

レガシーコードテストのないコード

怖くて変更できないコード James Shore

Michael C. Feathers

Page 130: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 131: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

案件数

コンサル32%

既存開発27%

新規開発41%

2008年8月以降にお引き合いをいただいた案件

Page 132: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

レガシー/既存開発テストコードあり

17%

レガシー83%

2008年8月以降にお引き合いをいただいた案件

Page 133: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

エンドツーエンドスモークテスト

Page 134: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

エンドツーエンドスモークテスト

✓大きな間違いをしたときに警告してくれる✓「接合部」を見つけて、ユニットテストを導入する

Page 135: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

テスティングツール✓Fit✓Selenium✓Cucumber

Page 136: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 137: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

心強い

Page 138: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

シームレスに移行する

Page 139: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 140: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

組織を成功に導くエクストリームプログラミング

の道

Page 141: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

導入の障壁

✓組織的障壁✓心理的障壁✓技術的障壁

Page 142: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

組織的障壁✓上司や同僚が認めてくれない✓うちの開発は特殊だから✓ぼくらの組織では使えない✓契約がry)

Page 143: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 144: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

✓提案・営業から開発までエンドツーエンドでやる✓腹をくくった✓よい習慣を広める✓みんなが助けてくれる

Page 145: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

✓契約はあまり気にしていない✓目の前の困っている人を助けたい

Page 146: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

心理的障壁✓進捗がおちる✓納期に間に合わなくなるのではないか

Page 147: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

3対2

Page 148: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

3対2プログラマと顧客の比率

Page 149: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

✓こまめにデモして状況を共有する✓技術的負債を溜めないことの方が重要✓不安なことがあればメールしてほしい

Page 150: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

技術的障壁✓習得が難しい✓1~2ヶ月は生産性が落ちる

Page 151: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

アジャイルの衰退と凋落

Page 152: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

アジャイルは難しい。2日間の座学で身につくようなもんじゃない。

Page 153: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

✓素振り重要✓歯を食いしばってやる✓親身になって教える✓みんな好きでやってる

Page 154: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

原則✓プロセスを改善する✓人を信頼する✓ムダを排除する✓価値を届ける✓技術的卓越を追求する

Page 155: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

原則✓プロセスを改善する✓人を信頼する✓ムダを排除する✓価値を届ける✓技術的卓越を追求する

Page 156: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

自己鍛錬Self Discipline

Page 157: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

まとめ

Page 158: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 159: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

Of all agile methods I know, XP is the most complete.

Page 160: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

私が知っているアジャイル手法のうち、XPが最も調和とバランスがとれている。

Page 161: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

原則✓プロセスを改善する✓人を信頼する✓ムダを排除する✓価値を届ける✓技術的卓越を追求する

Page 162: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

‣ 考えること✓ ペアプログラミング✓ 活き活きとした仕事✓ 情報満載の仕事場✓ 根本原因分析✓ ふりかえり‣ 協力すること✓ 信頼✓ 全員同席✓ 真の顧客の参加✓ ユビキタス言語✓ スタンドアップミーティング✓ コーディング標準✓ イテレーションデモ✓ 報告‣ リリースすること✓ 「完全Done」✓ バグなし✓ バージョン管理✓ 10分ビルド✓ 継続的インテグレーション✓ コードの共同所有

✓ ドキュメント‣ 計画すること✓ ビジョン✓ リリース計画✓ 計画ゲーム✓ リスク管理✓ イテレーション計画✓ ゆとり✓ ストーリー✓ 見積り‣ 開発すること✓ インクリメンタルな要件✓ 顧客テスト✓ テスト駆動開発✓ リファクタリング✓ シンプルな設計✓ インクリメンタルな設計とアーキテクチャ

✓ スパイクソリューション✓ パフォーマンスの最適化✓ 探索的テスト

プラクティス

Page 163: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Page 164: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

プログラマはもちろん、テスター、プロジェクトマネージャ、……(省略)……、顧客などアジャイルに関心のあるすべての人におくる一冊である。

出典:『アート・オブ・アジャイル デベロップメント』裏表紙

Page 165: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

XP (アジャイル) を開発者のだけのものにしておくのは、もう終わりにしたい

Page 166: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

はじめは「アジャイルごっこ」だった。

Page 167: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

でも

Page 168: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

今は違う

Page 169: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

自分たちのやっていることが、確実にビジネスにつながっているという実感

Page 170: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

私たちはあなたがアジャイル開発の「道」を極める手助けをしたい。

We want to help you master the art of agile development.

Page 171: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

ご清聴ありがとうございました

Page 172: アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜

アンケートへのご協力をお願いします。

【13-E-2】