2024年の目標とやらないこと
写真は、9月1週間ほ…
私がこれまで関わった技術者は、ルーツがWeb系のソフトウェアエンジニア、もしくは組み込み・ハードウェア系の技術者が多い。私自身はWeb系のソフトウェア開発がルーツであるのだが、最近やたらWeb系技術者と話が合わないというか、ソリが合わないということを感じており、悩ましい。最近、久しぶりにハードウェア系の技術者と話す機会があり、その理由が理解できたのでまとめてみた。
私の経験(Web開発の仕事がある事業会社を数社経験)からくる主観に基づく、大まかな技術者像をまとめる。もう1つの分野の据え置き機のコンシュマーゲーム系の技術者も書きたかったが、個人的な付き合いがなかった(※おそらくは以下の組み込み・ハードウェア系の技術者に近しいものと思っている)。
私は長らくWeb系技術者として働いているが、学問的な背景はコンピュータ工学である。コンピュータ工学履修者が学校で教わるような事といえば、コンピュータの仕組みとか、関連した数学とかそんなものであるが、主題の話をするにあたり、研究までにいった場合の話が特に分かりやすい。
コンピュータ工学の研究課題では、『高速に処理する』だとか『少ないコンピュータ資源で処理する』とかそんなものが大半である。要は、ざっくり言ってしまうと、ソフトウェアを高速化したり、ソフトウェアの計算資源を低資源化することが研究課題として多いように思える。
この文脈でいくと、間違いなく『組み込み、ハードウェア系技術者』の感覚がとてもしっくりくるのだ。まさに、計算機の性能を絞り出すために、効率の良いソフトウェアを書いているのだ、というスタンスが、前述の話の脈絡もあり、ごく自然に思える。
次に、Web系技術者の特徴に言及する。対して、Web系技術者の感覚は、計算機云々まで話がおよぶことが経験上極めて少ない。
Web系技術者は技術選定の文脈で語るとわかりやすい。Webアプリケーション開発でいくと、ソフトウェアの動作要件がゆるいことがあってか、技術を流行り廃りで選定するみたりみたいなケースも多くの現場で見かける。もっというと、その選定の裏付けにソフトウェア工学やコンピュータ工学の裏付けがない場面を多々見る。実際に『流行っているから』のみの理由で、フィーリングで技術が選定されることもある。
だいたい、Web系技術者の技術選定で意見が割れた場合で、どの技術とどの技術が対立しているだの、となっている場合、『こちらのほうが流行っているから』とか、『(私にとって)使いやすいから』とか、ソフトウェア工学やコンピュータ工学の裏付けがない、主観的意見の主張で言い合っていることが多い。
これは、組み込みやハードウェア系の技術者からしたら、特異な文化だと思う。
組み込み・ハードウェア技術者からしたら、技術の一過性の流行り廃りよりも、処理速度であるとか消費電力とか、選定技術が満たすべきソフトウェア要件にいかに貢献するかでしかない。一方、上記に書いたWeb系技術者像では、コンピュータ資源にまつわる議論はさておき、多くの場合感覚的な議論に落ち着いているのだ。
要するに、私が挙げたWeb系技術者像のような方々は、フィーリングで仕事をこなしている感じがすごいのだ。
技術的に突き詰めた話をしなければならない時、彼らに適切にコンピュータの文脈で話かけても(変数や関数のライフサイクル、メモリ使用量など) 、『???(何いってんだコイツ…?)』…という反応を第一にされることもある。また、技術選定の話題になると、『これが流行っている』と、記閲覧件数が多そうな技術ブログの記事しか出てこないことも多い。技術調査になると、当然私もGoogleでは調べる。しかし、調べるにせよできる限り、性能面のエビデンスのために調べたり、調べて行きあたった記事の内容を検証したり、検証のためにオープンソースのソフトウェアなら中身のコードを読んだりする。ブログなどの有用そうな記事を根拠として出しても良いとは思うのだが、それには記事執筆者の主観が含まれるし、記事を鵜呑みにするだけでなく、自らの技術的なものさしでのレビューが必要に思える。
計算機でソフトウェア動かしてるのだから、コンピュータの文脈で話しかけるのは正しそうではあるのだが、Web開発における文脈では、日本の市場環境的になのか、とても通りが悪いのだ。コミュニケーションは相手とのキャッチボールとはよく言う例えであり、キャッチボールでは当然ながら相手が取れないボールは投げてはいけない。それは、ただの暴投である。
私は今後技術者として、コンピュータに今よりももっと詳しくなり、その道を極めていきたいと思っている。なので、技術に関するは、流行とかフィーリングではなくて、コンピュータの原理原則とかそういう観点にしかほとんど興味がない。
しかし、現実には、日本におけるWeb開発の分野においてらその感覚は仕事でなかなか通らない。これは日本市場特有の環境の『根が深い問題』であるので、会社員でいくと、自分の身を置く市場自体を変える他ないのではないか、と結論付ける。
海外のIT技術者の人材市場、米国あたりの話でいくと、ソフトウェア技術者になるにも学位(最低限、学士。あるいは学士相当の専門知識)の有無がまず足切りのラインとしてあるのはよく知られた事実である。さらに、ソフトウェアのコーディングテストが課されるため、ちょっとしたアルゴリズムの理解度も測られる。
一方、日本市場では、明確に学位や専門知識のレベル感で足切りがあったり、入社試験にコーディングテストを課す企業は企業はまだまだ少ないと思う。これは、おそらくシステムインテグレータの業界の風習(多重下請け構造)と、その風習に伴って、いわゆる人月の観点で、人材のバックグラウンドはさておき、とにかく適切な背景がない人材でも現場に投入しようとするような、日本のIT業界全体の歪んだ構造が起因しているように思える。
以上より、日本は、上記のような米国市場と比べると明らかにIT市場における人材の要件がゆるいので、いくら嘆いたところで、結局はそんな市場に身を置く人材自身が悪いように思える。
結論は、コンピュータの分野に原理主義的なWeb系技術者が、自己研鑽しつつWeb開発をやっていたい場合は、日本市場を捨てるしかないのだ。
自分の精神に、自らが身を置く環境が少なからず影響を及ぼすことは、さまざまな分野の本で言及されているから、私が特に言うまでもないことだと思う。フィーリングで会話するような環境に自然と調和ができなく、無理な同調・迎合が続くような環境はただのストレスでしかない。だから、自分のためには最後には捨て去るしかないのだ。
あとは、諸々の制限をなくして他のアイディアも考えてみる。
Web開発を諦め、ジャンル問わず技術者で良いのであればいっそWeb系技術者をやめてしまって、組み込み分野などの技術者になるのもありかもしれない。
会社員に限らず、事業を自分で興す、といった場合、自分がほとんどの採用の権限を持っている場合にはできるだろう。ただ、事業をやることと技術者をやることはまた別な話なので、これもかなり極端な話ではある。
いずれにせよ、私自身かなり考えたのだけど、やはり何かしらを『捨て去る』他ない、というのがどんなアイディアにおいても、変わらぬ結論だ。
もしかしたら、私が仕事で相手にしているWeb開発の分野自体が他の分野と比べて考えることや制約が少ないから、こういう市場環境になっているのかもしれない。でも、私はインターネット関連技術が好きなのだ。思い返せば、インターネットは中学生の頃、コンピュータサイエンスの分野を目指すきっかけの1つであった。
私は年齢が30も超え、30半ばに差し掛かろうとするような良い大人である。進むべき道は、ある慣れ親しんだ何かを捨てる未来しかない事実は、実際のところなかなかに堪える課題である。しかし、問題は大きなものであり、自身が変わらねば拓かることはない。これもまた事実である。
2021年4月9日 追記:
実際に海外で仕事をするということは、多くが衣食住もそこであるということ。米国をモデルケースに色々調べてみたが、経済成長しているせいなのか賃金の水準も高いが、日々の生活であるとか、教育や医療にかかる金額の大きさに驚いた。たしかに、仕事のみのくくりで話すのであれば、日本市場を捨てるがやはり最も正しいと思うのだが、現実に海外で仕事と生活をするとなるとそう単純な問題ではなさそうだと感じた(現実的にビザの問題もあるし)。
プログラムを書きながらTranceを聴くのが良いですね。みなさんも聴いたほうがいいですよ、Trance。EDMよりハードトランスでしょ。
Discussion about this post