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
新卒1年目がプロジェクトを進めるときにコケたポイント
Search
Ryu-nakayama
March 15, 2024
Technology
1
1.7k
新卒1年目がプロジェクトを進めるときにコケたポイント
2024/3/15「私みたいになるな!」わたしのしくじりLT会 の登壇資料
Ryu-nakayama
March 15, 2024
Tweet
Share
More Decks by Ryu-nakayama
See All by Ryu-nakayama
Translation API について 〜WWDC24〜
ryunakayama
0
79
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
1.6k
期限が近づいてきた!Privacy Manifests対応
ryunakayama
5
10k
新卒iOSエンジニアとしてやってきたこと
ryunakayama
0
1.7k
今年学んだ便利ツール_便利技
ryunakayama
0
1.7k
git worktreeを使って複数ブランチを扱いやすくする
ryunakayama
0
2.6k
KMPを使ってみて感じた良いところ・ツラいところ
ryunakayama
0
1.9k
SwiftUIに適した新アーキテクチャの導入に挑む
ryunakayama
2
9.7k
Swiftでテスト時のみ『private』にアクセスする方法
ryunakayama
1
2.7k
Other Decks in Technology
See All in Technology
VPoEの視点から見た、ヘンリーがサーバーサイドKotlinを使う理由 / Why Server-side Kotlin 2024
cho0o0
1
420
AWSサービスメニュー開発をしていてAWSを好きだ!と感じた瞬間
toru_kubota
0
130
AOAI Dev Day - Opening Session
yoshidashingo
2
430
DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern
urmot
4
390
目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
kakehashi
10
3k
テストケースの自動生成に生成AIの導入を試みた話と生成AIによる今後の期待
shift_evolve
0
180
[2024最新版]AWS Control Towerを使ったセキュアなマルチアカウント環境の作り方
hiashisan
0
270
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
0
190
「我々はどこに向かっているのか」を問い続けるための仕組みづくり / Establishing a System for Continuous Inquiry about where we are
daitasu
0
170
MySQLのロックの種類とその競合
yoku0825
6
1.6k
ギークの理想が7つ集まるエムスリーで夢を叶えよう - エムスリー株式会社
m3_engineering
1
260
AWSでRAGを作る法方
sonoda_mj
1
140
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
29
6.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Building Applications with DynamoDB
mza
89
5.8k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
245
1.2M
The World Runs on Bad Software
bkeepers
PRO
63
11k
Optimizing for Happiness
mojombo
373
69k
Git: the NoSQL Database
bkeepers
PRO
423
64k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
189
16k
How to Ace a Technical Interview
jacobian
274
23k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
Design by the Numbers
sachag
277
18k
Why Our Code Smells
bkeepers
PRO
332
56k
Transcript
Chatwork株式会社 モバイルアプリケーション開発部 中山 龍 2024年3月15日 新卒1年目がプロジェクトを進めると きにコケたポイント
自己紹介 中山 龍 (なかやま りゅう) • Chatwork株式会社 ◦ 新卒1年目のiOSエンジニア(21) •
フルリモート勤務で愛知県在住 2 @ryu_develop この会場はモバイル勉強会でたくさんお世話になってい ます
新卒1年目、どんなことした?
新卒1年目でやったこと アプリアップデート通知 PJ 4 Privacy Manifests対応 PJ iOS14ドロップ対応 PJ ルーキー賞
iOSDC登壇 など...
新卒1年目でやったこと アプリアップデート通知 PJ 5 Privacy Manifests対応 PJ iOS14ドロップ対応 PJ ルーキー賞
iOSDC登壇 など... このプロジェクトの中で をお話します • 学んだこと • やらかしたこと
アプリアップデート通知 PJ
• 使用中のアプリよりも新しいアプリがリリースされてい る場合に、アップデートを促す通知を表示する機能 • 初担当のプロジェクト • iOSの実装は基本的に僕1人で担当 ◦ 困ったときには他メンバーのサポートあり プロジェクト概要
7
プロジェクト概要〜進め方〜 8 ア サ イ ン 見 積 も り
仕 様 の 把 握 実 装 レ ビ ュ | マ | ジ 開 発 完 了 各工程がどの時期に完了するか いつのリリースにするか を洗い出し 機能の開発が完了するまで 実装〜マージを繰り返す 動作検証へ
1 期限がまずい!なぜ見積もりが狂った??
何が起きたのか? 見積もりの時点で『各工程がどの時期に完了するか』を洗い出した (開発の最中のチェックポイントが設定されたイメージ) そして実装開始! 実装自体はそれほど遅れなく進めることができていた 10 プロジェクト概要〜進め方〜 から引用
何が起きたのか? 見積もりの時点で『各工程がどの時期に完了するか』を洗い出した (開発の最中のチェックポイントが設定されたイメージ) そして実装開始! 実装自体はそれほど遅れなく進めることができていた だが、チケットを進めていく中で徐々に遅れが出てきた... 11 プロジェクト概要〜進め方〜 から引用
何が起きたのか? 見積もりの時点で『各工程がどの時期に完了するか』を洗い出した (開発の最中のチェックポイントが設定されたイメージ) そして実装開始! 実装自体はそれほど遅れなく進めることができていた だが、チケットを進めていく中で徐々に遅れが出てきた... 12 プロジェクト概要〜進め方〜 から引用 なぜ...?
進捗に遅れが出ていた原因 原因: レビューしていただくのに時間がかかっていた 13 チケットの進め方は以下の通り 実装 → レビュー → (修正
& 再レビュー) → マージ
進捗に遅れが出ていた原因 原因: レビューしていただくのに時間がかかっていた 14 本プロジェクトで自分が実装したコードを iOSチームのメンバーにレビューしていただく 【問題点】 1. レビュアーは自分からのレビュー以外にもいくつかのレビュー依頼を受けている場合がある 2.
レビュアーはこのプロジェクトの担当者ではない チケットの進め方は以下の通り 実装 → レビュー → (修正 & 再レビュー) → マージ
1 レビュアーがいくつかのレビュー依頼を受けている
レビュアーがいくつかのレビュー依頼を受けている 先着順に処理されるので、レビュアーに先着のレビュー依頼があった場合には レビューをしてもらえるまで待ちが発生する 他のチケットを並行して進められる場合には問題にならないのだが、『このチケッ トを終わらせてからでないと次のチケットを進められない』という場合に、問題と なる 16
どうすればよいのか? チケットに着手するときに このチケットのレビューの優先度が高いことを伝える ようにする 例: 17 「今から実装をするこのチケットは〇〇(期限)までに完了させたく、優先度高めでレ ビューしていただけるとありがたいです 」
どうすればよいのか? チケットに着手するときに このチケットのレビューの優先度が高いことを伝える ようにする 18 「このレビュー依頼はそれほど優先度が高くないので、今されている〇〇の作業を優先 していただき、そちらが落ち着いてからでの確認で大丈夫です 」 また、レビュー依頼時にこんな気遣いをするようにもなった... 「レビューをしていただいてる間に、こちらで代わりに進められることがあれば教えて ください 」
2 レビュアーはこのプロジェクトの担当者ではない
レビュアーはこのプロジェクトの担当者ではない 本プロジェクトは自分1人でiOSの実装を担当しているということは、レビュアーは プロジェクトの担当者ではなく... レビュー依頼時にその実装の背景などを伝える必要がある 20 伝える必要のある背景の例 • プロジェクトの内容 • 実装しようとしてる機能の仕様
• なぜこの実装が必要になるのか
どうすればよいのか? プロジェクトを1人で担当する場合にはこの『レビュアーに実装の背景を伝える』と いうのは避けては通れない... → チームでのルールとしてサブ担当という役職をつくることとなった 21 サブ担当の役割 • プロジェクトの内容をキャッチアップする •
前提知識が必要なレビューを担当する • 技術的な相談相手となる
これらの学びを得たこともあり、初担当プロジェクトで開発 した『アプリアップデート通知機能』が無事にリリースされ ました
働くをもっと楽しく、創造的に