プログラムは誰にでもできる簡単な仕事だといった類の話を聞くことは時々あります。Twitterをはじめとしたインターネット上の話題などでそういった話は度々出てきますね。
私が会社経営に携わるようになってから11年以上になりますが、仕事上で面と向かって人から「プログラムなんて誰にでもできる簡単な仕事」と言われたことは2回あります。1度目は業界が同じ大手SI企業の幹部の人から、2度目は問い合わせを受けて営業訪問した翻訳事業をしている会社の社長さんからです。
私自身もプログラマー出身ですのでこういうことを言われると非常に胸糞悪い気分になるのですが、プログラムは誰でも簡単にできるっていうのは実際どうなの?というところを書いてみたいと思います。
管理職は専門職よりも偉いという風潮がある
一般的に管理職またはジェネラリストと呼ばれる人達の方が、専門職またはスペシャリストと呼ばれる人達よりも偉い、優秀という風潮がありますね。エンジニアがエンジニアのままキャリアアップして年収も増やしていくことが中々難しい現状があります。
優秀なエンジニアは会社からリーダーやマネージャーに抜擢されていきます。そういう方向に進みたいと思っている人にとっては良いことでしょうけど、ずっと技術者としての道を極めていきたいと思っている人にとっては、自分には合わないまたはやりたくないと思っている管理職をやらされることは苦行かもしれません。
本来あるべき姿としては管理職と専門職の地位については「管理職=専門職」であるべきなんでしょうけど、実際には「管理職>専門職」となってしまっているのが今の日本の姿です。アメリカなど海外では専門職が軽視されるようなこともなく、きちんと理解され評価されるようですね。
「プログラムなんて誰にでもできる仕事」というのは、アメリカで聞いたことのない言葉。日本の企業が専門職を理解しない・評価しないのもう一つの例でしょうか。
— ロッシェル・カップ (@JICRochelle) July 5, 2017
また自社ではプログラミングが伴う業務を行わないSI企業の中には、プログラマーのことを下に見るような人達もいます。SI企業の人達の中には「プログラムなんて誰でもできる」「プログラムなんて外注しとけばいい」みたいなことを平気で言う人がそれなりにいると思います。
システム開発の工程は大雑把に言うと要件定義→設計→プログラミング→テストという感じで進んで行きますが、要件定義や設計のことを「上流工程」、プログラミングやテストのことを「下流工程」のように呼びます。
この呼び方自体はウォーターフォールという水が流れ落ちるように工程が進んでいくモデルの中で、先に行う工程が上流で後に行う工程が下流と呼ぶことになったことは自然なことかもしれません。
しかしながら上流工程、下流工程という言葉の中には、工程の前後関係だけではなく地位の上下関係のような意味合いも含むようになってしまっていることは問題だと思われます。
https://twitter.com/nomufamily/status/882743696650678272
本来は上流工程も下流工程も「役割分担」の話でしかないのであって、どっちが偉いということはないはずですからね。こうなってしまっていることの要因としては、多重下請け構造の中で上流工程を受け持つ会社が「元請け」として最初に仕事を取ってきているという力関係も少なからず影響していると思います。
プログラミングは実際のところ簡単なのか
プログラミングが実際に簡単かどうかについてですが、プログラミングでできる基本的なことに関して言えば、それはごく一部の限られた人だけしか習得できないといった類のものではないと思います。プログラミングの基本的な内容については、努力すれば多くの人が習得できると言えるでしょう。
習得の難易度だけで考えれば、日本人が英語(外国語)を習得する際の難易度よりも、一つのプログラミング言語を習得する難易度の方がかなり優しいと私は思っています。英語学習について考えてみると、それなりの学習を行っていけば誰でも英語の習得はできるはずですが、英語学習をしている全ての人が英語を習得できているわけではありません。
プログラミングに関しても同じことが言えて、それなりの学習をしっかりと行っていけばおそらくほとんどの人はプログラミングを習得できると思いますが、実際には途中で挫折していく人も多いのが現実です。
基本的なプログラミングスキルに関して言えば、「英語を習得するよりははるかに簡単、でも基本的なプログラミングスキル習得段階でも挫折していく人はいる」習得難易度としてはこんな感じだと思います。
「プログラムなんて誰にでもできるでしょ」に嫌悪感を感じるのはなぜなのか
プログラミング習得難易度としては以上述べた通り、基本的なことに関しては確かにきちんとしたステップを踏んでいけば多くの人が習得できるでしょう。では「プログラムなんて誰にでもできる簡単な仕事でしょ」という発言に対して我々がここまでの嫌悪感を感じるのはなぜなのか。
それはその言葉の中に、プログラマーに対する侮辱の意味合いが含まれているからではないかと思います。
そもそもプログラマーに限った話ではなく、まっとうな仕事をしている人たちに対して「あなたのやってる仕事なんて誰にでもできるでしょ」という発言は失礼でしょう。違法行為をやっているわけでもないですしまっとうな仕事をしているわけですから、プログラマーが蔑まれるようなことを言われる筋合いはありません。
システム開発における上流、下流のそれぞれの工程に関しても、それは役割分担でしかなくてどっちが偉いとかいう話ではないはずです。管理職も専門職も役割です。お互いにリスペクトされるべきです。自分は偉いと勘違いしてしまっているような人達がプログラマーを下に見るような発言をしているのだと思います。これに似たことは以前もブログに書きました。
「プログラムなんて誰にでもできるでしょ」発言には、そこにプログラマーに対するリスペクトがかけらも存在しないのでここまで嫌悪感を感じるのだと思います。お互いの仕事やポジションに対してリスペクのない人と一緒に仕事をするのは辛いですからね。
プログラマーはもっと自信を持っていいと思う
努力すれば多くの人がプログラマーになれるという主張は理解できます。一部の限られた優秀な人達だけがなれる職業だとは思いません。また世の中には自己研鑽を怠り続け技術力の低いエンジニアがたくさん存在することも事実でしょう。
しかしそれは何もプログラマーに限った話ではなく、ほとんどの職業は努力すればどんな人にでもなれるチャンスがあるでしょう。才能に恵まれた一部の人しか就けない職業なんて限られているでしょう。どんな職業にも能力の高い人もいれば低い人もいるでしょう。
でもプログラマーが誰にでもなれるチャンスのある職業だからと言って、その仕事が誰にでも当たり前にできるということではありません。プログラムの仕事ができているということは、そのプログラマーが専門技術を修めるべく努力をしてきたからこそできることです。
日本ではまだまだ専門職軽視の傾向があることは否めませんが、専門知識や技術を修めてきた専門職の人に対して、もっと敬意が払われるべきだと言いたいです。少なくとも「誰にでもできる仕事でしょ」などとバカにされる筋合いはありません。
専門技術を修めてきた人たちに対して「あなたの仕事なんて誰にでもできる簡単な仕事でしょ」などと暴言を吐くことは、その人がそれまでしてきた努力に対する侮辱だと思います。
別にプログラマーが偉いと言っているわけではありません。ジェネラリストもスペシャリストも、上流工程も下流工程も、元請けも下請けもお互いの仕事をリスペクトするべきでしょうということを言っています。
プログラマーは自分が習得してきた専門知識・技術に対して、もっと自信を持っていいと思います。
スキルアップの努力を怠っているプログラマーはもっと頑張りましょう。