Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
#microcms_meetup 大西 智也 microCMSの エンジニア組織と文化
Slide 2
Slide 2 text
目次 2 ● 自己紹介 ● 技術スタック ● チームと役割 ● 雰囲気や文化、ワークスタイル ● 開発方針 ● 生産性をアグレッシブに上げる取り組み ● 今後の展望 #microcms_meetup
Slide 3
Slide 3 text
自己紹介 3 #microcms_meetup 大西 智也 / Tomoya Onishi @Tomoya_Onishi エンジニアリングマネージャー/個人アプリ開発者 iOS(Swift), React(TS), WebAPI(Golang) Appleプラットフォームが得意なエンジニア TomoyaOnishi
Slide 4
Slide 4 text
自己紹介 4 #microcms_meetup 1位 未来志向 2位 共感性 3位 親密性 4位 分析志向 5位 回復志向 … 34位 競争性 ストレングスファインダー 性格など ● 好きな食べ物:焼きそば ● 嫌いな食べ物:トマト ● 走れば間に合う電車には走らないタイプ
Slide 5
Slide 5 text
自己紹介(経歴) 5 #microcms_meetup ● 2013年 ヤフーに新卒入社 ● 社内スタートアップを経験 ● XP開発を経験 ● CTO室にて技術の追求 ● 2022年5月 microCMSに入社
Slide 6
Slide 6 text
自己紹介(経歴) 6 #microcms_meetup ● 2013年 ヤフーに新卒入社 ● 社内スタートアップを経験 ● XP開発を経験 ● CTO室にて技術の追求 ● 2022年5月 microCMSに入社 ● SNSアプリ ● ヤフーメールiOSアプリ ● ライブコマース スモールチームでの開発経験 企画、デザインも一緒に考える リードエンジニアとして様々なチームと連携
Slide 7
Slide 7 text
自己紹介(経歴) 7 #microcms_meetup ● 2013年 ヤフーに新卒入社 ● 社内スタートアップを経験 ● XP開発を経験 ● CTO室にて技術の追求 ● 2022年5月 microCMSに入社 ● ヤフオク、PayPayフリマの開発 ● アジャイル開発の一種 ○ エクストリームプログラミング=XP ○ 企画から開発までのプラクティスの集まり ● ペアプロとテスト駆動、CI/CDなどの自動化 ● テストの重要性と自動化、省略で生産性を向上 ● コードレビュー省略による生産性の高さを実感 一部の考え方を取り込んでいるので後ほど紹介
Slide 8
Slide 8 text
自己紹介(経歴) 8 ● 2013年 ヤフーに新卒入社 ● 社内スタートアップを経験 ● XP開発を経験 ● CTO室にて技術の追求 ● 2022年5月 microCMSに入社 ● Web、アプリの技術トレンドのキャッチアップ ● 機械学習の実証実験 ● その他 ○ 企業内大学にて、リーダーシップや 組織の知見を学ぶ
Slide 9
Slide 9 text
自己紹介(経歴) 9 #microcms_meetup ● 2013年 ヤフーに新卒入社 ● 社内スタートアップを経験 ● XP開発を経験 ● CTO室にて技術の追求 ● 2022年5月 microCMSに入社 ● 開発本部の大まかな方針、ロードマップ ● 生産性向上の仕組み作り
Slide 10
Slide 10 text
目次 10 ● 自己紹介 ● 技術スタック ● チームと役割 ● 雰囲気や文化、ワークスタイル ● 開発方針 ● 生産性をアグレッシブに上げる取り組み ● 今後の展望 #microcms_meetup
Slide 11
Slide 11 text
技術スタック 11 ● インフラ ○ AWS ■ DynamoDB ■ Lambda ○ Amplify → Terraform #microcms_meetup ● Web API ○ Node.js → Golang ● Web フロントエンド ○ React
Slide 12
Slide 12 text
チームと役割 12 ● プロダクト開発チーム ● バックエンド開発チーム ● Go移植チーム #microcms_meetup
Slide 13
Slide 13 text
プロダクト開発チーム 13 #microcms_meetup ● 新機能の開発に特化したチーム ○ ストリームアラインドチーム ● 3.5人 ● PdM、デザイナーと協業 ● WebフロントだけでなくAPIも開発 ● 複雑なものや中規模以上のものはペアで開発 ○ リッチエディターv2は2人 ○ 複数画像フィールドは1人 ● 定例は週1のみ ○ 非同期ワーク ○ 自律した組織
Slide 14
Slide 14 text
バックエンド開発チーム 14 ● インフラやWebAPIなど バックエンド開発に特化したチーム ○ プラットフォームチーム ● 1.5人... #microcms_meetup ● プロダクト開発チームの範囲外のほぼ全て ○ 開発環境の運用 ○ 新機能のインフラ部分の開発 ○ CI/CD ○ Terraform移行 ● 他のチームを技術的にサポート ● 定例などはなく、自律してタスクを進める
Slide 15
Slide 15 text
Go移植チーム 15 #microcms_meetup ● Node.jsで書かれたAPIをGolangに書き換え ● 副業で4人 ● 設計や大まかな構造はバックエンド開発チームで整えた ● 定例などはなく、非同期コミュニケーション中心 ● 半年〜1年単位の抜本的な技術改善
Slide 16
Slide 16 text
目次 16 ● 自己紹介 ● 技術スタック ● チームと役割 ● 雰囲気や文化、ワークスタイル ● 開発方針 ● 生産性をアグレッシブに上げる取り組み ● 今後の展望 #microcms_meetup
Slide 17
Slide 17 text
ワークスタイル 17 ● 全社的に非同期コミュニケーションに比重を置いている ● タスク管理はClickUp ○ 誰が何をいつまでにやるかがわかる ○ 自分のタスクを自分で管理する意識 ● 承認のようなものはない ○ チームで合意が取れれば問題ない ● microマネジメントしない(できない😅) #microcms_meetup 自律した働き方が求められる
Slide 18
Slide 18 text
#microcms_meetup 雰囲気や文化的なところ ● バックエンド、フロントエンドのテックリード1名ずつ ○ 技術的な相談はいつでも気軽にできる ○ そういう雰囲気が醸成されている ● 勉強会や輪読会も活発 ● もくもく会 ● 買ってよかったものFM、AI FM 18
Slide 19
Slide 19 text
#microcms_meetup チーム間を超えたコミュニケーション 19 ● オープンかつテキストコミュニケーションに比重を置いているので問題を他人が見つけやすい ● 勝手にレビューされている状態に近い ● レビューや承認のようなものは最低限でいける
Slide 20
Slide 20 text
目次 20 ● 自己紹介 ● 技術スタック ● チームと役割 ● 雰囲気や文化、ワークスタイル ● 開発方針 ● 生産性をアグレッシブに上げる取り組み ● 今後の展望 #microcms_meetup
Slide 21
Slide 21 text
開発方針 21 ● 面倒な部分を省略or自動化して、楽しい部分を増やす ○ XP開発では、これを徹底していてモチベーションも生産性も高く、 心理的安全性も高かった ○ プログラミングは楽しいが・・実際はそれだけではない ■ リリース作業、動作確認(N回)、コードレビュー、アラート対応、事故対応 ■ 特にアラートや事故対応は精神エネルギーを使うので消耗する ■ 大きめの機能なら月曜日リリースでその前の土日から気がかりなんてことも... #microcms_meetup リリースに関するハードルは0にしたい
Slide 22
Slide 22 text
開発方針 22 ● 当然、単純にやらないにはできないので2つの取り組みで解決する #microcms_meetup ○ 自信を持ってリリースできるようになる (=心理的安全性の向上) ○ 必然的にシステムの安定性が向上する ○ 不具合やアラートが減り、事故対応が減 る ○ リリースの自動化 ○ コードレビューをやめる ○ AI ○ etc… 自動テスト 仕組み →楽しい時間が増える
Slide 23
Slide 23 text
開発方針 23 #microcms_meetup
Slide 24
Slide 24 text
開発方針 24 #microcms_meetup = 生産性の向上
Slide 25
Slide 25 text
目次 25 ● 自己紹介 ● 技術スタック ● チームと役割 ● 雰囲気や文化、ワークスタイル ● 開発方針 ● 生産性をアグレッシブに上げる取り組み ● 今後の展望 #microcms_meetup
Slide 26
Slide 26 text
アグレッシブに生産性を上げる 26 ● 取り組み事例をいくつか紹介 ○ AI ○ 自動テストの拡充とコードレビューの省略 #microcms_meetup
Slide 27
Slide 27 text
ChatGPT 27 ● ChatGPT ○ フル活用する ○ コードの自動生成 ○ フォーマット ○ わからないことを聞く ○ 文章を考えてもらう #microcms_meetup
Slide 28
Slide 28 text
ChatGPT 28 ● PRの概要を自動生成(Copilot for PRsリリース待ってます)
Slide 29
Slide 29 text
ChatGPT 29 ● チームでプロンプトを緩く共有しベースラインを上げる
Slide 30
Slide 30 text
GitHub Copilot 30 ● GitHub Copilot ○ コーディングは当然 ○ フォーマットや文章を 考える時にも使う ○ プライベートでも活用
Slide 31
Slide 31 text
GitHub Copilot 31 #microcms_meetup
Slide 32
Slide 32 text
GitHub Copilot Labs 32 ● Language Translation ○ Node.js→Golangへの書き換え ○ 性能が微妙だからと言って 思考停止しない #microcms_meetup
Slide 33
Slide 33 text
コードレビューをやめる 33 ● 発端はGo移植のコードレビューが溜まってしまっていたこと ● バックエンドの社員1人:業務委託4人 ○ 一般的には社員がレビューしてリリース ○ 明らかに無理がある ○ 通常の思考だと開発チーム全員で分担やレビューの時間を決める ■ ダメではないが、違和感 #microcms_meetup
Slide 34
Slide 34 text
コードレビューをやめる 34 ● 実際指摘することって何かあるか? ● Go移植では設計や大まかなコードの構造は決まっているので大きくずれることはない ● レビューで動作確認まではしない ● レビューなしで生産性が向上することは体験していた ● 条件付きでレビュー不要とした ○ ユニットテストのカバレッジクリア ○ E2Eテスト #microcms_meetup
Slide 35
Slide 35 text
コードレビューをやめる 35 #microcms_meetup
Slide 36
Slide 36 text
計測することも重要 36 ● 本質的なことではないが、効果があったのか なかったのか、説明できることも大切 ● ChatGPTのおかげで低コストでできるように なった
Slide 37
Slide 37 text
目次 37 ● 自己紹介 ● 技術スタック ● チームと役割 ● 雰囲気や文化、ワークスタイル ● 開発方針 ● 生産性をアグレッシブに上げる取り組み ● 今後の展望 #microcms_meetup
Slide 38
Slide 38 text
今後の展望や考え 38 ● AIによって破壊的な生産性向上がもたらされた ○ ちまちま生産性を上げても仕方ない気持ちになったのでアグレッシブに考えている ● エンジニアリングマネージャーの仕事は多々あるが、引き続き生産性の向上を軸に ● 世間と同じことをやっていては同じ成長率 ○ 他の会社の方が優れたエンジニアがいると考える方が妥当 ● LLMの登場でプログラミングの部分では差をつけづらくなる ○ ワークフロー全体の効率化やこの組織ならいいものを作れるという気持ちの醸成などが より重要になる ● 組織が大きくなるとやりづらいことは経験しているので今のうちにトライ&エラー
Slide 39
Slide 39 text
まとめ 39 #microcms_meetup ● 非同期ワークが浸透しており、タスク管理など自律したワークスタイル ● 新機能を開発するチームとそれを支えるチームで構成 ○ ストリームアラインドチーム、プラットフォームチーム ● アグレッシブな生産性向上に挑戦している
Slide 40
Slide 40 text
採用情報 40 ● バックエンドエンジニア、プロダクトエンジニアを大募集! ● AWS、Terraform、Golang、インフラ、Web API、Webフロントが得意な人 ● タスク管理など自律できる人 ● フレックスタイム ● アディショナル休暇制度あり(法定有給に+10日) ● 経営陣も含めてプライベートも大事にするワークスタイル https://jobs.microcms.co.jp/
Slide 41
Slide 41 text
Thanks :) 41 #microcms_meetup https://discord.gg/K3DPqw4EJ2 @micro_cms