今、世界で起きていることをインターネット黎明期のブラウザをつくったマークアンドリーセンという人がこう言ってます。
Software is eating the World.
この言葉は様々な業界において、ソフトウェアを前提としたビジネスによって従来の企業が取って代わられつつある現状を表しています。日本で言えば、メディアがこぞってDX(デジタルトランスフォーメーション)という言葉で危機感を煽ったりしていますが、後付けでソフトウェアを考えていてはうまくいかないように思います。ビジネスとソフトウェアは不可分になりつつあります。
これから重要度を増すソフトウェアについて本稿では、ソフトウェア開発の本質とは何か。そして、ソフトウェアをつくるプログラマの価値について、考えてみます。
目次
ソフトウェア開発の本質は「すべて設計」である
そもそもソフトウェアとは、ITシステムやプログラムのことではなく、ましてやソースコードのことでもありません。当たり前ですが、ハードウェア以外はすべてソフトウェアと言えます。コンテンツもコンセプトもソフトウェアです。
そんなソフトウェアを開発することの本質とは何でしょうか。
過去には、ソフトウェア工場などという言葉があったように、人を揃えれば大量に生産できるものだと考える人たちもいました。しかし、ソフトウェアは大量生産できるものではありません。デジタルデータのハードウェア的な側面は一瞬で複製することができます。しかし、その本質はユニーク(一意)なものです。だから、ただ人を集めたとて生産性が倍増することはないのです。
そう考えるとソフトウェア開発の仕事は、ルーチンワークではありえません。マニュアル通りに手を動かせば出来上がる訳ではなく、設計もプログラミングも、その度ごとに取り掛かっている人が自分の頭で考える必要があります。何人かのプログラマがプログラミングをしたとして、まったく同じものを作ることなどないのです。そして、昨日と今日、今日と明日でも内容は異なります。
つまり、再現性のない仕事だと言えます。私は、そうした再現性のない仕事のことを「クリエイティブな仕事」と定義しています。属人性が高くなることは必然であり、そうした前提でマネジメントすることが求められます。従来の製造業で行われてきたマネジメントとは根本的に違っています。ソフトウェア開発の本質は「すべてが設計である」と考えると良いでしょう。
設計する行為は残り続ける(しばらくは)
「AIがプログラミングするかもしれない時代に、プログラマの存在価値はどうなるのか?」・・・これは、先日おこなわれた「AWS DevDay」で登壇したときに司会の方から聞かれた質問です。
登壇は、Rubyを開発したまつもとゆきひろさんと一緒だったのですが、彼の答えは「未来の予想はしても仕方がないが、設計そのものはAIではしばらくは難しいのではないか」といった話でした。続けて答えた私も、その意見には完全に同意でした。コード補完がよりインテリジェンスになったり、コードの記述量は減るだろうけど、設計するという行為自体は残るのでしょう。
過去を考えると、設計する行為からコンピュータを動かすまでが遠い時代があって、設計だけ、コーディングだけ、インフラを用意するだけといった形で分業がされていましたが、今はプログラミング言語が人間に理解しやすくなり、クラウドのようにハードウェアを仮想化して扱うことができるようになって、設計する人がコーディングしたりできるようになってきました。
AIが発達することで起きることは、その方向性が先に進むと考えています。コーディングの部分や手を動かす部分は楽になっていくことでしょう。しかし、プログラムそのものの設計、どういった構造にするのか、そうした行為は、しばらく人間の役割として残るでしょう。(という未来予測もナンセンスなことにも思えますが)
もしかすると、もっと未来になると、なんだって魔法のように欲しい機能を言うだけでAIがプログラムを作ってくれることが絶対にないとは言い切れません。とはいえ、そこまでになったら、もはや人は働かなくても良い社会になっているのではないかとも思います。
好きで楽しめることでないと仕事にならなくなる
プログラミングに限らず、人工知能の話題で出るのは「仕事を奪われる」という話です。いつも不思議なのが、人口知能に置き換えられることを今の社会のまま、今のパラダイムのままでシュッと置き換わるイメージで語られることです。実際は、今の社会のままで仕事だけが急に置き換わることはありえません。変化は統括的で漸進的なものです。
人工知能に限らず、人類が文明を進化してきたのはすべて「不自由」を置き換えていくことが軸にあるのではないか、と考えています。農業が誕生したのも、狩猟だけで暮らすことの不安定さ不自由さから解放されるため、遠い距離を移動できない不自由を解消するために車や飛行機が発達してきました。
運転するというのは不自由なことなので自動運転は普及していくことでしょうし、究極的には死という逃れられない不自由を克服するため医療は発展し続けるでしょう。そうして、どんどんと自由を獲得してきたのが人類です。そう考えると、人工知能も仕事を奪うと考えるのではなく、労働という不自由から解放するための文明の進化なのかもしれません。
生きていくために仕方なく不自由な労働を強いられることがなくなるとしても、仕事はなくならないように思います。もはや仕事という言葉ではないかもしれませんが。現代でも、釣りを趣味にしている人もいれば、仕事で釣りをしている人もいます。スポーツジムで身体を動かしてる人は、江戸時代の人が見ると労働に見えるかもしれません。
仕事と趣味の境界線が非常に曖昧になってくるとして、実はプログラミングという行為は現時点でも既に曖昧なものです。いずれ労働としてのプログラミングがなくなったとしても、好きな人は続けていくのではないでしょうか。釣りのように。
さすがにそれはどれくらい先の話かわかりませんが、いずれにせよ不自由な労働が減っていくとしたら、自分が好きで楽しめることに今からでも取り組んでいく方が未来に繋がっていくのではないかと思います。
お金を持つ会社よりも、スキルを持つ個人が強い
昨今は、働きやすさや働きがいみたいなものが重視されるようになってきました。エンゲージメントという言葉が注目されるように、社員には愛着や関係性を持ってもらうことで辞める人を減らそうというのです。とりわけエンジニア人材については顕著に言われています。
これは何も人手不足だからだけではありません。エンジニアに限らずクリエイティブな仕事をする人たちは、容易に交換ができないからです。正解のない仕事に取り組むのに必要なのはマニュアルよりも知見や経験です。辞めたからといって他の人を入れれば簡単に補完できるものではありません。
はるか昔は、土地を持った貴族などが力を持っていて、土地さえあれば生産できたので人は割と交換可能だったかもしれません。産業が発展して、人が工場で働くようになると工場を持っていることが強さだったかもしれません。しかし、今は土地や工場、お金があることよりも、スキルや知見を持っている個人の方が強い時代になってきたのです。お金ごときで人は支配できないのです。
特にIT企業をはじめとする人的資源で構成される企業は、社員が根こそぎ辞めてしまうと崩壊してしまいます。バランスシートや損益計算書には現れてこない人や知見や経験といったものこそが会社の根幹になってきているのです。誰が働いているのかが重要になっています。そうしたことが時代として昔よりも顕著になってきているのでしょう。
このことは、個人の努力次第で強い立場になれることを意味しています。どれだけお金を積まれても、仕事や会社を選ぶことができるようになれば、お金を持った会社よりも、スキルを持った個人の方が強くなるのです。
幸福度は所得や学歴よりも「自己決定」で決まる
「日本人の幸福感は収入より自己決定度で決まる」という調査結果
こちらの記事による調査結果には非常に納得感があると思います。どれだけ高い報酬が支払われたとて、それによって自分の人生や価値観、仕事への裁量などの決定権がないとしたら、ぞっとしないでしょうか。私には無理です。
自己決定できるというのは自由であるということです。前述の通り、人類が根源的に持っているものが自由への渇望だとしたら、理解ができます。そして主体的に自分の人生を自分でコントロールできるようになることを目指したいのだとしたら、今はとても良い時代です。
スキルを身につけて、腕を磨いていくこと、自ら成長することに取り組んでいけば、自分自身の価値を高めることができます。そして、それは会社に残るものではなく、個人に残るものです。そうなると、どの会社で働くのかどうかも、自分で決定することができるし、どの会社にいても自分の考えで決定できるようになるでしょう。
前述のAWS DevDayで「主体性を持つことが大事。他人はあなたの幸せを保証してくれない。エンジニアを大事にしない会社を変えたいなら、その会社を辞めてしまうことだ」というようなことを、まつもとさんは仰っていました。
さて、自由でいるためにスキルや知見を得る努力だなんて大変だなと思うでしょうか。それとも、自分の努力次第で人生を変えていけるとワクワクする気持ちになったでしょうか。その行動を決めるのも自分自身の選択です。