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
開発合宿の裏側 - Web アプリケーションを素早く作る
Search
noy
December 26, 2023
0
41
開発合宿の裏側 - Web アプリケーションを素早く作る
【オフライン開催】Kyoto Tech Talk #3 (
https://moneyforward.connpass.com/event/301922/)での発表資料です
noy
December 26, 2023
Tweet
Share
More Decks by noy
See All by noy
新規事業×生成 AI の不確実性を乗り越える開発プロセス
noy72
0
600
Hatena Engineer Seminar #18 ビジネスプラットフォームチームで始めた『筋トレ』施策について
noy72
0
1.3k
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Building Applications with DynamoDB
mza
90
6.1k
A Modern Web Designer's Workflow
chriscoyier
693
190k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Code Review Best Practice
trishagee
64
17k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
A Tale of Four Properties
chriscoyier
156
23k
Building Adaptive Systems
keathley
38
2.3k
Transcript
開発合宿の裏側 Webアプリケーションを素早く作る id:noy72 / @noynote 2023/12/13 Kyoto Tech Talk #3
1
自己紹介 • id: noy72 / @noynote • 新卒で はてな に入社して現在3年目
• 開発プロセスに興味がある 2
3 話すこと
4 開発プロセスや コミュニケーションを 工夫して 開発を加速させる
話すこと • はてなの開発合宿 • 開発合宿 ~準備~ • 開発合宿 ~当日~ •
良かったことは何か? • まとめ 5
話すこと • はてなの開発合宿 • 開発合宿 ~準備~ • 開発合宿 ~当日~ •
良かったことは何か? • まとめ 6
7 はてなの開発合宿
開発合宿とは 特定のプロダクト開発チームに依らない、 新規事業、サービスの創出と 既存サービス拡大を実現するための 技術的知識の獲得と人材育成をするため、 検証とプロトタイプ作成の場を エンジニアに継続的に提供する場 8
開発合宿とは • 開発合宿が定期的に開催される • 何を作るかは公募→運営が選定 • 有志がチームを組んで開発 • 期間は2日間 •
業務時間を使って良い • リモート開催 9
今回自分が体験した開発合宿 • 普段の開発チーム4人(自分含む)で参加 ◦ フィードアプリの開発 • 準備して良い • 2日のところ3.5日使っても良い •
デザイナーも参加する(合計6人) 10
話すこと • はてなの開発合宿 • 開発合宿 ~準備~ • 開発合宿 ~当日~ •
良かったことは何か? • まとめ 11
12 開発合宿 〜準備〜
無計画に進めると失敗しそう • プロダクトの規模が小さい+人数が少ない であれば細かく計画しなくても良さそう • 今回の状況 ◦ プロダクトの規模が大きい(合宿期間が1.5日長い) ◦ チームの人数が多い
◦ みんなが開発合宿に慣れている、わけではない 13
起こりそうなこと • コード/作業がコンフリクトする • 進捗確認するのが大変 • 次にやるタスクがわからなくなる • ボトルネックが発生する •
→あらかじめタスク分解、依存関係の 整理をすれば解決できそうだけど大変 14
15 開発をどう進めるか?
16 開発をどう進めるか? →ペアで進める
エンジニア側の開発の進め方 2人-2人の2チームに分かれて進める • ペア作業/ペアプロ状態 • チームにユーザーストーリーを割り当てる 17
チームにすると何が嬉しいか • タスク分解を頑張らなくて良い ◦ ユーザーストーリーの順序、 どちらのチームがどれを担当するかを考える ◦ 細かい話はチーム内でよしなにやる • 進捗確認が楽
• 困ったらすぐ相談できる ◦ ペアプロの嬉しさ 18
19 コミュニケーションを どうやって取る?
20 コミュニケーションを どうやって取る? →取る場所/取り方を 決める
昼会、夕会の設定 • 1日に2回みんなで集まる • 全体の状況を把握 • 進捗、障害の確認をする ◦ 「間に合いそうですか」 21
やっぱり Slack • チャンネルを 3 つ作る ◦ 開発合宿チャンネル: みんな(6人) ◦
チームA: エンジニア(2人) ◦ チームB: エンジニア(2人) • 専用チャンネルなので@hereして良い 22
そのほか色々 • 設計、データモデルを考える ◦ 簡易ADRの作成 • リポジトリ、プロジェクトのセットアップ • CD設定 •
デザイン共有 • 大雑把に見た目を作る ◦ CSSフレームワークを作ってそれっぽいページ作成 23
話すこと • はてなの開発合宿 • 開発合宿 ~準備~ • 開発合宿 ~当日~ •
良かったことは何か? • まとめ 24
25 開発合宿 〜当日〜
最初はみんなで集まる • エンジニア+デザイナーが集まって 開発の進め方を確認 • エンジニアだけで認証部分を実装 26
チームに分かれて開発 • 自チームはペアプロした ◦ VSCodeのLive Shareを使った ◦ 手元で立てたサーバーを共有できる • 昼会/夕会でやったことをみんなに共有
27
(再掲)起こりそうなこと • コード/作業がコンフリクトする • 進捗確認するのが大変 • 次にやるタスクがわからなくなる • ボトルネックが発生する 28
(再掲)起こりそうなこと • コード/作業がコンフリクトする ◦ チーム内で密にコミュニケーションを取ることで回避 • 進捗確認するのが大変 ◦ 昼会/夕会で解決 ◦
障害/疑問点もすぐに共有して解決する ◦ 結果、以下の2点も回避 ▪ 次にやるタスクがわからなくなる ▪ ボトルネックが発生する 29
30 大きな問題は起こらず 開発が進む
31 そして社内で お披露目へ……
話すこと • はてなの開発合宿 • 開発合宿 ~準備~ • 開発合宿 ~当日~ •
良かったことは何か? • まとめ 32
33 良かったことは何か?
状況にあった開発の進め方 • モブ→ペア→個別、と進め方が変わった • 抽象的なほど複数人で、 具体的なほど少人数でという考え方もある 34
必要な時に話せる環境 • ペア/エンジニア/デザイナー/みんな それぞれ話せる場所がある ◦ Slack、昼会/夕会 • POの役割をエンジニアの一人が担当 ◦ エンジニア、デザイナー、POが
常に会話できる状態 • 専用チャンネルなので@hereし放題 35
話すこと • はてなの開発合宿 • 開発合宿 ~準備~ • 開発合宿 ~当日~ •
良かったことは何か? • まとめ 36
37 まとめ
まとめ • 状況に合わせて進め方を柔軟に変える ◦ モブ, ペア, 個人 • コミュニケーションの障壁を減らす ◦
会話する場所、方法を決める ◦ 同期的に話す場所を作り進捗を明確に保つ 38