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
Design Doc のすすめ / The Importance of Design Docs
Search
Akira Kuriyama
June 10, 2024
Technology
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Design Doc のすすめ / The Importance of Design Docs
Akira Kuriyama
June 10, 2024
More Decks by Akira Kuriyama
See All by Akira Kuriyama
ゼロから始める全社横断プロダクトセキュリティ / Building Organization-Wide Product Security
sheepland
0
200
Datadog On-Calを本番導入しました / Datadog On-Cal now in production
sheepland
0
760
Datadog Logsで実現するオブザーバビリティの向上 / Enhancing Observability with Datadog Logs
sheepland
0
240
コンテナ脆弱性修正をRenovate,Dependabotのように行う / Fix Container vulnerabilities on CICD
sheepland
2
590
Docker Build Cloudを導入してコンテナイメージビルド時間を80%削減した話 / Speeding Up Container Builds with Docker Build Cloud
sheepland
0
250
Datadogのグラフにデプロイタイミングを表示する / deploy timing on datadog graph
sheepland
1
830
英語学習の始め方 / How to start learning English
sheepland
0
140
Other Decks in Technology
See All in Technology
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
130
AI Made Us Faster at Solving the Wrong Problems
marceloancelmo
0
160
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
140
Codex概要
ymiya55
0
370
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
130
Databricksメトリクスビューはじめてのもくもく会
taka_aki
0
200
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
510
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
2
790
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
550
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
260
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
390
Deep Data Security 機能解説
oracle4engineer
PRO
2
690
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Building Adaptive Systems
keathley
44
3.2k
The agentic SEO stack - context over prompts
schlessera
0
960
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Marketing to machines
jonoalderson
1
5.8k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Odyssey Design
rkendrick25
PRO
2
860
It's Worth the Effort
3n
188
29k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
260
Transcript
Design Doc のすすめ Akira Kuriyama
03 01 02 04 Table of contents Design Docとは? どんなふうに
書くの? Design Docの利点 Design Docへの 疑問
03 01 02 04 Table of contents Design Docとは? どんなふうに
書くの? Design Docの利点 Design Docへの 疑問
Design Docとは? Design Docsは、開発前に作成するドキュメントで、高レベルな実装戦略や設 計の決定事項をまとめ、トレードオフを考慮した文書。 ドキュメントベースで議論することで、変更の背景や方針をレビュアーに理解し やすくするメリットがある。
書く前 書いた後 なんか難しそう… 書くの面倒そう… 最高! とてもよいツール!!
その前に…
こういうことはありませんか? その1: PRレビューが難しいケース でかいPRが急に来た…。 背景や課題がよく分からない な。 他にも解決方法ありそうだけど なんでこの方法選んだんだろう 。 もういいやApproveしちゃお…
こういうことはありませんか? その2: 大きな手戻りが発生するケース もうすぐでリリースできそう! そういえば◦◦のケースって考慮さ れてるっけ? (あ、抜けてた…。設計からやり直し だ…) もっと早く言って
こういうことはありませんか? その3: 中々設計レビューが通らないケース 設計書を書きました!レビューお願いします! そもそも目的ってなんだっけ? ログってちゃんと保存してる? 他にもBっていうイケてるツールあ るんだけど使わないの? セキュリティって大丈夫なの? マジ病む…
こういったケースを Design Docを書くことで防ぐ ことが出来ます!! ※LTなので断言口調ですが、実際にはその時の状況、執筆者の筆のノリ具合、 今いる世界線、その日の体調によります。
03 01 02 04 Table of contents Design Docとは? どんなふうに
書くの? Design Docの利点 Design Docへの 疑問
どうやって書けばいいんだろう Design Docsは設計書や仕様書などの厳格なドキュメントと違って、 ざっくりしたドキュメント。 また、実際にDesign Docをどのように記述すべきかという 明確な指針はありま せん。 なので、いくつかのベストプラクティスやこんな感じに書くのがいいよねというも のがあります。
どうやって書けばいいんだろう Design Docに書くと有効な項目たち(=テンプレート)を紹介します。 しかし、テンプレートの項目を常にすべてを埋める必要はありません 。 あくまでテンプレートなので不要な項目の削除、項目の追加は自由 です。 議論したい箇所が明確である場合は、 特定の項目だけを記載するなどでも問 題はありません。
つまりどういうこと だ!はやく”答え”を 教えてくれ!!
Design Doc Template https://docs.google.com/document/d/1VR2fMiGhs0Out4ZfkE8vqWUEIZ4uI nPztsW7gUK09xE/edit?usp=sharing
03 01 02 04 Table of contents Design Docとは? どんなふうに
書くの? Design Docの利点 Design Docへの 疑問
Design Docの利点 • チーム内で問題や課題を共有でき、認識合わせ ができる • 設計上の問題を早期に特定することで、 手戻りが少なくなる • フォーマットが統一されているため、
見落としがちなポイントを設計時点で検討 できる • コードには現れない、Why not (なぜ別の方法をしなかったのか? )を議論できる • 人事評価に使える(自分の成果物としてアピールしやすい)
03 01 02 04 Table of contents Design Docとは? どんなふうに
書くの? Design Docの利点 Design Docへの 疑問
疑問 その1 Design Docはいつ書けばいいの? まずDesign Docs自体を作成することは、開発を進める上ではオーバヘッドになります。 そのため基本的には、Design Docsを作成するかどうかの決定は、「Design Docsを作成するこ とに伴う労力が作成のメリットを上回るか」というトレードオフで判断
する。 例えば • いくつかの実装案が考えられる、かつどれがベストなのか決めるのが困難なとき • 技術的であったりドメイン的に新規のものや慣れていないものを扱うとき • シニアエンジニアにアーキテクチャの考察をしていただきたいとき
疑問 その2 Design Docをメンテナンスする必要あるの? Design Docで書いたソフトウェアがまだリリースされていないなら Design Docを更新したほうがよ い。 リリース後は更新しなくてよい。
質の高いレビューがされることで精度が高い設計を行うことに重点を置く。 Architecture Decision Records(ADR)のような、その時の意思決定の過程を残すためのツールと して使うのがよいでしょう。
疑問 その3 詳細設計まで書く必要がある? 必ずしも書く必要はない。 ソフトウェア設計における仕様書や設計書とは別物。
書いてみての個人的な感想 • 必要な観点がリストアップされているのでそれに沿って書けば考慮漏れを防ぐことが できる • 項目に沿って書けばいいので非常に楽 • 自身の思考が整理される • 何回か書くことで、いつDesign
Docを書くべきかが掴めそう • テックブログに流用しやすそう
参考 • Google でのデザイン ドキュメント • How to write a
good software design doc • メルカリShopsでのDesign Docs運用について | メルカリエンジニアリング • Design Docs への思い • GoogleのDesign Docsから学ぶソフトウェア設計 - Qiita • 安全安心にソフトウェア開発を行うための Design Doc導入ガイド|面川泰明| note • 【メモ】良いDesign Docs(Software Design Document)を書くためのリソース集