本ページはプロモーションが含まれています

雑記

エンジニアが実践した孫子の兵法5つの生存戦略

トム

・都内自社開発IT企業勤務/javaのバックエンドエンジニア
/java歴10年以上 ・首都圏在住30代
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎

私は技術力さえ磨けばエンジニアとして一生安泰だと信じて疑いませんでした。毎日深夜までコードを書き、最新のライブラリを追いかけ、デバッグを速くこなす。そんな生活を続けた結果、待っていたのは深刻な燃え尽き症候群と、自分の代わりはいくらでもいるという冷酷な現実でした。いくら技術を詰め込んでも、ビジネスの構造や人間関係の摩擦でプロジェクトが沈むときは沈みます。自分の努力が報われない虚しさに襲われていたとき、ふと手に取ったのが2,500年以上前の軍事書「孫子の兵法」でした。

最初は「現代のIT現場に古臭い戦術が役に立つのか」と疑っていましたが、読み進めるうちに衝撃を受けました。そこには技術選定の迷い、無理な納期への対抗策、チーム内の不和を解消するヒントがすべて言語化されていたからです。この記事では、私がキャリアを通じて痛感した、エンジニアが「知的な戦い方」を身につけるための知恵を詰め込みました。

この記事を読めば、毎日迫りくるタスクに追われて疲弊している中級エンジニアが、最小限の力で最大限の成果を出す「思考のOS」を手に入れられます。無理な仕様変更にイライラしたり、将来のキャリアに不安を感じたりする日々から脱却できるはずです。

なぜ今、ITエンジニアが「孫子の兵法」を知るべきなのか

現代のエンジニアを取り巻く環境は、まさに戦国時代のような激しさを見せています。技術の移り変わりは激しく、昨日まで主流だったフレームワークが今日はレガシー扱いされる。そんな状況で、ただ真面目にコードを書くだけでは生き残れません。孫子の兵法は、限られたリソースでいかに負けない戦いをするかを説く学問です。これは、リソース(時間・予算・人員)が常に不足しているIT現場の状況と驚くほど一致します。

エンジニアが戦略を持たずに現場へ飛び込むのは、地図を持たずに未開の地を歩くようなもの。私はかつて、気合と根性だけで「AWS Lambda」の大量実装を乗り切ろうとしましたが、設計の甘さから後半で破綻しました。もしあのとき孫子の視点があれば、戦う前に勝敗は決まっていると気づけたはずです。

技術力だけでは詰む場面が増えている理由

技術力はあくまで手段であり、目的ではありません。しかし、真面目なエンジニアほど「より良いコード」を書くこと自体に執着し、ビジネスのゴールを見失いがちです。例えば、ユーザーが求めていない機能を最新の「Typescript」で完璧に実装しても、売上が上がらなければその工数は無駄になります。

市場にはAIによる自動生成ツールが普及し、単純なコーディングの価値は相対的に下がっています。これからの時代に求められるのは、どの技術を使い、どの戦いを避けるかを見極める判断力です。技術への固執は、時にエンジニア自身の首を絞める凶器に変わります。

孫子の兵法は「戦争の本」ではなく「判断のフレームワーク」

孫子の本質は、勝ち負けの前に「負けない状態」を作ることにあります。血を流して勝つのは三流であり、戦わずして勝つのが一流であると説いています。これはバグを根性で直すよりも、最初からバグが起きない設計を作るエンジニアの姿勢そのもの。

私たちが直面する問題の多くは、実は技術ではなく「意思決定」の失敗に起因します。孫子の教えを抽象化して捉えれば、それは現代のプロジェクトマネジメントやキャリア構築にそのまま転用できる強力なツールです。古典を学ぶことは、時代に流されない普遍的な思考法を身につける近道に他なりません。

孫子の兵法の全体像をエンジニア視点でつかむ

孫子の兵法を理解する上で欠かせないのは、状況を客観的に分析する「計」の視点です。感情や希望的観測を排除し、冷徹にデータと状況を眺める。これは、ログを解析してシステムのボトルネックを特定する作業に似ています。エンジニアにとって、世界を構造的に捉える孫子の視点は非常に馴染みやすいものだと言えます。

プロジェクトに参加する際、必ず「五事」と呼ばれる5つの要素(道、天、地、将、法)を現場に当てはめて考えるようにしてみましょう。チームのビジョンはあるか、リリースのタイミングは適切か、開発環境は整っているか。これらを事前にチェックするだけで、プロジェクトの成功率は劇的に向上します。

「彼を知り己を知れば百戦殆からず」が示す本質

有名なこの一節は、情報収集の重要性を説いています。ITの現場における「彼」とは、クライアントの真のニーズや、競合サービスの動向、あるいは使おうとしているライブラリの癖を指します。一方の「己」とは、自分のチームの開発能力や、残された時間、既存システムの技術債務の内容。

多くのエンジニアは、自分の得意な技術(己)だけを見て、現場の要求(彼)を無視しがちです。結果として、オーバースペックなシステムを作り上げ、運用の手間だけが増大する悲劇が起こります。まずは相手と自分の現状を正しく把握する作業からすべてが始まります。

孫子が一貫して重視している“勝ち方の思想”

孫子が説く最高の勝利は「戦わずして勝つ」ことです。これをエンジニアの文脈で解釈すれば、コードを書かずに問題を解決する、あるいは標準機能だけで要件を満たすといった行動を指します。実装を減らせばメンテナンスコストは下がり、バグの混入率も低減します。

無理なスケジュールで突撃し、徹夜で解決するのは「戦って勝つ」形ですが、これは組織に疲弊をもたらす最低の手段。賢いエンジニアは、事前の調整やアーキテクチャの工夫によって、そもそも炎上しない状況を作り出します。スマートに勝つことこそが、プロとしての誇りであるべきです。

孫子の兵法をそのままIT現場に当てはめると見えるもの

実際の開発現場において、孫子の思想は具体的な武器になります。特に技術選定やアーキテクチャ設計の場面で、その真価を発揮します。私は以前、マイクロサービス化の波に乗って複雑なシステムを構築しようとしたことがありましたが、その際に「兵は拙速を聞くも、いまだ巧久をみざるなり」という言葉を思い出して踏みとどまりました。

完璧を求めて時間をかけるより、多少不格好でも速くリリースして改善するほうが、ビジネスにおいては圧倒的に有利です。この「スピード感」と「構造化」のバランスをどう取るかが、エンジニアの腕の見せ所になります。

「戦わずして勝つ」は設計・技術選定でどう活きるか

新しいプロジェクトで「React」を使うか「Vue.js」を使うか迷ったとき、私は「学習コストを最小化できるのはどちらか」を最優先に考えます。技術的な優劣よりも、チーム全員がすぐに戦力になれる環境を選ぶほうが、結果的に開発スピードが上がり、無用なトラブルを避けられます。

独自のフレームワークを自作するのは楽しいですが、それは「戦う道」を選んでいるのと同義。既存のマネージドサービスやSaaSを組み合わせて、自分たちが書くコードを最小限に抑える。これこそが、現代のエンジニアが実践すべき「戦わずして勝つ」戦略の具体例です。

「勢」とは何か──個人スキルより構造を作れという教え

孫子が重視する「勢(せい)」とは、物体が高いところから転がり落ちるような、自然な勢いのことを指します。個人のプログラミング能力がどれほど高くても、組織のワークフローが淀んでいれば成果は出ません。逆に、CI/CDが整備され、レビュー文化が根付いているチームは、平均的なスキルでも高い生産性を維持できます。

私は「Git Hub」のプルリクエストを回す仕組み作りや、自動テストの導入に力を入れています。個人の頑張りに依存するのではなく、勝手にプロジェクトが進んでいく「勢いのある構造」を作ることが、リーダーとしての私の役割。一度良い勢いがつけば、あとは勝手にシステムは成長していきます。

「兵は詭道なり」が示す、正攻法に固執しない思考

「兵は詭道(きどう)なり」とは、戦争とは相手を欺く道であるという意味です。これをエンジニア流に解釈すれば、真正面から難しい実装に挑むだけでなく、搦手(からめて)から解決策を探る柔軟性を持つということ。例えば、アルゴリズムの高速化に何日もかけるより、キャッシュを1枚挟むだけで解決するほうが効率的な場合があります。

正攻法のプログラミングだけが正義ではありません。仕様を変更してもらうよう交渉したり、手作業の一部をRPAで代替したり。目的を達成するために手段を選ばないマインドセットが、時に技術的な難題を無力化します。固定観念を捨てたとき、新しい解決策が見えてくるものです。

ITエンジニアの日常業務に使える孫子の具体的な使いどころ

ここからは、より実践的な日常のシーンに孫子の知恵を当てはめてみましょう。朝のスタンドアップミーティングから、深夜の障害対応まで、私たちが直面するあらゆる場面に戦略を適用する余地があります。私が実際に「Visual StudioCode」を開きながら意識しているポイントをいくつか紹介します。

仕事ができるエンジニアと、そうでないエンジニアの差は、キーボードを叩く速さではありません。状況をどう解釈し、次の一手をどう打つかの「判断の質」にあります。以下のテクニックを意識するだけで、仕事の進め方がガラリと変わるはずです。

要件定義・仕様調整で消耗しないための考え方

顧客やディレクターからの無理な要求に対して、ただ「できません」と答えるのは下策。孫子は「敵を屈して戦わざるは、善の善なる者なり」と言っています。相手の要望を真正面から拒絶するのではなく、相手の本当の目的(利)を理解し、より低コストで実現できる代替案を提示しましょう。

私は打ち合わせの際、必ず「その機能によって解決したい課題は何か」を深掘りします。目的が明確になれば、複雑な実装をせずとも「Slack」連携だけで済むような解決策が見つかることも。戦う場所をコードから対話に移すことで、実装の負担を大幅に削減できます。

炎上プロジェクトでまず最初にやるべきこと

プロジェクトが炎上し始めたとき、パニックになって闇雲に修正コードを書くのは最悪。まずは「全軍を静止させ、戦況を確認する」必要があります。孫子曰く「勝算がなければ戦うな」。どこに火種があり、どこまで燃え広がっているのかを正確に把握するのが先決。

私が以前経験した現場では、まずすべての新規開発をストップし、残っているチケットの優先順位を「捨てるもの」と「残すもの」に冷徹に分けました。全部を救おうとすれば全滅します。一部を切り捨ててでも、システムの核心部分を守り抜く。この引き際の見極めこそが、被害を最小限に抑えるポイントです。

転職・キャリア選択における「勝てる場所」の見つけ方

キャリア形成においても「地」の利を考える必要があります。激戦区の技術分野でトップを目指すのは苦難の道。孫子は「勝ちやすいところに勝つ」ことを勧めています。例えば、Webエンジニアとして埋もれるよりも、「Web × 農業」や「Web × 製造業」といった、まだIT化が進んでいない分野に身を置くほうが、自分の価値を高めやすい。

孫子の兵法を使うエンジニアが陥りやすい勘違い

孫子の教えは強力ですが、一歩間違えると周囲から孤立する原因になります。戦略を振りかざすあまり、現場の感情を無視してしまうエンジニアを私は何人も見てきました。兵法は人を操るための道具ではなく、あくまで自分たちが目的を達成するための指針であることを忘れてはいけません。

学んだばかりの知識を試したくて、不必要な駆け引きをしてしまいがちです。しかし、信頼関係がベースにない戦略は、ただの「姑息な手段」として周囲に映ります。ここでは、兵法を実践する上での注意点を整理しておきます。

小手先の戦略論として消費してしまう危険

孫子の言葉を断片的に引用して、会議で相手を論破するために使うのは避けるべき。これは「兵を弄(もてあそ)ぶ」行為であり、最終的には自分の首を絞めます。戦略とは、長期的な視点で組織全体の利益を最大化するためにあるもの。

合理性・安定性・メンテナンス性を高く評価する

エンジニアにとっての正義は、しばしば「合理性」に偏りすぎます。しかし、人間は感情で動く生き物。孫子も軍の士気(気)の重要性を説いています。いくらアーキテクチャが完璧でメンテナンス性が高くても、開発者のモチベーションが低ければ、そのシステムは長続きしません。

「この設計のほうが美しい」という理由だけで変更を押し付けるのではなく、メンバーが納得感を持って開発できるか。数値化できない「人の心」という変数を計算に入れられない戦略は、戦場では通用しません。合理性の裏側にある人間臭さを愛でる余裕を持ちたい。

孫子の兵法から学ぶ、長く生き残るエンジニアの思考習慣

最後に、私たちが10年、20年とエンジニアとして走り続けるための思考習慣について触れます。IT業界は短距離走の連続のように思えますが、実は非常に長いマラソンです。一時の勝利に酔いしれるのではなく、常に「負けない自分」をアップデートし続ける必要があります。

私が30代になってから意識しているのは、筋肉を鍛えるような技術学習だけでなく、関節を柔軟に保つような「思考の柔軟性」を磨く。変化を恐れず、むしろ変化を利用する。孫子の兵法が2,000年以上生き残ってきた理由も、その普遍性と柔軟性にあります。

短期的な勝敗より「負けない構造」を作る

今月のリリースを乗り切るために徹夜するのは「一時的な勝利」に過ぎません。それよりも、定時で帰りながらも品質を維持できる「仕組み」を作ることのほうが遥かに重要。私の場合は、自動化ツールやドキュメントのテンプレート化を徹底。

もし自分が病気で倒れても、プロジェクトが止まらない。あるいは自分が技術スタックを変えても、すぐに適応できる基礎体力をつける。こうした「負けない構造」を私生活を含めて構築することが、エンジニアとしての究極の防衛策となります。貯金や副業、健康管理もすべてはこの「負けない構造」の一部です。

環境が変わる前提で動くという姿勢

「兵に常勢なく、水に常形なし」。孫子は、状況は絶えず変化するものであり、固定的な形にとらわれてはいけないと教えています。IT業界ほどこの言葉が似合う場所はありません。かつて一世を風靡した技術が消え、新しいパラダイムが次々と生まれます。

私は、特定の技術に自分のアイデンティティを固定しない。常に「今の環境で最適な形は何か」を問い続け、必要であれば昨日までの自分を否定する。水が器の形に合わせて姿を変えるように、どんな現場に行っても価値を出せるしなやかさを持ち続けたい。

まとめ|孫子の兵法はエンジニアのための「思考OS」である

孫子の兵法を学ぶことは、自分の中に強固な「思考OS」をインストールするような体験です。技術という名の「アプリケーション」をどれだけ入れても、ベースとなるOSが貧弱ではパフォーマンスは発揮できません。戦略的な思考があれば、どんなに複雑なコードも、どんなに困難な人間関係も、一つの攻略対象として冷静に対処できるようになります。

私がこの10年で学んだ最大の教訓は、エンジニアの価値は「何が書けるか」ではなく「どう戦うか(あるいは戦わないか)」で決まるということ。技術の荒波に飲み込まれそうになったとき、一度キーボードから手を離し、2,500年前の賢者の言葉を思い出してみてください。きっと、暗闇の中に一筋の光が見えるはずです。

もし、今の仕事で行き詰まりを感じているなら、まずは自分の「戦場」を客観的にスケッチすることから始めてみませんか?。自分にとっての「敵」は何で、「利」はどこにあるのか。それを書き出すだけで、明日からのコードの書き方が少しだけ変わるかもしれません。

  • この記事を書いた人
  • 最新記事

トム

・都内自社開発IT企業勤務/javaのバックエンドエンジニア
/java歴10年以上 ・首都圏在住30代
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎

-雑記