Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
プロダクトを成長させるために、エンジニアリングするべきこと/Product tidying u...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Daisuke Sato
November 22, 2019
Technology
190
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
プロダクトを成長させるために、エンジニアリングするべきこと/Product tidying up at engineering
#レガシー感謝の日
https://askul.connpass.com/event/152688/
Daisuke Sato
November 22, 2019
More Decks by Daisuke Sato
See All by Daisuke Sato
人と組織に偏重したEMへのアンチテーゼ──なぜ、EMに設計力が必要なのか/An antithesis to the overemphasis of people and organizations in EM
dskst
8
1.3k
エンジニアのための事業貢献入門/A business introduction for engineers
dskst
93
34k
Management Workflow
dskst
2
980
スタートアップのマネージャーに役立つ視座/A useful perspective for startup managers
dskst
6
2.4k
「時」と「場」を捉える、プロダクトづくりのためのリーダーシップ/Leadership for product creation that captures time and place
dskst
3
730
事業紹介/Joystruct
dskst
0
4.9k
キャリア理論をもとに考えるエンジニアのキャリア/Engineer's careers based on career theory
dskst
10
5.7k
ソフトウェア開発とマネジメント/Software Development and Management
dskst
6
7.6k
エンジニアのためのマネジメント入門/Introduction to Management for Software Engineers
dskst
11
10k
Other Decks in Technology
See All in Technology
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
150
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
190
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
640
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
1
260
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
720
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
230
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
0
200
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.3k
自主式軟體工廠
philipz
0
260
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
150
Cognition AI Japan - ウェビナー2_テストQA_運用監視
cogakira
0
140
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
890
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
My Coaching Mixtape
mlcsv
0
350
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
Evolving SEO for Evolving Search Engines
ryanjones
0
320
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
560
WCS-LA-2024
lcolladotor
0
880
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
700
Transcript
プロダクト成長させるために、 エンジニアリングするべきこと 2019.11.22 レガシー感謝の日 @dskst9
さとうだいすけ @dskst9 アスクル株式会社 エンジニアリングマネージャー エンジニアリングマネージャーってクールだよね というのを世の中に広めたい
LOHACO 「LOHACO」の由来は、Lots of Happy Communities “くらしをかるくする”をコンセプトに、暮らしを潤すこだわりの商品を、いつでもリーズナブ ルかつスピーディーにお届けする日用品ショッピングサイト
One year ago...
One year ago...
One year ago...
One year ago...
One year ago...
One year ago...
レガシーと戦った1年間のお話 • 注文コアシステムのリニューアル • レガシーをモダナイズ • プロダクトとの向き合い
私たちのレガシー LOHACOは2012年にサービス開始 • 巨大なモノリシックシステム • 溜まりに溜まった技術的負債 • なぜ動いているかわからないスパゲティ コード •
誰もしらない機能
私たちのレガシー:古え WEB App DB
私たちのレガシー:ぼちぼち古い Web App DB
私たちのレガシー:ぼちぼち古い Web App DB コア機能が ここにあるまま…!
変化に適応できない
生き残る種とは、 最も強いものではない。 最も知的なものでもない。 それは、変化に最もよく適応し たものである。 チャールズ・ダーウィン
変化に適応できない • スケールできない • 処理が遅い • 触ると事故る
変化に適応できない • スケールできない • 処理が遅い • 触ると事故る 彼みたいに、 変化を望めばいつか 対応できるのか?
彼→
キリンの首は、 最初から長かった。
アーキテクチャという骨 アーキテクチャという骨は、 望んでも伸びない太くならない。
変化に適応できるシステムを作り直す • 変化に強いソフトウェア 変更を迅速で安全に行うことができる • 変化に強いシステム システムの他の部分を変更する必要なし に、あるサービスを変更できる
変化に適応できるシステムとは 高凝集 && 低結合
高凝集 && 低結合 == 変更容易性 • レイヤード、オニオン、ヘキサゴナル、ク リーンアーキテクチャ • マイクロサービスアーキテクチャ、モジュラ
モノリス • DDD、オブジェクト指向 など、いろいろとあるが
高凝集 && 低結合 != 変更容易性
高凝集 && 低結合 != 変更容易性 複雑すぎると アンコントラーラブル
理想と現実の境界線 • 時間との戦い • 経験との戦い • 不確実性との戦い
戦いは、 正を以って合いし、 奇を以って勝つ。 孫氏
(それなりに…) 高凝集 && 低結合 == 変更容易性
(それなりに…) 高凝集 && 低結合 == 変更容易性 • クリーンなアーキテクチャ • マイクロサービス移行段階的
アーキテクチャ • DDDをまずは始める • ちゃんとしたテスト書く
ソフトウェアスタック Web App DB
骨はできた☠
次は肉
プロダクトのデトックス • 贅肉が溜まる • 老廃物が溜まる • 毒素が溜まる
何をしないか決めるのは、 何をするのかを決めるのと同 じくらい大事だ。 スティーブ・ジョブズ
65
統廃合した機能数
機能のリファクタリング • 明確なファクトを集める • 信じれる数字で会話する • 負債と呼んだものは資産かもしれない
機能のリファクタリング • 明確なファクトを集める • 信じれる数字で会話する • 負債と呼んだものは資産かもしれない 最終手段 試しに削除してみる
やりすぎると失敗する • いいじゃん、やってみよ • ってやると、意外に利用されていることもある • やりすぎ注意、明確なファクトを集めよ
作らないものづくり 成長し続けるとは 何かを作り続けることではない。
作らないものづくり 成長し続けるとは 何かを作り続けることではない。 何かを無くすことも重要である。
プロダクト成長段階 1. Early Phase: 初期段階 2. Growth Phase: 成長段階 3.
Hyper Growth Phase: 超 成長段階 4. Mature Phase: 成熟段階
プロダクト成長段階 (こんな式で計算できる)
プロダクト成長段階 さらなる製品の成長や新たな 環境における成長は 、 再びS字カーブをなぞる。
検証は プロダクトが成長する限り 続いていく
Thanks Legacy, Goodbye Legacy.