Merpay Advent Calendar 2021 の9日目は、メルペイ Credit Design チームの @fivestar がお送りします。
今回のテーマである Engineering Counterpart は現在メルペイが取り入れているソフトウェアエンジニアのロールの1つで、プロジェクトチームにおいて Product Manager (PM) や Project Leader (PJL) のカウンターパートとなり、テクノロジー観点だけでなく、お客さまやビジネスの観点も踏まえて、プロダクトが提供する価値を最大化させることを目的として導入されました。
現在私は Credit Design チームで Engineering Counterpart としていくつかのプロジェクトに入っており、これまでに感じた課題や自身が行ってきた取り組みなどを振り返ってみたいと思います。
Engineering Counterpart の導入背景とか
Engineering Counterpart が導入された背景として、 PM やエンジニアの役割が確立されてきたことや、プロダクトが成長に伴い複雑化してきた中において、各自の責任範囲が専門領域に寄りがちな傾向が見えてきたため、領域を閉じることなく様々な観点からプロダクトとしての価値を追求できる組織体制にしたいという思いがありました。
私は2019年にメルペイに転籍して以降、メルペイスマート払いの定額払いやメルペイスマートマネーといった大型のプロジェクトに携わりましたが、確かに当初はこういった専門性の分断が顕在化しつつあったように思います。
メルペイのプロダクト開発ではまず Spec を作成して要件を整理し、そこから設計、実装、 QA と行っていきます。 Spec を作成するのは PM の役割で、エンジニアはその Spec に従って実装する、といった具合です。ここだけみると至極まっとうな役割分担のように思えますが、実際には Spec を煮詰めきれておらず設計や実装に落とし込む過程で不整合が見つかって手戻りが生じる、といったことが発生していました。
私は Engineering Counterpart という役割が導入される以前よりこういった問題を改善すべく、次のような点を意識して PM とコミュニケーションを取るようにしていました:
- プロジェクト/プロダクトが達成したいビジョンやゴールを PM と密に共有する
- Tech Lead (TL) として Spec の完成に責任を持ち、技術的な整合性や、実現までの計画性を考慮したフィードバックを通じて Spec を共に作り上げていく
- ユビキタス言語の策定を通じてチームの語彙を確立・浸透させていくと共に、ドメインモデルも PM を交えて作り込んでいく
こうした点を責任を持って取り組んだプロジェクトでは、PM/エンジニア間の相互理解が深まり、 Spec の完成度が上がることで不確実性が抑えられ、安定した進行を取ることができました。
Engineering Counterpart の責務
メルペイにおける Engineering Counterpart については漠然とした呼称だけがあるのではなく、責務についても明文化されています。下記は一部原文の抜粋です:
As a high level concept, an Engineering Counterpart is expected to make a state where a PJ (project) works. The detailed responsibilities have diversity based on the characteristics of the project.
Minimum
- Be the first contact to the PJ leader.
- Connect PMs/TLs/engineers inside the project especially when the project starts.
- Connect them with other functions/EMs when collaboration is required.
- Attend project meetings to understand its status/issues. (E.g. daily standup, weekly meeting)
- Solve issues at the meeting, or arrange communication with appropriate people.
- Raise escalations/reports in an EM report line about the project status/issues.
この他にもプロジェクトやプロジェクトチームの特性に応じた行動指針が書かれており、開発プロセス構築や、経験値の浅い TL の指南など、必要に応じてプロジェクトに自発的なアクションを起こしていくことも要求されています。
実際のところ、メルペイにおける Engineering Counterpart はその多くを Engineering Manager (EM) が担っており、自分のような非マネジメント系のエンジニアがやっているのは少数派です。自分の場合は行動範囲の広い TL 的な振る舞いをしているので、解決したい課題に対するアプローチ方法が標準的なそれとは違う可能性が大いにあるので、あくまで一例として捉えてもらえると助かります。
Engineering Counterpart としての現在と今後
私が所属する Credit Design チームはメルペイの中でも規模の大きなチームで、メルペイスマート払いやメルペイスマートマネーなど、 toC のお客さま向けに様々なサービスを開発・提供しています。コードベースも大きく、また常に複数のプロジェクトチームが稼働している状況です。
私自身はコミュニケーションに時間を割きつつも、今でも設計をしたりコードを書いたりしています。開発チームの当事者としてプロダクトを深く理解しつつコミュニケーションの質も高めていくスタイルが自身のポテンシャルを発揮できると考えているためです。
とはいえ1人ですべて把握できるわけもなく、プロジェクトを絞って担当をしています。特に Growth 系のチームはほぼ他のメンバーに任せて、意思決定の速度を上げて小回りがきく体制にしています。自分は主に大型の新規機能や新プロダクト開発など、不確実性の大きなプロジェクトを中心に担当しています。
当然エンジニア間でのコミュニケーションは日々重ねており、どの領域に誰が精通しているかを理解し、自身で解決できない課題に対して適切な支援を受けられる関係を築けていると思います。また、技術的な課題の解決に取り組める仕組みづくりも推進したり、場合によっては技術課題の解決自体をプロジェクト化して組織的に取り組むといった働きかけも行っています。
PM との関係値で言えば、プロジェクトマネジメントや、課題解決のアプローチについて提言させていただくこともあります。共にやってきた PM がリーダーシップ面で成長していると一緒にやっていて楽しいですし、そうした様々なフィードバックを通じてこれからも信頼関係が築けていければいいなと思っています。
組織マネジメントの面では EM と密にコミュニケーションをとり、組織課題に対しての提案や、働きかけのお願いをしたりして動いてもらうなど、二人三脚で協力しながら取り組んでいます。 EM とは上下関係というよりは対等にリスペクトし合う関係で、互いにプロフェッショナルとして協力できていると思います。
おわりに
こうした取り組みを通じて自身の働き方の幅の広がりを実感しており、とてもモチベーティブに働けています。ありがたいことに昨年はメルペイ MVP を受賞することもでき、チームに貢献できている手応えを感じられています。
もっとも、こうした役割を任せられるにあたって、役割が定義される以前から前述のような取り組みは続けていて、実際のところ Engineering Counterpart になったからといって振る舞いを大きく変えたりはしていません。メルペイの組織的にも Engineering Counterpart という役割が真に確立されていくのはまだまだこれからなので、自身も様々なフィードバックを行い、組織としてよいチーム体制を構築できるよう成長を続けていきたいと思います。
それでは、ここまで読んでいただきありがとうございました。
明日の Merpay Advent Calendar 2021 を引き続きお楽しみください!