#JaSST⿅鹿鹿児島	  アジャイル・Ruby・クラウド（ARC）を活⽤用したビジネスにおけるテストの実践〜～ソニックガーデンの事例例〜～	  倉 貫 義 ⼈人 	  http://kuranuki.sonicgarden.jp 	

@kuranuki	本日のテーマ「テストの理想を現場視点で実現する」	

アジャイル・Ruby・クラウド（ARC）を活⽤用したビジネスにおけるテストの実践	  はじめに：自己紹介	

http://www.sonicgarden.jp/

自己紹介	
倉貫	  義⼈人 　Yoshihito	  Kuranuki	  昭和49年年⽣生まれ 　38歳 　京都府出⾝身	  株式会社ソニックガーデン	  代表取締役社⻑⾧長	  Twitter:	  @kuranuki	  ブログ：	  Social	  Change!	  	   	   	  http://kuranuki.sonicgarden.jp	  「⼼心はプログラマ、仕事は経営者」	  http://www.sonicgarden.jp/

日経BP社さんにはお世話になってます	

⽇日 経 ビ ジ ネ ス	  ⽇日 経 S Y S T E M S	  ⽇日経コンピュータ	  http://www.sonicgarden.jp/

テレビ東京系列「ワールドビジネスサテライト」に出演！	

「エンジニアのための	   　リーンスタートアップ⼊入⾨門」連載	  http://www.sonicgarden.jp/これまでのキャリア	
2011年年MBOによる株式会社ソニックガーデン設⽴立立	  2009年年TIS社内ベンチャーとしてSonicGarden⽴立立ち上げ	  2008年年SKIPオープンソース化	  2005年年Rubyで社内SNS：SKIP開発	  2004年年ADC2004受賞 　 　 　書籍執筆 　＆ 　⽇日本XPユーザグループ代表就任	  2003年年TISにて基盤技術センター⽴立立ち上げ	  1999年年⽴立立命館⼤大学院卒業 　＆ 　TIS（旧：東洋情報システム）⼊入社	  http://www.sonicgarden.jp/

「IT投資に対するソフトウェアの価値を最⼤大化すること」	  「習慣を変えることのできるソフトウェアをつくること」	  に取り組んでいるソフトウェア企業が	  SonicGarden	  です。	  

アジャイルRuby

クラウド【事業内容】	  1. オリジナルのソフトウェアの提供	  2. ウェブアプリケーションの受託開発	  くわしくは	  http://www.sonicgarden.jp/

アジャイルソフトウェア開発宣⾔言	  私たちは、ソフトウェア開発の実践あるいは実践を⼿手助けをする活動を通じて、よりよい開発⽅方法を⾒見見つけだそうとしている。この活動を通して、私たちは以下の価値に⾄至った。	  

プロセスやツールよりも	  個⼈人と対話を、	  契約交渉よりも	  顧客との協調を、	  包括的なドキュメントよりも	  動くソフトウェアを、	  計画に従うことよりも	  変化への対応を、	  価値とする。すなわち、左記のことがらに価値があることを	  認めながらも、私たちは右記のことがらにより価値をおく。	  
http://www.sonicgarden.jp/

DRY
Don’t Repeat Yourself.	

保守性	 
高い生産性を維持継続	 仮想化	
Infrastructure / Platform as a Service

スモールスタート	  ＆	  スケールアウト	  ソニックガーデンで開発しているソフトウェアの特徴	 完成して販売ではなく、継続的にサービス提供	   ⾃自動的にバージョンアップがずっと続いていく	   不不具合が無いからといって、儲かる訳ではない	  http://www.sonicgarden.jp/

ソニックガーデンでは、⾃自社企画も受託開発も、	  「ソフトウェアそのもの」を売るのではなく、	  「ソフトウェアが使えること」を売っています	  アジャイル・Ruby・クラウド（ARC）を活⽤用したビジネスにおけるテストの実践	  開発プロセスとテスト	

http://www.sonicgarden.jp/

役割分担	
ビジネスオーナーの役割	   ソフトウェアで解決したい問題の設定
 ゴールおよびビジョンの設定

ビジネスオーナー（お客様）	

 企画・マーケティング・プロモーション

プロダクトオーナーの役割	   ソフトウェアの機能およびUI/UXの設計

プロダクトオーナー（お客様or 弊社）	

プログラ
マチーム
（弊社）	

 何を作れば正解か（＝仕様）の決定

 決定権の混乱を防ぐため1名と限定しますプログラマチームの役割	   プロダクトオーナーの設計の⽀支援
 プログラミングとクラウドでの運⽤用
 メインとサポートの2名体制で対応します

ファシリ
テーター
（弊社）	

ファシリテーターの役割	   プロジェクト進⾏行行のサポート

 契約内容に関するご相談（営業担当）
http://www.sonicgarden.jp/

ツールとプロセス	
プロダクトオーナー①ユーザストーリーを登録	
③普段の対話	エンドユーザ	⑦いつでも確認	⑨利用	

⑤週１の会議	⑧リリース	

④ソース共有	②見積もり後に作業開始	

⑥継続デプロイ	

プログラマ
記載の社名・製品名・ロゴは各社の商標または登録商標です。

http://www.sonicgarden.jp/

ソニックガーデンにおけるテスト	
•Capybara•Cucumber	•RSpec•TDD/BDD	

プログラマ	  プロダクトオーナー	  フィーチャー	  ロジック	  チケット	  •PO受入テスト•ユーザビリティ・UX

オペレーション	  •パフォーマンス監視•セキュリティチェック	

マーケティング	  •A/Bテスト•コホート分析	

ビジネス	   •MVP（Minimum viable Product）•価値仮説と成長仮説	

http://www.sonicgarden.jp/

RSpecのサンプルコード	

http://www.sonicgarden.jp/

RSpecからの自動生成	

通常の出⼒力力結果	  （⾊色付きテキスト）	  仕様書として出⼒力力	  （HTML）	  http://www.sonicgarden.jp/

Capybaraのサンプルソース	

http://www.sonicgarden.jp/

アジャイル・Ruby・クラウド（ARC）を活⽤用したビジネスにおけるテストの実践	  

品質に対するパラダイムシフト	

http://www.sonicgarden.jp/

「完成すること」から「持続すること」へ 　	  「完成指向」から「持続可能」へのパラダイムシフト	 バグをなるべく出さないようにする	  	  	  	  → 　バグが出てもすぐに直せるようにする	   サーバは落落ちないようにする	  	  	  	  → 　落落ちてもすぐに復復旧できるようにする	   データ変更更ないように設計する	  	  	  	  → 　データ変更更しても対応できるようにする	   ビジネスのプランを重視する	  	  	  	  → 　ユーザのフィードバックで製品を変える	  http://www.sonicgarden.jp/

「バグが出てもすぐに直せるようにする」ためには？	
継続的リリース	  コードの共同所有	  リファクタリング	  テストコード	  コードレビュー	  ペアオペレーション	  フレームワークの統⼀一	  プラットフォームの統⼀一	  http://www.sonicgarden.jp/

ソニックガーデンの考える「品質」とは？	
 「誰が顧客なのかがわからなければ、何が品質なのかもわからない。」（リーンスタートアップより）	   そのテストの⽬目的はなにか？何を売っているのか？	  

プログラムの正しさ	  仕様の正しさ	  ビジネスの正しさ	  http://www.sonicgarden.jp/

「Point of Sales」から「Point of Use」へ	
Point of Sales	

Point of Use	

買った時点が最⾼高で、そこから陳腐化が始まるもの	  常に使っている時点で最⾼高、最新のものを利利⽤用できる	  q	

q	買った時点が最⾼高品質	  

利利⽤用中が最⾼高品質	  （常にアップグレード）	  利利⽤用	  すぐに利利⽤用開始	  償却	  構築	  製造業	  t	サービス業	  t	http://www.sonicgarden.jp/

「Point of Use」で大事なこと	

DevOps	  継続性	  
保守性	  

運⽤用中⼼心プロセス	  http://www.sonicgarden.jp/

サービス型の受託開発を支える技術	

ARC	  「DRY（Don‘t Repeat Yourself）」	
「CoC（Convention over Configuration）」	
http://www.sonicgarden.jp/

アジャイル・Ruby・クラウド（ARC）を活⽤用したビジネスにおけるテストの実践	  さいごに：ビジネスモデルを変える	

http://www.sonicgarden.jp/

ソフトウェアビジネスの分類	
開発受託を⾏行行いますが、⼈人⽉月による⾒見見積の納品型の受託は⾏行行いません。
SonicGardenのビジネスモデルは、	  	  納品しない受託開発（サービス型の受託開発）です。	  
特定顧客向け

不特定多数

ソリューション型

プロデュース型

利利⽤用	  クラウドベンダー

クラウドサービス
特殊	  

汎⽤用	  

オンプレミス

製造納品
大手システムインテグレータ

所有	  

パッケージ
ベンダーhttp://www.sonicgarden.jp/

ディフェンシブな開発	  アジャイルは悪くないが、ビジネスモデルが問題	  予め決まった⾦金金額と要件の中で納品と検収を⽬目指す	  利利益を出すにはリスクを取らずに「守り」に⼊入る	  システムで価値を産むこと 　＜ 　要件通りに作ること
http://www.sonicgarden.jp/	  ディフェンシブな開発がもたらす問題	
 SIビジネスの本質は保険屋	   お⾦金金さえ出せば⾚赤字だろうと最後まで責任を持ってくれる	   リスクの丸抱えをするだけの企業体⼒力力のみが優位性になる	   技術者からみたSIビジネス	   「⼈人⽉月による⾒見見積もり」と「成果物の完成責任」の捻捻れ？	  
 プログラマの⽣生産性が上がれば上がるほど売上が下がる？	  
http://www.sonicgarden.jp/

「ディフェンシブな開発」から脱却を	 IT投資のコストパフォーマンスの悪さ	   １）ベンダの⾒見見積りにおける過重なバッファ	   ２）開発と運⽤用で別の業者を利利⽤用していること	   ３）最⼤大時を想定したハードウェアを購⼊入していること	  「⼀一括での発注・請負」が原因	   　＞＞ 　仮説「納品しない」	  http://www.sonicgarden.jp/

ソフトウェアパートナーシップモデル	
「オーダーメイドの受託」と	  「納品しないこと」と「派遣しないこと」の両⽴立立	  •「定額モデル」で⾦金金額を⾒見見積もりから分離離する	  •⽉月額定額の中で出来る範囲の開発と運⽤用をする	  •顧問弁護⼠士や税理理⼠士のような顧問ビジネスに近い	  •内製部隊としてライフサイクルすべてを受け持つ	  •クラウドを活⽤用してエンジニアの派遣はしない	  ⽬目指す姿は、リスクを理理解したお客様と、プログラマが直接対話し、お客様のためにオーダーメイドで、価値を産むソフトウェアを提供するスタイル	   http://www.sonicgarden.jp/

サービス型の受託開発とは	クラウドで使えるソフトウェアの	  開発および運⽤用を	  ⽉月額定額で	  チームを固定して提供	  メリット③	  いつでも要求を変更更することができます。	  

メリット①	  いつでも動くサービス
で仕様確認ができます。	  

メリット②	  いつでも作り⼿手と直接に対話できます。	  

メリット④	  いつでも顧客の⽴立立場にたった提案をします。	  
http://www.sonicgarden.jp/

本日のテーマ「テストの理想を現場視点で実現する」「テストの目的をビジネス視点で考える」	

さいごに：ソニックガーデンのミッションとビジョン	

Embrace	  Change	  変化を受け⼊入れ変わっていくこと	  Fearless	  Change	  変化を恐れず⾃自ら変えていくこと	  Social	  Change	  ⾃自らの変化を周囲に広げていくこと	  http://www.sonicgarden.jp/

ありがとうございました	

続きはブログで…	  http://kuranuki.sonicgarden.jp

kuranuki@sonicgarden.jp
http://www.sonicgarden.jp/