SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
ゆらぎのある決定
グロースエクスパートナーズ(株)
ITアーキテクト 和智 右桂
DevLove Kanai 2014.12
和智 右桂
JavaEE勉強会 所属
グロースエクスパートナーズ株式会社 勤務
Yukei Wachi
@digitalsoul0124
Digital Romanticism
http://d.hatena.ne.jp/digitalsoul
ネコ好き
Photo by @digitalsoul0124 All rights reserved.
IT アーキテクト
時々翻訳をしています
Coming
Soon !
•導入
•事前に決めるべきこと
•まとめ
アジェンダ
Photo by @digitalsoul0124 All rights reserved.
スライド中で使用されている画像について、
その著作権の全部または一部は、 クレジットに示した著者によって保留されています。
導入
アーキテクチャとは静的な構造?
https://www.flickr.com/photos/prasad-om/9840576823
プロダクトとチームは切り離せない
https://www.flickr.com/photos/statuelibrtynps/62767579
アジャイルにおける事前の決定とは?
https://www.flickr.com/photos/weesen/5564647782
変化を受け入れる
• 最初にすべてを決めるわけではない
• 変化をどのように受け入れるかは、
最初に決めなければならない
完全な最終形は描けない
事前に
決めるべきこと
https://www.flickr.com/photos/92334668@N07/11122773785
何を決めるべきなのか?
システムドメイン
プロセス
ドメイン
ドメインとは
• システムが対象とする業務領域
• ビジネスモデルとその実現フローの
存在が前提
• ビジネスモデルの策定とはまた
別の活動
やるべきこと
• スコープ策定
• アクター抽出
• ドメインの境界策定
• モデリング
いわゆる「機能」との違い
• いわゆる機能一覧も必要だが、目的
はどちらかというと「見積もり」あ
るいは「インデックス作り」
• 画面/帳票/バッチ
• ドメインの方は関係性が重要
• 境界/関係
ドメイン駆動設計について
ポイント
• ユーザーのドメイン知識およびメン
タルモデルに従うモデリングが重要
• ユーザーから学び、ユーザーに
フィードバックする
• 実装形式にこだわりすぎない方がよ
さそう
• レイヤリングは常に重要
ドメイン抽出の契機
基本は高凝集・低結合
•外圧:顧客の視点から
•内圧:開発者の視点から
目的の違い
「サマリーレベル」(雲ま
たは凧)のユーザーゴール
広告 注文 請求
広告を
作る
広告を
参照する
注文する
請求書を
作る
請求書を
送る
Alister Cockburn Writing Effective Use Cases Addison-Wesley 2001 p.62
外圧
発芽
業務上重要な概念が
ある程度の粒度に成長する
航海
積載量
貨物
サイズ
*
仕様書
ドメインモデル
ソースコード
<script
var a=
var xl
if(xls
10 %のオーバーブッキングを認める
// 貨物を追加する
int 予約済み貨物量 = …
if(オーバーブッキングポリシー.allows(貨物, 航海)){
 // 予約できない
 return … ;
}
貨物予約ドメイン
オーバーブッキング
ポリシー
{貨物のサイズの合計 < 航海の積載量 * 1.1}
外圧
横断的関心
業務的な関心が
複数のドメインにまたがる
広告
注文
請求
権限
外圧
変化の可能性
特定の仕様が近い将来、
なんらかの理由で頻繁に
変化する可能性が高い
外圧
パラダイムの違い
E-Rモデルと状態遷移や
デシジョンテーブルなど
ER_Diagram http://www.flickr.com/photos/declankenny/4815835068/ by DeclanKenny
http://upload.wikimedia.org/wikipedia/commons/b/be/UML_state_diagram.png
内圧
複雑度の違い 内圧
ドメインを実装していて
極端に仕様が複雑な場所が
発見される
システム
システムとは
• 技術カットでのいわゆる「アーキテ
クチャ」
• インフラアーキテクチャ
• ソフトウェアアーキテクチャ
• 実現方法
• フレームワーク
• モジュール分割方針
• 各種方式設計
やるべきこと
<script
var a=
var xl
if(xls
SQL
SQLテンプレート
パラメタ
結果セット
Search
Small Pop-Up
Pop-Up Menu
Small Combo
Combo Box
Bits
BobsThings
Stuff
OKCancel
Label
Ends
Odds
Help
Tag
Explanotext
A Very Nice Window Indeed
SIDEBAR
Search
Odds
Ends
UI
<script
var a=
var xl
if(xls
入力チェック
<script
var a=
var xl
if(xls
編集ロジック
データベース
DBアクセス
機能追加の
コスト
ロジックの複雑度
トランザクションスクリプト
ドメインモデル
基本はシンプルにhttps://www.flickr.com/photos/infomastern/14519782386
プロセス
プロセスとは
• システムをどのように開発していくか
• どのようなチーム構成になるか
やるべきこと
• スケジュール策定
• 工程定義
• 成果物定義
• チーム構成
つまりプロジェクトの組み立て
フィードバックループの確立https://www.flickr.com/photos/infomastern/14519782386
要件
設計
実装
テスト
リリース
バリューストリーム
• 要件が形になるまでの流れ
継続的デリバリーとは
               バージョンコントロール
成果物リポジトリ
ソース
コード
環境&アプリ
設定
環境&アプリ
設定
コミットステージ
コンパイル
コミットテスト
アセンブル
コード分析
受け入れステージ
環境設定
バイナリデプロイ
スモークテスト
受け入れテスト
UAT
環境設定
バイナリデプロイ
スモークテスト
キャパシティステージ
環境設定
バイナリデプロイ
スモークテスト
本番
環境設定
バイナリデプロイ
スモークテスト
レポート
バイナリ
メタデータ
開発者
コードメトリクスと
テストの失敗を確認する
レポート
メタデータ
バイナリ
テスター
自分で
デプロイ
運用
ボタン1つで
リリース
バイナリ
レポート
メタデータ
デプロイメントパイプライン
開発チーム
ユーザ
運用チーム
リポジトリ
CIサーバ
テスト環境
課題管理ツール
本番環境 エンドユーザ
システムをとりまく人の動き
スクラムとは
バリューストリームのフレームワーク
ステークホルダー
防火壁(4.2.9)
生産者(4.1.3)
顧客
開発者
アーキテクチャチーム(5.2.4)
アーキテクト
プロジェクトマネージャー
作業が内側に流れる(4.1.18)
ロールが生み出す情報の流れ
それぞれの関係
https://www.flickr.com/photos/4st4roth/2366615948
個別に考えられない
ドメインとシステムの関係
ソフトウェアアーキテクチャは
ドメインのパラダイムと無関係
ではいられない
ソフトウェアアーキテクチャの
境界はドメインの境界に従う
ドメインとプロセスの関係
チームの構成はドメインの構成
に従う
変化の速度はドメインに応じて
異なる
システムとプロセスの関係
成果物はソフトウェアアーキテ
クチャに従う
ソフトウェアアーキテクチャは
チームのスキルに制限される
最初の方針に従い、
プロダクトとチームは成長する
https://www.flickr.com/photos/ervins_strauhmanis/14000932121
まとめ
• アーキテクチャはプロダクトとチー
ムの全体の方向性を規定する。
• ドメイン
• システム
• プロセス
• プロダクトとチームはアーキテクチャ
の定める方向に向けて、時間と共に
成長していく。
ありがとうございました!
Photo by @digitalsoul0124 All rights reserved.

Weitere ähnliche Inhalte

Was ist angesagt?

アジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたことアジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたこと
Arata Fujimura
 
【15-B-1】AmazonのDevOpsを支えるAWSクラウド
【15-B-1】AmazonのDevOpsを支えるAWSクラウド【15-B-1】AmazonのDevOpsを支えるAWSクラウド
【15-B-1】AmazonのDevOpsを支えるAWSクラウド
Yasuhiro Horiuchi
 
Techlion vol8 yusuke #techlion
Techlion vol8 yusuke #techlionTechlion vol8 yusuke #techlion
Techlion vol8 yusuke #techlion
Yusuke Yamamoto
 

Was ist angesagt? (13)

アジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたことアジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたこと
 
【15-B-1】AmazonのDevOpsを支えるAWSクラウド
【15-B-1】AmazonのDevOpsを支えるAWSクラウド【15-B-1】AmazonのDevOpsを支えるAWSクラウド
【15-B-1】AmazonのDevOpsを支えるAWSクラウド
 
プロジェクト管理ツールを使いこなせるようになった現場の話
プロジェクト管理ツールを使いこなせるようになった現場の話プロジェクト管理ツールを使いこなせるようになった現場の話
プロジェクト管理ツールを使いこなせるようになった現場の話
 
アジャイルによくきく?モデリング
アジャイルによくきく?モデリングアジャイルによくきく?モデリング
アジャイルによくきく?モデリング
 
アジャイルで忘れてしまったもの… そして、再び拾い集めたもの
アジャイルで忘れてしまったもの… そして、再び拾い集めたものアジャイルで忘れてしまったもの… そして、再び拾い集めたもの
アジャイルで忘れてしまったもの… そして、再び拾い集めたもの
 
Modeling×tdd×ddd
Modeling×tdd×dddModeling×tdd×ddd
Modeling×tdd×ddd
 
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
 
僕らがQiitaをゴリゴリ書く理由
僕らがQiitaをゴリゴリ書く理由僕らがQiitaをゴリゴリ書く理由
僕らがQiitaをゴリゴリ書く理由
 
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiAワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
 
TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)
 
Techlion vol8 yusuke #techlion
Techlion vol8 yusuke #techlionTechlion vol8 yusuke #techlion
Techlion vol8 yusuke #techlion
 
おやつ神社
おやつ神社おやつ神社
おやつ神社
 
ModelingCafe
ModelingCafeModelingCafe
ModelingCafe
 

Ähnlich wie ゆらぎのある決定

設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
Takuya Sato
 
株式会社サイバーエージェント アドテクスタジオの技術と開発
株式会社サイバーエージェント アドテクスタジオの技術と開発株式会社サイバーエージェント アドテクスタジオの技術と開発
株式会社サイバーエージェント アドテクスタジオの技術と開発
Naoyuki Yamada
 

Ähnlich wie ゆらぎのある決定 (20)

俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
 
プロジェクト管理ツールを使いこなせるようになった現場の話
プロジェクト管理ツールを使いこなせるようになった現場の話プロジェクト管理ツールを使いこなせるようになった現場の話
プロジェクト管理ツールを使いこなせるようになった現場の話
 
実践サーバレスアーキテクチャ
実践サーバレスアーキテクチャ実践サーバレスアーキテクチャ
実践サーバレスアーキテクチャ
 
僕らのデータ同期プラクティス
僕らのデータ同期プラクティス僕らのデータ同期プラクティス
僕らのデータ同期プラクティス
 
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはアジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とは
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
エナジャイル設立によせて
エナジャイル設立によせてエナジャイル設立によせて
エナジャイル設立によせて
 
SGT技術トークス 継続的デリバリー
SGT技術トークス 継続的デリバリーSGT技術トークス 継続的デリバリー
SGT技術トークス 継続的デリバリー
 
雲の上の継続的デリバリー - Cloudforce Japan 2012
雲の上の継続的デリバリー - Cloudforce Japan 2012雲の上の継続的デリバリー - Cloudforce Japan 2012
雲の上の継続的デリバリー - Cloudforce Japan 2012
 
「納品のない受託開発」とこれからの受託開発について
「納品のない受託開発」とこれからの受託開発について「納品のない受託開発」とこれからの受託開発について
「納品のない受託開発」とこれからの受託開発について
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
 
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
 
Pokelabo android web
Pokelabo android webPokelabo android web
Pokelabo android web
 
DevLOVE甲子園日本シリーズLT
DevLOVE甲子園日本シリーズLTDevLOVE甲子園日本シリーズLT
DevLOVE甲子園日本シリーズLT
 
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
 
ウォーターフォールとアジャイルを考える #ita_ws
ウォーターフォールとアジャイルを考える #ita_wsウォーターフォールとアジャイルを考える #ita_ws
ウォーターフォールとアジャイルを考える #ita_ws
 
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
 
Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)
Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)
Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)
 
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_ltDoozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
 
株式会社サイバーエージェント アドテクスタジオの技術と開発
株式会社サイバーエージェント アドテクスタジオの技術と開発株式会社サイバーエージェント アドテクスタジオの技術と開発
株式会社サイバーエージェント アドテクスタジオの技術と開発
 

Mehr von Yukei Wachi

Future Center@Junkudo
Future Center@JunkudoFuture Center@Junkudo
Future Center@Junkudo
Yukei Wachi
 
Behaviour And Model
Behaviour And ModelBehaviour And Model
Behaviour And Model
Yukei Wachi
 

Mehr von Yukei Wachi (15)

エヴァンス本から今学べること
エヴァンス本から今学べることエヴァンス本から今学べること
エヴァンス本から今学べること
 
価値の源流に向かう旅
価値の源流に向かう旅価値の源流に向かう旅
価値の源流に向かう旅
 
スモールリーダーシップ読書会ワークショップ
スモールリーダーシップ読書会ワークショップスモールリーダーシップ読書会ワークショップ
スモールリーダーシップ読書会ワークショップ
 
「言葉の地図」でチームの議論をスムーズに
「言葉の地図」でチームの議論をスムーズに「言葉の地図」でチームの議論をスムーズに
「言葉の地図」でチームの議論をスムーズに
 
ざっくり DDD 入門!!
ざっくり DDD 入門!!ざっくり DDD 入門!!
ざっくり DDD 入門!!
 
人が作るソフトウェア 〜今組織パターンを読む意味〜
人が作るソフトウェア 〜今組織パターンを読む意味〜人が作るソフトウェア 〜今組織パターンを読む意味〜
人が作るソフトウェア 〜今組織パターンを読む意味〜
 
世界をすこしだけ前に進めるということ
世界をすこしだけ前に進めるということ世界をすこしだけ前に進めるということ
世界をすこしだけ前に進めるということ
 
テスト駆動開発の進化
テスト駆動開発の進化テスト駆動開発の進化
テスト駆動開発の進化
 
教科書と現場のあいだ
教科書と現場のあいだ教科書と現場のあいだ
教科書と現場のあいだ
 
Future Center@Junkudo
Future Center@JunkudoFuture Center@Junkudo
Future Center@Junkudo
 
Growing Grails Software, Driven by Domain
Growing Grails Software, Driven by DomainGrowing Grails Software, Driven by Domain
Growing Grails Software, Driven by Domain
 
戦略的設計入門
戦略的設計入門戦略的設計入門
戦略的設計入門
 
Model on Grails
Model on GrailsModel on Grails
Model on Grails
 
DDD Part3 Retrospective
DDD Part3 RetrospectiveDDD Part3 Retrospective
DDD Part3 Retrospective
 
Behaviour And Model
Behaviour And ModelBehaviour And Model
Behaviour And Model
 

Kürzlich hochgeladen

Kürzlich hochgeladen (7)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

ゆらぎのある決定