Submit Search
Upload
越境する情シス:進化可能なアーキテクチャを手に入れる
•
7 likes
•
5,836 views
増田 亨
Follow
レガシー化した既存システムを、どのように改善・発展させていくか。アーキテクチャの設計改善への取り組みの中間報告。
Read less
Read more
Software
Report
Share
Report
Share
1 of 31
Download now
Download to read offline
Recommended
逆境からのアジャイル
逆境からのアジャイル
toshihiro ichitani
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
増田 亨
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Yutaro Miyazaki
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
Recommended
逆境からのアジャイル
逆境からのアジャイル
toshihiro ichitani
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
増田 亨
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Yutaro Miyazaki
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
増田 亨
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
増田 亨
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
増田 亨
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
増田 亨
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
増田 亨
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
増田 亨
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
増田 亨
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
増田 亨
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
増田 亨
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
DDD sample code explained in Java
DDD sample code explained in Java
増田 亨
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
増田 亨
More Related Content
More from 増田 亨
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
増田 亨
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
増田 亨
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
増田 亨
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
増田 亨
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
増田 亨
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
増田 亨
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
増田 亨
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
増田 亨
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
増田 亨
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
DDD sample code explained in Java
DDD sample code explained in Java
増田 亨
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
増田 亨
More from 増田 亨
(20)
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
DDD sample code explained in Java
DDD sample code explained in Java
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
越境する情シス:進化可能なアーキテクチャを手に入れる
1.
進化可能なアーキテクチャ を手に入れる 有限会社 システム設計 増田
亨 越境アジャイル 2017-10-26 越境する情シス
2.
逆境
3.
特別文化遺産 がちがちの岩盤 破砕帯 ハウルの動く城 大きな泥団子 秘伝のたれ … 現状の変更禁止/立ち入り制限 低凝集・密結合 トンネル工事の最大の難所 動きながら壊れていく 代々伝わる運用奥義 岩盤の中で岩が細かく砕け、 隙間に地下水を大量に含んだ 軟弱な地層 構造のない集合体
4.
逆境との戦い方
5.
アンチパターン
6.
全面刷新
7.
全面刷新 膨大なコスト(直接/間接) プロジェクトの長期化/度重なる遅延 前提条件の崩壊 当初目的の喪失 新たな逆境の拡大再生産
8.
逆境 もう一つの戦い方
9.
アーキテクチャ リファクタリング
10.
アーキテクチャ リファクタリング アーキテクチャの継続的な改善活動 外部インタフェースを維持しつつ内部構造を変更する
11.
アーキテクチャ リファクタリング いつやるか? テストのタイミング 複数の関係者が 活動する時 障害の調査時 バグの修正時 軽微な機能追加 大きな機能変更
12.
アーキテクチャリファクタリング 戦略
13.
戦略の選択肢 集中 分散 同期 非同期 直列
並列 長期的に大規模にどちらに取り組んでいくか? システムの「インテグレーション」の発想と技法が異なる世界
14.
アーキテクチャリファクタリング 逆境との戦い方
15.
境界の発見 賞味期限切れの廃棄活動 ビジョン駆動 3カ月サイクル パレートの法則 持続的努力と学習曲線 戦う相手 ほんとうのリーダー 武器と戦術 兵站(ロジスティクス)
16.
境界の発見 • 構造の手がかりを見つける • IN/OUTのインタフェースを定義できる場所 •
責任分界点(部門や組織の利害の対立点) • テスト可能(手動で) • (理論)インタフェースを境に独自に変更可能 • (現実)密結合と副作用 • (現実を知る)推測ではなく実験で確かめる
17.
賞味期限切れの廃棄活動 • 余計な仕事を減らす事前準備 – コメントアウトされたコードの削除 –
使っていないコードの削除 – 使っていない区分の廃止 – 使っていないカラムの廃止 – 使っていないデータの削除(アーカイブ) • 賞味切れの発見 – 障害の調査や再現テストする時が絶好のチャンス • 賞味期限切れの廃棄活動を地道に積み重ねる – やる場合とやらない場合の一年後の違い
18.
ビジョン駆動 • あるべき姿を描く • 方向性の明示 •
そこに至る道は定義しない • そこに至る期日は定義しない • ビジョンに近づくための実験の奨励 – 実験なので失敗もある – 失敗から学ぶ
19.
3カ月サイクル • 3カ月ごとに実データでの並行運用を開始する – 実データでの運用=総合テスト •
活動のコントロール – 期限を定める – 予算を固定する – 仕様と品質は実運用に必要なレベルを維持 – スコープ(対象の機能やデータ範囲)を柔軟に縮小・拡大する • 3カ月サイクルの効能 – 中規模の開発のリズム – 業務のサイクルとの整合 • 3カ月ごとにビジョン(あるべき姿)を改定する
20.
パレートの法則で取り組む 20%の 顧客 80%の 売上 20%の商品、20%の機能、20%のデータ項目、… 費用対効果の高い実証実験 8割を手に入れてから、残りの20%への取り組みを議論する
21.
持続的努力と学習曲線 出典:http://tamafas.tumblr.com/post/88756355771
22.
戦う相手 • ソースコード • 実データ •
提供中のサービスレベルの維持 • 戦線から離れてアーキテクチャを議論しない – コンサルタント、アーキテクト、上級SE、… – 単価が高いほど役に立たない • パワーポイントでアーキテクチャを判断しない 逆は真ではない…
23.
ほんとうのリーダー • コードに責任を持つ現場の技術者の中で – 技術者仲間に頼られている –
視野が広い – 知識と経験が豊富 – ビジネスの言葉で会話できる(会話する意思がある) • 多くの場合、非公式なリーダー • 候補を見つける • 育成する – 先生につける、学ぶ機会(失敗する機会)を与える – 複数を育てる(相談相手) – 先生役をやらせる • サポートする – 公式なリーダーが非公式なリーダーを尊重する – 非公式なリーダーの見積もり、判断をオーバーライドしない – 非公式なリーダーに余計な仕事をさせない
24.
武器と戦術 議論の枠組みと共通の語彙 戦術的な基本スキルの習得 実装技術の習熟 実験を繰り返す
25.
議論の枠組みと共通の語彙 第4部 戦略的な設計 メッセージング パターン
26.
戦術的な基本スキルの習得 • リファクタリング – プログラムのモジュール構成(クラス構成)のリ ファクタリング –
モデルのリファクタリング – データベースのリファクタリング
27.
実装技術の習熟 • Spring Integration •
Spring Boot • AWS 分散・非同期・並列を指向した実装技術群 パワーポイントではなく、 実際に動くコードで 実験し、判断し、展開する 小さな実験→実戦投入→横展開をシームレスに実現可能
28.
実験を繰り返す • 実験環境という財産 – 実データ –
できれば疑似環境で – できれば並行運用で • 小さな実験 – 失敗を繰り返す – 知見を蓄積する – 持続的な努力と学習曲線
29.
兵站(ロジスティクス) • 長く複雑な戦いを後方から継続的に支援する • 人材 •
食料、機材、弾薬 • 訓練 • 休暇 • 督励 • 慰問
30.
アーキテクチャリファクタリング 逆境との戦い方
31.
境界の発見 賞味期限切れの廃棄活動 ビジョン駆動 3カ月サイクル パレートの法則 持続的努力と学習曲線 戦う相手 ほんとうのリーダー 武器と戦術 兵站(ロジスティクス)
Download now