Slide 1

Slide 1 text

Chatwork株式会社 モバイルアプリケーション開発部 中山 龍 2024年3月15日 新卒1年目がプロジェクトを進めると きにコケたポイント

Slide 2

Slide 2 text

自己紹介 中山 龍 (なかやま りゅう) ● Chatwork株式会社 ○ 新卒1年目のiOSエンジニア(21) ● フルリモート勤務で愛知県在住 2 @ryu_develop この会場はモバイル勉強会でたくさんお世話になってい ます

Slide 3

Slide 3 text

新卒1年目、どんなことした?

Slide 4

Slide 4 text

新卒1年目でやったこと アプリアップデート通知 PJ 4 Privacy Manifests対応 PJ iOS14ドロップ対応 PJ ルーキー賞 iOSDC登壇 など...

Slide 5

Slide 5 text

新卒1年目でやったこと アプリアップデート通知 PJ 5 Privacy Manifests対応 PJ iOS14ドロップ対応 PJ ルーキー賞 iOSDC登壇 など... このプロジェクトの中で をお話します ● 学んだこと ● やらかしたこと

Slide 6

Slide 6 text

アプリアップデート通知 PJ

Slide 7

Slide 7 text

● 使用中のアプリよりも新しいアプリがリリースされてい る場合に、アップデートを促す通知を表示する機能 ● 初担当のプロジェクト ● iOSの実装は基本的に僕1人で担当 ○ 困ったときには他メンバーのサポートあり プロジェクト概要 7

Slide 8

Slide 8 text

プロジェクト概要〜進め方〜 8 ア サ イ ン 見 積 も り 仕 様 の 把 握 実 装 レ ビ ュ | マ | ジ 開 発 完 了 各工程がどの時期に完了するか いつのリリースにするか を洗い出し 機能の開発が完了するまで 実装〜マージを繰り返す 動作検証へ

Slide 9

Slide 9 text

1 期限がまずい!なぜ見積もりが狂った??

Slide 10

Slide 10 text

何が起きたのか? 見積もりの時点で『各工程がどの時期に完了するか』を洗い出した (開発の最中のチェックポイントが設定されたイメージ) そして実装開始! 実装自体はそれほど遅れなく進めることができていた 10 プロジェクト概要〜進め方〜 から引用

Slide 11

Slide 11 text

何が起きたのか? 見積もりの時点で『各工程がどの時期に完了するか』を洗い出した (開発の最中のチェックポイントが設定されたイメージ) そして実装開始! 実装自体はそれほど遅れなく進めることができていた だが、チケットを進めていく中で徐々に遅れが出てきた... 11 プロジェクト概要〜進め方〜 から引用

Slide 12

Slide 12 text

何が起きたのか? 見積もりの時点で『各工程がどの時期に完了するか』を洗い出した (開発の最中のチェックポイントが設定されたイメージ) そして実装開始! 実装自体はそれほど遅れなく進めることができていた だが、チケットを進めていく中で徐々に遅れが出てきた... 12 プロジェクト概要〜進め方〜 から引用 なぜ...?

Slide 13

Slide 13 text

進捗に遅れが出ていた原因 原因: レビューしていただくのに時間がかかっていた 13 チケットの進め方は以下の通り 実装 → レビュー → (修正 & 再レビュー) → マージ

Slide 14

Slide 14 text

進捗に遅れが出ていた原因 原因: レビューしていただくのに時間がかかっていた 14 本プロジェクトで自分が実装したコードを iOSチームのメンバーにレビューしていただく 【問題点】 1. レビュアーは自分からのレビュー以外にもいくつかのレビュー依頼を受けている場合がある 2. レビュアーはこのプロジェクトの担当者ではない チケットの進め方は以下の通り 実装 → レビュー → (修正 & 再レビュー) → マージ

Slide 15

Slide 15 text

1 レビュアーがいくつかのレビュー依頼を受けている

Slide 16

Slide 16 text

レビュアーがいくつかのレビュー依頼を受けている 先着順に処理されるので、レビュアーに先着のレビュー依頼があった場合には レビューをしてもらえるまで待ちが発生する 他のチケットを並行して進められる場合には問題にならないのだが、『このチケッ トを終わらせてからでないと次のチケットを進められない』という場合に、問題と なる 16

Slide 17

Slide 17 text

どうすればよいのか? チケットに着手するときに このチケットのレビューの優先度が高いことを伝える ようにする 例: 17 「今から実装をするこのチケットは〇〇(期限)までに完了させたく、優先度高めでレ ビューしていただけるとありがたいです  」

Slide 18

Slide 18 text

どうすればよいのか? チケットに着手するときに このチケットのレビューの優先度が高いことを伝える ようにする 18 「このレビュー依頼はそれほど優先度が高くないので、今されている〇〇の作業を優先 していただき、そちらが落ち着いてからでの確認で大丈夫です  」 また、レビュー依頼時にこんな気遣いをするようにもなった... 「レビューをしていただいてる間に、こちらで代わりに進められることがあれば教えて ください  」

Slide 19

Slide 19 text

2 レビュアーはこのプロジェクトの担当者ではない

Slide 20

Slide 20 text

レビュアーはこのプロジェクトの担当者ではない 本プロジェクトは自分1人でiOSの実装を担当しているということは、レビュアーは プロジェクトの担当者ではなく... レビュー依頼時にその実装の背景などを伝える必要がある 20 伝える必要のある背景の例 ● プロジェクトの内容 ● 実装しようとしてる機能の仕様 ● なぜこの実装が必要になるのか

Slide 21

Slide 21 text

どうすればよいのか? プロジェクトを1人で担当する場合にはこの『レビュアーに実装の背景を伝える』と いうのは避けては通れない... → チームでのルールとしてサブ担当という役職をつくることとなった 21 サブ担当の役割 ● プロジェクトの内容をキャッチアップする ● 前提知識が必要なレビューを担当する ● 技術的な相談相手となる

Slide 22

Slide 22 text

これらの学びを得たこともあり、初担当プロジェクトで開発 した『アプリアップデート通知機能』が無事にリリースされ ました

Slide 23

Slide 23 text

働くをもっと楽しく、創造的に