見出し画像

PMという職種において、エンジニアリングの知識が役立つ瞬間と勉強法について

よくPMにエンジニアの知識は必要か、プログラミングはできなくてはいけないのかみたいな議論がありますが、元エンジニアとしては知識として知っておいて損はない、むしろエンジニアと同じ温度感で話せるという面においてはすごくいいことだと思ってます。

PMにエンジニアリングの知識は必要?不要?について

予想通りかもしれませんが、あった方がいいよねが世の中の意見だと思っています。エビデンスとして2つ挙げたいと思います。

GoogleでPMをしていた及川卓也さんは下記記事でこのように述べてます。

ここまで見てきたとおり、事業やプロダクトの成功に責任を負うプロダクトマネジャーは、そのために必要な多岐にわたる要素を理解し、ビジネス、エンジニアリング、デザインについて一通り知識を有しているのが理想です。

また、「INSPIRED 熱狂させる製品を生み出すプロダクトマネジメント」という本では下記のようにも述べられてます。

あなた自身が以前エンジニアだったり、大学でコンピューたサイエンスを学んでいたりしていれば、おそらく上手くいくだろう。だがそうでないなら、プログラミング言語を学べる地元のコミュニティカレッジやオンライン講座で学習することを勧めたい

結論的として、特にWebサービスやアプリサービスのPdMであればエンジニアリングやプログラミングの知識はあった方がいいよねということだと思います。

では、実際に知識があったらどういう時に役立つのか、何を勉強するべきかを私の経験から紹介したいと思います!


エンジニアリングの知識が役に立ったかもという事例

実際に役に立ったなと思う事例を紹介します。

1. 要件定義や仕様を考える時
2. 工数を考える時
3. データ見る時・データを理解する時
4. 施策や改善案の優先順位決め
5. 機能や施策の効果測定
6. お問い合わせ対応

1. 要件定義や仕様を考える時

DBの構造やちょっとした技術を知っていると、要件を考える上でこのカテゴリ分けはデータベースのすでにあるこのカラムを使うといいかもや、ダイアログを2回出すのは普通やらないからこのB案はなしだなと、仕様を考える時の幅が広がるのと消去法で案を消すことができたり、エンジニアさんにも相談しやすくなります。

2. 工数を考える時

例えば営業さんから「メール文言変更したいのですが、変えてもらえませんか?」と言われた時に

・この静的文言であればすぐやってもらえそう
・出しわけがいるパターンだと意外と時間かかりそうだし、無理かもしれない

など工数を考える時の判断軸にもなります。メール文言ぐらい簡単に変えれるが意外と変えれなかったりということもあったりします。

3. データを見る時・データを理解する時

ここの機能を改善したいけど、どういう風にデータが入ってるんだっけや実際に表示されてるロジック(そのまま表示なのか、裏で計算されているのか)などを理解しやすくなると思います。

この後説明するSQLについて学ぶが一番勉強法として手っ取り早いです。

4. 施策や改善案の優先順位決め

初回課金率や継続率が上がっている下がっているなどもデータから見ることができるので、実際の機能の案出しや優先順位の参考になると思います。

やりたいことはたくさんあるけれど、どれをまずはやるべきかにおいて定量的な指標になってくれます。

5. 機能や施策の効果測定

実際に新しい機能を作ったはいいけれど、この機能が本当に使われているのかなども、データやエンジニアリングの計測の仕組みから判断することができます。

6. お問い合わせ対応

たまにカスタマーサポートの方から、ユーザーから不具合の問い合わせがというのがきて調査することがあるのですが、(手に負えない場合はエンジニアの力を借りています)

DB構造やサービス仕様を知っていると調査が早くなったり、返答に時間がかからず対応ができます。


知識0の状態から、どういう知識を勉強するといいか

下記のような文章が理解できる&SQLで必要な情報を取り出せるでいいと私は思っています。

今の仕様だとAテーブルのBカラムしかAPIで返してないから、Cカラムも返すようにして、クライアントでこの一覧に表示させないといけない。
なので、デザイナーさんにどう表示すべきか相談して、サーバサイドチームでAPIの修正をしてもらって、アプリとフロントエンドチームに表示してもらえるようお願いして。

と上司に言われた時にこれが理解できればいいかなという感じです。

具体的に上記がわかるようになるためにどういう勉強をするべきかというと、

1. Webサービスの仕組みを知る
2. 自社サービスの技術や構造について理解する
3. SQLを学ぶ

1. Webサービスの仕組みを知る

個人的に新卒研修でエンジニアがまず初めに受けるような、どういう仕組みでサービスが動いているのかというのを一番に知るのがいいと思います。

各社の技術基礎研修スライドが分かりやすいなと思うのと、下記のような本で学べます。(分からないことがあったら同じチームのエンジニアさんに時間もらうと、優しい人なら説明してくれるはず!)

下記クックパッドさんのスライドはとても分かりやすかったです!



2. 自社サービスの技術や構造について理解する

普遍的な技術を上記で学んだら、自社サービスがどんな仕組みでどんな技術を使っているかを近くのPMや同じチームのエンジニアの方に時間を取って教えてもらうといいなと思います。

・インフラは何?(AWS?オンプレ?GCP?)
・サーバサイド言語は何?(PHP?Ruby?Java?Scala?)
・クライアント言語は何?(HTML?CSS?JavaScript?)
・アプリは何の言語を使っている?(Swift?Kotolin?)
・即時処理?バッチ処理?
・プッシュ通知

などなど。すでにこういう資料がある会社さんは素晴らしいと思います!

3. SQLについて学ぶ

SQLというデータを操作するために使う言語も覚えておくとすごくいいかなと思います。

・DB構造の仕組み
・SELECT、WHERE、JOIN、COUNTなどの関数、複数条件が使える

ぐらいを押さえておけば大丈夫かなと思っていて(サブクエリとかインデックスまでは勉強しなくていいかも)、PMレベルだと、下記の本で十分だと思います。

私もエンジニアになりたての頃にこの本で勉強しました。


最後に

是非PMとして仕様を考えるのであれば、上記を勉強するともっと仕様やサービスのことが考えやすくなったり、理解しやすくなるのと、私はすでにエンジニアではないので経験があるにしても首を突っ込みすぎない(きちんと任せる)ことも私は大事にしてます。

後、これはエンジニア時代の経験なのですが、Webディレクター職の子が一生懸命SQLを勉強したり、質問して理解しようとしてるのを見るとものすごく嬉しかったり、すごいなと思っていました。

他のPdMの方のエンジニアリングやプログラミングにこういう知識も役立った!みたいな意見があったら是非知りたいです。

***

最後まで読んで下さり、ありがとうございます!

下記、PM1年目の学び第一回や第二回も読んで下さると嬉しいのと、感想をSNSでシェアして下さったり、いいね下さると嬉しいです😊




この記事が気に入ったらサポートをしてみませんか?