見出し画像

なぜプログラミングが難しいのか?

なぜプログラミングが難しいのかは「やってみればわかるよ」と言いたくなるのですが、我慢して説明してみます。

プログラミングの世界で「きれいな書き方」という概念があります。ではきれいな書き方とは何でしょうか。

プログラミングは結果さえあっていればいいので、同じ問題でも様々な書き方ができます。

そこで「人が数十行も書くところを数行で書く」という人が現れます。いわゆる「地頭」が良い人たちです。この技術は学校では学べないので付加価値がつきます。同じことをやらせても早く終わるので生産性が高く効率が良いです。

では、これがきれいなプログラムなのでしょうか。確かに一時はそう言われていました。

しかし、この「きれいなプログラム」を後から他の人がみると「何をやっているのかがわからない」ということが起こりました。もちろん数十行もかけて変なプログラムを書かれてもわかりにくいですが、上手すぎるのも困るのです。

そこで、今度は「できるだけ行数を抑えながら、何をやっているのかがわかるように書ける」という人たちが現れます。相手のことを想像するわけですからこれはさらに難易度が高いです。これが現代では「きれいな書き方」です。

つまり、プログラマーの価値というのはプログラミング技術だけではないということです。個人としても効率がよくチームとしても効率が良いプログラムには金銭的な価値があるはずです。これは頑張れば到達できるが「誰でも学校で簡単に習得できる」ものではありません。

こうした付加価値があるからチームで作業ができるプログラマーには正当な対価を支払うべきなのです。しかし、正当な価値を決めるためには価値を決める人(つまりお客さん)がその価値を理解する必要があります。

日本では、客先のやり方にプログラミングを合わせるという伝統があったうえに、すぐに別のポジションに移る非専門家が客先に多かったために、客先のインターフェイス(SEなどと呼ばれます)の方が、プログラマーより価値が高いとされてしました。SEはプログラマよりも優秀な人がなるという伝統があったわけです。

設計技師(建築士)の方が大工が高級というような日本独自の価値観も背景にあるかもしれません。一級建築士は設計者で大工は「二級」ですから。

バブルがはじけたあとはとにかく人件費を抑えろということになり「協力会社さん」の給料はどんどん下がって行きました。こうしてプログラマの給料は日本では上がらなくなってしまったのです。

この構造上の<特性>は様々な弊害を生んでいます。

客先の非効率的な業務が温存されたままでIT化が進むので、生産性が上がらない。
企業合併した時、非効率的な業務と別の非効率的な業務が合わさって、さらに非効率的な業務ができあがる。誰もなぜこんなことをやっているのかわからないが、とにかくそれをプログラムに落とす。
間に合わせでコードを書いたためにあとで見てみても何をやっているのかさっぱりわからないが、仕様を作った人もいなくなっているので、そもそも元々の業務もわからない。
仕様(つまり仕事のやり方)が古いプログラミング言語に残っているだけで後任者もなく、誰も改良できない。だから、数十年前になくなってしまった言語とコンピュータを使い続けなればならない。そこで、中古部品を集めてきてパソコンを延命させている。
日本の生産性が低い理由は割と明快だと思うのですが、管理する方の人たちは意外とそれがわからないようです。以前、農水省が「働き方改革の一環として一太郎をMS Wordに変える」というニュースが大真面目で伝えられているのを見ました。

もし仮に「今のプログラマが高いからもっと安く使い捨てられないかな」などと考える人が多いなら、日本の生産性が向上する望みは限りなく低いと思います

この記事が気に入ったらサポートをしてみませんか?