エンジニアからマネジメント、あるいは機械と人間の懸隔


どうも、元エンジニアです。書くことがポエムしかないのは元エンジニアである確固たる証拠です。 エンジニアだった頃は機械がお友達、今は人間が友達、Yo!

Web フロントエンド・バックエンドのエンジニアからマネジメントにロールチェンジして早2年くらいが経ちました。 プロジェクトマネジメント、エンジニアリングマネジメント、組織づくりや採用広報など開発組織を運営する上で必要なさまざまなロール・ポジションを経験する中で、さまざまな「難しい」を感じました。一番強く感じた(ている)のは「機械と違って人間は難しい」です。

エンジニアからマネジメントに移行し、苦悩の日々を過ごしているすべての人に向けた青春群像劇が今、始まります。

機械と違って人間は難しい

レビューなどのチームによるエンジニアリングを除き、いわゆるコーディング・プログラミングという作業は基本的に機械との対話です。機械から「これ間違っているよ」と言われれば間違っているのはその機械に対して命令を出した人間です。 機械に思想や意思は一切存在せず、ただただ「機械側の期待と異なる」という紛う方なき事実のみが伝えられます。ここでエンジニアは「いや、ぼく・わたしが正しい!」とはならず、ある種の正解が突きつけられ、それに従うのみです。

一方、人間はどうでしょう。生まれも育ちも違ければ、脳の形も違います。それぞれが自分の中に正義を持っていて、その正義に基づいて思想や意思を持ちます。 そして、人間対人間のコミュニケーションは、それぞれの持つ正義が社会通念上正しいかどうかは一切考えず、その思想や意思の相互理解・妥協点の発見にあると思います。

漠然と感じていた「人間は難しい」とは、互いの考えを理解し、認識や期待値を擦り合わせることにあると思います。

人間と人間のコミュニケーション

「私はこう考えている」を一方的に押しつけても、コミュニケーションしている相手には響きません。チーミングやコミュニケーションの書籍を読むと、そのほとんどの最終的な結論として「対話しよう」と書かれている通り、相手の考え方を聞くことからコミュニケーションは始まります。 そして、ただ相手の話を聞いて「ふんふん、そう考えてるんだね」で終わるならば、これもまた意味がありません。コミュニケーションあるいはマネジメントの真髄は、相手と自分の考え方の違いを理解し、それぞれの立場になって妥協点・特異点を探るところにあります。

相互理解は「自身の考えを伝えること」「相手の考えを理解すること」が基本動作になりますが、個人的には後者が特に重要だと思っています。「考えていること」だけを伝えるならば簡単だと思うかもしれませんが、その考えに至った背景や根底にある価値観など、その考えを持ち合わせていない人に擬似的にその考えに至る体験を作ることは難しいです。 コミュニケーションしている相手に「この人の考え方は一見納得できないけど、背景含めるとそのような考えに至るのもわかる」と理解してもらうことがゴールですね。

コミュニケーションにおける「話が合わない」「理解できない」のほとんどが、そういったプロセスをすっ飛ばしていることが原因だと感じてます。

コミュニケーションとマネジメント

プロジェクトマネジメント初心者の時に開発フローを見直すタイミングがありました。このときは「スピーディーで無駄のないエレガントなフローを奏でるぜ」と名探偵コナンばりに意気込んでいましたが、なかなか思うように進みませんでした。今思えば、そのフローの中で動いてもらうエンジニアの課題感や考え方、ひいては「こう進めたい」みたいな意見をもっと多く吸い上げていれば変わったのかな、なんて考えたりもします。

職能的・機能的に関わらず、人間をマネジメントするレイヤーはそのマネジメントしている個人・チーム・組織に対して何らかの施策を打つシーンがあると思います。この施策が上手くいくかいかないかはコミュニケーションの話と同じで、被マネジメントメンバーの立場や視点を理解しているか・その施策の背景や意図について腹落ちするまで伝えられたか、にあります。

オフラインとオンライン

X( 旧 Twitter )を観測していると、リモートワーク云々や対面コミュニケーション云々に関する議論がたびたび発生しているように思います。 本人たちのブログやポストで語られている内容は、本人の視点によって描かれている考え方で、そのどれもが正しいと思います。「たしかに、私も同じ立場だったらそう考えるなぁ」と頷くことが多いですね。

しかし、リモートワークやコミュニケーションは一人で完結することがほとんどありません。共に働く人やコミュニケーションする相手が存在します。 社会が定めているルールに纏わること以外の事柄の是非に対して「良い」「悪い」を定義するのは、個人のみでは完結せずその事柄を観測する人たちによって完結すると思います。

例えば、対面コミュニケーション施策を打ち出したマネージャーとそのコミュニケーション相手であるメンバーが「対面コミュニケーション施策」という事柄を観測した上で、その個人間・チーム間で「良い(フィットしている)」「悪い(フィットしていない)」が定義されます。

そして、そこに関わる人や環境が変われば、その定義は覆されることもあります。

マネジメントという仕事

機械は、この「良い」「悪い」の答えがわかりやすいです。 Cannot read property 'value' of undefined が出たらその値を渡したことが悪いし、 module not found : ./path/to/module.js が出たらインポートしていなかったことが悪い。 エンジニアをやめて(やめてない)、エンジニアという仕事の良さはここにあるな、と強く感じています。直感的でわかりやすい。エラーを見ればだいたいわかる。(わからないこともある)

マネジメントという仕事は、非再現的で不確実性の高いことに取り組みます。なんていったって人間ですからね。昨日と今日ですら考え方は変わりますし、何か大きなライフイベントが発生したら「別の人間か?」レベルで変わります。 そういう意味では、「毎日同じことやっているなぁ」と感じるシーンが少なく、エキサイティングなエブリデイをリビングできています。

他にもアウトプットがわかりづらい、マネージャーとして成長している実感が湧きにくい、みたいな苦悩は多くありますが私にとって一番難しいなと感じたのは、そのような「人間を相手にするということ」でした。

たくさん話そう

とにかくたくさん話すしかありません。テキストでもバーバルでも。人に手と口があるのは、考えを伝え合うためです。別に仕事の話じゃなくてもいい、釣りでも登山でもゲームでもアニメでもなんでもいいんです。その人を知るということの全てが、その人とのコミュニケーションに活きます。

なんかかっこいい感じのことが言えた気がしたので、このあたりでおしまい。さようなら。