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
microCMSのエンジニア組織と文化
Search
microCMS
May 31, 2023
Technology
0
1.7k
microCMSのエンジニア組織と文化
microCMS
May 31, 2023
Tweet
Share
More Decks by microCMS
See All by microCMS
What’s new in microCMS (2024 microCMS Meetup)
microcms
0
1.3k
microCMSの開発組織 - Deep dive into microCMS
microcms
2
1.8k
意思決定のモヤが晴れるまで
microcms
7
2k
Webフロントエンドの進化とJamstackアーキテクチャの変遷
microcms
7
3k
microCMS AI
microcms
0
1.7k
シン・リッチエディタ徹底解説
microcms
1
1.8k
新リリース:microCMSテンプレート
microcms
1
1.8k
Cloudflare Pages/Workersとは
microcms
2
860
Next.jsでの開発を加速させるVercelとNext.js/App Routerの便利な機能たち
microcms
1
930
Other Decks in Technology
See All in Technology
LandingZoneAccelerator と学ぶ 「スケーラブルで安全なマルチアカウントAWS環境」と 私たちにもできるベストプラクティス
maimyyym
1
120
The XZ Backdoor Story
fr0gger
0
2.4k
タイミーのBraze活用 ~PUSH通知を活用したレコメンド~
ozeshun
2
140
RAGHack: Kickoff and RAG 101
pamelafox
0
260
OCI コスト管理
ocise
1
150
標準最高!標準はださくないぞ! at fukuoka.ts #1
yoiwamoto
0
150
MySQLのあらたしいリリースモデル LTSとIR
sakaik
1
120
ロボットアームを遠隔制御の話 & LLMをつかったIoTの話もしたい
soracom
PRO
1
210
LLMに日本語テキストを学習させる意義
ksaito
13
3.6k
Dive Deep in Cloud Run: Automatic Base Image update
aoto
PRO
0
900
脆弱星に導かれて
nishimunea
1
1.6k
LLM を現場で評価する
asei
4
700
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
363
22k
YesSQL, Process and Tooling at Scale
rocio
167
14k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
Web development in the modern age
philhawksworth
204
10k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
25
5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
34
1.9k
Testing 201, or: Great Expectations
jmmastey
35
6.9k
Rails Girls Zürich Keynote
gr2m
93
13k
How STYLIGHT went responsive
nonsquared
93
5.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
25
1.3k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
Transcript
#microcms_meetup 大西 智也 microCMSの エンジニア組織と文化
目次 2 • 自己紹介 • 技術スタック • チームと役割 • 雰囲気や文化、ワークスタイル
• 開発方針 • 生産性をアグレッシブに上げる取り組み • 今後の展望 #microcms_meetup
自己紹介 3 #microcms_meetup 大西 智也 / Tomoya Onishi @Tomoya_Onishi エンジニアリングマネージャー/個人アプリ開発者
iOS(Swift), React(TS), WebAPI(Golang) Appleプラットフォームが得意なエンジニア TomoyaOnishi
自己紹介 4 #microcms_meetup 1位 未来志向 2位 共感性 3位 親密性 4位 分析志向 5位 回復志向 … 34位 競争性
ストレングスファインダー 性格など • 好きな食べ物:焼きそば • 嫌いな食べ物:トマト • 走れば間に合う電車には走らないタイプ
自己紹介(経歴) 5 #microcms_meetup • 2013年 ヤフーに新卒入社 • 社内スタートアップを経験 • XP開発を経験
• CTO室にて技術の追求 • 2022年5月 microCMSに入社
自己紹介(経歴) 6 #microcms_meetup • 2013年 ヤフーに新卒入社 • 社内スタートアップを経験 • XP開発を経験
• CTO室にて技術の追求 • 2022年5月 microCMSに入社 • SNSアプリ • ヤフーメールiOSアプリ • ライブコマース スモールチームでの開発経験 企画、デザインも一緒に考える リードエンジニアとして様々なチームと連携
自己紹介(経歴) 7 #microcms_meetup • 2013年 ヤフーに新卒入社 • 社内スタートアップを経験 • XP開発を経験
• CTO室にて技術の追求 • 2022年5月 microCMSに入社 • ヤフオク、PayPayフリマの開発 • アジャイル開発の一種 ◦ エクストリームプログラミング=XP ◦ 企画から開発までのプラクティスの集まり • ペアプロとテスト駆動、CI/CDなどの自動化 • テストの重要性と自動化、省略で生産性を向上 • コードレビュー省略による生産性の高さを実感 一部の考え方を取り込んでいるので後ほど紹介
自己紹介(経歴) 8 • 2013年 ヤフーに新卒入社 • 社内スタートアップを経験 • XP開発を経験 •
CTO室にて技術の追求 • 2022年5月 microCMSに入社 • Web、アプリの技術トレンドのキャッチアップ • 機械学習の実証実験 • その他 ◦ 企業内大学にて、リーダーシップや 組織の知見を学ぶ
自己紹介(経歴) 9 #microcms_meetup • 2013年 ヤフーに新卒入社 • 社内スタートアップを経験 • XP開発を経験
• CTO室にて技術の追求 • 2022年5月 microCMSに入社 • 開発本部の大まかな方針、ロードマップ • 生産性向上の仕組み作り
目次 10 • 自己紹介 • 技術スタック • チームと役割 • 雰囲気や文化、ワークスタイル
• 開発方針 • 生産性をアグレッシブに上げる取り組み • 今後の展望 #microcms_meetup
技術スタック 11 • インフラ ◦ AWS ▪ DynamoDB ▪ Lambda
◦ Amplify → Terraform #microcms_meetup • Web API ◦ Node.js → Golang • Web フロントエンド ◦ React
チームと役割 12 • プロダクト開発チーム • バックエンド開発チーム • Go移植チーム #microcms_meetup
プロダクト開発チーム 13 #microcms_meetup • 新機能の開発に特化したチーム ◦ ストリームアラインドチーム • 3.5人 •
PdM、デザイナーと協業 • WebフロントだけでなくAPIも開発 • 複雑なものや中規模以上のものはペアで開発 ◦ リッチエディターv2は2人 ◦ 複数画像フィールドは1人 • 定例は週1のみ ◦ 非同期ワーク ◦ 自律した組織
バックエンド開発チーム 14 • インフラやWebAPIなど バックエンド開発に特化したチーム ◦ プラットフォームチーム • 1.5人... #microcms_meetup
• プロダクト開発チームの範囲外のほぼ全て ◦ 開発環境の運用 ◦ 新機能のインフラ部分の開発 ◦ CI/CD ◦ Terraform移行 • 他のチームを技術的にサポート • 定例などはなく、自律してタスクを進める
Go移植チーム 15 #microcms_meetup • Node.jsで書かれたAPIをGolangに書き換え • 副業で4人 • 設計や大まかな構造はバックエンド開発チームで整えた •
定例などはなく、非同期コミュニケーション中心 • 半年〜1年単位の抜本的な技術改善
目次 16 • 自己紹介 • 技術スタック • チームと役割 • 雰囲気や文化、ワークスタイル
• 開発方針 • 生産性をアグレッシブに上げる取り組み • 今後の展望 #microcms_meetup
ワークスタイル 17 • 全社的に非同期コミュニケーションに比重を置いている • タスク管理はClickUp ◦ 誰が何をいつまでにやるかがわかる ◦ 自分のタスクを自分で管理する意識
• 承認のようなものはない ◦ チームで合意が取れれば問題ない • microマネジメントしない(できない😅) #microcms_meetup 自律した働き方が求められる
#microcms_meetup 雰囲気や文化的なところ • バックエンド、フロントエンドのテックリード1名ずつ ◦ 技術的な相談はいつでも気軽にできる ◦ そういう雰囲気が醸成されている • 勉強会や輪読会も活発
• もくもく会 • 買ってよかったものFM、AI FM 18
#microcms_meetup チーム間を超えたコミュニケーション 19 • オープンかつテキストコミュニケーションに比重を置いているので問題を他人が見つけやすい • 勝手にレビューされている状態に近い • レビューや承認のようなものは最低限でいける
目次 20 • 自己紹介 • 技術スタック • チームと役割 • 雰囲気や文化、ワークスタイル
• 開発方針 • 生産性をアグレッシブに上げる取り組み • 今後の展望 #microcms_meetup
開発方針 21 • 面倒な部分を省略or自動化して、楽しい部分を増やす ◦ XP開発では、これを徹底していてモチベーションも生産性も高く、 心理的安全性も高かった ◦ プログラミングは楽しいが・・実際はそれだけではない ▪
リリース作業、動作確認(N回)、コードレビュー、アラート対応、事故対応 ▪ 特にアラートや事故対応は精神エネルギーを使うので消耗する ▪ 大きめの機能なら月曜日リリースでその前の土日から気がかりなんてことも... #microcms_meetup リリースに関するハードルは0にしたい
開発方針 22 • 当然、単純にやらないにはできないので2つの取り組みで解決する #microcms_meetup ◦ 自信を持ってリリースできるようになる (=心理的安全性の向上) ◦ 必然的にシステムの安定性が向上する
◦ 不具合やアラートが減り、事故対応が減 る ◦ リリースの自動化 ◦ コードレビューをやめる ◦ AI ◦ etc… 自動テスト 仕組み →楽しい時間が増える
開発方針 23 #microcms_meetup
開発方針 24 #microcms_meetup = 生産性の向上
目次 25 • 自己紹介 • 技術スタック • チームと役割 • 雰囲気や文化、ワークスタイル
• 開発方針 • 生産性をアグレッシブに上げる取り組み • 今後の展望 #microcms_meetup
アグレッシブに生産性を上げる 26 • 取り組み事例をいくつか紹介 ◦ AI ◦ 自動テストの拡充とコードレビューの省略 #microcms_meetup
ChatGPT 27 • ChatGPT ◦ フル活用する ◦ コードの自動生成 ◦ フォーマット
◦ わからないことを聞く ◦ 文章を考えてもらう #microcms_meetup
ChatGPT 28 • PRの概要を自動生成(Copilot for PRsリリース待ってます)
ChatGPT 29 • チームでプロンプトを緩く共有しベースラインを上げる
GitHub Copilot 30 • GitHub Copilot ◦ コーディングは当然 ◦ フォーマットや文章を
考える時にも使う ◦ プライベートでも活用
GitHub Copilot 31 #microcms_meetup
GitHub Copilot Labs 32 • Language Translation ◦ Node.js→Golangへの書き換え ◦
性能が微妙だからと言って 思考停止しない #microcms_meetup
コードレビューをやめる 33 • 発端はGo移植のコードレビューが溜まってしまっていたこと • バックエンドの社員1人:業務委託4人 ◦ 一般的には社員がレビューしてリリース ◦ 明らかに無理がある
◦ 通常の思考だと開発チーム全員で分担やレビューの時間を決める ▪ ダメではないが、違和感 #microcms_meetup
コードレビューをやめる 34 • 実際指摘することって何かあるか? • Go移植では設計や大まかなコードの構造は決まっているので大きくずれることはない • レビューで動作確認まではしない • レビューなしで生産性が向上することは体験していた
• 条件付きでレビュー不要とした ◦ ユニットテストのカバレッジクリア ◦ E2Eテスト #microcms_meetup
コードレビューをやめる 35 #microcms_meetup
計測することも重要 36 • 本質的なことではないが、効果があったのか なかったのか、説明できることも大切 • ChatGPTのおかげで低コストでできるように なった
目次 37 • 自己紹介 • 技術スタック • チームと役割 • 雰囲気や文化、ワークスタイル
• 開発方針 • 生産性をアグレッシブに上げる取り組み • 今後の展望 #microcms_meetup
今後の展望や考え 38 • AIによって破壊的な生産性向上がもたらされた ◦ ちまちま生産性を上げても仕方ない気持ちになったのでアグレッシブに考えている • エンジニアリングマネージャーの仕事は多々あるが、引き続き生産性の向上を軸に • 世間と同じことをやっていては同じ成長率
◦ 他の会社の方が優れたエンジニアがいると考える方が妥当 • LLMの登場でプログラミングの部分では差をつけづらくなる ◦ ワークフロー全体の効率化やこの組織ならいいものを作れるという気持ちの醸成などが より重要になる • 組織が大きくなるとやりづらいことは経験しているので今のうちにトライ&エラー
まとめ 39 #microcms_meetup • 非同期ワークが浸透しており、タスク管理など自律したワークスタイル • 新機能を開発するチームとそれを支えるチームで構成 ◦ ストリームアラインドチーム、プラットフォームチーム •
アグレッシブな生産性向上に挑戦している
採用情報 40 • バックエンドエンジニア、プロダクトエンジニアを大募集! • AWS、Terraform、Golang、インフラ、Web API、Webフロントが得意な人 • タスク管理など自律できる人 •
フレックスタイム • アディショナル休暇制度あり(法定有給に+10日) • 経営陣も含めてプライベートも大事にするワークスタイル https://jobs.microcms.co.jp/
Thanks :) 41 #microcms_meetup https://discord.gg/K3DPqw4EJ2 @micro_cms