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
270
巨大プロジェクトにおける オンボーディング
forcia_dev_pr
August 15, 2021
Tweet
Share
More Decks by forcia_dev_pr
See All by forcia_dev_pr
"書く文化"を仕組みで育てる──フォルシアの技術ブログ継続戦略
forcia_dev_pr
1
220
新しいおもちゃを見つけたい私がやっている情報収集
forcia_dev_pr
2
460
「Pythonの環境構築について」と記事作成で意識したこと
forcia_dev_pr
1
170
Neovim で VS Code みたいにコーディングする
forcia_dev_pr
1
190
なぜ・どうやって・何を書く? 〜技術記事を書く習慣の作り方〜
forcia_dev_pr
1
190
第8回ゆるふわオンサイト 解説スライド
forcia_dev_pr
0
150
第7回ゆるふわオンサイト解説
forcia_dev_pr
0
260
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
260
よくわかるFORCIAのエンジニア旅行SaaSプロダクト開発編
forcia_dev_pr
0
950
Other Decks in Technology
See All in Technology
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
700
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
320
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
180
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
3
160
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
190
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
190
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
210
配列に見る bash と zsh の違い
kazzpapa3
3
160
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
17k
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
510
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.8k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
My Coaching Mixtape
mlcsv
0
48
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Building the Perfect Custom Keyboard
takai
2
690
Testing 201, or: Great Expectations
jmmastey
46
8k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Producing Creativity
orderedlist
PRO
348
40k
Docker and Python
trallard
47
3.7k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
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