agile japan2010 rakuten様プレゼン資料

32
-1- Rakuten Development Department 楽天株式会社 開発生産性強化グループ 田澤久 20104月吉日

Upload: akiko-kosaka

Post on 28-May-2015

2.794 views

Category:

Business


4 download

TRANSCRIPT

Page 1: Agile japan2010 rakuten様プレゼン資料

- 1 -

Rakuten

Development Department

楽天株式会社 開発生産性強化グループ 田澤久 2010年4月吉日

Page 2: Agile japan2010 rakuten様プレゼン資料

- 2 -

自己紹介: 田澤 久(たざわ ひさし)

楽天入社: 2007年09月 (業界歴:18年目)

楽天株式会社>開発部>開発環境整備課>

開発生産性強化グループ

開発環境プロデュースグループ

IPA: ITアーキテクト委員会

非ウォーターフォール型開発研究会

twitter: (へさし)

Page 3: Agile japan2010 rakuten様プレゼン資料

- 3 -

はじめに・・・

現在の、楽天株式会社:開発部の実態、課題、想い、将来に向けて始めた取り組みの紹介などを、本日のトークにぶつけてみたいと思っています。

ゆえに、皆さんにとって有益な情報になるのか・・・

分かりませんが、ご了承ください。

Page 4: Agile japan2010 rakuten様プレゼン資料

- 4 -

Introduction

Page 5: Agile japan2010 rakuten様プレゼン資料

- 5 -

楽天のご紹介

Page 6: Agile japan2010 rakuten様プレゼン資料

- 6 -

開発部の規模感

約30事業のサービス開発・運用

内製による開発・運用

社員数:約900名

派遣数:約500名

約200の開発プロジェクトが同時進行中

Page 7: Agile japan2010 rakuten様プレゼン資料

- 7 -

毎日がお祭り騒ぎ (^_^;

Page 8: Agile japan2010 rakuten様プレゼン資料

- 8 -

ビジネス要求

事業部・営業・企画

活動のメインは

こっち

APP-ENG SYS-ENG

24時間365日運用

システム要求

機能改善、増強要請、提案など

プロデューサ

プロデューサ

調整

デザイナー

設計・開発

APP-ENG SYS-ENG

プロジェクト化

リリースやり残し

軽微バグの改修

リファクトリング

改善など

Page 9: Agile japan2010 rakuten様プレゼン資料

- 9 -

※マインドに関わる大事な補注

出来上がったサービス(システム)は、誰のもの?

【通常(?)】

発注した(費用を出した)事業側・お客様のもの。

【当社の場合】

開発した開発部のものでもある。

イメージとしては半々。(特に決まりは無い)

Page 10: Agile japan2010 rakuten様プレゼン資料

- 10 -

Issues

Page 11: Agile japan2010 rakuten様プレゼン資料

- 11 -

工数・期間 分布

0

1

2

3

4

5

6

7

0 5 10 15 20 25 30 35 40 45 50

工数(人月)

期間(月)

工数(人月)

期間(月)

期間=√(工数)

の標準線

Page 12: Agile japan2010 rakuten様プレゼン資料

- 12 -

工数・期間 分布

0

1

2

3

4

5

6

7

0 5 10 15 20 25 30 35 40 45 50

工数(人月)

期間(月)

期間(月)

規模の割にリリースが遅いものが、約半数

Page 13: Agile japan2010 rakuten様プレゼン資料

- 13 -

What happened ?

スピード開発を重視してきたつもりだったのに、そう言えない現状になってきている。

Page 14: Agile japan2010 rakuten様プレゼン資料

- 14 -

組織も多くなり、手続きが増えてきている

仕様を考えるのは、開発主導なのに

途中で生まれたアイデアが反映出来ない

Page 15: Agile japan2010 rakuten様プレゼン資料

- 15 -

~現場の意見~

●仕様がPRJ初期に決まれば世話ない

●一気に設計、一気にテスト・・・どわ~っとやるから、管理が面倒くさい

●テストが後なので、デグレが心配

●スケジュールが間に合わなくて、機能が

おちる。あとは運用でカバー

Page 16: Agile japan2010 rakuten様プレゼン資料

- 16 -

要するに・・・

Step by step で開発が出来て

開発リズムが安定していて

いつでもテストが出来て

小さな追加開発が速やかに出来て

運用の実態が、すぐに反映出来る

そんな開発がしたい!!

Page 17: Agile japan2010 rakuten様プレゼン資料

- 17 -

苦しんでいる時に重なるもので・・・

社長がつぶやく・・・

Page 18: Agile japan2010 rakuten様プレゼン資料

- 18 -

Challenges

Speed!! Speed!! Speed!!

Page 19: Agile japan2010 rakuten様プレゼン資料

- 19 -

アジャイル開発

やってみようか !?

Page 20: Agile japan2010 rakuten様プレゼン資料

- 20 -

アジャイル開発といっても、やり方は色々。

以下をやってみよう、という事で進める。

安心・安全な開発 = テスト駆動開発+CI

効率的な開発 = CI

目で見る管理 = Redmine

テスト に注目する開発方法を指向する。

※TDD

Page 21: Agile japan2010 rakuten様プレゼン資料

- 21 -

まずは「テスト」をちょっと整理

その前に・・

Page 22: Agile japan2010 rakuten様プレゼン資料

- 22 -

* 実践アジャイルテストより

できれば自動化

自動化 ツール

手動

開発支援

プロダクト評価

ビジネス面

テクノロジー面

ユニットテスト

ユーザビリティテスト

ABテスト

QAテスト

結合テスト

ストーリーテスト

ここに注目

Page 23: Agile japan2010 rakuten様プレゼン資料

- 23 -

テストをプログラム化したい

なぜ、テストに注目するのか。

なぜ、テストをプログラム化したいのか。

理由 = 私たちは作ってお終いでは無い

運用は、ほぼ永遠に続く

毎回テストで苦労するのは嫌

Page 24: Agile japan2010 rakuten様プレゼン資料

- 24 -

CIサーバ

機能

追加

自動テストOK

機能

修正

自動テストOK 自動テストNG

間違った修正

問題なし 問題なし問題発生

ログ出力

アラートメール送信

ソースコード管理サーバ

!問題検知!手動

自動

コミット

自動ゾーン

レポートも自動で

作成される

ユニットテストの仕組み = SVN + Hudson

Page 25: Agile japan2010 rakuten様プレゼン資料

- 25 -

CIサーバにより

機械的に繰り返し品質確認できる

テストコードにより

常に動作するアプリケーションが保障される

ソース管理システムにより

これらがバージョニングされる

Page 26: Agile japan2010 rakuten様プレゼン資料

- 26 -

開発コスト

動作確認レベルのテスト実施

単体テストの作成と実施

60%

40%

■・・・開発コスト

■・・・テストコスト

開発コスト

時間リリース / 運用

■・・・開発コスト

■・・・テストコスト

TDD後の運用を見てみると・・・

開発

半年の開発で開発6:テスト4の割合になった

毎回の再テストコストが削減できる

実際にやってみると・・・

Page 27: Agile japan2010 rakuten様プレゼン資料

- 27 -

ケース

品質面 コスト リスク面

アプリの

品質

初期開発時のコスト

運用後の

開発コスト

引継ぎのし易さ(人の入れ換え)

デグレード防止

バグによるトラブル防止

事業へのリスク防止

従来型開発 × even high ××××テスト駆動型開発○ even low ○○○○

結果 = Feeling good !!

Page 28: Agile japan2010 rakuten様プレゼン資料

- 28 -

結合テストの仕組み= VirtualBox + Selenium

詳細は、時間の都合で割愛。。。

なぜに、VirtualBox?

システム日付、DBデータの操作性

なぜに、Selenium

FireFoxのプラグインで画面操作を記録すると自働で再現してくれる

繰り返し作業を自働実行するため!!

Page 29: Agile japan2010 rakuten様プレゼン資料

- 29 -

開発メンバーの実感

大変だった。でも、やって良かった。

いつでも全ての動作確認が出来るのは安心、しかも数分で。

良いものを、良い方法で作っている実感がある。

初期工数を多く使ったので、繰り返し使って借金を返すぞ!

Page 30: Agile japan2010 rakuten様プレゼン資料

- 30 -

なぜ早く取り組まなかったのか・・・

やり方を替える事への不安。

最初に仕様をきっちり決めれば、良い開発が出来ると思っていた。

何よりサービスリリースを優先して来た。

色々理由はあるけど、これから変わっていきます。安心して楽しく開発したい!

Page 31: Agile japan2010 rakuten様プレゼン資料

- 31 -

まだ始めたばかり。

大きな課題がある。どう立ち向かうか?

巨大な楽天市場

1,000人を超える開発人員

加速する国際化

Page 32: Agile japan2010 rakuten様プレゼン資料

- 32 -

to be continued..