algonote

There's More Than One Way To Do It

システム高度化時代にPMがRailsを学ぶべき理由

SQLの次に獲得すべき技術スキルは何か

前口上

破談になりそうですが、Twitterの買収をイーロンマスク氏が実行しようとした際、マネージャーの解雇が話題になりました。

いわく、「IT分野の管理職は高いIT能力を持っていなければならないと思う。優れたコードを書けないソフトウェア部門の管理職なんて、馬に乗れない騎兵隊の隊長みたいなものだ

最近のスタートアップだとエンジニア経験のないCTO/エンジニアリング・マネージャーは少数派だと思いますが、例えばITがメインでない会社のCIOをガチガチの文系出身の方がやられていたり、採用難でCOOがEMを兼務しているような組織はちらほら見たことがあります。

また、業務システムなどにおいて機能の深さが競争力になってくると、PMでもよりシステム理解がないと厳しいと感じたこともあります。

エンジニア経験がマイナスに働く場合もあるのですが、逆にエンジニア経験があった方が合理性が高いケースにおいてない人がどう近づけるかについて書きたいと思います。

Technical Program Managerについて

CTO/CIOでエンジニア経験がない/弱いというのは流石に誤登用ではあるので、主にPM、Product Managerについて見ていきましょう。

まず大前提、単にコードが書ければ優れたPMになれるかといえば答えはNoでしょう。例えばB向けのサービスだとPMをビジネス側を取りまとめるPMM(Product Marketing Manager)と開発を取りまとめるPMで分業している例もあります。広義のPMのする半分はビジネスサイドとの調整で開発PMの中の一部がシステム開発に関わる部分であります。

一方でPMが一番関わる相手がほとんどエンジニアというケースもあり、実際、エンジニア出身のPMの方が話が通じて手戻りが少ないことも多いです。

海外の企業だとより極端でProduct ManagerとTechnical Program Managerを分けているケースがあります。Amazonの求人を見る限り、単に技術のわかるProduct Managerというより、TPMはエンジニアとPMの橋渡しではあるのですが、それでもエンジニア経験のあり/なしでキャリアラダーを細分化しているケースはあるわけです。

何を学べばエンジニアに近づくか

仮に非エンジニアがエンジニアに近づきたい場合何を学べばよいでしょうか?

一番確実で事例の多いのはSQLだと思います。データドリブンで意思決定をするために全ての職種がSQLを使えるようにした研修を進めている企業はちらほらみます。一方でその先の議論はあまりされていない印象です。

例えばPMの研修としてコーディングや異職種体験をやっている企業もありますし、コーディング面接があるような企業で人事も競プロをやるという事例も見たことがあります。アプリのサービスでAPI確認のためにPMでもcurl(HTTPクライアント)は使えるというパターンもあります。

業態によると言ってしまえばそれまでなのですが、極論Web開発においてはWeb開発をするのが一番汎用性が高く、Ruby on Railsを学ぶといいのではというのが本記事の提案です。

例えば最近では商社やコンサルの新卒の研修でRailsの開発を学ぶという事例もあります。新卒1年目でもできているので、やる気のあるベテランPM/管理職がやってやれない理由はない気もします。実際過去PMがRailsを学んでコミュニケーションがよく取れたケースはありました。

Railsガイドのすすめ

それで何で学ぶかなのですがRailsの学習リソースを選ぶ際、正直たくさん選択肢があります。本もありますし、Web上にもRailsチュートリアルやドットインストール、Progateなどの選択肢があります。

そういったリソースは有用ではあるのですが、バージョン追従性が弱いケースもあり、(少なくとも英語版では)最新のバージョンでのメンテがある程度保証されている公式のRuby on Rails Guidesが初手はいい気がします。

Getting StartedをなめればCRUDやテーブルの基礎的な理解はできると思うんですよね。スクールに通うレベルでがっつり学ぶというより概観を知りたい場合そのくらいがちょうど良いのではないかと。それでわからなければ他の第二選択に変えればいい気がします。

概観をGetting Startedで把握した後に、モデル、ビュー、コントローラーのページをざっくり読めばエンジニアとの会話がより円滑に進む気がします。

  • Getting Started
  • Active Record Basics
  • Active Record Migrations
  • Active Record Validations
  • Active Record Callbacks
  • Active Record Associations
  • Active Record Query Interface
  • Layouts and Rendering in Rails
  • Action View Form Helpers
  • Action Controller Overview
  • Rails Routing from the Outside In

太字が特におすすめのパート。RESTful API(に基づくルーティング)とテーブルのリレーションは重要要素なため。

所感

逆にPMによるエンジニアがPMになるにはも見てみたいです。