背筋を伸ばしてスタートアップするブログ

株式会社ペライチでCTOをやっています。

エンジニアが身につけるべき戦略思考

「世界を変えたいなら一度武器を捨ててしまおう」という本を読んだのですが、面白くてとてもためになる本でした。

世界を変えたいなら一度

世界を変えたいなら一度"武器"を捨ててしまおう

一言でいうと戦略について学ぶための本で、日本人が苦手とする戦略思考をどうやって身につければいいかということについて書かれています。特段エンジニア向けに書かれているというわけではないのですが、エンジニアの成長やキャリア戦略という視点で読むと大きな学びが得られる内容です。

この記事では特に参考になった内容について私見を交えつつ備忘録を兼ねて書こうと思います。

戦略は階層で考える

戦略には階層があり本書ではそれを以下の7つの階層で表しています。

f:id:katsuki1207:20181014224906p:plain (↑本書より引用)

ここで重要なこととして戦略の階層には「上位のものが下位を決定する」という原則があります。言い換えると「両者が同じレベルで均衡している場合に、より上位の階層で力を持っている方が勝つ」ということです。

例えば国レベルの話でいうと、長い間もの作りを経済の柱としてきた日本は技術力で国を支えてきました。日本人は国民性として技術を身に着け発展させることが得意なのです。これは戦略論でいうと一番下の階層に位置します。いくらすごい技術であってもそれ以上の階層レベルで戦略を組み立てている国には勝てません。

これは個人レベルでも言えることで、いくらスキルを磨いても上位の戦略が間違っていたら意味を持ちません。

エンジニアに階層を当てはめると

エンジニアの成長戦略という観点で考えたとき、言語習得やプログラミングスキルを磨くことは「戦略の階層」では一番下であり、それを学ぶ上での上位の戦略を決めておいた方が無駄な勉強をするリスクが低くなります。

 スキルはあくまでも〝武器〟に過ぎません。武器はいくら性能の高いものを手に入れたとしても、また新しい武器が開発されます。するとその新しい武器を手に入れるために、またスキルを磨かなければならない。

これは本書からの引用ですが、まさにエンジニアに対しても言えることだと思います。現在業務で必要とされる技術や自分の好きな技術だけをただやみくもに追いかけているだけだと、いずれ壁にぶつかります。なぜなら、身の回りの環境に応じて必要なスキルは変わってくるからです。

「人は無能になるまで昇進する」というピーターの法則もその典型例です。

今何を学ぶべきかを戦略の階層に応じて選択する

ではどうすべきかというと、まずエンジニアとしての自分が戦略の階層のどこに位置するかを見定めます。その上で現在の階層だけでなく、自分が昇進したら必要となる1〜2つ上の階層を学ぶことです。

f:id:katsuki1207:20181014225019p:plain (↑本書より引用)

  • 新卒エンジニアなら戦術レベル
  • チームリーダーなら作戦レベル
  • マネージャーなら軍事戦略レベル
  • 開発部長なら大戦略レベル
  • CTOなら政策、世界観レベル

といった感じです。

1つ上の階層を学習する理由は2つあります。

ひとつは、昇進してから勉強を始めても遅いからです。ピーターの戦略にある通り人は昇進するとそれまで評価されたスキルとは別の能力で評価されるようになります。そのため昇進した途端無能になるという事を防ぐためにも学んで置くことが重要です。

もうひとつは上の階層に意識を向けることで思考の抽象度が上がることです。現在必要とされているスキルの1つ上から自分を俯瞰することで、いまの自分の学習、行動に無駄なものがないか見直す機会になります。

フリーランスエンジニアはどうすればいいのか

フリーランスエンジニアはある意味一人会社の社長と一緒です。自分がどうしたいのかを大上段から知っておく必要があります。そのため目先の仕事で成果を出すための技術力を鍛えつつも、自らの軸となる世界観を自分で描く必要があります。

ある意味全ての階層を押さえておかなければいけないので大変ですが、その分自分の環境をコントロールしやすいともいえます。

大事なことは、今自分はどの階層の本や情報を必要としているか判断し、何をインプットするのかを見極めることです。

会社員でもフリーランスでもエンジニアである限り、学ぶ時間はいくらあっても足りないと感じることかと思います。限りある時間を有効に使うためにも、戦略的に学習する内容を選択することが重要です。

ちなみに一般的には、上位の人はそれよりも下位の階層のことを理解していることが期待されるので、自分が足りていないと思う下位の階層があるならそれも学習することも必要になります。

特に急成長スタートアップの創業者などは階層があっと言う間に変わっていくので、気づかないうちに自分がいる階層が2段階くらい変わってて大変な思いをするとかはありそうだなと思っています。

創業初期はプレイヤーとしてバリバリコードを書いてた創業CTOが、気づいたらマネジメントを余儀なくされて死にそうになるみたいな話です(僕はそうでした)。状況が目まぐるしく変わるスタートアップ経営者は常に自らの階層を理解しておかなければなりません。

自分にいま足りないと思う階層の能力を自己分析し、磨くことがとても重要です。

順次戦略と累積戦略を使い分ける

上記は何を学習するか(What)の話でしたが、ここからはどう学習するか(How)の話になります。

階層とはまた異なる切り口の話になりますが、戦略には「順次戦略」と「累積戦略」の2種類があります。

  • 順次戦略: 目標からブレークダウンして具体的な施策に落とし込みやるべきことを順番に行うというもの
  • 累積戦略: 小さな成果を積み重ねることで、ある日突然大きな効果が生み出されることを狙ったもの

順次戦略はゴールから逆算して進捗がどれくらいか、あと足りないのはどれくらいかと数値化が可能です。それに対し累積戦略は効果の出方が不確実でどこが限界点がわからないという特徴があります。その代わりあるとき急に効果が現れます。

本書ではこれを「見える戦略と見えない戦略」あるいは「陽の戦略と陰の戦略」と表現しています。

順次戦略 累積戦略
見える戦略 見えない戦略
西洋的 東洋的
合理的 非合理的
数値化可能 数値化不可能
進捗が明確 進捗が不明確
線形 非線形

一般的にビジネスの世界では定量化が可能な順次戦略をとることが多いですが、累積戦略の効果を侮ってはいけないというのが本書の主張です。

たとえば勉強を続けている中でそれまで理解できなかったことが「そういうことだったのか!」と急に理解できる瞬間(いわゆるアハ体験)は、まさに累積戦略の効果が現れた瞬間です。小さな細かいインプットを大量に積み重ねていくとそれが有機的につながって一気にジャンプします。これを「創発」と呼びます。

成果を上げるためにはどちらか一方のみではなく両方やるのが大事で、本書では累積戦略から先にとりかかり土台を固めつつ順次戦略にとりかかることで成果が倍増すると説明されています。

エンジニアの成長戦略でいうと、「資格取得のためにマイルストーンを決めて学習カリキュラムを計画的にこなす」のが順次戦略だとすると、「毎日60分コードを書く」とか「コードリーディングをする」といった習慣が累積戦略にあたります。

たしかに、第一線で活躍されている有名なエンジニアの方が成長のための累積戦略を推奨している話はよく聞きます。

かくいう僕もt_wadaさんの講演資料にある「四半期ごとに技術書」や「毎日コードを書く」は現役エンジニアでいるために習慣として忘れないようにしています。

↓参考資料 qiita.com

まとめ

  • 戦略には階層があり、自分の位置を把握した上で学習内容を選択することが大事
  • 順次戦略と累積戦略の両面から学習することが大事

今までなんとなくの理解しかなかった「戦略」や「戦術」という言葉についての解像度が上がりかなりスッキリした本でした。

世界を変えたいなら一度

世界を変えたいなら一度"武器"を捨ててしまおう

余談ですが、この本自体は先日参加したJulyTechFestaのセッションの一つで紹介されていたことがきっかけで興味を持ちました。紹介してくれた講演者の方に感謝です。

katsuki.hatenablog.com

追記

当記事の続きを書きました。 katsuki.hatenablog.com