#microcms_meetup大西 智也microCMSのエンジニア組織と文化
View Slide
目次2● 自己紹介● 技術スタック● チームと役割● 雰囲気や文化、ワークスタイル● 開発方針● 生産性をアグレッシブに上げる取り組み● 今後の展望#microcms_meetup
自己紹介3#microcms_meetup大西 智也 / Tomoya Onishi@Tomoya_Onishiエンジニアリングマネージャー/個人アプリ開発者iOS(Swift), React(TS), WebAPI(Golang)Appleプラットフォームが得意なエンジニアTomoyaOnishi
自己紹介4#microcms_meetup1位 未来志向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 FM18
#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
ChatGPT27● ChatGPT○ フル活用する○ コードの自動生成○ フォーマット○ わからないことを聞く○ 文章を考えてもらう#microcms_meetup
ChatGPT28● PRの概要を自動生成(Copilot for PRsリリース待ってます)
ChatGPT29● チームでプロンプトを緩く共有しベースラインを上げる
GitHub Copilot30● GitHub Copilot○ コーディングは当然○ フォーマットや文章を考える時にも使う○ プライベートでも活用
GitHub Copilot31#microcms_meetup
GitHub Copilot Labs32● 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_meetuphttps://discord.gg/K3DPqw4EJ2@micro_cms