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.8k
microCMSのエンジニア組織と文化
microCMS
May 31, 2023
Tweet
Share
More Decks by microCMS
See All by microCMS
エンジニア創業者が語るユーザー中心のプロダクト作り
microcms
1
88
What’s new in microCMS (2024 microCMS Meetup)
microcms
0
1.7k
microCMSの開発組織 - Deep dive into microCMS
microcms
2
2.4k
意思決定のモヤが晴れるまで
microcms
7
2.1k
Webフロントエンドの進化とJamstackアーキテクチャの変遷
microcms
7
3.1k
microCMS AI
microcms
0
1.7k
シン・リッチエディタ徹底解説
microcms
1
1.9k
新リリース:microCMSテンプレート
microcms
1
1.9k
Cloudflare Pages/Workersとは
microcms
2
1k
Other Decks in Technology
See All in Technology
フルカイテン株式会社 採用資料
fullkaiten
0
40k
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
200
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
150
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
350
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
0
110
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
120
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
CysharpのOSS群から見るModern C#の現在地
neuecc
1
3.1k
TypeScript、上達の瞬間
sadnessojisan
46
13k
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
Featured
See All Featured
Facilitating Awesome Meetings
lara
50
6.1k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Building Adaptive Systems
keathley
38
2.3k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
We Have a Design System, Now What?
morganepeng
50
7.2k
Designing for Performance
lara
604
68k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
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