⽔水と油？
~∼  アジャイルとオフショア開発  ~∼KDDI株式会社  プラットフォーム開発本部
クラウドサービス開発部   課⻑⾧長補佐 　佐々⽊木 　徹 　

⾃自⼰己紹介   開発フレームワークと沿⾰革   夜も眠れない問題   Agile  と  オフショア   総括2Copyright © 2015 KDDI Corporation. All Rights Reserved

KDDI  クラウド戦略略と本プロジェクトの概要

KDDIのクラウド戦略略
グローバルクラウドと⾼高品質なキャリアクラウドを⼀一括提供

Multi
Use

Multi
NetworkMulti
DeviceベーシックパックKDDI  Business  ID~∼IDaaSをスタート

FW
Trusted

アイデンティティ管理理は、これからの時代のパーソナルなFW

 　KDDI  Business  ID  ~∼  IDaaS  をスタート~∼

27635
64

I
D社
内

許可済

ワンタイ
ム
パスワー
ド社
外未許
可

着信認証

場所

デバイス

各種クラウドサービス

認証

クラウドサービスのご利利⽤用をより安全・安⼼心・簡単にするためにオフショア開発⽅方針

⽅方針

⽇日本のメンバーと同じ⼟土俵で！
（決して、開発者と受注者の関係にならない）

8

Copyright © 2015 KDDI Corporation. All Rights Reserved⽬目指す姿

国際的な観点も踏まえ、製品をともに磨き上げていきたい

9

Copyright © 2015 KDDI Corporation. All Rights Reserved

今⽇日のお話し  現実問題そんなうまくいくわけがない  どんな課題にぶつかったのか、  どのように解決していったのか、  そして今後どのようにしていきたいかを話していきます10

Copyright © 2015 KDDI Corporation. All Rights Reservedオフショア実績

オフショア実績
2014年年  7⽉月  オフショア始動  2014年年10⽉月  ⼤大規模障害通知機能リリース  2015年年5⽉月  移動体向け基地局故障通知機能リリース予定  その他、Atlassian  環境のプラグイン開発、  現在は、KDDI  Business  ID  の多⾔言語化対応などにも着⼿手

12

Copyright © 2015 KDDI Corporation. All Rights Reserved

開発フレームワーク

開発フレームワーク
・アジャイル開発（スクラム）・テストファースト（IT、UTともにテストファースト）・ペアプログラミング（ベトナムメンバー同⼠士）・⾔言語 　フロントエンド：Backbone.js 　バックエンド：Java・メンバー
・体制 　－⽇日本：プロジェクトオーナー、QA（常駐なし） 　－ベトナム：テストケース作成、コーディング、テスト
14

Copyright © 2015 KDDI Corporation. All Rights Reserved

開発フレームワーク
・Git を利利⽤用し、⽇日本・ベトナム双⽅方で同じソースを開発

開発マスタブランチ
⽇日本ブランチ
ベトナム
ブランチ

場合によってはベトナムのコードが先にマージ
15

Copyright © 2015 KDDI Corporation. All Rights Reservedスクラム運営
・毎週⽔水曜⽇日  隔週⽕火曜⽇日スクラムイベント
・１ｗスクラム 　２ｗスクラム・コミュニケーション⼿手段 　ー  チャット：英語 　ー  ドキュメント：⽇日本語 　ー  朝会：Web会議＆通訳 　ー  仕様（チケット）：英語＆⽇日本語
16

Copyright © 2015 KDDI Corporation. All Rights Reservedベトナムのカンバン

17

Copyright © 2015 KDDI Corporation. All Rights Reserved夜も眠れない問題

・⽴立立ちはだかる「⽂文化」、「⾔言語」 　ー  ⾔言いたいことがうまく伝わらない 　ー  ⾔言われたことしかしない 　

19

Copyright © 2015 KDDI Corporation. All Rights Reserved

・⽴立立ちはだかる「⽂文化」、「⾔言語」 　ー  ⾔言いたいことがうまく伝わらない 　ー  ⾔言われたことしかしない
・⽇日本側の理理解不不⾜足 　ー⽇日本チームはベトナムのコードを 　 　あまり知らない 　 　※当初は週⼀一のコードレビューのみ 　  （関わらないようにしていた？） 　20

Copyright © 2015 KDDI Corporation. All Rights Reserved

レビューコメント⼤大量量発⽣生問題

コードレビューコメント⼤大量量発⽣生問題
初回リリース、
⽇日本のソースコードと初のマージ→  リリース直前に⽇日本側でレビュー

22

Copyright © 2015 KDDI Corporation. All Rights Reservedコードレビューコメント⼤大量量発⽣生問題
初回リリース、
⽇日本のソースコードと初のマージ→  リリース直前に⽇日本側でレビュー 　→  ３００以上のコメントが・・・

23

Copyright © 2015 KDDI Corporation. All Rights Reservedコードレビューコメント⼤大量量発⽣生問題
初回リリース、
⽇日本のソースコードと初のマージ→  リリース直前に⽇日本側でレビュー 　→  ３００以上のコメントが・・・

中にはバグった実装に無理理くりテストを合わせるものまで
24

Copyright © 2015 KDDI Corporation. All Rights Reservedコードレビューコメント⼤大量量発⽣生問題
早期解決する必要があった問題
・仕様が伝わらない問題
・細かいことが伝わらない問題

25

Copyright © 2015 KDDI Corporation. All Rights Reserved

仕様が伝わらない問題

仕様が伝わらない問題
⾏行行間を読む 　 　→ 　⽂文化の違いで×27

Copyright © 2015 KDDI Corporation. All Rights Reserved

仕様が伝わらない問題
⾏行行間を読む 　 　→ 　⽂文化の違いで×※もともとは情報量量の少ないチケットから、 　要件定義ができることを⽬目指していた

28

Copyright © 2015 KDDI Corporation. All Rights Reserved

仕様が伝わらない問題
⾏行行間を読む 　 　→ 　⽂文化の違いで× 　チケットに受⼊入条件を詳細に記載した

29

Copyright © 2015 KDDI Corporation. All Rights Reserved

仕様が伝わらない問題
全体像の把握 　→ 　⾔言語では限界30

Copyright © 2015 KDDI Corporation. All Rights Reserved

仕様が伝わらない問題
全体像の把握 　→ 　⾔言語では限界共通の⾔言語が必要：ユースケース図で説明

31

Copyright © 2015 KDDI Corporation. All Rights Reserved

仕様が伝わらない問題
全体像の把握 　→ 　⾔言語では限界共通の⾔言語が必要：ユースケース図で説明

32

Copyright © 2015 KDDI Corporation. All Rights Reserved

仕様が伝わらない問題⾏行行間を読む 　 　→ 　⽂文化の違いで× 　チケットに受⼊入条件を詳細に記載した全体像の把握 　→ 　⾔言語では限界 　ユースケース図の導⼊入
背景の理理解、ストーリーの理理解は向上！
が、しかし・・・
33

Copyright © 2015 KDDI Corporation. All Rights Reserved細かいことが伝わらない問題

細かいことが伝わらない問題
ざっくりは理理解しても、詳細が詰まらない

35

Copyright © 2015 KDDI Corporation. All Rights Reserved細かいことが伝わらない問題
ざっくりは理理解しても、詳細が詰まらない
とにかくレビュー、レビュー、レビュー

36

Copyright © 2015 KDDI Corporation. All Rights Reserved細かいことが伝わらない問題
ざっくりは理理解しても、詳細が詰まらない
とにかくレビュー、レビュー、レビュー 　チケット単位での・API設計  /  DB設計のレビュー
・ITレビュー  ＆  テストファースト・プルリクエストによるコードレビュー

37

Copyright © 2015 KDDI Corporation. All Rights Reserved細かいことが伝わらない問題38

Copyright © 2015 KDDI Corporation. All Rights Reserved細かいことが伝わらない問題
ざっくりは理理解しても、詳細が詰まらない
とにかくレビュー、レビュー、レビュー 　チケット単位での・プルリクエストを導⼊入・API設計/DB設計のレビュー
・ITレビュー＆テストファースト
意図した成果物をあげられるように！
ソースコードマージも⼤大混乱を回避！
39

Copyright © 2015 KDDI Corporation. All Rights Reserved細かいことが伝わらない問題
ざっくりは理理解しても、詳細が詰まらない
とにかくレビュー、レビュー、レビュー 　チケット単位での・プルリクエストを導⼊入・API設計/DB設計のレビュー
・ITレビュー＆テストファースト
意図した成果物をあげられるように！
ソースコードマージも⼤大混乱を回避！
が、しかし・・・
40

Copyright © 2015 KDDI Corporation. All Rights Reservedチケット⾄至上主義問題

チケット⾄至上主義問題
オフショア先の評価基準がチケット数ー＞チケットを稼ぐために、あの⼿手この⼿手

42

Copyright © 2015 KDDI Corporation. All Rights Reservedチケット⾄至上主義問題
チケットのDoneの定義を⾒見見直し、スクラムイベントでのレビューを厳格に実施するようした

43

Copyright © 2015 KDDI Corporation. All Rights Reservedコード複雑度度ワースト問題

コード複雑度度ワースト問題
様々な改善を繰り返してもバグが減らない
ー＞コードの複雑化が要因の⼀一つあるコントローラの複雑度度を測定すると・・

45

Copyright © 2015 KDDI Corporation. All Rights Reservedコード複雑度度ワースト問題
様々な改善を繰り返してもバグが減らない
ー＞コードの複雑化が要因の⼀一つあるコントローラの複雑度度を測定すると・・【Sonar  Qube  を活⽤用したコードの複雑度度の測定結果】

⽇日本も含めた全体の平均値
ベトナムが実装したコードがワースト４独占
46

Copyright © 2015 KDDI Corporation. All Rights Reservedコード複雑度度ワースト問題
重要だったのは、⽬目標と問題点の定量量化

47

Copyright © 2015 KDDI Corporation. All Rights Reservedコード複雑度度ワースト問題
重要だったのは、⽬目標と問題点の定量量化
・バグの数を⽇日本と同等 　（ストーリーに対する発⽣生頻度度）
・コードの複雑度度も⽇日本と同等をキープ

48

Copyright © 2015 KDDI Corporation. All Rights Reservedコード複雑度度ワーストスリー問題

やり⽅方は（もう）指⽰示しない

49

Copyright © 2015 KDDI Corporation. All Rights Reservedベトナムオフショアの魅⼒力力ベトナムでのオフショアの魅⼒力力
・⽇日本と⽐比較にならない単価

51

Copyright © 2015 KDDI Corporation. All Rights Reservedベトナムでのオフショアの魅⼒力力
・⽇日本と⽐比較にならない単価
・⾮非常にまじめに取り組む姿勢

52

Copyright © 2015 KDDI Corporation. All Rights Reservedベトナムでのオフショアの魅⼒力力
・⽇日本と⽐比較にならない単価
・⾮非常にまじめに取り組む姿勢
・友好的（親⽇日）53

Copyright © 2015 KDDI Corporation. All Rights Reservedベトナムでのオフショアの魅⼒力力
⾊色々課題はある。

54

Copyright © 2015 KDDI Corporation. All Rights Reservedベトナムでのオフショアの魅⼒力力
⾊色々課題はある。
が、短い周期で改善を繰り返す

55

Copyright © 2015 KDDI Corporation. All Rights Reservedベトナムでのオフショアの魅⼒力力
⾊色々課題はある。
が、短い周期で改善を繰り返す
努⼒力力が開花する頃、⼤大きな成果へ

56

Copyright © 2015 KDDI Corporation. All Rights Reservedベトナムでのオフショアの魅⼒力力
⾊色々課題はある。
が、短い周期で改善を繰り返す努⼒力力が開花する頃、⼤大きな成果へ
Agile  と  オフショアは⾮非常に相性がよい

57

Copyright © 2015 KDDI Corporation. All Rights Reserved

まとめ

総括
・重要なこと３つ

59

Copyright © 2015 KDDI Corporation. All Rights Reserved

総括・重要なこと３つ「UML」、「明⽂文化」、「定量量化」※アジャイルでもウォーターフォールでもきっと同じ

60

Copyright © 2015 KDDI Corporation. All Rights Reserved総括・重要なこと３つ「UML」、「明⽂文化」、「数値化」※アジャイルでもウォーターフォールでもきっと同じ・細かい単位で改善を繰り返すことができるアジャイルは、むしろ向いている

61

Copyright © 2015 KDDI Corporation. All Rights Reserved総括・重要なこと３つ「UML」、「明⽂文化」、「数値化」※アジャイルでもウォーターフォールでもきっと同じ・細かい単位で改善を繰り返すことができるアジャイルは、むしろ向いている・テストファーストの真価が発揮される

62

Copyright © 2015 KDDI Corporation. All Rights ReservedQuality Cloud