見出し画像

私が35年間プログラムコードを書き続けてきたたった一つの理由(わけ)

こんにちは。READYFORでバックエンドエンジニアをしている大田原です。

この記事はREADYFOR Advent Calendar 2020の20日目の記事です。

社会に出て随分と長い月日が経ちました。その間、属してきた組織の中ではいろいろな役割を担ってきましたが、気がついてみればず〜っとソフトウェアプログラムのコードを書くことから離れることはありませんでした。同じようなスタートを切った同世代の友人知人達の多くは、もうプログラムコードを書いていないようです。ある人は「もう卒業した、次のステップへ進みたい」と言います。ある人は「もう体力知力が持たない、ついていけない」と言います。またある人は「もっと素敵で魅力的なことを見つけた」と言います。それぞれの人の言うことに「ああ、わかるよ。もっともなことだね・・・きっと君の選択は正しいんだ・・・」と思います。でも、なのに、私はプログラムコードを書くことをやめることができませんでした。やめようと思ったこともありませんでした。

この記事は、とても早い変化と進歩が当たり前のこの分野に対して、歳を重ねるにつれて体力や記憶力が衰えていくという、避けがたい、かつ決してプラスには作用しない事実を顧みずに、なぜにそこまでプログラムコードを書くことに執着を持つのだろう?ということを自分なりに考えてみた中年おやじのつぶやきです。

私にとってプログラムコードとは?

私が社会人ペーペーのとき、「個人ごとに違うお肌のニキビ症状にもっともあった対処法をアドバイスするソフトウェアシステムをつくる」という仕事がありました。私は医者でも化学者でもありませんので、科学的な理論に基づいた対処法を持ち合わせているはずなどなく、仕事の本筋はそういった知識と経験が豊富な専門家と協力して、コンピュータ上で彼ら/彼女らと同じように振る舞うプログラムを書くことでした。また同時期の別の仕事として「注文洋服の個人採寸サイズに基づいて服飾デザイナーが布地を裁断する際のカスタマイズされた型紙を出力するシステムをつくる」というものもありました。もちろん私に服飾デザイナーの才能などこれっぽっちもありません。やはり、この領域の専門家と協力して、彼ら/彼女らが頭に描く採寸数値から醸し出される”美しいライン”をプロットするプログラムを書くことが私の仕事でした。(はてさて、”美しいライン”とははなはだ概念的であり、無機質なプログラムコードにはとても”乗りにくい”代物ではありました。)

ペーペーの私が携わったこれらの仕事はいずれも私にとっては「ふわふわした雲の上のシステムのよう」でした。回答を導き出す直接的なアルゴリズムなど世の中にはありません。でも特定の人間様はこの課題を見事にやってのけるのです。その手法はとても感覚的で、いくら聞いてもプログラムアルゴリズムになどなりそうもないと感じました。(もちろん私がペーペーだったことも大きな理由ですが。)しかしながら、様々な紆余曲折と試行錯誤の末、私たち(そう、もちろんペーペーの私一人の仕事ではなく、諸先輩方が主力メンバーのチームの仕事です)はとりあえずの回答を導き出すシステムをつくりあげたのです。

感動しました。頭で、繰り返し繰り返し、何度も何度も、つくっては壊し、壊してはつくったアイデアが、プログラムコードとして書き出され、それを実行すると、頭の中にしかなかったことが目の前に「結果」として創出される。いやぁ、感動しましたねぇ。魔法の杖を手に入れたように思いました。ソフトウェアが課題を解決する、ということ自体よりも、その解決方法を自分の頭で考え、(失敗の繰り返しの末に)コードに書き出せた、ということに達成感と満足感を覚えました。私の今の在りようはこういった原体験に基づいているところが大だと思います。

私にとってプログラムコードは魔法の杖なのです。でも、魔法の杖自体が好きだからそれを書き続けている訳ではないのです。そのことはもう少し後でお話ししたいと思います。

コンピュータソフトウェア世界の進化

私が社会人としてスタートしてからの数十年の間で、ソフトウェア開発の方法や取り組み方については革命ともいえる目覚ましい発展、進化がありました(というか現在も進行中ですね)。特にインターネットが発明され世に行き渡ったことによる変化には驚きを隠せません。私のペーペー時代、魔法の杖であるプログラムコードはまだ職人技による1点物が少なくなかったような気がします。現在、魔法の杖の多くはあまり苦労をせず既製品の中から目的にあったものを、それも相当高品質のものを手に入れることができるようになりました。加えて、魔法の杖のパーツ化が進み、完全に目的に叶うものがない場合でも、膨大な既製の半製品パーツの中からいくつかを選んで組み立てれば、最終的に望んだ働きをする魔法の杖を得ることが可能になってきています。

プログラムコードに限らず、ソフトウェア製造・運用のあらゆる面において、あたかも「家内制手工業」から「工場制機械工業」へと進展した「産業革命」にも似た革命が進行しています。これはすごいことです。現在のソフトウェア技術者たちは、この革命とその後の流れに乗り遅れないように、様々な新しいやり方(特に「分業と共有」、「効率とスピード」をキーとした)を身につけ、研磨研鑽しながらこの分野の担い手として日夜頑張っているわけです。私の職場の周りにも、優秀なスキルを身につけ、組織全体の成長・発展のための重要な人的財産となる人材が集まっています。尊敬すべき人たちです。重ねて言います。これは確かにすごいことです。

私もこういった環境で働いている以上、この流れを無視することはできません。もともとイノベーションの空気感(ワクワク感やドキドキ感、意欲向上感)は好きな方ですので、こういった仲間たちに囲まれていることを幸せに思いますし、この、早く、魅力的な大きな流れにこれからも乗り続けていきたいと思うのです。

プログラムコードを書く、という幸せ

プログラムコードは魔法の杖だという話をしました。そしてその魔法の杖はソフトウェアの世界の革命的進化に伴って、手作業成果物から工業既製部品へと姿を変えてきたという話をしました。この大きな変化の流れは、幸せな社会/良き世界の実現のためには正しい流れなのかもしれません。この流れに乗り続けたいと願うことは正しい選択なのかもしれません。

しかし、私が「プログラムコードを35年間書き続けてきた」そして「これからもずっとプログラムコードを書き続けていくと心に誓っている」のは、この流れに乗り続けていきたいと願うことが理由なのではないと気付きました。もしかしたら、現在の本流である革命の流れには逆行するかもしれませんが、魔法の杖を”苦労して作ること”が好きだからです。半既製品の部品の組み合わせではなく、自分の頭の中に浮かぶアイデアの繰り返し試行錯誤の結果として、オリジナルの魔法の杖を作り上げることが好きだからです。そうです、魔法の杖そのものではなく、魔法の杖を自前で作り上げることが好きなのです。幸せを感じるのです。

私のような凡人の頭に浮かぶアイデアなど、おそらく十中八九、世界のどこかにすでに半既製部品の魔法の杖パーツとして(さらに言えば自前のものよりずっとカッコイイ形で)存在しているに違いありません。それなのに自前で試行錯誤することは「分業」「共有」「効率」「スピード」といった全ての産業革命後の主流キーワードに反しています(自前のものは見てくれも悪いし・・)。なので、仕事上、この自分の好みを優先させることはできません。そこは大人の対応として社会人としての仕事をするのです。しかし、私が35年間、プログラムコードを書くことから離れられなかった理由はまさしくこの1点につきます。

終わりに

個人的に、秘めやかに願うのは、一生死ぬまでコードを書くソフトウェアエンジニアとして誇りを持って生きていく技術者が一人でも増えればいいなぁということです。

明日は READYFOR の必殺仕事人ことバックエンドエンジニアの s-mori さんの担当です。お楽しみに。


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