Agile Japan2017
発表資料【伸】インターネットバンキング案件における大規模スクラムの適用～新米アジャイルコーチ南米奮闘記～
2017年4月13日
株式会社NTTデータ
鈴木 友也© 2017 NTT DATA Corporation

自己紹介➢ 鈴木 友也 (Yuya Suzuki)➢ 株式会社NTTデータ 技術開発本部 Agile Professional Center➢ お仕事➢ アジャイル開発に関するプロセスやツールの開発・導入➢ 複数のScrum開発案件にDeveloperとして参画➢ Certified Scrum Master© 2017 NTT DATA Corporation

2

大規模Scrum開発とは© 2017 NTT DATA Corporation

3

WaterfallとScrumにおける大規模化の考え方
プロジェクトをスケールさせる方法は縦型と横型の２つがあり、大規模Scrum開発は横にスケールする。
日本式
縦型大規模プロジェクト

欧米式
横型大規模プロジェクト

ユーザ企業

ユーザ企業

情報システム部門

情報システム部門

縦にSIerス
ケ １次請け方式
業務ールすMW
HW
業務B
業務A
２次請け
る
以降
組
製造B
設定設置製造A織© 2017 NTT DATA Corporation

Scrum
AScrum
BScrumCScrumDScrumE

横にスケールする組織4・・・

単純にScrum Teamを増やすだけで開発できる？

© 2017 NTT DATA Corporation

5大規模Scrum開発の問題① (Backlogの振り分け問題)
どうやってBacklogを振り分ければいいの？

Scrum Team2

Scrum Team1

Scrum Team2

ProductBacklog
Scrum Team3
どうやって管理すればいいの？

© 2017 NTT DATA Corporation

6大規模Scrum開発の問題② (Backlogの依存問題)
Scrum Team2

Scrum Team１のBacklogが完了しないと着手できないよ

Scrum Team1

Scrum Team2

作業のコンフリクト

ProductBacklog
Scrum Team3のBacklogに変更があって着手できないよ

Scrum Team3© 2017 NTT DATA Corporation

7大規模Scrum開発の問題③ (統合・リリースの問題)
だれが統合テストをするの？？

Scrum Team2

Scrum Team1

Scrum Team2

ProductBacklog
だれがリリース作業をするの？？

Scrum Team3© 2017 NTT DATA Corporation

8大規模Scrum開発の問題まとめ

Scrumチームを増加させただけでは、これらの問題は解決されない問題

Backlogの振り分け方法、管理方法がわからない。
Backlog間・チーム間の依存を管理しなければならない。
統合テスト・リリース作業の責務が明確になっていない。

© 2017 NTT DATA Corporation

9

世の中の大規模Scrum開発方法論
Scaled Agile
Framework (SAFe)

Nexus Framework

Large Scale Scrum(LeSS)• 3つの階層の活動を定義➢ ポートフォリオレベル➢ プログラムレベル➢ チームレベル• Scrum開発手法外のロールが多数登場• Scrum開発をスケールさせるための最低限の成果物やイベントを定義• 利用者が作成物、イベント等を拡張することを前提としている• 軽量であり教育コストが低
い• Scrum開発をスケールアップさせた2種類のフレームワークを提供➢ LeSS : 最大8チーム➢ LeSS Huge :最大数千人×○○○○×

軽量さ
統合チーム

Nexus Frameworkをベースに大規模Scrum方法論を開発© 2017 NTT DATA Corporation

10

NTTデータの大規模Scrum開発方法論© 2017 NTT DATA Corporation

11

NTTデータの大規模Scrum開発方法論
大規模Scrum開発を実現するための、ガイドライン、テンプレート、プラクティスを整備。
Team

Event

Scrum Team

Product Owner
Team

Scrum MasterTeam

Integration
Team

Architecture
Team

Infrastructure
Team

Inception/
Sprint0

Overall/
Team-wise
SprintPlanning

Overall
Daily Scrum

Team-wise
Daily Scrum

Integrated/
Sprint Review

Overall/Team
Retrospective

ProductBacklog

Sprint BacklogScrum
Increment

Integrated
Increment

Backlog

Team-wise
Burndown
Chart

Team-wise
Velocity Chart

Dependency
Tracker Board

Artifacts

Practice© 2017 NTT DATA Corporation

チーム分割方法

JIRA設定方法

12

Release Plan
Board

NTTデータの大規模Scrum開発方法論
Overall
SprintPlanning

Product Owner TeamPO1 PO2
PO Leader PO3 PO4

Inception
Scrum Team1

Sprint0

POSM

SM

Team-wise
Sprint Planning

POAssigned
Backlog

Daily Scrum

Dev

Integrated
Sprint Review

Retrospective

Daily Scrum

SM Dev

Integration Team

Daily Scrum

PO

Retrospective

SMDev

Integrated
Increment

Retrospective

Daily Scrum

SM Dev

Release!!

Retrospective

Sprint Backlog
Scrum Master TeamSM1 SM2SMInt
SM Leader SM3 SM4© 2017 NTT DATA Corporation

Artifact

Team-wise
Sprint Review

Daily Scrum

Scrum Team4

POEvent

Retrospective

Dev

Scrum Team3

ProductBacklog

TeamPOInt

Scrum Team2PO

OverallRefinement

Increment
Scrum Master Team
Daily Scrum

13

Architecture Team

Infrastructure Team

LeaderLeaderNTTデータの大規模Scrum開発方法論
Overall
SprintPlanning

Product Owner TeamPO1 PO2
PO Leader PO3 PO4

Inception
Scrum Team1

Sprint0

PO

SM

SM

Team-wise
Sprint Planning

PO

Assigned
Backlog

Daily Scrum

Dev

Artifact

Integration Teamの新設
統合・リリース作業の責務
Integrated
Sprint ReviewRetrospective

Daily Scrum

SM Dev

Integration Team

Daily Scrum

PORetrospective

SMDev

Integrated
Increment

Retrospective

Daily Scrum

SM Dev

Release!!

Retrospective

Sprint Backlog
Scrum Master TeamSM1 SM2SMInt
SM Leader SM3 SM4© 2017 NTT DATA Corporation

Team-wise
Sprint Review

Daily Scrum

Scrum Team4

POEvent

Retrospective

Dev

Scrum Team3

ProductBacklog

Team

POInt

Scrum Team2
POOverall
Refinement

Increment
Scrum Master Team
Daily Scrum

14

Architecture Team

Infrastructure Team

LeaderLeaderNTTデータの大規模Scrum開発方法論
Overall
SprintPlanning

Product Owner TeamPO1 PO2
PO Leader PO3 PO4

InceptionScrum Team1

Team-wise
Sprint Planning

POSMDev

POAssignedBacklog

Retrospective

SM Dev

Integrated
Sprint Review

Scrum Team4SM Dev

Integration Team

Daily Scrum

PORetrospective

SMDev

Integrated
Increment

Retrospective

Daily Scrum

Release!!

Retrospective

Sprint Backlog
Scrum Master TeamSM1 SM2SMInt
SM Leader SM3 SM4© 2017 NTT DATA Corporation

Artifact

Team-wise
Sprint Review

Daily Scrum

SM Teamの新設
専属のSM Leadを配置
PO

Daily Scrum

Retrospective

Scrum Team3

ProductBacklog

Event

Daily Scrum

Scrum Team2
POTeamPOInt

PO Teamの新設
SM Dev
専属のPO
Leadを配置Sprint0

OverallRefinementIncrement
Scrum Master Team
Daily Scrum

15

Architecture Team

Infrastructure Team

LeaderLeaderNTTデータの大規模Scrum開発方法論
Overall
SprintPlanning

Product Owner TeamPO1 PO2
PO Leader PO3 PO4

Inception
Scrum Team1

Sprint0

POSM

SMTeamPOInt

Team-wise
Sprint Planning

Event
Daily Scrum

Artifact

Team-wise
Sprint Review

Retrospective

Dev

Daily Scrum

Scrum Team2
POOverall
Refinement

Dev

Integrated
Sprint Review

Retrospective

Integration TeamPOProductBacklog
AssignedBacklog

SM DevRetrospective

SM Dev

Release!!

Retrospective

Sprint Backlog
Scrum Master TeamSM1 SM2SMInt
SM Leader SM3 SM4© 2017 NTT DATA Corporation

Integrated
Increment

Daily Scrum

Scrum Team4

PORetrospective
PO SM Dev
Architecture
Team,
Infrastructure Teamの設置

Daily Scrum

Scrum Team3

Daily Scrum

Increment
Scrum Master Team
Daily Scrum

16

Architecture Team

Infrastructure Team

LeaderLeaderNTTデータの大規模Scrum開発方法論
Overall
SprintPlanning

Product Owner TeamPO1 PO2
PO Leader PO3 PO4

Inception
Scrum Team1

Sprint0

POSM

SM

Team-wise
Sprint Planning

PO

Assigned
Backlog

Daily Scrum

Dev

Integrated
Sprint Review

Retrospective

Daily Scrum

SM Dev

Integration Team

Daily Scrum

PORetrospective

SMDev

Integrated
Increment

RetrospectiveDaily Scrum

SM Dev

Release!!

Retrospective

Sprint Backlog
Scrum Master TeamSM1 SM2SMInt
SM Leader SM3 SM4© 2017 NTT DATA Corporation

Artifact

Team-wise
Sprint Review

Daily Scrum

Scrum Team4

POEvent

Retrospective

Dev

Scrum Team3

ProductBacklog

Team

POInt

Scrum Team2PO

OverallRefinement

Increment
Scrum Master Team
Daily Scrum

17

Architecture Team

Infrastructure Team

LeaderLeader

適用案件© 2017 NTT DATA Corporation

18

案件概要

南米の銀行様におけるInternet Bankingシステムの開発 ～3つのテーマ～

短期間の開発User Experienceの重視

Back-endのMicroservice化

大規模Scrum開発方法論の適用
出展:「flickr」2017年4月7日
https://farm6.staticflickr.com/5572/14811749041_6fc0810a3a_o_d.jpg
https://www.flickr.com/photos/baldiri/5735001938/
https://farm3.staticflickr.com/2236/13109673843_74d784da39_o_d.png© 2017 NTT DATA Corporation19適用前のプロセス・体制
Scrum
Team1
Scrum
Team2
Scrum
Team3

Scrum
Team4
Product
Backlog

Scrum
Team5
Scrum
Team6

© 2017 NTT DATA Corporation

Develop
Integrate20

適用前のプロセス・体制
各チームが統合・リリースを実施

Scrum
Team1
Scrum
Team2
Scrum
Team3

Scrum
Team4
Product
Backlog

異なるSprint開始日時

Scrum
Team5
Scrum
Team6

© 2017 NTT DATA Corporation

Develop
Integrate
21

その結果…

統合作業のコンフリクトによりVelocityが計画の2割しか達成できていなかった。

Plan
ActualVelocity© 2017 NTT DATA Corporation

22

方法論適用後の体制

PO Team, SM Team, Integration Team, Arch Team, Infra Teamを新設。
POは2名で3チームずつ兼任。
Product Owner Team

Scrum
Team1

Scrum
Team2

Scrum Master Team

Stakeholders

Scrum
Team3

Scrum
Team5

Scrum
Team4

Architecture Team© 2017 NTT DATA Corporation

Infrastructure Team23

Integration
Team方法論適用後のスケジュール
Integration Teamがリリース作業を実施
Release1

Release1開発期間

Release2

Release2開発期間
Sprint1

Sprint2

Sprint3

Sprint4

Sprint5

Sprint6

Sprint7

Sprint8

Scrum Team

Integration
Team

Preparing
ReleaseTask© 2017 NTT DATA Corporation

24

ReleaseTaskこんな問題起きました。

© 2017 NTT DATA Corporation25

こんな問題起きました① (Backlogの振り分け問題)
どうやってBacklogを振り分ければいいの？

チーム間の依存を予測してBacklogのPriorityを変更
したい

Scrum Team2

Scrum Team1

Scrum Team2

ProductBacklog
どうやってBacklogを管理すればいいの？

© 2017 NTT DATA Corporation

Scrum Team3

26

チームと開発する機能の割り振り
各Scrum Teamは機能的なテーマを持ち、その機能を実装する。
機能横断的なチームのため、他チーム担当の機能の開発も可能。

© 2017 NTT DATA Corporation

Scrum
Team1

Payment機能

Scrum
Team2

Favorites機能

Scrum
Team3

Setting機能

27

ProductBacklog

Release Plan Board
Overall Refinementにおいて、依存の予測・Release Planの更新を行う。
Scrum Team2

Scrum Team1
SP1

SP2

SP3

SP1

Release1

Release2

Release3© 2017 NTT DATA Corporation

28

SP2SP3

Scrum Team3
SP1

SP2SP3

こんな問題起きました② (Backlogの依存問題)
依存関係を認識できていない。
認識できていないから開発が進められない。
Sprint Planning
Scrum
Team1
依存関係

ProductBacklog© 2017 NTT DATA Corporation

Scrum
Team2
Scrum
Team329

着手できないDependency Tracker Board
 チーム間の依存(システム、作業プロセス)はすべてここに記載
 SM Daily ScrumはこのBoardの前で実施し、毎日チーム間の問題について共有
SeverityTeam

Blocker

High

Scrum
Team1
Scrum
Team2
Scrum
Team3
Integration
Team
ArchitectureTeam© 2017 NTT DATA Corporation

30

MiddleLow✓ 依存概要✓ 依存先(チーム・人)こんな問題起きました③ (チームの責務分担)✓ Sprintを重ねるにつれて統合タスクが肥大化✓ Scrum TeamのCode Qualityの低下が顕著に現れる。

Scrum TeamのIncrement…
コード規約違反多すぎ

コードレビューのせいで統合作業が進まないよ

Integration Team Velocity

PlanActual

12© 2017 NTT DATA Corporation

34

Integration Team31

チームの責務分担
各チームの責務を明確にする必要がある✓ Scrum Team内コードレビューの徹底➢ レビュー観点を全チームに共有することで、コード品質を一定レベルで担保✓ 静的解析ツール設定の見直し➢ レビュー時間の削減✓ 統合テストの自動化© 2017 NTT DATA Corporation

32

結果

© 2017 NTT DATA Corporation

33

方法論適用前(再掲)

統合作業のコンフリクトによりVelocityが計画の20%しか達成できていなかった。

PlanActual

Velocity© 2017 NTT DATA Corporation

34

方法論適用結果(定量)方法論適用前に比べ、Velocityが計画の75%に改善
Overall Velocity Chart
100
Plan50

Actual0© 2017 NTT DATA Corporation12360%

95%

63%
35

485%

方法論適用結果(定量)

各チームのVelocityの増減を比較することが可能
Team-wise Velocity
40

Scrum Team130

Scrum Team2

20

Scrum Team3

10Scrum Team4
Scrum Team501© 2017 NTT DATA Corporation

23436

Integration TeamIntegration Teamの結果

Release1 向けのBacklogはすべて統合完了
Integration Team Velocity Chart

PlanActual1© 2017 NTT DATA Corporation23374

結果(お客様コメント)
Benefit Point

Improvement Point

 チーム間のコミュニケーションが改善した。

 各開発チームのコードクオリティが低く、Integration Teamがコードレビューに時間をとられていた。

 すべてのメンバに情報が透明化された。
 PO間のコミュニケーション/タスク分配が改善した 増員のためのスキルセット調査モデル

 レポートや評価指標の管理方法

 すべてのメンバが開発に必要な知識や発生した問題を認識できた。

 運用チームのプロセス/ツール、開発チームとのコラボレーション方法

 リソースの問題やメンバのスキルセットが把握できた。
 依存問題やその他の問題を早期発見、予測できた。

© 2017 NTT DATA Corporation

38

まとめ

南米で大規模Scrum開発案件のAgile Coachやってきました。
大規模Scrum開発は各チームの情報の透明化と責務分担、それを実現するための方法とツールが必要です。

© 2017 NTT DATA Corporation39

© 2017 NTT DATA Corporation

Integration TeamのBacklog例

Backlog例
Migration of Favorites
Payment by Credit Card as Favorites function
Pass to production© 2017 NTT DATA Corporation41

Product Ownerのチーム間兼務

2人のお客様Product Ownerが3チームずつ兼任
POPO2

PO1
Scrum
Team1

Scrum
Team2

Scrum
Team3Scrum
Team4 各種イベント

Integration
Team Backlogの詳細化が追いつかない➢ 時間をずらして実施© 2017 NTT DATA Corporation

Scrum
Team5

➢ Proxy POの配置42

テストプロセス

Scrum Teamは開発した機能の結合テストまでを担当
Integration Teamはシステムテストを3環境で実施
Integration Team

Scrum Team

Unit Test© 2017 NTT DATA Corporation

FeatureIntegration
Test

SystemIntegration
Test on QA
Env

43

SI on Client
QA Env

SI on Client
Certification
Env