仕事について気づいちゃったのでメモるシリーズです。
「この問題って、世の中の人も沢山ハマってるはずだから、解決策はそこらへんに転がってるはずだよね」
というセリフを、転職前の職場では、結構何度も耳にした記憶がある。(ソフトウェアエンジニアだと当たり前の思考法なのかもしれないが。)たとえば、「ソフトウェアのリリース時にどうしても手作業でミスが入る」とか「〇〇というツールから競合の××というツールに移行したいけど手間がかかる」とか。
ついでに言うと「世の中の人はあまり通ってないから、解決策が転がってなくて大変そうだよね」という感覚もある。標準的なライブラリを、特殊な使い方をしようとしているとか、マイナーな道具を特殊な業界向けにカスタムして使うとか。
そして、仕事をする上では、「すでに解決策がある」問題に、うんうん頭を唸って答えをひねり出そうとするのは無駄だ。車輪の再発明だったり、劣化版車輪の再発明にしかならない。一般的な問題は方法を借りてきて、答えが落ちていない、その仕事のオリジナルの問題に、時間を使うべきだと思う。
さて、ここからが気づいたことなのだが、どうやら、ある程度訓練をしていないと、「自分の仕事は個別的/具体的/特殊なもの」だと思い込んでしまうらしい。
「〇〇という業界で、〇人のチームで、メンバーは〇〇な人たちで、〇〇な事情がある僕の仕事で、ソフトウェアの品質が上がらなくて悩んでいる」みたいに思い込んでしまって、一般的な問題だと捉えることができないのだ。その結果、外に答えを探せばいいじゃん、というものすら自力で考えようとする。
ただ、そういう人たちもGoogleの検索窓に「Excel グラフ 書き方」みたいなワードは入れることはできるので、外に答えを求めることはしている。つまり、抽象度が低い問題はググれるが、抽象度が高い問題になると、外に答えを探しに行けなくなるようなのだ。(※おそらくこれは程度問題で、この抽象化の幅がめちゃくちゃ広い人から見たら、僕も全然できていないように見えるのだろう。)
と、考えると、「自分の仕事をいかに一般的な問題として、抽象化して捉え直せるか」というのは、かなり仕事の能力として大きいように思う。もしうまく一般化できれば、人類の英知を拝借して、ちょっとカスタムするだけで、一気に加速できる。
ではどうしたら、一般化できるの?というと、うまく言葉にできない部分が大きい。抽象化は人間の知性の本質的な部分のように思うし、それが分かればスゴい論文が書けるようにも思う。
ただ一つ言えるのは、知識量が多い事は、逆方向のアプローチで、助けになるように思う。
つまり、「自分の問題から一般的な問題にする」の逆方向で「一般的な問題から自分の問題にする」というアプローチだ。
たとえば自分だと、ソフトウェアエンジニアなので、世の中のトレンドだったり、新しい技術だったり、手法だったり、ツールだったり、というのは、よく分からないままでも眺めたりしている。すると、「世の中の人はこういうことで悩んでいて、こういう解決策にトライしているのか」と言うのがぼんやりわかってくる。そして、たまに「あ、これ僕の悩みと一緒だな」というのもあるし、他人が悩んでいるのを見たときに「あの記事で見た悩みと一緒だな」と気づくこともできる。
そして、知識量を増やしていくと、世の中の人が自分と同じようなことで悩んでいることも知れて、「自分は特殊ではないんだ」と相対化もできる。その結果、一般的な問題だと自分の問題を捉え直すのもできるようになるかもしれない。
などなど。長くなってしまったが、一言でいうと、
「知識を入れることで、自分は特別じゃないと気付こう。その上で、できる限り、世の中の人の知恵を拝借しよう。問題を切り出して知恵を借りる力も、実力の一つ」という、ごく当たり前の話となりました。