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
140
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
180
よくわかるFORCIAのエンジニア旅行SaaSプロダクト開発編
forcia_dev_pr
0
520
よくわかるフォルシアのエンジニア 新卒採用編
forcia_dev_pr
0
2.8k
第5回ゆるふわオンサイト解説
forcia_dev_pr
0
120
よくわかるフォルシアのエンジニア 旅行プラットフォーム部編
forcia_dev_pr
0
5k
React hooks を気合で理解する
forcia_dev_pr
0
320
k8sマニフェストを Typescriptで管理したい― cdk8s+を導入してみました ―
forcia_dev_pr
0
310
第4回ゆるふわ競技プログラミングオンサイト解説
forcia_dev_pr
0
490
Other Decks in Technology
See All in Technology
Oracle Database Release and Support Timelines 2024/12/11
wmo6hash
0
300
AWS re:Invent 2024 re:Cap CloudFront編
yoshimi0227
0
320
Splunk Enterpriseで S3のデータを直接検索してみた!
recruitengineers
PRO
2
140
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
110
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
140
KubeCon NA 2024 Recap: Managing and Distributing AI Models Using OCI Standards and Harbor / Kubernetes Meetup Tokyo #68
pfn
PRO
0
220
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
140
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
170
5分でわかるDuckDB
chanyou0311
9
3.1k
MLOps の現場から
asei
5
600
re:Invent2024のIaC周りのアップデート&セッションの共有/around-re-invent-2024-iac-updates
tomoki10
0
990
Kubernetes環境のオブザーバビリティの次の一歩をOpenTelemetryで実現すると何がどうなるの? - CloudNative Days Winter 2024
katzchang
0
130
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Facilitating Awesome Meetings
lara
50
6.1k
Docker and Python
trallard
41
3.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
How to Ace a Technical Interview
jacobian
276
23k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
800
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
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