SlideShare a Scribd company logo
1 of 34
© 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

What's hot

What's hot (20)

開発者の生産性向上を妨げる障壁と サイボウズの生産性向上チームの取り組み
開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み
開発者の生産性向上を妨げる障壁と サイボウズの生産性向上チームの取り組み
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
 
Fargateを使いこなす!creatiaのインフラを支える技術について
Fargateを使いこなす!creatiaのインフラを支える技術についてFargateを使いこなす!creatiaのインフラを支える技術について
Fargateを使いこなす!creatiaのインフラを支える技術について
 
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
 
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiAオーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
 
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
 
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
Keycloak入門
Keycloak入門Keycloak入門
Keycloak入門
 

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

伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
Akiko Kosaka
 
デブサミ2010 これからのアーキテクチャを見通す
デブサミ2010 これからのアーキテクチャを見通すデブサミ2010 これからのアーキテクチャを見通す
デブサミ2010 これからのアーキテクチャを見通す
Yusuke Suzuki
 
デバイスをセキュアにつないで可視化する – Azure Sphere、Digital Twin紹介_IoTビジネス共創ラボ 第10回 勉強会
デバイスをセキュアにつないで可視化する – Azure Sphere、Digital Twin紹介_IoTビジネス共創ラボ 第10回 勉強会 デバイスをセキュアにつないで可視化する – Azure Sphere、Digital Twin紹介_IoTビジネス共創ラボ 第10回 勉強会
デバイスをセキュアにつないで可視化する – Azure Sphere、Digital Twin紹介_IoTビジネス共創ラボ 第10回 勉強会
IoTビジネス共創ラボ
 

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

【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
 
メタバースの始め方、たとえば製造業でのデジタルツインとは?
メタバースの始め方、たとえば製造業でのデジタルツインとは?メタバースの始め方、たとえば製造業でのデジタルツインとは?
メタバースの始め方、たとえば製造業でのデジタルツインとは?
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvc
 
Dx private conf_20190628_004
Dx private conf_20190628_004Dx private conf_20190628_004
Dx private conf_20190628_004
 
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
 
Low-Codeプログラミングシステム Node-REDとその応用
Low-CodeプログラミングシステムNode-REDとその応用Low-CodeプログラミングシステムNode-REDとその応用
Low-Codeプログラミングシステム Node-REDとその応用
 
ブロックチェーン間のインターオペラビリティ概論
ブロックチェーン間のインターオペラビリティ概論ブロックチェーン間のインターオペラビリティ概論
ブロックチェーン間のインターオペラビリティ概論
 
IOT and Lean Manifacturing
IOT and Lean ManifacturingIOT and Lean Manifacturing
IOT and Lean Manifacturing
 
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
Epics - オープンソース開発にインセンティブ革命を.pdf
Epics - オープンソース開発にインセンティブ革命を.pdfEpics - オープンソース開発にインセンティブ革命を.pdf
Epics - オープンソース開発にインセンティブ革命を.pdf
 
Ti dd force09
Ti dd force09Ti dd force09
Ti dd force09
 
デブサミ2010 これからのアーキテクチャを見通す
デブサミ2010 これからのアーキテクチャを見通すデブサミ2010 これからのアーキテクチャを見通す
デブサミ2010 これからのアーキテクチャを見通す
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来
Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来
Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来
 
デバイスをセキュアにつないで可視化する – Azure Sphere、Digital Twin紹介_IoTビジネス共創ラボ 第10回 勉強会
デバイスをセキュアにつないで可視化する – Azure Sphere、Digital Twin紹介_IoTビジネス共創ラボ 第10回 勉強会 デバイスをセキュアにつないで可視化する – Azure Sphere、Digital Twin紹介_IoTビジネス共創ラボ 第10回 勉強会
デバイスをセキュアにつないで可視化する – Azure Sphere、Digital Twin紹介_IoTビジネス共創ラボ 第10回 勉強会
 
VSUGアーキテクトパネル アーキテクトはテクノロジーの進化にどのように対応してきたか
VSUGアーキテクトパネル アーキテクトはテクノロジーの進化にどのように対応してきたかVSUGアーキテクトパネル アーキテクトはテクノロジーの進化にどのように対応してきたか
VSUGアーキテクトパネル アーキテクトはテクノロジーの進化にどのように対応してきたか
 
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
 
ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
 

More from NTT DATA Technology & Innovation

More from NTT DATA Technology & Innovation (20)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Recently uploaded

Recently uploaded (10)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

クラウドネイティブ時代の大規模ウォーターフォール開発(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 本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。