システムエンジニアの身体知について 〜私から君へ〜
1. 対象の読者
この記事は、若手の育成に悩むエンジニアや育成を担う技術リーダーを対象に書いています。同じドキュメントやソースコードを見ているのにシステムに対する理解速度が違う、 しかしその理由を漠然と感じつつも説明できない—知識でありながら身体的ともいえる感覚 —そんな“身体知の壁”をどのように乗り越えるかを探るための記事です。
2. 身体知とは何か
2.1. システムを見るということ
エンジニアが「システムを見る」とは、目の前の画面そのものを見ることではなく、画面から受け取った情報からシステムの像を描きだす(イメージする)ことです。
システムは、ロジックとデータの集合であり、直接“触れたり目で見る”ことはできず、眼の前の画面からロジックとデータを頼りに理解しようと試みます。
つまり、システムを理解するとは:
- ロジック:設計書・ソースコードなどの記述
- データ:データベース・ログなどの記録
をたどり、間接的にシステムの構造を読み解く営みになります。
若手エンジニアは、設計書を読み、ソースコードを丁寧に追い、ログを1行ずつ確認することで全体像をつかもうとするのではないでしょうか。
一方でベテランエンジニアは、
- パッと見る(聞く)だけで、なぜかわかる
- ログを斜め読みしただけで原因の方向性を見い出す
といった理解のスピードと直観を発揮する場合があります。
この違いはなぜ生まれるのでしょうか? 単純な知識の積み上げによる思考よりも早く、まるでスポーツにおける瞬発力のような反応を示します。知的活動でありながら身体的な反応を引き起こす。
ある種、身体的感覚を用いた知的活動としての「身体知」として捉えることができます。
2.2. 身体知という認識のしくみ
この記事では身体知を次のように扱いたいと思います。
身体知とは、知識としての情報知を転換し、身体的な感覚で世界(システム)を捉える認識する仕組み
ここでいう“身体的”とは、筋肉や動作のことではなく、物理的な知覚の方法(空間・時間・運動・区別)を情報的認知に応用したものとして捉えます。
システムという“触れられない対象”に対しても、経験が積み重なることで、まるで地図を読むかのような空間的・直観的な理解が可能になる――という考え方をします。
身体知を備えていない状況であるなら、毎回ゼロから
- 手がかりを探す
- 得た手がかりについて考察する
- 考察に基づいて調べる
といったプロセスを踏まなければならず、目的の情報に辿り着く速度も上がりません。
2.3. AI登場によるシステムエンジニアの役割の変化
ベテランエンジニアのような直感的な理解の仕方は、AIの発展により重要性を帯びてきます。
- 大量の情報を検索する
- 論理的な推論を行う
といった論理の積み重ねによる思考は、AIの方が人より優位になってきています。
したがって、これからのエンジニアが価値を発揮するには、AIでは気づけない、見落とされる事柄に気づく力がより重要になります。
AIはデータのパターンは見つけられるが、
- エラーログによるシステムやサービス全体への影響をただちに気づく
- 私だけが感じるトラブルの予兆
といった、身体知が生み出す感覚的判断は苦手である。
人でしか気づけない領域がより求められてきます。
ベテランのような直感的な理解による効率の獲得だけでなく、昨今のAI発展の状況を踏まえて身体知について考えることには価値があると私は考えます。
3. 知覚プロセスと身体知の関係
3.1 りんごの例で知覚の段階を説明
身体知についての特徴を説明するために、少し寄り道をして「知覚すること」について考えてみます。
システムを理解することを身体知で捉える場合、日常的な感覚をもとに語ることはできません。情報がどのように受け取られているかについて整理し直す必要があります。ここで、物を見るということを例に、私たちが普段行っている知覚の段階を「りんごを見る」という日常の知覚で例えてみます。
普段、私たちは「見る」と「考える」を一体化して認識しています。しかし、実際にはいくつかの知覚と認識の過程を経ています。
たとえば:
- 物体を境界のない像として捉える
- 物体の輪郭や色や奥行きを捉える
- 物として「名」と結びつける
- そして言語で考える
このような一連の流れを経ています。身体知を説明するためには、特に②、③の部分を鍛えることが重要だと考えています。
つまり、身体知を身につけるということは、②や③を磨くことでもあるのです。
3.2 なぜベテランと若手で「見え方」が異なるのか
若手エンジニアとベテランでは、そもそも同じものを見ていても、見えているものが違う可能性が高い――ということを示唆しています。
私たちは無意識に「物を捉える」「認識する」という過程を経ており、その過程のなかで身体的な知覚が生まれます。
システムを捉えるにあたり、ソースコードやログを見ます。この「見る」にあたっても、文字の輪郭を捉えて文字として認識し、文字を繋げ文章として捉え、文章の意味をとらえます。また、断片的な文章から不足している情報を補い、ロジックや処理結果として認識します。
読むだけでも複数のステップを踏む中でも、私たちはそれを一瞬に行い、できて当たり前と感じています。
4. 身体知をどう獲得するか(理論編)
4.1 3段階モデル(身体的 → 概念的 → 言語的)
身体知は如何にして獲得されるのでしょうか?
日常的な身体知では、歩くや自転車に乗るなどが該当します。世界を知覚し、身体を動かし、世界からフィードバックを得て動かし方を調整し獲得していきます。では情報から得られた知は如何にして身体知へと還元されるのでしょうか?ここでは「身体的知覚」「概念的知覚」「言語的認識」の三段階で考えてみます。
-
第1段階:身体的知覚
- 実際に手を動かした経験も含む
- 五感を通して得られた知覚
-
第2段階:概念的知覚
- 繰り返しによって“知覚の地図”が形成される
- 無意識の構造化(経験の沈殿)
-
第3段階:言語的認識
- 無意識の構造に立脚した言語活動による認識
- 言語化された知識
育成において重要なのは、第3段階(言語的)だけを伝えるのではなく、第1段階(身体的)、第2段階(概念的)についても語ることだ――と筆者は考えています。
4.2 第1・第2段階が相互に作用する理由
何かを見ている時点で、対象をただ漠然と眺めても、すべてが朦朧とした画にしかなりません。しかし実際には、「何を見るべきか」「何を無視してよいか」を意識的に選び、必要なものを捉える――つまり、志向性を持った見る(聞く)行為があります。
何を見るか(聞くか)、どの構造を蓄積していくか――この「見るべきものを見る」という志向性は、第2層の構造(概念的知覚)によって支えられており、第1段階と第2段階は相互に関係し合っています。
ログやコードをパッと見て理解できるということは、画を捉え、構造と照らし合わせ、言語認識しつつ、情報を取捨選択することをわずかな時間で行なっているということになります。何を見るか、何を無視するか――このプロセスの洗練が重要になります。
5. 身体知をどう育むか(実践編)
システムに対する身体知をどのように育んでいくのか――それは簡単ではありませんが、「空間的に繰り返し捉えていくこと」が重要です。人が持つ能力として、無意識に構造を捉えようとする動きを利用します。個人差は大きいですが、どんなに優れていても繰り返しインプットする必要があります。
5.1 “システムの地図化”のトレーニング
- システムを「空間 ≒ 地図」として捉える訓練
- コードを“地図”のように読む
- ログから動きを想像する
- システム、コンポーネント、包含関係、依存関係、順序関係をイメージする
5.2 配置を覚えるという観点
-
どこに何があるか――“配置”を覚える
- 調べる = 配置を確認する行為
- 配置を身体に沈殿させると、「探す時間」が消える
配置が身体に染み付けば、対象の箇所まで“ワープ”するような感覚になる――と述べています。
5.3 対話による身体知の伝達
これらを身につけるために、ベテランが若手にできることとしては、対話と経験の場を設けることが重要です。
- 見た景色・感じたことを対話する
- 他者との対話:どこを見て、なぜそう思ったかを語る
- 自分自身との対話:システムの像と“見えているシステム”を擦り合わせる
- 虫の目のように観察し、鳥の目のように俯瞰する
- 小さな手がかりをつかむ経験を積ませる
- 業務として調べる機会を設ける
- 主体的な取り組みを任せる
身体知は知識として伝えることができないが、ベテランがどのように見えているかを「言語化して伝える」こと、そして繰り返しインプットとアウトプットの機会を提供することが重要です。
6. 育成の難しさと向き合い方
筆者はかつて、育成において「知識を身につけたあとのエンジニアとしての成長は“見て勝手に育つもの”」という勘違いをしていたと述べています。確かに自らぐんぐん成長する場合もあったが、必ずしもそうではなかった。ハードルを用意すれば勝手に成長する、という考えもあったが――今では、それ自体が間違いだったと感じています。
本質は、自分のシステムに対する身体的感覚をリバースエンジニアリングする必要があった、ということです。そのため、ログやコードを見た刹那に自分が「何を見て」「何を無視しているか」という“見方のプロセス”を層によって分解しようと試みた――と述べています。
もう一つ難しいのは、身体知の習得を測ることが難しいということ。身体知は知識のテストのように点数をつけることができない。
ただ、対話を通して相手が何かを掴もうとしている様子を感じ取ることはできる。しかし、対話は相手に対して良いイメージを押し付けてしまう可能性がある。「できている/できていない」と決めつけるのではなく、対話を通して相手の像をアップデート(予測と観測の差異を縮める)しながら、現在地と方向性を調整していくのがよい――と筆者は述べています。
7. まとめ
本記事では、若手とベテランの「同じものを見ているのに、見えている世界が違う」理由を、身体知という観点から考えてきました。
- ベテランが「パッと見てわかる」背景には、知識だけではなく、ログやコード、システム全体を“地図”として捉える身体知がある。
- 一方で、後輩がつまずくのは、努力や素質が足りないからではなく、そもそもその“認識の地図”がまだ十分に形成されていないからである。
- 身体知は「身体的な経験 → 概念としての構造化 → 言語による説明」という三段階を行き来しながら少しずつ育っていく。
育成する立場にある私たちができるのは、「できてしまっている自分」を前提にせず、
- 自分はコードやログの「どこを見て、何を無視しているのか」
- どういう順番で手がかりを拾い、システムの像を組み立てているのか
といった、自分でも普段意識していない“見方のプロセス”を言語化し、共有していくことです。
身体知そのものを丸ごと渡すことはできませんが、その獲得の道筋を見せることはできます。
もしここまで読んで、少しでも何か引っかかるものがあったなら、一度あなたなりの「コードの読み方」「システムの捉え方」を書き出してみてください。
- エラーが出たとき、最初にどこを見るか
- ログを読むとき、どの順番で追っているか
- 「なんとなく違和感がある」と感じるポイントはどこか
それを同僚や後輩に話してみると、きっと「見え方の違い」が浮かび上がってきます。その差異こそが、身体知を育てるためのいちばん豊かな素材になるはずです。
1 “われわれの身体は最初から空間のなかにあるのではない。それは空間に望んでいるのである。” — メルロ・ポンティ『知覚の現象学』