🙌

60点の世界

2020/12/14に公開

この文章で言いたいこと

我々ソフトウェアエンジニアの世界では平均60点が求められる。しかしそれが世界の全てではないということ。自分は我々のために70点を目指したい。

60点を目指す世界と100点を目指す世界

間違ったことを言うことが許されない世界がある。「人生・人命がかかわる世界」である。これはソフトウェアでも車載、航空のような世界では求められる。一般の仕事で言えば(クライアントの人生がかかっている)弁護士や医師がそうだろう。これらの世界を「100点を目指す世界」と呼ぶことにする。

それでは「人生・人命がかかわらない」ソフトウェア開発のエンジニアに求められているのは100点だろうか?個人的な見解では求められているのは60点である。つまり40点は間違っていても特に咎められることはない(ひどい間違いは指摘されることはあると思うが)。これを「60点を目指す世界」と呼ぶことにする。

「100点を目指す世界」「60点を目指す世界」、どちらが正解だろうか。実はこれは現実の問題が絡んでおり、単純に「60点を目指す世界」が劣っているというわけでもない

60点を目指す世界の現状

我々ソフトウェアエンジニアは「平均」60点なのが現状である。この文章を書いている自分も未熟な部分があるため、100点とは到底言えない。個人差は、たかだか言っていることの間違いが20%か40%かの違いであり平均で言えば間違いが非常に多い。技術的に間違っているWeb記事を見つけたことは誰でも一度や二度ではないだろう。

なぜ我々ソフトウェアエンジニアの世界は「60点を目指す世界」なのだろうか?これは単純に時間とコストの問題による。ソフトウェアエンジニアが100点を目指すには無限に近い時間とコストがかかる。なぜなら求められる知識、スキルが膨大であり、どんどん新しい技術も開発されている。最近のフルスタックエンジニアの話題は「80点を目指す世界」の話と自分は解釈している。全員がフルスタックエンジニアになることはできない。これを絶対視するとソフトウェア開発が立ち行かない。制約のある中で、80点、100点を目指さず60点でもよいので目の前の仕事をする。不完全な世界で前に進む力のほうが重要である。

60点を目指す世界では間違った情報が専門家同士でも非常に流通しやすい。例えば「リファクタリング」という単語を発するソフトウェアエンジニアのうち何割がマーチン・ファウラーの書籍を読んだだろうか。原典主義ではないが世間的にはマーチン・ファウラーの主張から大きくずれたリファクタリングが横行している(疑問に思った人は本を読んでみよう)。

こういった誤解は他の技術、設計手法でも情報として流通しやすい。

間違いがある世界で生きる限り、間違いは再生産される。この世界で自衛するには「正しい情報ソースを参照すること」という当たり前のことが必要である。間違っている人は間違えようと思って間違えているわけではないし、不勉強なのはほとんどの人が自覚していることである。勉強中のことについて語ること多いだろう(自明になるとむしろ誰も語らなくなる)。間違っていることに目くじらを立てても世の中良くならない。

我々は70点を目指す世界を選択すべきか?

現実的に一般のソフトウェアエンジニアに「100点を目指す世界」を求めるのは無理である。そこまで高い水準の技術を求めるには必要とするスキルが多すぎ、新しい技術にもキャッチアップしなければならない。不完全な世界で前に進まなければならない。

それでは我々は70点を目指す世界を選択すべきか?これは個人の思想による。70点を目指すべきと理想を追求する人が多ければ70点になるだろうし、60点が現実だと思う人が多ければ60点になるだろう。そしてそれは需要も関係する。自分の個人的な見解では70点を目指したほうがいいのではないかと思う。点数を少し上げることで我々も専門家として社会に認めてもらおう。

求められる点数の高さは社会の期待値でもある。期待値の高い業界は単純に高い報酬がついてくる。現実の制約の中で70点を目指したい。

Discussion