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
forcia_dev_pr
August 15, 2021
Technology
0
240
巨大プロジェクトにおける オンボーディング
forcia_dev_pr
August 15, 2021
Tweet
Share
More Decks by forcia_dev_pr
See All by forcia_dev_pr
第7回ゆるふわオンサイト解説
forcia_dev_pr
0
170
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
200
よくわかるFORCIAのエンジニア旅行SaaSプロダクト開発編
forcia_dev_pr
0
610
よくわかるフォルシアのエンジニア 新卒採用編
forcia_dev_pr
0
3.1k
第5回ゆるふわオンサイト解説
forcia_dev_pr
0
140
よくわかるフォルシアのエンジニア 旅行プラットフォーム部編
forcia_dev_pr
0
5.6k
React hooks を気合で理解する
forcia_dev_pr
0
360
k8sマニフェストを Typescriptで管理したい― cdk8s+を導入してみました ―
forcia_dev_pr
0
340
第4回ゆるふわ競技プログラミングオンサイト解説
forcia_dev_pr
0
520
Other Decks in Technology
See All in Technology
MIMEと文字コードの闇
hirachan
2
1.5k
OPENLOGI Company Profile for engineer
hr01
1
20k
開発者のための FinOps/FinOps for Engineers
oracle4engineer
PRO
2
260
Охота на косуль у древних
ashapiro
0
130
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
310
JAWS DAYS 2025 アーキテクチャ道場 事前説明会 / JAWS DAYS 2025 briefing document
naospon
0
2.8k
株式会社Awarefy(アウェアファイ)会社説明資料 / Awarefy-Company-Deck
awarefy
3
12k
手を動かしてレベルアップしよう!
maruto
0
250
データベースの負荷を紐解く/untangle-the-database-load
emiki
2
550
アジリティを高めるテストマネジメント #QiitaQualityForward
makky_tyuyan
1
300
What's new in Go 1.24?
ciarana
1
120
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.9k
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
Done Done
chrislema
182
16k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
It's Worth the Effort
3n
184
28k
Building Applications with DynamoDB
mza
93
6.2k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Visualization
eitanlees
146
15k
Become a Pro
speakerdeck
PRO
26
5.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Transcript
巨大プロジェクトにおける オンボーディング 島本 晃平 2021.08.10 FORCIA Meetup #3 エンジニアとして技術を「伝える」技術
自己紹介 • 島本 晃平 (Kohei Shimamoto) ◦ 2013年新卒入社(9年目) • ソフトウェアエンジニア
◦ 大手の旅行・福利厚生企業の開発・運用(2013年~now) ▪ 大手旅行会社の巨大プロジェクトのEL(2019年~2020年) • このプロジェクトでの経験をお話します ◦ 技術教育チーム(立ち上げの2014年から2018年くらいまで) ◦ 新規事業立ち上げ(2020年~now) • 趣味 ◦ サッカー(社会人新宿区1部リーグ所属) ◦ 旅行(写真のドブロブニクは最高!!) 2
新規事業 旅行用モデルコース提供サービス Trakite 3
4 小豆島観光協会様の事例はこちら @trakite_pr 新規事業 旅行用モデルコース提供サービス Trakite
目次 • フォルシアの「大型」案件とは • オンボーディングの難しさ • オンボーディングを促すアクション • アクションの結果 •
エンジニアリーダー視点から見たフォルシア 5
フォルシアの「大型」案件とは 6
フォルシアの案件規模 エンジニ アの人 数 7 大規模 期間 1人 数日 2~3人
数ヵ月 4~10人 1~2年 少数の案件 大部分の案件
私がリーダーを務めた「大型」案件の規模 エンジニ アの人 数 8 大規模 期間 1人 数日 2~3人
数ヵ月 10人 1年 私がリーダー を務めた案件 4~10人 1~2年 大部分の案件 少数の案件
私がリーダーを務めた「大型」案件の規模 エンジニ アの人 数 9 大規模 期間 1人 数日 2~3人
数ヵ月 10人 1年 私がリーダー を務めた案件 4~10人 1~2年 大部分の案件 少数の案件 2人から7ヵ月かけて10人へ 沢山オンボードしている
フォルシアの特徴 エンジニ アの人 数 10 大規模 期間 1人 数日 2~3人
数ヵ月 4~10人 1~2年 ほぼ社員で構成 大部分の案件 少数の案件 10人 1年 私がリーダー を務めた案件 精鋭メンバーが領域ごとに 分担することが多かった
私がリーダーを務めた「大型」案件の特徴 エンジニ アの人 数 11 大規模 期間 1人 数日 2~3人
数ヵ月 10人 1年 私がリーダー を務めた案件 4~10人 1~2年 業務委託含む構成 チームでまんべんなく対応 大部分の案件 少数の案件 ほぼ社員で構成 精鋭メンバーが領域ごとに 分担することが多かった SHIFT
オンボーディングの難しさ 12
オンボーディングの難しさ 13 • パフォーマンスを発揮できる環境の構築 • 文脈のキャッチアップ
パフォーマンスを発揮できる環境の構築 14 • 心理的安全の確保 ◦ チームの雰囲気にどうやって馴染むか ◦ 文脈のキャッチアップが大変・案件の難易度も高い不安 ◦ はじめましてのメンバーでの信頼関係の構築
• メンバーの主体性の確保 ◦ 何からやればいいのやら ◦ 期待値調整 ▪ 求められる役割は? 案件を通して得たいものは?
文脈のキャッチアップ 15 • 開発のあれこれ ◦ 設計・実装方針・フレームワークの使い方 ◦ 顧客や業界特有のビジネスロジック • ドキュメントのあれこれ
◦ 大量のドキュメントの管理 • コミュニケーション方法のあれこれ ◦ 社内外で関係者が数十人もいる中でだれに、なにを? ◦ 電話・JIRA・backlog・メール・MTGのいつ、どうやって?
オンボーディングの難しさ 16 • パフォーマンスを発揮できる環境の構築 ◦ コミュニケーションの課題 • 文脈のキャッチアップ ◦ キャッチアップの順番整備の課題
オンボーディングを促すアクション 17
オンボーディングを促すアクション 18 明日から実践出来る3つ • にぎやかす • コミュニケーションの場を作る • タスクアサインを工夫する
オンボーディングを促すアクション 19 明日から実践出来る3つ • にぎやかす • コミュニケーションの場を作る • タスクアサインを工夫する キャッチアップ促進
コミュニケーション改善
オンボーディングを促すアクション 20 明日から実践出来る3つ • にぎやかす • コミュニケーションの場を作る • タスクアサインを工夫する ちょっと具体に話します
さくっと話します
オンボーディングを促すアクション 21 明日から実践出来る3つ • にぎやかす • コミュニケーションの場を作る • タスクアサインを工夫する
にぎやかす 22 コミュニケーションの量を増やすためのにぎやかな雰囲気を作る 心理的安全を確保する • 基本の挨拶・パーソナルな話をする • チームのスタンスに合わせて煽ってにぎやかす ◦ 「大変な時こそ笑って前向きに」が部のコンセプト
• PM、部長、リーダーなど偉い人程いじる ◦ キャラクターを見せてもらい「壁がない」ことを周知する • 若手や業務委託の人の発言を促し、主体者であることを求める
オンボーディングを促すアクション 23 明日から実践出来る3つ • にぎやかす • コミュニケーションの場を作る • タスクアサインを工夫する
コミュニケーションの場を作る 24 コミュニケーションの質を高めるために目的に合わせた場を設定 心理的安全の確保とキャッチアップを促進する • キックオフMTG • スタンドアップMTG • スプリント振り返りMTG
• 設計・実装方針の認識合わせMTG • MRのレビュー
コミュニケーションの場を作る 実施タイミング 25 コミュニケーションの質を高めるために目的に合わせた場を設定 心理的安全の確保とキャッチアップを促進する • キックオフMTG → フェーズごと • スタンドアップMTG → 毎日
• スプリント振り返りMTG → スプリントごと • 設計・実装方針の認識合わせMTG → 1,2ヵ月に1回 • MRのレビュー → 都度
コミュニケーションの場を作る 実施目的 26 コミュニケーションの質を高めるために目的に合わせた場を設定 心理的安全の確保とキャッチアップを促進する • キックオフMTG → PJの認識合わせ • スタンドアップMTG → 互いを知る
• スプリント振り返りMTG → 開発プロセス改善 • 設計・実装方針の認識合わせMTG → 開発の認識合わせ • MRのレビュー → 文脈のキャッチアップ
キックオフMTG フェーズごと・PJの認識合わせ 27 • フェーズ毎に実施 ◦ 要件定義、開発、試験など • 案件概要 / 全体のスケジュール
/ 開発の進め方 / プロジェクトリスク について / チームで達成したいこと、個人で達成したいことをすり合わ せる • キックオフMTGは全社的に実施する文化がある
スタンドアップMTG 毎日・互いを知る 28 • 毎日、一人当たり1分、今日やること、疑問 の共有 ◦ 具体的な相談は後で • 全体への共有 ▪ 顧客状況などのPJ関連トピックの共有
• テーマを決めておしゃべり ◦ 雑談・パーソナルな話をするのも目的の一つ
スプリント振り返り スプリントごと・開発プロセス改善 29 • 今回のスプリントの状況確認(5分程度) • プロセス改善_スプリント振り返り (20~30分) ◦ KPT(Keep /
Problem / Try) • 次のスプリントでやること_バックログ棚卸し(15分) • にぎやかしも忘れずに
設計・実装方針の認識合わせ会 隔月・開発の認識合わせ 30 • チーム全体でのより深い認識合わせ ◦ 日常の個々のメンバーでのやり取りよりも踏み込む ◦ 設計意図の共有や方針に関する不明点の解消 • より良い設計・実装方針の相談
◦ メンバーの知見を集結・共有して最適な設計を考える ▪ モジュールの新機能の活用法検討など
MRのレビュー 都度・文脈のキャッチアップ 31 • MRに対して :thumbsup: 2つ以上でマージOKのルール ◦ 全メンバーでレビューをする ◦ 基本的に自分はすべてのMRをレビューしていた • 要件を把握している人のレビュー
◦ 設計・実装方針に沿っているか • 要件を把握していない人のレビュー ◦ レビューを通してキャッチアップする ▪ 実装の意図がわからなければレビューコメントで質問 ▪ あとからジョインした人にも可読性の高いソースへ修正
ドキュメントのエントリーポイントを作る 32 • このドキュメントどこにあります?は100回聞かれる • まずは「これ見て」で調べられる状態になる ◦ 各ドキュメントの置き場へのリンク ◦ 誰が何に詳しいか
◦ 先方とのコミュニケーションの方法 • 「書いてなかったよ」→「ここにあるよ。追記もよろしく」 ◦ みんなが同じ所を通って整備出来る状況がつくれる ◦ ドキュメント探し・コミュニケーション方法のキャッチアップを促す
オンボーディングを促すアクション 33 明日から実践出来る3つ • にぎやかす • コミュニケーションの場を作る • タスクアサインを工夫する コミュニケーション改善
オンボーディングを促すアクション 34 明日から実践出来る3つ • にぎやかす • コミュニケーションの場を作る • タスクアサインを工夫する キャッチアップ促進
タスクアサインの工夫 35 チームジョイン時の最初のタスクアサインの工夫 • 自走力に合わせてゴールに向かって走れるタスクをアサイン • こなしながらあれこれキャッチアップ出来るようにアサイン • 責任もセットでアサイン
タスクアサインの工夫 36 チームジョイン時の最初のタスクアサインの工夫 • 自走力に合わせてゴールに向かって走れるタスクをアサイン • こなしながらあれこれキャッチアップ出来るようにアサイン • 責任もセットでアサイン
タスクアサインの工夫 自走力とは 37 • ゴール明確化力 ◦ モジュール開発 ⇒ Input / Output ◦ 検索ページ開発 ⇒ 要件から仕様への落とし込み
etc. • 実行力 ◦ モジュール開発 ⇒ テストを書いて通す実装力 ◦ 検索ページ開発 ⇒ 設計、対応方針、タスクの分解 etc. タスクの粒度が大きくなると実装力以外の能力が求められる
タスクアサインの工夫 自走力とは 38 タスクの大きさ (習得に経験が必要) 小 大 • 要件面 ◦ 要件から適切な仕様への落とし込み
◦ 要件を実現する実装方法 • 開発プロセス面 ◦ 設計力・適切な処理の粒度 ◦ 開発順序・検証項目 • 実装面 ◦ 必要機能の明確化と実現 ◦ 現状のアプリの理解
タスクアサインの工夫 自走力のある人 39 分割して 対応順に 並べる • ゴールを明確化し、タスクを分解して、適切な順番で対応する • 経験が少ないと難しい作業、手戻りが多くいつまでも終わらない ◦
伴走してもいきなり検索ページを作るのは難しい 実装 自走力がある人の大きなタスクの進め方 モジュールの実装 etc.
タスクアサインの工夫 タスクの粒度・渡し方 40 自走力・経験 豊富 これから スプリント タスクの分解から丸っ とお任せ 小さく分解 明確なゴール 順番に渡す
飲み込み易く フォロー 少しずつ大きくしながら ゴール明確化力を養う
タスクアサインの工夫 41 チームジョイン時の最初のタスクアサインの工夫 • 自走力に合わせてゴールに向かって走れるタスクをアサイン • こなしながらあれこれキャッチアップ出来るようにアサイン • 責任もセットでアサイン
タスクアサインの工夫 キャッチアップの順番 42 • 要件面 ◦ 要件から適切な仕様への落とし込み ◦ 要件を実現する実装方法 • 開発プロセス面
◦ 設計力・適切な処理の粒度 ◦ 開発順序・検証項目 • 実装面 ★ここを促進させるアサイン ◦ 必要機能の明確化と実現 ◦ 現状のアプリの理解 キャッチアップ順
タスクアサインの工夫 タスク例 43 • 課題・ゴール • 対応方針 を具体化して 手を動かせるようにし 成功体験を作る •
ソース上の対応箇所 • 参考実装・実装の経緯 なども伝えて 手を動かしながらアプリの キャッチアップを促進
タスクアサインの工夫 44 チームジョイン時の最初のタスクアサインの工夫 • 自走力に合わせてゴールに向かって走れるタスクをアサイン • こなしながらあれこれキャッチアップ出来るようにアサイン • 責任もセットでアサイン
タスクアサインの工夫 責任もセットでアサイン 45 • 「このタスクをゴールまで持ってく責任は貴方にあります。」とアサイン ◦ プロとして信頼して任せるというメッセージ ▪ ヘルプを求めても良いが期限内の完遂に責任を課す ▪ 期限直前でヘルプを上げても間に合わない
• 任せて放置ではない ◦ ゴールを明確化し自走出来る状況を作るまでは手伝う ◦ 適度に声をかけて走れているか確認 ▪ 自走できる状況を都度作り直す • ※心理的安全を確保しているから取れるアクションであることに注意
オンボーディングを促すアクション 46 明日から実践出来る3つ • にぎやかす • コミュニケーションの場を作る • タスクアサインを工夫する キャッチアップ促進
コミュニケーション改善
アクションの結果(?) 47
アクションの結果(?) 48 • 100~200コミット/日 の爆速開発 • 「大変なのにいつも明るく前向きで良いチーム」 ◦ と評価されその年の社内No.1プロジェクトに選ばれる • 他チームから移籍してきてくれたメンバーからの絶賛の声
◦ 「チームにめちゃくちゃスムーズにジョイン出来ました」 ◦ 「こんなにみんながレビューしてくれるチームはないです」 • メンバーの成長(もちろん個人の能力によるものが大きい) ◦ 外部メンバーが運用フェーズの要に ◦ 当時新卒1年目のエンジニアが次フェーズで中心メンバーに
エンジニアリーダー視点から見たフォルシア 49
エンジニアリーダー視点から見たフォルシア 50 • エンジニア ◦ 前向きさ・責任感・学習意欲があり、コミュニケーションの質が高い • PM ◦ 仕様の番人として絶大な信頼がおける
◦ エンジニアとも対等な関係で丁寧なコミュニケーションがとれる • 営業 ◦ エンジニアとの対立がない ◦ 顧客と対等な立場を築くためのタフな交渉を請け負う頼れる仲間 • 顧客との関わり方 ◦ パートナーとしてプロジェクトオーナーと対面出来る面白さ
EOF