SlideShare a Scribd company logo
© 2021 NTT DATA Corporation 1
© 2021 NTT DATA Corporation
2021年11月4日
株式会社NTTデータ
開発基盤モダナイズ エバンジェリスト 菅原 亮 / ITスペシャリスト 菅村 泰隆
クラウドネイティブ時代の大規模ウォーターフォール開発
Web公開向け資料
© 2021 NTT DATA Corporation 2
はじめに
アジャイル開発の手法は日本でも徐々に浸透しつつありますが、
大規模な開発プロジェクトにおいてウォーターフォール開発はまだ主流派です。
ウォーターフォール開発にはウォーターフォールならではの利点もあり、
アジャイル開発にすべてが置き換わることは無いでしょう。
また昨今はアジャイル開発のプラクティスを取り込んで
効率化を目指す動きも活発になってきていますが、
様々な障壁が待ち構えており困難を極めることも少なくありません。
本セッションでは大規模トラディショナルシステムにおける
開発環境のモダナイゼーションを推進してきた経験を基に、
大規模ウォーター開発でのCI/CD適用における障壁や回避策、ブランチ戦略の立て方、
クラウドネイティブ時代にふさわしいウォーターフォール開発の在り方について紹介します。
© 2021 NTT DATA Corporation 3
自己紹介
名前:
菅原 亮(すがはら りょう)
@denkas1973
所属:
株式会社NTTデータ
技術革新統括本部 システム技術本部 生産技術部
ソフトウェア技術センタ 開発基盤モダナイズ エバンジェリスト
得意な分野:
インフラ技術全般、特にインフラ自動化分野
Puppetに関する記事や著書をいろいろ執筆
日本Puppetユーザ会 会長 …最近活動できてないけど
© 2021 NTT DATA Corporation 4
自己紹介
名前:
熊川 一平(くまがわ いっぺい)
所属:
株式会社NTTデータ
技術革新統括本部 システム技術本部 生産技術部
ソフトウェア技術センタ イノベータ(ソフトウェアプロセス)
得意な分野:
ソフトウェアテストおよび品質保証を中心に、
開発プロセスの標準化やモダナイズに従事
JaSSTなど各種シンポジウムでの受賞歴多数
© 2021 NTT DATA Corporation 5
遠く離れた心の距離
大規模ウォーターフォール開発の実情
© 2021 NTT DATA Corporation 6
遠く離れた心の距離
すぐ近くに居るはずなのに、近くて遠い、触れたい触れられない…
隣のチームのメンバ、あなたにとって近くて遠い存在ではありませんか?
隣に居るチームのメンバの名前を
僕達はまだ知らない
大規模ウォーターフォール開発の現場では
大抵サブシステム毎にチームが組まれています。
1つのフロアに複数のチームが入っています。
でも隣の列に居る別のチームのメンバ、
誰も名前がわかりません。
リモートになって名前だけでなく、顔までわからなくなった!
チームが違うと開発環境、CI/CD仕組み、
さらにはソース管理リポジトリまで別々です。
© 2021 NTT DATA Corporation 7
せめて、自分らしく…
アジャイル開発は少数精鋭、個人の能力を引き出して高パフォーマンスを得ますが、
ウォーターフォール開発ではプロセス、手順を確立し、組織として対応します。
誰でも、それなりに動けるように
大量のドキュメントが生み出される
ウォーターフォール開発においては全てプロセス化、
手順化されることで、属人化が排除されます。
それに伴い個人の能力依存が無くなります。
もちろん組織として、プロジェクト推進の上で
属人化の排除は大事ですが、
代わりに大量のドキュメントが生まれます。
また決められた手順から外れる事は悪とされ、
効率化するモチベーションは削がれます。
© 2021 NTT DATA Corporation 8
せめて、自分らしく…
アジャイル開発は少数精鋭、個人の能力を引き出して高パフォーマンスを得ますが、
ウォーターフォール開発ではプロセス、手順を確立し、組織として対応します。
誰でも、それなりに動けるように
大量のドキュメントが生み出される
ウォーターフォール開発においては全てプロセス化、
手順化されることで、属人化が排除されます。
それに伴い個人の能力依存が無くなります。
組織として、プロジェクト推進の上で
属人化の排除は大事ですが、
代わりに大量のドキュメントが生まれます。
また決められた手順から外れる事は悪とされ、
効率化するモチベーションは削がれます。
この話を思い出してください
大規模オンプレミス環境はGitOpsの夢を見るか(CI/CD Conference 2021 by CloudNative Days 発表資料)
https://www.slideshare.net/nttdata-tech/gitops-and-on-premises-ci-cd-conference-2021
© 2021 NTT DATA Corporation 9
近づきたいよ、君の理想に
理想の開発スタイルを大規模ウォーターフォール開発でも
© 2021 NTT DATA Corporation 10
心の距離を縮めたい
クラウドネイティブの理想に恋焦がれる大規模ウォーターフォール開発、
両者の心の距離を縮めるにはどうすればよいのでしょう?
構成管理リポジトリの統合で
離れた心の距離を縮めよう
サブシステム毎にチームは分かれていて
ソース管理リポジトリもチーム毎に別々に。
いろいろ事情はありますが、まずはリポジトリ統合で
一緒に同じシステムに携わる仲間意識を醸成し、
ツールやCI/CDの仕組みも共通化しましょう。
でも、ブランチ戦略はどうするのが良いの?
一例をご紹介します!
© 2021 NTT DATA Corporation 11
心の距離を縮めたい
クラウドネイティブの理想に恋焦がれる大規模ウォーターフォール開発、
両者の心の距離を縮めるにはどうすればよいのでしょう?
構成管理リポジトリの統合で
離れた心の距離を縮めよう
サブシステム毎にチームは分かれていて
ソース管理リポジトリもチーム毎に別々に。
いろいろ事情はありますが、まずはリポジトリ統合で
一緒に同じシステムに携わる仲間意識を醸成し、
ツールやCI/CDの仕組みも共通化しましょう。
でも、ブランチ戦略はどうするのが良いの?
一例をご紹介します!
master
develop/ST
develop/IT
ver.1.0
feature/001
feature
feature/002
hotfix
ver.1.1
© 2021 NTT DATA Corporation 12
心の距離を縮めたい
クラウドネイティブの理想に恋焦がれる大規模ウォーターフォール開発、
両者の心の距離を縮めるにはどうすればよいのでしょう?
構成管理リポジトリの統合で
離れた心の距離を縮めよう
サブシステム毎にチームは分かれていて
ソース管理リポジトリもチーム毎に別々に。
いろいろ事情はありますが、まずはリポジトリ統合で
一緒に同じシステムに携わる仲間意識を醸成し、
ツールやCI/CDの仕組みも共通化しましょう。
でも、ブランチ戦略はどうするのが良いの?
一例をご紹介します!
master
develop/ST
develop/IT
ver.1.0
feature/001
feature
feature/002
hotfix
ver.1.1
コード昇格モデル
© 2021 NTT DATA Corporation 13
変換したらYAMLファイルだった件
人間に読みやすく書かれたドキュメントはツールで使うため変換が必要ですが、
パラメーターシートからplaybookに転記するようでは本末転倒です。
ドキュメントから設定ファイルを
自動変換する工夫をしよう
大抵のパラメータ―シート類はExcelで作成。
であればVBAでひと手間掛けるだけで
簡単お手軽にYAMLファイルは生成できます。
お客様に成果物として提供するドキュメントとして
Excelは残しつつも、各種ツールで利用可能な
YAMLファイルを生成できるのでオススメです。
差分管理もExcelより簡単になります。
© 2021 NTT DATA Corporation 14
変換したらYAMLファイルだった件
人間に読みやすく書かれたドキュメントはツールで使うため変換が必要ですが、
パラメーターシートからplaybookに転記するようでは本末転倒です。
ドキュメントから設定ファイルを
自動変換する工夫をしよう
大抵のパラメータ―シート類はExcelで作成。
であればVBAでひと手間掛けるだけで
簡単お手軽にYAMLファイルは生成できます。
お客様に成果物として提供するドキュメントとして
Excelは残しつつも、各種ツールで利用可能な
YAMLファイルを生成できるのでオススメです。
差分管理もExcelより簡単になります。
方眼紙状に正方形のマスが作られた謎書式、
いわゆる“ネ申Excel ”
これで変換VBA作るのはほぼ不可能です…
© 2021 NTT DATA Corporation 15
変換したらYAMLファイルだった件
人間に読みやすく書かれたドキュメントはツールで使うため変換が必要ですが、
パラメーターシートからplaybookに転記するようでは本末転倒です。
ドキュメントから設定ファイルを
自動変換する工夫をしよう
大抵のパラメータ―シート類はExcelで作成。
であればVBAでひと手間掛けるだけで
簡単お手軽にYAMLファイルは生成できます。
お客様に成果物として提供するドキュメントとして
Excelは残しつつも、各種ツールで利用可能な
YAMLファイルを生成できるのでオススメです。
差分管理もExcelより簡単になります。
方眼紙状に正方形のマスが作られた謎書式、
いわゆる“ネ申Excel ”
これで変換VBA作るのはほぼ不可能です…
ただし “ネ申Excel”
テメーはダメだ
© 2021 NTT DATA Corporation 16
ここまでのまとめ
© 2021 NTT DATA Corporation 17
ここまでのまとめ
サブシステム毎に分かれたチーム体制に起因する問題の例と解決策、
Excelで作成されたドキュメントを各種ツールで利用する方法をご紹介しました。
リポジトリ統合で「和解」しよう
全体を見れば同じシステムを開発している仲間、
それなのにリポジトリも何もかも別々では非効率です。
リポジトリ統合で共通化、チーム間も「和解」しましょう。
ドキュメントは自動変換しよう
ExcelをはじめOffice製品には強力なVBAがあります。
これを使ってYAMLファイルコンバーターを実装して、
納品ドキュメントのフォーマットと両立を図りましょう。
© 2021 NTT DATA Corporation 18
さらなる効率化への挑戦
© 2021 NTT DATA Corporation 19
さらなる効率化への挑戦(1/2)
ウォーターフォール開発にも、アジャイルで活用されるモダンな開発技術を。
 軽量でコンパクトな開発標準
箸の上げ下げまで決めるのではなく
思想や考え方を中心に。
 デファクト技術の取り込み
古い開発管理技術(SVN,手動テスト…)か
ら脱却。
© 2021 NTT DATA Corporation 20
さらなる効率化への挑戦(2/2)
例えばExcelの設計書は、Markdown+PlantUMLに。
 設計書はプレインテキストに
オートシェイプの配置や色使いなど
本質的でないことに拘らないで済む
 Gitで管理する
ソースと同じように、Pull-Requestでレ
ビューが回るので効率的。
 web化して情報共有する
Hugoを使ってhtml化し、設計書にとって
最も大事な使いやすさを向上。
© 2021 NTT DATA Corporation 21
スピーカー交代
© 2021 NTT DATA Corporation 22
自己紹介
名前:
菅村 泰隆(すがむら やすたか)
所属:
株式会社NTTデータ
技術革新統括本部 システム技術本部 生産技術部
ソフトウェア技術センタ ソフトウェアアーキテクト
得意な分野:
ソフトウェア開発における開発生産性および
品質の安定化を中心に、技術コンサルティ
ングや開発プロジェクト支援に従事
バックエンド技術, MSA, Java
© 2021 NTT DATA Corporation 23
めぐるめぐるよ時代はめぐる
大規模アジャイル視点の開発統制の重要性
© 2021 NTT DATA Corporation 24
開発統制の重要性
システム・ソフトウェアの品質を作り込むには、開発統制が必要不可欠である。
それは、大規模アジャイル開発でも同様です。
大規模アジャイル開発における
開発統制は、
自由と制約のバランスが大切
1. リポジトリは開発の写し鏡
2. 共通化は悪魔の囁き
3. 技術先行の罠を回避せよ
© 2021 NTT DATA Corporation 25
開発統制の重要性
システム・ソフトウェアの品質を作り込むには、開発統制が必要不可欠である。
それは、大規模アジャイル開発でも同様です。
1. リポジトリは開発の写し鏡
2. 共通化は悪魔の囁き
3. 技術先行の罠を回避せよ
4. 環境差異をコントロールせよ
「開発ガイドラインを大量に作る」と言うわけではなく、
できるだけ仕組みでカバーしていくこと大切です。
また、開発統制を行うべきポイントを、
納得感ある状況を作り上げる必要があります。
大規模アジャイル開発(SAFe🄬Scaled Agile Framework)
SAFe🄬 https://www.scaledagileframework.com/
ART:プロダクト
スクラムチームA スクラム
チーム
B
スクラム
チーム
C …
PO
SM
Dev Team
4, 5名
BO PM RTE SA
ART:プロダクト
スクラムチームA スクラム
チーム
B
スクラム
チーム
C …
PO
SM
Dev Team
4, 5名
BO PM RTE SA
ART:プロダクトX
スクラムチームA スクラム
チーム
B
スクラム
チーム
C ・・・
PO
SM
Dev
4, 5名
BO PM RTE SA
System Team
© 2021 NTT DATA Corporation 26
開発統制の重要性 – 1. リポジトリは開発の写し鏡
大規模開発では、ウォータフォール、アジャイル関係なく、
リポジトリの運用方針を、決めてから開発を進めなければなりません。
大規模ウォータフォール開発では、
リポジトリ運用方針は、開発統制に
よって、決められていました。
大規模アジャイル開発では、
アジャイルの名の元に、
各スクラムチームに自由が
与えられました。
その結果…
© 2021 NTT DATA Corporation 27
開発統制の重要性 – 1. リポジトリは開発の写し鏡
リポジトリを見ると、そのプロジェクト(チーム)の状況が手に取るように分かります。
そのプロジェクトの名前は何ですか?
大規模ウォータフォール開発では、
リポジトリ運用方針は、決められていました。
大規模アジャイル開発では、
各スクラムチーム単位に自由が
与えられました。
その結果…
大規模開発では、ミッションクリティカルな
システムが多く、障害発生時は、迅速に解決
するために、第三者が解析に駆け付けます。
各スクラムチームに自由が与えられたことにより、
個性豊かなリポジトリ構成になりました。
スクラムチームA スクラムチームB スクラムチームC
© 2021 NTT DATA Corporation 28
開発統制の重要性 – 1. リポジトリは開発の写し鏡
リポジトリを見ると、そのプロジェクト(チーム)の状況が手に取るように分かります。
そのプロジェクトの名前は何ですか?
大規模ウォータフォール開発では、
リポジトリ運用方針は、決められていました。
大規模アジャイル開発では、
各スクラムチーム単位に自由が
与えられました。
その結果…
大規模開発では、ミッションクリティカルな
システムが多く、障害発生時は、迅速に解決
するために、第三者が解析に駆け付けます。
各スクラムチームに自由が与えられたことにより、
個性豊かなリポジトリ構成になりました。
大規模開発では、ミッションクリティカルなシステムが多く、
障害発生時は、迅速に解決するために、第三者が解析に駆け付けます。
何がどこに格納されているか、即座に把握するために、リポジトリの統制は必ず必要です。
スクラムチームA スクラムチームB スクラムチームC
© 2021 NTT DATA Corporation 29
開発統制の重要性 – 2. 共通化は悪魔の囁き
大規模ウォータフォール開発では、当たり前の共通化ですが、
マイクロサービス間でコードの共通化をしてはいけません。
マイクロサービス間の共通化は、
マイクロサービスの切り出し以外で
絶対に行ってはいけないんです。
モノリシックなアプリケーションと異なり、
マイクロサービス間は疎結合でなければなりません。
大規模アジャイル開発では、1つのスクラムチームが
複数のマイクロサービスを担当することがあります。
分かっていても、今までのDRYな考えで、マイクロ
サービス間に依存を持たせてしまうケースがあります。
マイクロ
サービスA
マイクロ
サービスB
マイクロ
サービスC
共通業務
ロジックAB
共通業務
ロジックBC
共通業務
ライブラリ
業務ロジック 業務ロジック 業務ロジック
© 2021 NTT DATA Corporation 30
開発統制の重要性 – 2. 共通化は悪魔の囁き
大規模ウォータフォール開発では、当たり前の共通化ですが、
マイクロサービス間でコードの共通化をしてはいけません。
マイクロサービス間の共通化は、
マイクロサービスの切り出し以外で
絶対に行ってはいけないんです。
モノリシックなアプリケーションと異なり、
マイクロサービス間は疎結合でなければなりません。
大規模アジャイル開発では、1つのスクラムチームが
複数のマイクロサービスを担当することがあります。
分かっていても、今までのDRYな考えで、マイクロ
サービス間に依存を持たせてしまうケースがあります。
マイクロ
サービスA
マイクロ
サービスB
マイクロ
サービスC
共通業務
ロジックAB
共通業務
ロジックBC
共通業務
ライブラリ
業務ロジック 業務ロジック 業務ロジック
© 2021 NTT DATA Corporation 31
開発統制の重要性 – 3. 技術先行の罠を回避せよ
日進月歩であるクラウドネイティブ技術を取り入れるのであれば、
アジリティのある組織に変革し、試験自動化を成し遂げなければなりません。
「リリースすることへの恐怖」を克服
することはできていますか?
商用故障が許されない日本において、
できるだけリリースをしたくはないのが本音です。
クラウドネイティブ技術を利用し、
冪等性を担保する試験自動化を整備すれば、
その恐怖を克服できるかもしれません。
試験の自動化は、ユーザストーリー(E2E), API(マイ
クロサービス), UT と3段階に分けて実現します。
そのためにもクラウドネイティブの技術は最適です。
© 2021 NTT DATA Corporation 32
まとめ
© 2021 NTT DATA Corporation 33
まとめ
大規模アジャイル開発での開発統制の重要性について、
CI/CD関連の実例をご紹介しました。
大規模アジャイル開発での開発統制は、
自由と制約のバランスが大切です。
• リポジトリは、
統一したルールで分かりやすく
• マイクロサービス間の
依存関係に注意
• 試験自動化で、
リリースへの恐怖を克服する
© 2021 NTT DATA Corporation 34 © 2021 NTT DATA Corporation
本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

More Related Content

PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
PDF
リーン開発の本質 公開用
PDF
アジャイル開発の中の設計
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
PDF
それはYAGNIか? それとも思考停止か?
PDF
ドメイン駆動設計をゲーム開発に活かす
PDF
開発速度が速い #とは(LayerX社内資料)
PDF
マルチテナントのアプリケーション実装〜実践編〜
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
リーン開発の本質 公開用
アジャイル開発の中の設計
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
それはYAGNIか? それとも思考停止か?
ドメイン駆動設計をゲーム開発に活かす
開発速度が速い #とは(LayerX社内資料)
マルチテナントのアプリケーション実装〜実践編〜

What's hot (20)

PPTX
Spring Integration 超入門
PDF
カネとAgile(大企業新規事業編) #rsgt2021
PDF
BuildKitの概要と最近の機能
PPTX
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
PDF
Serverless時代のJavaについて
PDF
Dockerからcontainerdへの移行
PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
PPTX
オーバーエンジニアリングって何? #devsumi #devsumiA
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
PDF
分散トレーシング技術について(Open tracingやjaeger)
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
PDF
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
PDF
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
PDF
Javaのログ出力: 道具と考え方
PDF
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
PDF
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
PPTX
どうやらテスト駆動型開発は死んだようです。これからのCI
PDF
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
PDF
【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf
PDF
Python 3.9からの新定番zoneinfoを使いこなそう
Spring Integration 超入門
カネとAgile(大企業新規事業編) #rsgt2021
BuildKitの概要と最近の機能
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
Serverless時代のJavaについて
Dockerからcontainerdへの移行
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
オーバーエンジニアリングって何? #devsumi #devsumiA
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
分散トレーシング技術について(Open tracingやjaeger)
コンテナ未経験新人が学ぶコンテナ技術入門
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Javaのログ出力: 道具と考え方
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
どうやらテスト駆動型開発は死んだようです。これからのCI
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf
Python 3.9からの新定番zoneinfoを使いこなそう
Ad

Similar to クラウドネイティブ時代の大規模ウォーターフォール開発(CloudNative Days Tokyo 2021 発表資料) (20)

PDF
ソフトウェア調達におけるアジャイル開発の要点と現状 Slideshare
PDF
「ALMがもたらす新しいソフトウェア開発へのフェーズの変化とは?」TFSユーザーズ勉強会
PDF
うそのアジャイル、まことのアジャイル 公開用
PDF
アジャイル開発の普及状況と具体事例
PDF
イノベーションスプリント2011 nttデータにおける制約理論を活用した分散アジャイル開発~アジャイルとtocの融合
PDF
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
PDF
Agility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティス
PDF
GCSアジャイル開発を使ったゲームの作り方
PDF
History_of_waterfall_append
PDF
ヒーロー島 Visual Studio 2012
PDF
企業システムにアジャイルは必要か
PDF
はじめてのアジャイル - Agile in a nutshell
PDF
はじめてのアジャイル
PDF
Agile meets BABOK
PDF
Agile 459 | 11/17 資料
PDF
Cloud Native and Agile Approach
PPTX
LiBRA 04.2021 / DevOps
PDF
As a service時代のitガバナンス
PDF
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
PDF
アジャイル事例紹介
ソフトウェア調達におけるアジャイル開発の要点と現状 Slideshare
「ALMがもたらす新しいソフトウェア開発へのフェーズの変化とは?」TFSユーザーズ勉強会
うそのアジャイル、まことのアジャイル 公開用
アジャイル開発の普及状況と具体事例
イノベーションスプリント2011 nttデータにおける制約理論を活用した分散アジャイル開発~アジャイルとtocの融合
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
Agility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティス
GCSアジャイル開発を使ったゲームの作り方
History_of_waterfall_append
ヒーロー島 Visual Studio 2012
企業システムにアジャイルは必要か
はじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル
Agile meets BABOK
Agile 459 | 11/17 資料
Cloud Native and Agile Approach
LiBRA 04.2021 / DevOps
As a service時代のitガバナンス
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
アジャイル事例紹介
Ad

More from NTT DATA Technology & Innovation (20)

PDF
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
PDF
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PDF
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
PDF
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
PDF
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
PDF
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
PDF
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
PDF
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PDF
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
PDF
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
PDF
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
PDF
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
PDF
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
2025年現在のNewSQL (最強DB講義 #36 発表資料)
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...

クラウドネイティブ時代の大規模ウォーターフォール開発(CloudNative Days Tokyo 2021 発表資料)

  • 1. © 2021 NTT DATA Corporation 1 © 2021 NTT DATA Corporation 2021年11月4日 株式会社NTTデータ 開発基盤モダナイズ エバンジェリスト 菅原 亮 / ITスペシャリスト 菅村 泰隆 クラウドネイティブ時代の大規模ウォーターフォール開発 Web公開向け資料
  • 2. © 2021 NTT DATA Corporation 2 はじめに アジャイル開発の手法は日本でも徐々に浸透しつつありますが、 大規模な開発プロジェクトにおいてウォーターフォール開発はまだ主流派です。 ウォーターフォール開発にはウォーターフォールならではの利点もあり、 アジャイル開発にすべてが置き換わることは無いでしょう。 また昨今はアジャイル開発のプラクティスを取り込んで 効率化を目指す動きも活発になってきていますが、 様々な障壁が待ち構えており困難を極めることも少なくありません。 本セッションでは大規模トラディショナルシステムにおける 開発環境のモダナイゼーションを推進してきた経験を基に、 大規模ウォーター開発でのCI/CD適用における障壁や回避策、ブランチ戦略の立て方、 クラウドネイティブ時代にふさわしいウォーターフォール開発の在り方について紹介します。
  • 3. © 2021 NTT DATA Corporation 3 自己紹介 名前: 菅原 亮(すがはら りょう) @denkas1973 所属: 株式会社NTTデータ 技術革新統括本部 システム技術本部 生産技術部 ソフトウェア技術センタ 開発基盤モダナイズ エバンジェリスト 得意な分野: インフラ技術全般、特にインフラ自動化分野 Puppetに関する記事や著書をいろいろ執筆 日本Puppetユーザ会 会長 …最近活動できてないけど
  • 4. © 2021 NTT DATA Corporation 4 自己紹介 名前: 熊川 一平(くまがわ いっぺい) 所属: 株式会社NTTデータ 技術革新統括本部 システム技術本部 生産技術部 ソフトウェア技術センタ イノベータ(ソフトウェアプロセス) 得意な分野: ソフトウェアテストおよび品質保証を中心に、 開発プロセスの標準化やモダナイズに従事 JaSSTなど各種シンポジウムでの受賞歴多数
  • 5. © 2021 NTT DATA Corporation 5 遠く離れた心の距離 大規模ウォーターフォール開発の実情
  • 6. © 2021 NTT DATA Corporation 6 遠く離れた心の距離 すぐ近くに居るはずなのに、近くて遠い、触れたい触れられない… 隣のチームのメンバ、あなたにとって近くて遠い存在ではありませんか? 隣に居るチームのメンバの名前を 僕達はまだ知らない 大規模ウォーターフォール開発の現場では 大抵サブシステム毎にチームが組まれています。 1つのフロアに複数のチームが入っています。 でも隣の列に居る別のチームのメンバ、 誰も名前がわかりません。 リモートになって名前だけでなく、顔までわからなくなった! チームが違うと開発環境、CI/CD仕組み、 さらにはソース管理リポジトリまで別々です。
  • 7. © 2021 NTT DATA Corporation 7 せめて、自分らしく… アジャイル開発は少数精鋭、個人の能力を引き出して高パフォーマンスを得ますが、 ウォーターフォール開発ではプロセス、手順を確立し、組織として対応します。 誰でも、それなりに動けるように 大量のドキュメントが生み出される ウォーターフォール開発においては全てプロセス化、 手順化されることで、属人化が排除されます。 それに伴い個人の能力依存が無くなります。 もちろん組織として、プロジェクト推進の上で 属人化の排除は大事ですが、 代わりに大量のドキュメントが生まれます。 また決められた手順から外れる事は悪とされ、 効率化するモチベーションは削がれます。
  • 8. © 2021 NTT DATA Corporation 8 せめて、自分らしく… アジャイル開発は少数精鋭、個人の能力を引き出して高パフォーマンスを得ますが、 ウォーターフォール開発ではプロセス、手順を確立し、組織として対応します。 誰でも、それなりに動けるように 大量のドキュメントが生み出される ウォーターフォール開発においては全てプロセス化、 手順化されることで、属人化が排除されます。 それに伴い個人の能力依存が無くなります。 組織として、プロジェクト推進の上で 属人化の排除は大事ですが、 代わりに大量のドキュメントが生まれます。 また決められた手順から外れる事は悪とされ、 効率化するモチベーションは削がれます。 この話を思い出してください 大規模オンプレミス環境はGitOpsの夢を見るか(CI/CD Conference 2021 by CloudNative Days 発表資料) https://www.slideshare.net/nttdata-tech/gitops-and-on-premises-ci-cd-conference-2021
  • 9. © 2021 NTT DATA Corporation 9 近づきたいよ、君の理想に 理想の開発スタイルを大規模ウォーターフォール開発でも
  • 10. © 2021 NTT DATA Corporation 10 心の距離を縮めたい クラウドネイティブの理想に恋焦がれる大規模ウォーターフォール開発、 両者の心の距離を縮めるにはどうすればよいのでしょう? 構成管理リポジトリの統合で 離れた心の距離を縮めよう サブシステム毎にチームは分かれていて ソース管理リポジトリもチーム毎に別々に。 いろいろ事情はありますが、まずはリポジトリ統合で 一緒に同じシステムに携わる仲間意識を醸成し、 ツールやCI/CDの仕組みも共通化しましょう。 でも、ブランチ戦略はどうするのが良いの? 一例をご紹介します!
  • 11. © 2021 NTT DATA Corporation 11 心の距離を縮めたい クラウドネイティブの理想に恋焦がれる大規模ウォーターフォール開発、 両者の心の距離を縮めるにはどうすればよいのでしょう? 構成管理リポジトリの統合で 離れた心の距離を縮めよう サブシステム毎にチームは分かれていて ソース管理リポジトリもチーム毎に別々に。 いろいろ事情はありますが、まずはリポジトリ統合で 一緒に同じシステムに携わる仲間意識を醸成し、 ツールやCI/CDの仕組みも共通化しましょう。 でも、ブランチ戦略はどうするのが良いの? 一例をご紹介します! master develop/ST develop/IT ver.1.0 feature/001 feature feature/002 hotfix ver.1.1
  • 12. © 2021 NTT DATA Corporation 12 心の距離を縮めたい クラウドネイティブの理想に恋焦がれる大規模ウォーターフォール開発、 両者の心の距離を縮めるにはどうすればよいのでしょう? 構成管理リポジトリの統合で 離れた心の距離を縮めよう サブシステム毎にチームは分かれていて ソース管理リポジトリもチーム毎に別々に。 いろいろ事情はありますが、まずはリポジトリ統合で 一緒に同じシステムに携わる仲間意識を醸成し、 ツールやCI/CDの仕組みも共通化しましょう。 でも、ブランチ戦略はどうするのが良いの? 一例をご紹介します! master develop/ST develop/IT ver.1.0 feature/001 feature feature/002 hotfix ver.1.1 コード昇格モデル
  • 13. © 2021 NTT DATA Corporation 13 変換したらYAMLファイルだった件 人間に読みやすく書かれたドキュメントはツールで使うため変換が必要ですが、 パラメーターシートからplaybookに転記するようでは本末転倒です。 ドキュメントから設定ファイルを 自動変換する工夫をしよう 大抵のパラメータ―シート類はExcelで作成。 であればVBAでひと手間掛けるだけで 簡単お手軽にYAMLファイルは生成できます。 お客様に成果物として提供するドキュメントとして Excelは残しつつも、各種ツールで利用可能な YAMLファイルを生成できるのでオススメです。 差分管理もExcelより簡単になります。
  • 14. © 2021 NTT DATA Corporation 14 変換したらYAMLファイルだった件 人間に読みやすく書かれたドキュメントはツールで使うため変換が必要ですが、 パラメーターシートからplaybookに転記するようでは本末転倒です。 ドキュメントから設定ファイルを 自動変換する工夫をしよう 大抵のパラメータ―シート類はExcelで作成。 であればVBAでひと手間掛けるだけで 簡単お手軽にYAMLファイルは生成できます。 お客様に成果物として提供するドキュメントとして Excelは残しつつも、各種ツールで利用可能な YAMLファイルを生成できるのでオススメです。 差分管理もExcelより簡単になります。 方眼紙状に正方形のマスが作られた謎書式、 いわゆる“ネ申Excel ” これで変換VBA作るのはほぼ不可能です…
  • 15. © 2021 NTT DATA Corporation 15 変換したらYAMLファイルだった件 人間に読みやすく書かれたドキュメントはツールで使うため変換が必要ですが、 パラメーターシートからplaybookに転記するようでは本末転倒です。 ドキュメントから設定ファイルを 自動変換する工夫をしよう 大抵のパラメータ―シート類はExcelで作成。 であればVBAでひと手間掛けるだけで 簡単お手軽にYAMLファイルは生成できます。 お客様に成果物として提供するドキュメントとして Excelは残しつつも、各種ツールで利用可能な YAMLファイルを生成できるのでオススメです。 差分管理もExcelより簡単になります。 方眼紙状に正方形のマスが作られた謎書式、 いわゆる“ネ申Excel ” これで変換VBA作るのはほぼ不可能です… ただし “ネ申Excel” テメーはダメだ
  • 16. © 2021 NTT DATA Corporation 16 ここまでのまとめ
  • 17. © 2021 NTT DATA Corporation 17 ここまでのまとめ サブシステム毎に分かれたチーム体制に起因する問題の例と解決策、 Excelで作成されたドキュメントを各種ツールで利用する方法をご紹介しました。 リポジトリ統合で「和解」しよう 全体を見れば同じシステムを開発している仲間、 それなのにリポジトリも何もかも別々では非効率です。 リポジトリ統合で共通化、チーム間も「和解」しましょう。 ドキュメントは自動変換しよう ExcelをはじめOffice製品には強力なVBAがあります。 これを使ってYAMLファイルコンバーターを実装して、 納品ドキュメントのフォーマットと両立を図りましょう。
  • 18. © 2021 NTT DATA Corporation 18 さらなる効率化への挑戦
  • 19. © 2021 NTT DATA Corporation 19 さらなる効率化への挑戦(1/2) ウォーターフォール開発にも、アジャイルで活用されるモダンな開発技術を。  軽量でコンパクトな開発標準 箸の上げ下げまで決めるのではなく 思想や考え方を中心に。  デファクト技術の取り込み 古い開発管理技術(SVN,手動テスト…)か ら脱却。
  • 20. © 2021 NTT DATA Corporation 20 さらなる効率化への挑戦(2/2) 例えばExcelの設計書は、Markdown+PlantUMLに。  設計書はプレインテキストに オートシェイプの配置や色使いなど 本質的でないことに拘らないで済む  Gitで管理する ソースと同じように、Pull-Requestでレ ビューが回るので効率的。  web化して情報共有する Hugoを使ってhtml化し、設計書にとって 最も大事な使いやすさを向上。
  • 21. © 2021 NTT DATA Corporation 21 スピーカー交代
  • 22. © 2021 NTT DATA Corporation 22 自己紹介 名前: 菅村 泰隆(すがむら やすたか) 所属: 株式会社NTTデータ 技術革新統括本部 システム技術本部 生産技術部 ソフトウェア技術センタ ソフトウェアアーキテクト 得意な分野: ソフトウェア開発における開発生産性および 品質の安定化を中心に、技術コンサルティ ングや開発プロジェクト支援に従事 バックエンド技術, MSA, Java
  • 23. © 2021 NTT DATA Corporation 23 めぐるめぐるよ時代はめぐる 大規模アジャイル視点の開発統制の重要性
  • 24. © 2021 NTT DATA Corporation 24 開発統制の重要性 システム・ソフトウェアの品質を作り込むには、開発統制が必要不可欠である。 それは、大規模アジャイル開発でも同様です。 大規模アジャイル開発における 開発統制は、 自由と制約のバランスが大切 1. リポジトリは開発の写し鏡 2. 共通化は悪魔の囁き 3. 技術先行の罠を回避せよ
  • 25. © 2021 NTT DATA Corporation 25 開発統制の重要性 システム・ソフトウェアの品質を作り込むには、開発統制が必要不可欠である。 それは、大規模アジャイル開発でも同様です。 1. リポジトリは開発の写し鏡 2. 共通化は悪魔の囁き 3. 技術先行の罠を回避せよ 4. 環境差異をコントロールせよ 「開発ガイドラインを大量に作る」と言うわけではなく、 できるだけ仕組みでカバーしていくこと大切です。 また、開発統制を行うべきポイントを、 納得感ある状況を作り上げる必要があります。 大規模アジャイル開発(SAFe🄬Scaled Agile Framework) SAFe🄬 https://www.scaledagileframework.com/ ART:プロダクト スクラムチームA スクラム チーム B スクラム チーム C … PO SM Dev Team 4, 5名 BO PM RTE SA ART:プロダクト スクラムチームA スクラム チーム B スクラム チーム C … PO SM Dev Team 4, 5名 BO PM RTE SA ART:プロダクトX スクラムチームA スクラム チーム B スクラム チーム C ・・・ PO SM Dev 4, 5名 BO PM RTE SA System Team
  • 26. © 2021 NTT DATA Corporation 26 開発統制の重要性 – 1. リポジトリは開発の写し鏡 大規模開発では、ウォータフォール、アジャイル関係なく、 リポジトリの運用方針を、決めてから開発を進めなければなりません。 大規模ウォータフォール開発では、 リポジトリ運用方針は、開発統制に よって、決められていました。 大規模アジャイル開発では、 アジャイルの名の元に、 各スクラムチームに自由が 与えられました。 その結果…
  • 27. © 2021 NTT DATA Corporation 27 開発統制の重要性 – 1. リポジトリは開発の写し鏡 リポジトリを見ると、そのプロジェクト(チーム)の状況が手に取るように分かります。 そのプロジェクトの名前は何ですか? 大規模ウォータフォール開発では、 リポジトリ運用方針は、決められていました。 大規模アジャイル開発では、 各スクラムチーム単位に自由が 与えられました。 その結果… 大規模開発では、ミッションクリティカルな システムが多く、障害発生時は、迅速に解決 するために、第三者が解析に駆け付けます。 各スクラムチームに自由が与えられたことにより、 個性豊かなリポジトリ構成になりました。 スクラムチームA スクラムチームB スクラムチームC
  • 28. © 2021 NTT DATA Corporation 28 開発統制の重要性 – 1. リポジトリは開発の写し鏡 リポジトリを見ると、そのプロジェクト(チーム)の状況が手に取るように分かります。 そのプロジェクトの名前は何ですか? 大規模ウォータフォール開発では、 リポジトリ運用方針は、決められていました。 大規模アジャイル開発では、 各スクラムチーム単位に自由が 与えられました。 その結果… 大規模開発では、ミッションクリティカルな システムが多く、障害発生時は、迅速に解決 するために、第三者が解析に駆け付けます。 各スクラムチームに自由が与えられたことにより、 個性豊かなリポジトリ構成になりました。 大規模開発では、ミッションクリティカルなシステムが多く、 障害発生時は、迅速に解決するために、第三者が解析に駆け付けます。 何がどこに格納されているか、即座に把握するために、リポジトリの統制は必ず必要です。 スクラムチームA スクラムチームB スクラムチームC
  • 29. © 2021 NTT DATA Corporation 29 開発統制の重要性 – 2. 共通化は悪魔の囁き 大規模ウォータフォール開発では、当たり前の共通化ですが、 マイクロサービス間でコードの共通化をしてはいけません。 マイクロサービス間の共通化は、 マイクロサービスの切り出し以外で 絶対に行ってはいけないんです。 モノリシックなアプリケーションと異なり、 マイクロサービス間は疎結合でなければなりません。 大規模アジャイル開発では、1つのスクラムチームが 複数のマイクロサービスを担当することがあります。 分かっていても、今までのDRYな考えで、マイクロ サービス間に依存を持たせてしまうケースがあります。 マイクロ サービスA マイクロ サービスB マイクロ サービスC 共通業務 ロジックAB 共通業務 ロジックBC 共通業務 ライブラリ 業務ロジック 業務ロジック 業務ロジック
  • 30. © 2021 NTT DATA Corporation 30 開発統制の重要性 – 2. 共通化は悪魔の囁き 大規模ウォータフォール開発では、当たり前の共通化ですが、 マイクロサービス間でコードの共通化をしてはいけません。 マイクロサービス間の共通化は、 マイクロサービスの切り出し以外で 絶対に行ってはいけないんです。 モノリシックなアプリケーションと異なり、 マイクロサービス間は疎結合でなければなりません。 大規模アジャイル開発では、1つのスクラムチームが 複数のマイクロサービスを担当することがあります。 分かっていても、今までのDRYな考えで、マイクロ サービス間に依存を持たせてしまうケースがあります。 マイクロ サービスA マイクロ サービスB マイクロ サービスC 共通業務 ロジックAB 共通業務 ロジックBC 共通業務 ライブラリ 業務ロジック 業務ロジック 業務ロジック
  • 31. © 2021 NTT DATA Corporation 31 開発統制の重要性 – 3. 技術先行の罠を回避せよ 日進月歩であるクラウドネイティブ技術を取り入れるのであれば、 アジリティのある組織に変革し、試験自動化を成し遂げなければなりません。 「リリースすることへの恐怖」を克服 することはできていますか? 商用故障が許されない日本において、 できるだけリリースをしたくはないのが本音です。 クラウドネイティブ技術を利用し、 冪等性を担保する試験自動化を整備すれば、 その恐怖を克服できるかもしれません。 試験の自動化は、ユーザストーリー(E2E), API(マイ クロサービス), UT と3段階に分けて実現します。 そのためにもクラウドネイティブの技術は最適です。
  • 32. © 2021 NTT DATA Corporation 32 まとめ
  • 33. © 2021 NTT DATA Corporation 33 まとめ 大規模アジャイル開発での開発統制の重要性について、 CI/CD関連の実例をご紹介しました。 大規模アジャイル開発での開発統制は、 自由と制約のバランスが大切です。 • リポジトリは、 統一したルールで分かりやすく • マイクロサービス間の 依存関係に注意 • 試験自動化で、 リリースへの恐怖を克服する
  • 34. © 2021 NTT DATA Corporation 34 © 2021 NTT DATA Corporation 本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。