サーバサイドが重要だった時代からの変化
上述のように今ではクライアントサイド(アプリやWebフロントエンド)出身の人も増えてきている役職ですが、これは直近のトレンドのように思います。
単純にそういう出自の人の母数が増えたのもありますが、当時はやはりサーバサイド・バックエンドこそがインターネット・Web開発の花形だったように思います。
まだまだ何を提供するかというよりも、そもそも実現させること自体に高いハードルがあった時代ではそれを構成するサーバサイド・バックエンドへの価値が高かったように思います。
価値提供のスピードや効率性が問われる時代に
一方で昨今はPCやスマホの進化・マシンスペックの向上とともに、クライアントサイドでできること、やれることの幅が広くなり、いかにユーザーの手元で早く・効率よく価値を提供できるかということが他社とのサービス差異を作り価値を提供するかという時代になっているように思います。
その文脈にはフルマネージドなサービスやサーバレス、ブラウザの進化やスマホからアプリケーションへの多彩かつ高機能なAPI提供があるかと思います。
これにより各社が提供するサービスの明確な差異・競合優位性に直結し、そこが生む事業の価値を決定づけ、これをより効率的に意思決定するためにはその専門性を強みとするEMやCTOのニーズが増えてきているように思います。
エンジニアリングマネージャーになって気づいた難しさ
EMという立場で、クライアントサイドを強みと認識して技術や人の投資をしてきていますが、どうしても職責上、それだけやっているわけにはいかないのがサラリーマンの難しいところ。
時代だな〜とは思いつつも、まだまだ状況はグラデーションしていて、本当に得意な技術領域のみに集中しているわけにもいかない瞬間や、求められる時期は少なくありません。
私のキャリアの変遷の中でiOSアプリ開発、そこからAndroidへ、そして近いところでWebフロントエンド・・・そしてAPIからインフラへ・・・さらにサーバレスにクロスプラットフォームなどなど・・・スキルにも種類によって「距離」があると思っていて、遠い技術ほど難しく感じます。
不得意な領域にも向きあう日々
私自身、どうしても不得意な分野や追いきれてない業務範囲などで力不足を感じることが多々あります。得意じゃない業務領域で戦う時間が増え続けるのはハードだし、それまでやってきたことを失ってきているようで辛いです。
また時間もなく、独学や勉強をしていればいいというのもなくなっていく中で、自分が向き合ってきた4つの「〇〇化」があると考えています。
不得意と戦うための4つの「〇〇化」
言語化
全く知らん未知の課題と向き合ったときに、手札となる技術がないことがあります。
私自身、WebRTCなどの技術領域がまさにこれで、アプリケーションへの導入推進の責任者をやっていましたが、「なんで動かないかわからない」みたいな瞬間もあり、かつチームでも知見のある人がいない中で、課題を解決していくには「なにか問題なのか」をチームで認識を常に合わせる必要がありました。
問題の本質を洗い出したり、チームで短距離で共通認識を作るための言語化はとても重要なスキルだと思います。
EMの特性上、ゴールを作ったり、伝える・伝えてもらうという仕事がすごい増えていくので今でも日々大切さを感じます。
数値化
言語化するだけでなく、変化を捉えて前にすすめるためには数値に落として話す事も大事だと思っています。
システムのパフォーマンスやサービスへのレビュー、顧客の感想や問い合わせなど。一方で数値は魔力を持ってるから事柄や言葉とセットで捉える必要があるなど・・・難しい側面もある一方で向き合わないといけないことです。
抽象化
前にもブログで書いたけど、組織で課題と向き合うと具体と抽象の行き来が増えます。
それぞれの職責がちがうエンジニアやデザイナーと一緒に同じユーザー課題を解決していくときにそれぞれの役割をしっかり伝えていくことも大事ですが、その中でもそれを抽象化することでわかりやすい皆で持つ目標を考え設定し、それをモニタリングできることも大事だと思います。
自己組織化
自己組織化は「チームが形成され、ある問題と制約が与えられたら、どのようにその問題を解決するかをチームが自分たちで決めることができる。」というふうな状態を表します。
これを自分だけではなく、自分以外の自分にない強みや価値観を持っている人に発揮してもらえるような仕掛けや働きかけをすることで、チームでの課題解決能力を増やしていく必要があると思いました。
意識してソフトスキルを伸ばす
この4つの「〇〇化」で述べたようなスキルはソフトスキルに分類され、なんだか社会人やって年齢を積めば勝手に伸びるような幻想が世にはびこっているんですが、全然そんなことはなくて英語と同じで意識して伸ばそうとしないと一生伸びないので、どれが足りてないか・どう伸ばすかを意識して向き合う必要があります。
これらを効率よく学び、向き合うためにも様々なプロジェクトやサービスに関わることや、その中でもドラスティックに意思決定をしていくことが難しいながらも自分の価値やスキルを底上げしてくれていたと今は感じています。
キャリアの伸ばし方を本業や副業の中で考えていく時代
「不得意」と書きましたが、クライアントサイドの発展が意味するところとしては、サーバサイドやインフラを強みとしていたEMやCTOが同様にアプリやモダンフロントエンドWebを理解し向き合わないといけない時代であることも表していると思います。
それだけでなく、今が技術の選択肢がめちゃくちゃ多く、アカデミックな知見や数学的な観点が必要になることも増えてくるなど、広い解決範囲を支えるためには本当に勉強する時間も全部追う時間もないので、どういう戦略を取っていくかが業界全体的に加速度的に難しくなっていっているとも思います。
色々述べましたが、EMやCTOだけが我々の進むべきキャリアパスでは決してないです。Individual Contributorのような新しいロールもどんどん発明されていく中で、自分のキャリアをどこに投資して、どう伸ばしていくかを本業や副業の中で考えていく時代だと思います。
そんな時代の中でクライアントサイド出身のエンジニアがより事業や経営の意思決定を支援・実行することが増えると、よりインターネット体験が加速し、おもしろい社会になっていくと期待しています。