Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
知らないプロダクトのコードを爆速でキャッチアップする方法
Search
Minato Nakamura
April 13, 2024
Programming
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
知らないプロダクトのコードを爆速でキャッチアップする方法
Minato Nakamura
April 13, 2024
More Decks by Minato Nakamura
See All by Minato Nakamura
新規プロダクトをマネジメントするために工夫したこと
nelca
0
560
Other Decks in Programming
See All in Programming
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
5
1.9k
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
1
140
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
500
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
19k
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
130
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.8k
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
390
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
210
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
210
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
110
Google Apps Script で Ruby を動かす
kawahara
0
280
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
270
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
450
A designer walks into a library…
pauljervisheath
211
24k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
540
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Designing Experiences People Love
moore
143
24k
Utilizing Notion as your number one productivity tool
mfonobong
4
550
Six Lessons from altMBA
skipperchong
29
4.4k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
440
Mobile First: as difficult as doing things right
swwweet
225
10k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Transcript
知らないプロダクトのコードを 爆速でキャッチアップする⽅法 Mynato
目次 • 自己紹介 • 今日話すこと • 結論、この2つ • キャッチアップするためにやること •
何があると良いか • 結局のところ • まとめ 2
自己紹介 名前:Mynato(中村南斗) 所属:アスエネ株式会社 何やってる?:環境系BEエンジニア 兼 PdM 3
今日話すこと 初めて触るプロダクトにであった時 「どこからどうやってみていけば良いの?」 そんな時にちょっとだけ思い出してみてもらえれば コアラがなんか 言ってたな... 4
結論、この2つ • コードを読む(そりゃそう) • 周辺知識を把握する(うろ覚えでもよい) 5
キャッチアップするためにやること 歴史を知る • 古い仕様書を見にいく • 疑問のある仕様はガンガン聞く • 気になったキーワードはSlackで検索する • コードをblameして見ていく
◦ 関連するPRからチケットや仕様書を辿る 6
キャッチアップするためにやること ドメインを知る • わからない単語はとにかくググる • 仕様の背景になるドキュメントを社内・社外含めて漁る • とりあえずいろんなSlackチャンネルに入る • コード上のドメインロジックを探す→資料を探す→今の仕様を理解する→ドメイ
ンの理解を深める 7
キャッチアップするためにやること 機能を知る • 1つの機能は全てにつながる ◦ 機能に関連するテーブルは全部見にいく ◦ テーブルのリレーションから機能のつながりを理解する ◦ 指数的にわかる範囲が増えていく
• 疑問に思ったらまず画面を触る ◦ 手がかりがない時はコードから検索 →画面を触る→コードを詳しくみる ◦ 開発者ツールを開いておいて、 APIが叩かれてるかを知る →APIの中身も見る • 機能の中で気になる仕様はコードを見にいく ◦ 沼ることが多々あるが、他人に説明できる程度まで理解する 8
キャッチアップするためにやること 今起きていること、これから起きることを知る • 発生しているエラーは全て原因のあたりがつくまで調査する(という気持ち) • 問い合わせは全て自分でも調べてコードベースで理解する(という気持ち) • 一次情報まで調べにいく ◦ 公式ドキュメントしか勝たん
• CSの問い合わせ対応、セールスチームの案件情報をキャッチアップする ◦ これから起きるであろうことの予測、背景を把握する 9
キャッチアップするためにやること 歴史を知る ドメインを知る 機能を知る 今起きていること、これから起きることを知る 10
何があると良いか 検索力。とにかくいろんなところを調べてみる。 • どこで起きてる? ◦ コード全体でキーワードの検索 • 何をやってる? ◦ 迷ったら公式ドキュメント
• どうしてこうなってる? ◦ 社内ドキュメント、チケット • 誰に聞けば良い? ◦ 意外とSlackは情報の宝庫 11
何があると良いか 仮説と検証の繰り返し • この仕様はどういう背景でこうなっているのか ◦ ユーザーからの要望なのか ◦ システム制約なのか • ここのコードはどうしてこうなっているのか
◦ なんでこんなに複雑なのか ◦ なんでここで処理しているのか 12
何があると良いか 勘 • 起きている事象は ◦ FE or BEで処理されているのか ◦ DBのデータに保持されているのか
◦ ユーザー環境起因のエラーなのか • エラーとか問い合わせ見てたらなんとなく当たりがつく ◦ ユーザーがこういう操作をしてるのではとか ◦ このバッチが動いてるからとか ◦ →想像力とも言える 13
何があると良いか 検索力。とにかくいろんなところを調べてみる 仮説と検証の繰り返し 勘 (想像力) 14
とにかくコードを読む • しつこいくらいに深追いする ◦ バックエンドエンジニアでもフロントは見にいく ◦ DBのデータも見にいく ◦ ログも見る •
けど諦めも必要 ◦ 10分くらい同じ箇所をずっと眺めていたら諦める ◦ 誰に聞けばわかるか、も立派な知識(だから自分で頑張りすぎない) ◦ 魔境を見つけたら逃げよう 結局のところ 15
結局のところ 納得するまで触る→周辺知識を把握する • 機能を触る→コードを見にいく→触ってみるの繰り返し ◦ 自然とコード外の世界の理解も必要になる。 • 他人に対して自分が説明できるくらいまで理解する ◦ ドメインの知識をつけないと説明できない
◦ ユーザーがどう使っているのかという想像もできるようになる 16
まとめ とにかくコードを読んで 納得するまで触り 周辺知識を把握すれば 爆速キャッチアップできます!(N=1) 17
最後に 新しいプロダクトを爆速キャッチアップしたい方お待ちしております! 18