SlideShare a Scribd company logo
1 of 39
Download to read offline
ソフトウェア設計における
意思決定とそのレビューの秘訣
川島 義隆
@kawasima
JaSST Review'20 
7
Software development is
an ignorance-reduction activity
8
Architectureとは
●
Martin Fowler 「重要かつ変更が困難な意思決定であ
る」
●
Grady Booch 「システムを形作る重要な設計上の意思決
定であり、その重要性は変更のコストによって測られる」
●
Michael Keeling「ソフトウェアが望ましい品質特性や他
の性質をどうやって達成していくかについての重要な設計
上の意思決定である」 Design It!
Architecturally Significant Requirements (ASR)
9
Architectural Significant Requirements
構造
アーキテクチャのパターンやスタイルに影響を与える決定
例) マイクロサービス間のデータの共有の仕方
機能特性
技術の選択がパフォーマンスに影響を与え、パフォーマンスがアプリケーションの重要な側面である場合
例) APIのプロトコル RESTful? GraphQL? gRPC?
依存関係
システム内のコンポーネントやサービス間の統合点。システム全体のスケーラビリティ、モジュラリティ、ア
ジリティ、テスト容易性、信頼性に影響を与える。
例) サービスをどう分割するか?
インタフェース
サービスやコンポーネントがどのようにアクセスされ、どのようにオーケストレーションされるか。
例) APIをコールするか? EventをPub/Subするか?
「Fundamentals of Software Architecture」 より
10
設計上の重要な意思決定アーキテクチャ
アーキテクチャ設計の記録 意思決定の記録
アーキテクチャ設計の記録のレビュー 意思決定の記録のレビュー
11
Architecture Decision Record(ADR)
アーキテクチャ上の意思決定を記録するフォーマット
Title: タイトル
Status: 意思決定の状態
Context: 決定を迫られている状況
Decision: 代替案と選択した決定事項
Consequence: 予想される結果/実際の結果
Title: タイトル
Status: 意思決定の状態
Context: 決定を迫られている状況
Decision: 代替案と選択した決定事項
Consequence: 予想される結果/実際の結果
12
ADRの目的
こういう事態を防ぎたい
●
プロジェクト新規参画者が、決定の背景を知らずに「古臭
い」などを理由に、既存の仕組みを置き換えてしまう。
●
過去の意思決定した状況とは大きく変わってしまっている
のに、見直しがされない
13
ADRの例
システムAの更新データをシステムBに同期させる方式
ステータス: Accepted
コンテキスト
– システムAでの更新は、Bでも参照するので、ほぼリアルタイムで送信したい。
– B→Aの同期に関しては、今のところ存在しないので考えなくて良い。
決定
– 案1: Kafkaでメッセージを同期させる
●
[Cons] 設定を適切にできる要員がいない。
– 案2: AWS SQSを使い、メッセージを同期させる
●
[Pros] マネージドなサービスなので、構築が簡単
●
[Cons] メッセージのサイズ上限がある。
– 案3: システムBにAPIの口を作って呼ぶ
●
[Cons] システムB側に対応してもらう必要がある。
●
[Cons] システムBがダウンしていると同期ができない。
14
特にコンテキストをしっかり書いていると
第三者レビューがやりやすい
15
Architecture Decisionの主要レビューポイント
●
コンテキストに書かれた前提や制約が確かなも
のであるか?
●
代替案が論理的に検討され、公平な評価をもっ
てデシジョンが導き出されているか?
16
垂直思考と水平思考
●
垂直思考
– いわゆるロジカルシンキング
– 代替案をMECEに検討し、思考を掘り下げる
●
水平思考
– 思考の幅をひろげ、本質を考える
– 「抽象化」と「常識を疑うこと」が鍵
「ずるい考え方 ゼロから始めるラテラルシンキング入門」
17
ADRと思考の方向性の対応
18
デシジョンにおける代替案の検討 ⇒ 垂直思考
コンテキストの抽象化と多角的検討 ⇒ 水平思考
19
垂直思考:デシジョン
●
評価軸を定め、そのバリエーションにより取り
うる代替案を洗い出す
●
代替案それぞれについて、各評価軸について
Pros/Consを公正な目で記述する。
●
さらに細かい決定が必要ならば、ドリルダウン
したADRを作る
20
水平思考:コンテキスト
●
問題を理解する
– 明らかなファクトは何か?
– 条件は何か? 各条件が直交しているか?
– 制約は何か? 時間/お金/人など観点が足りている?
●
これらを書き下し「解決すべき状況」として記
述する
21
水平思考の肝: 抽象化
●
コンテキストは「解決すべき問題」が記述され
ているか? 手段が書かれていないか?
●
類似の問題をかき集め、共通点を見いだす
●
近い将来起こることが予想される、追加される
機能や環境の変化を含めて考えると…
22
水平思考の肝: 疑いの目
●
前提条件/制約を疑う、緩和する
– 「〇〇さんが言ってるから」みたいな根拠は覆りや
すい
– この条件/制約を緩和できれば、代替案検討に大き
なインパクトがあるのに…
– 時間経過による制約の変化はあるか?
23
視点・視野・視座と意思決定構造の関連性
視野視点 視座
どこに着目するか 見えている範囲 見ているものの抽象度
代替案の評価・選択 代替案をどれだけ出せ
るか
コンテキストを適切に
捉えているか?
センス
(という名の結局は論理性)
経験 職位
影響する箇所
左右する要素
24
ADRレビュー虎の巻
25
「枝葉末節」に思える問題設定
●
症状
– 解決したい課題がとてもSpecificで、代替案の良し悪しを評価しづらい
●
原因
– 「視点」のズレ
●
対策
– 対話しながら、ロジックツリーを逆向きに再構成する。
– もともとの目的を導き出す。
例) https://jflute.hatenadiary.jp/entry/20170611/askingway1
29
似通った代替案
●
症状
– 代替案にあまり大きな差異がなく、どれ選んでも好みの問題に
思える
●
原因
– 視野が狭い
– コンテキストの不足
●
対策
– 対話により代替案の評価軸を加えてやる
32
不公平な代替案
●
兆候
– 特定の代替案だけ、Pros/Consがたくさん書いてある。
●
原因
– 暗に結論ありきで代替案の評価を書いている。
– 勘の鋭い人が陥りがち
●
対策
– 評価軸を明確にし、各案に対してPros/Consを公平に列挙する。
33
「先日のあれ、松・竹・梅の3案考えてきました」
「竹案だけやたら深堀られてない? (極端回避性を使ってきているな…!)」
35
Specific過ぎるコンテキスト
●
症状
– 達成したい姿とADRの内容に乖離がある感じがする
●
原因
– 抽象化の不足 (手段の目的化)
●
対策
– コンテキストの抽象レベルを一段階あげる
– 場合によっては上位組織にエスカレーション
36
とある旅行系スタートアップ
「リテンション強化のために会員機能を作りたい」
●
会員機能を作るとこれらの機能が必要になる
- 会員登録
- パスワード変更
- パスワード再発行
- ID(メールアドレス変更)
- メールアドレスが上手くできなかったときの問合せ窓口
●
非会員でも同じ機能が使える場合、ログインしたらそれを引き継ぎたい。
37
本当に達成したいのは、リテンション強化であり会員機能ではない。
会員機能そのものがリテンションに効くわけではない。
その時点で考えられていた機能は、「物件のお気に入り登録」のみ
38
●
非会員ではクッキーに保存したIDで、会員はメールアドレスを
キーに、お気に入りを管理する
●
「会員」という言葉は使わない。
●
メールアドレスに結びつけたユーザは、メールアドレスを入力す
ると、ログインリンクがメールで送られ、それをクリックする
と、お気に入りが見れる。
●
「会員」ではないので、メールアドレス変更などには特に対応し
ない。
39
八方塞がり
●
症状
– どの代替案も決め手を欠く
●
原因
– 前提条件・制約が厳しすぎる/現状に寄り添い過ぎている
●
対策
– コンテキストのうち、緩める/諦めることができるものがない
かを議論する
– 場合によっては上位組織にエスカレーション
40
広告掲載サイト
クライアント毎に購入した枠数分(月次)だけ、記事掲載できます。
●
毎月、翌月分の枠数だけ載せる記事をクライアントに入稿してもらいます。
●
記事は当月分のものと同じものを流用して入稿することも可能です。
●
記事は掲載前に内容の審査を行うため、3営業日前までにクライアントに入稿してもらう必要が
あります。
●
入稿された記事は、カスタマ向けサイトに内容をコピーすることで表示・検索されるようにな
ります。
41
記事作成
掲載処理
記事審査
次月の掲載枠購入
一見シンプルだが、掲載処理に回した後のキャンセルや、枠数に満たな
い場合の催促など、異例処理がたくさん潜んでいる。
42
記事作成
掲載処理
記事審査
次月の掲載枠購入
購入枠の買い増し
キャンペーン用原稿を
先に入稿したい
入稿数不足分の督促
掲載処理確定後の差し替え
43
そもそも解決したい課題は何か?
↓
クライアントが掲載レディなものを、購入した枠
数分だけ勝手に掲載してほしい
↓
掲載枠購入と記事作成を業務上、密に連携させる
必要はない。
44
記事作成
掲載処理
記事審査
次月の掲載枠購入
記事作成
掲載順位指定 掲載候補原稿としてストック
45
≡ 秋の料理特集
≡ ヘルシーレシピ
≡ 残り物で作るスペシャルコース
≡ …
↑次月掲載予定ライン
46
抽象レベルの違いによる衝突
●
症状
– 「そもそも〜」の話に言及しすぎて、レビューイの顔色が曇る
●
原因
– 抽象レベルの違い
●
抽象度の低い方から、高い方は見えない
●
対策
– 「垂直思考/水平思考」「視点・視野・視座」の構造を共有する
– 「そもそも〜」の話に悪意がないことを、相手に理解してもらう
47
緊急度に合わせた抽象レベルのチューニング
●
症状
– レビューイは答えを欲しがっているが、レビューアが前提その他が気に
なって、話が進まない。
●
原因
– 急ぎ「答え」が求められているときに、水平思考のレビューをしてしまう
●
対策
– まず意思決定の緊急度合いを確認し、決定が技術的負債を生むものであれ
ば、暫定対処と恒久対処にADRを分割する
48
中身に入る前に場のセッティングを
いきなり「レビュー」を始めるのではなく、
「これこれこういう理由で、コンテキストを水
平思考で確認する」というのを先に宣言し、
参加者全員で合意してスタートしよう。
49
Wrap up
50
●
視点・視野・視座の足りないところを補える人をレ
ビューアに選定しよう。
●
意思決定のレビューには、垂直思考だけでなく水平
思考も重要である。
●
だが、抽象化や疑いの目は、反感を招くので、感情
ではなく形式的にそうやっているということを、事
前に参加者全員で合意しよう。

More Related Content

What's hot

フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugItsuki Kuroda
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門増田 亨
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
システムダウンのひみつ
システムダウンのひみつシステムダウンのひみつ
システムダウンのひみつYoshitaka Kawashima
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計増田 亨
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveTokoroten Nakayama
 
イマドキのExcelスクショの撮り方
イマドキのExcelスクショの撮り方イマドキのExcelスクショの撮り方
イマドキのExcelスクショの撮り方Yoshitaka Kawashima
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース増田 亨
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCdisc99_
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?takezoe
 
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回Yoshiki Hayama
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?Yoshitaka Kawashima
 
「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことかYoshiki Hayama
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計sairoutine
 

What's hot (20)

フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
システムダウンのひみつ
システムダウンのひみつシステムダウンのひみつ
システムダウンのひみつ
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
イマドキのExcelスクショの撮り方
イマドキのExcelスクショの撮り方イマドキのExcelスクショの撮り方
イマドキのExcelスクショの撮り方
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
 
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか
 
Tackling Complexity
Tackling ComplexityTackling Complexity
Tackling Complexity
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
 

Similar to ソフトウェア設計における 意思決定とそのレビューの秘訣

Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfMasahiko Umeno
 
Devlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのかDevlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのかYusuke Suzuki
 
設計品質とアーキテクチャ
設計品質とアーキテクチャ設計品質とアーキテクチャ
設計品質とアーキテクチャToru Koido
 
エンタープライズ.Net アーキテクチャ設計編
エンタープライズ.Net アーキテクチャ設計編エンタープライズ.Net アーキテクチャ設計編
エンタープライズ.Net アーキテクチャ設計編Akihiro Ehara
 
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011Yusuke Suzuki
 
第ⅴ部:clean architecture アーキテクチャ Part3
第ⅴ部:clean architecture アーキテクチャ Part3第ⅴ部:clean architecture アーキテクチャ Part3
第ⅴ部:clean architecture アーキテクチャ Part3tak
 
RHF2021_ポイントは業務視点.pdf
RHF2021_ポイントは業務視点.pdfRHF2021_ポイントは業務視点.pdf
RHF2021_ポイントは業務視点.pdfMasahiko Umeno
 
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善Hironori Washizaki
 
ソフトウェア工学における問題提起と機械学習の新たなあり方
ソフトウェア工学における問題提起と機械学習の新たなあり方ソフトウェア工学における問題提起と機械学習の新たなあり方
ソフトウェア工学における問題提起と機械学習の新たなあり方MLSE
 
ゴール指向要求分析における構成要素に着目した分解に関する一考察
ゴール指向要求分析における構成要素に着目した分解に関する一考察ゴール指向要求分析における構成要素に着目した分解に関する一考察
ゴール指向要求分析における構成要素に着目した分解に関する一考察Michitaro Okano
 
ドメイン駆動設計と要求開発
ドメイン駆動設計と要求開発ドメイン駆動設計と要求開発
ドメイン駆動設計と要求開発Kent Ishizawa
 
クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割Yusuke Oi
 
札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」
札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」
札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」Yusuke Suzuki
 
Microsoft PowerApps ビジョンとロードマップ 2019年秋
Microsoft PowerApps ビジョンとロードマップ 2019年秋Microsoft PowerApps ビジョンとロードマップ 2019年秋
Microsoft PowerApps ビジョンとロードマップ 2019年秋Taiki Yoshida
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程Hidetoshi Mori
 
今更ながらの「マイクロサービス」
今更ながらの「マイクロサービス」今更ながらの「マイクロサービス」
今更ながらの「マイクロサービス」Hideaki Tokida
 
SQLアンチパターン「ディプロマティック・イミュニティ」
SQLアンチパターン「ディプロマティック・イミュニティ」SQLアンチパターン「ディプロマティック・イミュニティ」
SQLアンチパターン「ディプロマティック・イミュニティ」Hiroyuki Ohnaka
 
なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423
なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423
なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423Yusuke Suzuki
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvcTakao Tetsuro
 

Similar to ソフトウェア設計における 意思決定とそのレビューの秘訣 (20)

Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdf
 
Devlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのかDevlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのか
 
設計品質とアーキテクチャ
設計品質とアーキテクチャ設計品質とアーキテクチャ
設計品質とアーキテクチャ
 
エンタープライズ.Net アーキテクチャ設計編
エンタープライズ.Net アーキテクチャ設計編エンタープライズ.Net アーキテクチャ設計編
エンタープライズ.Net アーキテクチャ設計編
 
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
 
第ⅴ部:clean architecture アーキテクチャ Part3
第ⅴ部:clean architecture アーキテクチャ Part3第ⅴ部:clean architecture アーキテクチャ Part3
第ⅴ部:clean architecture アーキテクチャ Part3
 
RHF2021_ポイントは業務視点.pdf
RHF2021_ポイントは業務視点.pdfRHF2021_ポイントは業務視点.pdf
RHF2021_ポイントは業務視点.pdf
 
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
 
ソフトウェア工学における問題提起と機械学習の新たなあり方
ソフトウェア工学における問題提起と機械学習の新たなあり方ソフトウェア工学における問題提起と機械学習の新たなあり方
ソフトウェア工学における問題提起と機械学習の新たなあり方
 
Web
WebWeb
Web
 
ゴール指向要求分析における構成要素に着目した分解に関する一考察
ゴール指向要求分析における構成要素に着目した分解に関する一考察ゴール指向要求分析における構成要素に着目した分解に関する一考察
ゴール指向要求分析における構成要素に着目した分解に関する一考察
 
ドメイン駆動設計と要求開発
ドメイン駆動設計と要求開発ドメイン駆動設計と要求開発
ドメイン駆動設計と要求開発
 
クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割
 
札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」
札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」
札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」
 
Microsoft PowerApps ビジョンとロードマップ 2019年秋
Microsoft PowerApps ビジョンとロードマップ 2019年秋Microsoft PowerApps ビジョンとロードマップ 2019年秋
Microsoft PowerApps ビジョンとロードマップ 2019年秋
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程
 
今更ながらの「マイクロサービス」
今更ながらの「マイクロサービス」今更ながらの「マイクロサービス」
今更ながらの「マイクロサービス」
 
SQLアンチパターン「ディプロマティック・イミュニティ」
SQLアンチパターン「ディプロマティック・イミュニティ」SQLアンチパターン「ディプロマティック・イミュニティ」
SQLアンチパターン「ディプロマティック・イミュニティ」
 
なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423
なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423
なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvc
 

More from Yoshitaka Kawashima

強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話Yoshitaka Kawashima
 
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?Yoshitaka Kawashima
 
アンチフラジャイルの世界
アンチフラジャイルの世界アンチフラジャイルの世界
アンチフラジャイルの世界Yoshitaka Kawashima
 
ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較Yoshitaka Kawashima
 
Antifragile Java - Java Day Tokyo 2017 D1-E1
Antifragile Java - Java Day Tokyo 2017 D1-E1Antifragile Java - Java Day Tokyo 2017 D1-E1
Antifragile Java - Java Day Tokyo 2017 D1-E1Yoshitaka Kawashima
 
たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力Yoshitaka Kawashima
 
SIerにとっての越境 @ DevLOVE 199
SIerにとっての越境 @ DevLOVE 199SIerにとっての越境 @ DevLOVE 199
SIerにとっての越境 @ DevLOVE 199Yoshitaka Kawashima
 
既婚プログラマの時間捻出術
既婚プログラマの時間捻出術既婚プログラマの時間捻出術
既婚プログラマの時間捻出術Yoshitaka Kawashima
 
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかJavaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかYoshitaka Kawashima
 
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発Yoshitaka Kawashima
 
週刊Webサイトのアーキテクチャ
週刊Webサイトのアーキテクチャ週刊Webサイトのアーキテクチャ
週刊WebサイトのアーキテクチャYoshitaka Kawashima
 
Seasar conference 2015 sa-compojure
Seasar conference 2015 sa-compojureSeasar conference 2015 sa-compojure
Seasar conference 2015 sa-compojureYoshitaka Kawashima
 

More from Yoshitaka Kawashima (20)

Are Design Patterns Dead?
Are Design Patterns Dead?Are Design Patterns Dead?
Are Design Patterns Dead?
 
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
 
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
 
本番障害に至る病
本番障害に至る病本番障害に至る病
本番障害に至る病
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
アンチフラジャイルの世界
アンチフラジャイルの世界アンチフラジャイルの世界
アンチフラジャイルの世界
 
Atomic Architecture
Atomic ArchitectureAtomic Architecture
Atomic Architecture
 
ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較
 
How to find tech books
How to find tech booksHow to find tech books
How to find tech books
 
Antifragile Java - Java Day Tokyo 2017 D1-E1
Antifragile Java - Java Day Tokyo 2017 D1-E1Antifragile Java - Java Day Tokyo 2017 D1-E1
Antifragile Java - Java Day Tokyo 2017 D1-E1
 
たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力
 
SIerにとっての越境 @ DevLOVE 199
SIerにとっての越境 @ DevLOVE 199SIerにとっての越境 @ DevLOVE 199
SIerにとっての越境 @ DevLOVE 199
 
Antifragile Clojure
Antifragile ClojureAntifragile Clojure
Antifragile Clojure
 
Boilerplate vs Magic
Boilerplate vs MagicBoilerplate vs Magic
Boilerplate vs Magic
 
既婚プログラマの時間捻出術
既婚プログラマの時間捻出術既婚プログラマの時間捻出術
既婚プログラマの時間捻出術
 
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかJavaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
 
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
 
週刊Webサイトのアーキテクチャ
週刊Webサイトのアーキテクチャ週刊Webサイトのアーキテクチャ
週刊Webサイトのアーキテクチャ
 
キメるClojure
キメるClojureキメるClojure
キメるClojure
 
Seasar conference 2015 sa-compojure
Seasar conference 2015 sa-compojureSeasar conference 2015 sa-compojure
Seasar conference 2015 sa-compojure
 

ソフトウェア設計における 意思決定とそのレビューの秘訣