A 2a:アジャイルなオフショア開発

70
1 2015416GMOインターネット株式会社 次世代システム研究室 藤村 / 片山 貴博 アジャイルなオフショア開発 Agile Japan 2015

Transcript of A 2a:アジャイルなオフショア開発

Page 1: A 2a:アジャイルなオフショア開発

1

2015年4月16日

GMOインターネット株式会社

次世代システム研究室

藤村 新 / 片山 貴博

アジャイルなオフショア開発

Agile Japan 2015

Page 2: A 2a:アジャイルなオフショア開発

藤村 新 ふじむら あらた

アジャイルPM研究会所属

片山 貴博 かたやま たかひろ

GMOベトナムラボセンター 経営メンバー

Page 3: A 2a:アジャイルなオフショア開発

3

• オフショア開発の経緯

• RFCモデルとは

• RFCの理想

• RFCの現実

• まとめ

アジェンダ

Page 4: A 2a:アジャイルなオフショア開発

4

オフショア開発の経緯

Page 5: A 2a:アジャイルなオフショア開発

http://cloud.watch.impress.co.jp/docs/release/20130326_593209.html

2013年3月11日 「GMOベトナムラボセンター」設立

Page 6: A 2a:アジャイルなオフショア開発

6

ミッション

• GMOインターネットグループの技術力のさらなる向上

• ベトナムの優秀な人財(IT技術者)の確保と育成

• インターネットの最先端技術の検証や研究

Page 7: A 2a:アジャイルなオフショア開発

7

ミッション

• GMOインターネットグループの技術力のさらなる向上

• ベトナムの優秀な人財(IT技術者)の確保と育成

• インターネットの最先端技術の検証や研究

優秀な ベトナム人が 欲しい!

Page 8: A 2a:アジャイルなオフショア開発

8

採用基準

• 日本語能力試験でN3以上 • 来日可能 • 1年間国内研修を実施

• 人柄が良い • 技術力がある • 20代半ばくらいの若手

Page 9: A 2a:アジャイルなオフショア開発

9

採用基準

• 日本語能力試験でN3以上 • 来日可能 • 1年間国内研修を実施

• 人柄が良い • 技術力がある • 20代半ばくらいの若手

日本語話せる良い人!

Page 10: A 2a:アジャイルなオフショア開発
Page 11: A 2a:アジャイルなオフショア開発

11

国内研修の実情

• 基本は2名ずつ実施 • 現在3期目(2名受入中) • 帰国した4名中1名退職

• 日本語能力は向上 • (なんちゃって)OJT • (たまに)研修実施

Page 12: A 2a:アジャイルなオフショア開発

12

国内研修の実情

• 基本は2名ずつ実施 • 現在3期目(2名受入中) • 帰国した4名中1名退職

• 日本語能力は向上 • (なんちゃって)OJT • (たまに)研修実施

ちゃんと できてない…

Page 13: A 2a:アジャイルなオフショア開発
Page 14: A 2a:アジャイルなオフショア開発

14

ラボセンター といっても、実際は オフショア開発が 主な事業内容。

Page 15: A 2a:アジャイルなオフショア開発

15

とりあえずやってみた (2013年~2014年)

Page 16: A 2a:アジャイルなオフショア開発

16

当時の状況

• 体制 • 受入担当:1名(日本人) • 開発チーム:5名(ベトナム人) • 内3名はハノイ勤務 • 内2名は東京勤務(研修中)

• 開発対象 • 主に社内ツール(KPIツール)

Page 17: A 2a:アジャイルなオフショア開発

受入担当 リーダー

仕様策定・ 発注・受入

リソース・ タスク管理

ベトナム(ハノイ)

GMOベトナムラボセンター 体制図

国内

Page 18: A 2a:アジャイルなオフショア開発

18

問題 多発

Page 19: A 2a:アジャイルなオフショア開発

19

主な問題点

• 一度のやり取りで期待通りのアウトプットが出てこない

• 見積もりの精度が低く、完了予定が見えない

• 95%完了から先が長い • 品質が低い

Page 20: A 2a:アジャイルなオフショア開発

20

発生した問題に対し 試行錯誤を重ねて

導き出した

コンセプト

Page 21: A 2a:アジャイルなオフショア開発

頑張っても 効果が薄い事を 諦める

Page 22: A 2a:アジャイルなオフショア開発

一度のやり取りで期待通りのアウトプットが出てこない

Page 23: A 2a:アジャイルなオフショア開発

一度のやり取りで期待通りのアウトプットが出てこない 時間をかけてもっと詳細な仕様書を準備する

Page 24: A 2a:アジャイルなオフショア開発

一度のやり取りで期待通りのアウトプットが出てこない 時間をかけてもっと詳細な仕様書を準備する

Page 25: A 2a:アジャイルなオフショア開発

一度のやり取りで期待通りのアウトプットが出てこない 1度のやり取りでの完成を諦めた初回ザックリ開発

Page 26: A 2a:アジャイルなオフショア開発

見積もりの精度が低く、完了予定が見えない

Page 27: A 2a:アジャイルなオフショア開発

見積もりの精度が低く、完了予定が見えない 時間をかけて見積もりの精度を上げてもらう

Page 28: A 2a:アジャイルなオフショア開発

見積もりの精度が低く、完了予定が見えない 時間をかけて見積もりの精度を上げてもらう

Page 29: A 2a:アジャイルなオフショア開発

見積もりの精度が低く、完了予定が見えない 全体見積もりは諦め、ザックリ開発工数だけ見積もってもらい、全体見積もりは完了係数を使って算出

Page 30: A 2a:アジャイルなオフショア開発

※完了係数とは、 (リードタイム/ザックリ開発工数)の平均で算出する係数。 ザックリ開発工数の見積もり日数に完了係数を掛けることで、予想完了日を算出できる。

Page 31: A 2a:アジャイルなオフショア開発

95%完了から先が長い

Page 32: A 2a:アジャイルなオフショア開発

95%完了から先が長い 再度詳細な指示書を書き、完成させてもらう

Page 33: A 2a:アジャイルなオフショア開発

95%完了から先が長い 再度詳細な指示書を書き、完成させてもらう

Page 34: A 2a:アジャイルなオフショア開発

95%完了から先が長い オフショア側での完成は諦め、最後の5%は日本側で完成させる

Page 35: A 2a:アジャイルなオフショア開発

品質が低い

Page 36: A 2a:アジャイルなオフショア開発

品質が低い 自己学習や研修を実施することにより各メンバーのスキル向上を目指す

Page 37: A 2a:アジャイルなオフショア開発

品質が低い 自己学習や研修を実施することにより各メンバーのスキル向上を目指す

Page 38: A 2a:アジャイルなオフショア開発

品質が低い メンバーのスキル向上も品質も諦める

Page 39: A 2a:アジャイルなオフショア開発

品質が低い メンバーのスキル向上も品質も諦める

Page 40: A 2a:アジャイルなオフショア開発

品質が低い 開発の初期段階から レビューを実施するなど、 レビュー回数を増やす

Page 41: A 2a:アジャイルなオフショア開発

これら改善施策を 盛り込んだ

開発モデルを

考えてみた。

Page 42: A 2a:アジャイルなオフショア開発
Page 43: A 2a:アジャイルなオフショア開発

43

RFCモデルとは

Page 44: A 2a:アジャイルなオフショア開発

Rough Fill Closing

Page 45: A 2a:アジャイルなオフショア開発

ベースは リーン開発の カンバン

Page 46: A 2a:アジャイルなオフショア開発

Doing

DoingのステージをRFCに細分化

Page 47: A 2a:アジャイルなオフショア開発

Rough Fill Closing

Page 48: A 2a:アジャイルなオフショア開発

48

• ザックリ開発するフェーズ

• 7割程度の完成度を目指す

• 着手する前にザックリ開発工数を見積もってもらう

Page 49: A 2a:アジャイルなオフショア開発

Rough Fill Closing

Page 50: A 2a:アジャイルなオフショア開発

50

• Roughフェーズでのアウトプットの完成度を上げる

フェーズ

• 9割以上の完成度を目指す

Page 51: A 2a:アジャイルなオフショア開発

Rough Fill Closing

Page 52: A 2a:アジャイルなオフショア開発

52

• 完成させるフェーズ

• 日本側の受入担当者(エンジニア)が対応する

Page 53: A 2a:アジャイルなオフショア開発

53

RFCの理想

https://www.flickr.com/photos/emiliokuffer/8359208711/

Page 54: A 2a:アジャイルなオフショア開発

優先度順に並んだPBI ※Readyな状態(仕様記載済み)

PBIを分割したタスク RoughのDoingにかかる日数(R)を見積もる

ざっくり開発するフェーズ 7割程度の完成度を目指す

アウトプットの完成度を上げるフェーズ 9割以上の完成度を目指す

完成させるフェーズ

R

Lead Time

完了係数 = Lead Time / R

Lead Time = R × 完了係数

完成したタスク

オフショア担当

国内 (受入)担当

Page 55: A 2a:アジャイルなオフショア開発

• 検査と適応の仕掛け • アウトプット(ソースコード)の検査と適応を各フェーズのレビューで行なう

• レビューを早めに(Roughから)多めに(最低2回)実施することで、アウトプットの透明性を維持する

Page 56: A 2a:アジャイルなオフショア開発

56

RFCの現実

https://www.flickr.com/photos/brian_tomlinson/14678017291/

Page 57: A 2a:アジャイルなオフショア開発

57

• 多くの前提条件 • 共通言語は日本語であること • 受入担当はコードを理解できるエンジニアであること

• ソースコードのバージョン管理が適切に行われていること

• チケットベースで成果物をレビュー、検収できること

Page 58: A 2a:アジャイルなオフショア開発

58

• 受入担当について • 仕様策定・落し込み、発注、受入、修正指摘と行う事が多く、開発メンバーが増えれば増える程負荷も増大

• 受入担当が兼務の場合、そこがボトルネックになる

Page 59: A 2a:アジャイルなオフショア開発

59

• 効果について • 開発メンバーが業務に精通してくる事で受入担当の負荷が軽減され、その結果として費用対効果が現れてくるが、短期プロジェクトでは難しい

Page 60: A 2a:アジャイルなオフショア開発

60

• 費用対効果について • 開発メンバーのコスト:1/3 • 開発期間:約2倍(感覚値) • 受入担当のキャパシティが3名まで、50%コミットだとトントン

• キャパを増やすか、コミット率を下げるか、期間を短縮しないと費用対効果が出ない

Page 61: A 2a:アジャイルなオフショア開発

61

• 今後予定している改善 • 受入担当業務をオフショア側で行う • 受入担当者育成に注力 • 短期の来日研修も検討

Page 62: A 2a:アジャイルなオフショア開発

62

まとめ

Page 63: A 2a:アジャイルなオフショア開発

63

• 現場で発生した問題に対して試行錯誤した結果、RFCモデルは生まれた

• プロセスとしてのRFCモデルは確立されつつある

• しかし、既に現場との乖離も生まれ始めている…

Page 64: A 2a:アジャイルなオフショア開発

64

いいんです!

Page 65: A 2a:アジャイルなオフショア開発

http://www.slideshare.net/kiroh/reintro-scrum-kansumi2013a3/46

Page 66: A 2a:アジャイルなオフショア開発

ただし、 検査と適応は必須

Page 67: A 2a:アジャイルなオフショア開発

結論

どんな開発プロセスを採用する場合でも、ふりかえりを定期的に実施し、プロセスの検査と適応を継続的に行っていくことが重要

Page 68: A 2a:アジャイルなオフショア開発
Page 69: A 2a:アジャイルなオフショア開発

次世代システム研究室では エンジニアを募集しています!

http://recruit.gmo.jp/engineer/jisedai/

Page 70: A 2a:アジャイルなオフショア開発

70

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