Slide 1

Slide 1 text

#merpay_techtalk
 Engineering Productivity Team について
 2022/05/25
 @zoncoen


Slide 2

Slide 2 text

2 Engineering Productivity Team, Merpay, Inc. 
 Kenta Mori (@zoncoen)
 2018年にメルペイへ入社し、QRコード決済に関わるマイクロサービスの開発に携 わる。その後、Architectチームでマイクロサービスのためのインテグレーションテ ストプラットフォームの開発などを担当。2022年1月からEngineering Productivity チームのテックリードを務める。 


Slide 3

Slide 3 text

エンジニアリングで社内の開発者を支援するチーム
 3 Engineering Productivity Team とは
 ● 機能開発の効率化や運用の支援を行うための社内サービスやツールをつくっている
 ● もともとArchitectチームの業務の一環で行っていたが、2022年の1月にArchitectチームから別 のチームとして分離した
 ○ 領域を絞ることで、チームの役割を明確化 
 
 ● 技術的な意思決定
 ● API Gatewayの開発
 ● DesignDocレビュー
 ● 組織的な課題の解決
 
 Architect Team


Slide 4

Slide 4 text

エンジニアリングで社内の開発者を支援するチーム
 4 Engineering Productivity Team とは
 ● 技術的な意思決定
 ● API Gatewayの開発
 ● DesignDocレビュー
 ● 組織的な課題の解決
 
 Architect Team
 ● シナリオテスト基盤の開発
 ● マイクロサービスダッシュボードの開発
 
 
 ● 機能開発の効率化や運用の支援を行うための社内サービスやツールをつくっている
 ● もともとArchitectチームの業務の一環で行っていたが、2022年の1月にArchitectチームから別 のチームとして分離した
 ○ 領域を絞ることで、チームの役割を明確化 
 


Slide 5

Slide 5 text

エンジニアリングで社内の開発者を支援するチーム
 5 Engineering Productivity Team とは
 ● 技術的な意思決定
 ● API Gatewayの開発
 ● DesignDocレビュー
 ● 組織的な課題の解決
 
 Architect Team
 ● シナリオテスト基盤の開発
 ● マイクロサービスダッシュボードの開発
 
 
 Engineering Productivity Team 
 ● 機能開発の効率化や運用の支援を行うための社内サービスやツールをつくっている
 ● もともとArchitectチームの業務の一環で行っていたが、2022年の1月にArchitectチームから別 のチームとして分離した
 ○ 領域を絞ることで、チームの役割を明確化 
 


Slide 6

Slide 6 text

Scenario-based Integration Testing Platform
 ● 開発環境を使ってマイクロサービスのインテグレーションテストを行う仕組み
 ● 定期的なテスト実行による問題の早期発見や、Pull RequestのCIとしての自動化されたインテ グレーションテストを実現
 ○ OSSのProwを利用 ● 詳しい仕組みは2021年のMerpay Tech Festで紹介しています
 title: echo-service steps: - title: POST /echo protocol: http request: method: POST url: '{{env.ECHO_ADDR}}/echo' body: message: hello expect: body: message: '{{request.body.message}}'

Slide 7

Slide 7 text

Microservices Dashboard
 ● 各マイクロサービスに関する様々な情報を提供するポータルサイト
 ○ GitHubレポジトリやSlackチャンネルへのリンク ○ インフラのコストグラフ ○ API Specification ○ SLO etc. ● 詳細は以前のMerpay Tech Talkで紹介しています


Slide 8

Slide 8 text

Team Vision
 ● エンジニアリングプロセスを改善し、お客様に届ける価値を最大化する。
 
 
 
 8 Team Vision & Missions
 Team Missions
 ● ソフトウェアサービス開発・運用のワークフローを改善するためのプラットフォームを提供する。
 ● コードを書くことでエンジニアリングの生産性をあげるための方法を、誰もが常に模索する文化 を醸成する。
 
 
 


Slide 9

Slide 9 text

Next Challenge
 ● 業務改善の効率化にエンジニア全員が意識を向けられるようにしていく
 ○ Enginnering Productivity Teamだけが取り組むことではない ○ 各チームの生産性向上への取り組みを支援する体制をつくる ● チームやドメインによらない汎用的な仕組みは利用を推進
 ○ 運用上の問題があれば移管も検討する ■ つくったものをそのまま代わりに運用することはしない ● 課題発見を促進するための取り組み
 ○ 現状は比較的属人的 ○ リモートワークがすすんでコミュニケーションの量が減っている ○ e.g., 各サービスのインシデントにおけるポストモーテムから、エンジニアリングによる解 決方法を模索する

Slide 10

Slide 10 text

10 他のチームとの違い
 ● メルカリグループ全体にマイクロサービス基盤を提供しているMicroservices Platform Teamと は、社内の開発者を支援するという点では似ている
 ○ フォーカスしている領域の違い ■ Merpay ArchitectやEngineering Productivityはあくまでメルペイのチーム ● 最初からマイクロサービスアーキテクチャで開発してきたメルペイと、モノリス からマイクロサービスに移行をすすめているメルカリでは直面している課題 が異なるときもあった ○ 課題に対するアプローチの違い ■ どちらのアプローチも必要 ● 理想的なあるべき姿を定義し、それに向かってサービスを巻き込んで改善し ていくトップダウン的なアプローチ ● 課題の解決方法を提供し、それの利用を推進することで改善していくボトム アップ的なアプローチ ○ Cloud Computing Service とその上で提供される SaaS のような関係とも言える

Slide 11

Slide 11 text

大事にしていること
 ● ビジョンをもって高品質なものを作り込む
 ○ 使われなければ価値はない ○ プロダクトの状況に寄り添い常に改善を続けていく ● つくるだけで終わらせず、普及させるための働きかけ
 ○ 使いたいと思ってもらえる品質 ○ 導入の支援 ○ ドキュメンテーション ● 新しい技術や仕組みを利用できるところは積極的に利用する
 ○ 社内の新しい仕組みは積極的に利用してフィードバックする ○ まだ社内では使われていない技術を試す ■ OSSの利用、コントリビューション