普段思ったことや、雑記。

Menu & Search

最近気付いたWeb系技術者とそうでない技術者との違い

2021年4月8日

私がこれまで関わった技術者は、ルーツがWeb系のソフトウェアエンジニア、もしくは組み込み・ハードウェア系の技術者が多い。私自身はWeb系のソフトウェア開発がルーツであるのだが、最近やたらWeb系技術者と話が合わないというか、ソリが合わないということを感じており、悩ましい。最近、久しぶりにハードウェア系の技術者と話す機会があり、その理由が理解できたのでまとめてみた。

分野の異なる2つの技術者像

私の経験(Web開発の仕事がある事業会社を数社経験)からくる主観に基づく、大まかな技術者像をまとめる。もう1つの分野の据え置き機のコンシュマーゲーム系の技術者も書きたかったが、個人的な付き合いがなかった(※おそらくは以下の組み込み・ハードウェア系の技術者に近しいものと思っている)。

組み込み、ハードウェア系技術者の特徴

  1. 組み込み・ハードウェア系は計算量、CPU負荷、メモリ使用量、ひいては消費電力を当然意識した開発をする(製品の性能に直結するため)
  2. 流行の度合いで技術選定をする事はなく、技術として『枯れて』おり、安定性があったり、不備が少ない技術であるかが最も技術選定の指標として重要
  3. OSS(オープンソースソフトウェア)を積極使用するような文化ではない。あくまで、使用は最低限にとどめ、極力使わない
  4. 技術者のバックグラウンドがコンピュータ工学、電気電子、機械工学周辺を持っている技術者が圧倒的に多い(個人的な経験では、工学系のバックグラウンドを持たない技術者にこれまで会ったことがない)

Web系技術者の特徴

  1. コンピュータ資源を多分に使う傾向にあり、よりリッチなUIの挙動をラグなく表示すれば多くの場合にOK(※新興国向けなど、低速ネットワーク向け環境を想定しないかぎり)。処理ステップ数だとかは当然気にしないし、CPU負荷、メモリ使用量までもパフォーマンスがネックにならないかぎり、多くの場合に気にしない
  2. 抽象化の手法(フレームワークやライブラリのOSS)の選択肢が豊富であり、ほとんどの場合OSSを積極的に使用するような環境である
  3. 技術的に枯れているかよりも、現在流行しているか(あるいは、この先流行の見込みがあるか)、というのが技術選定時の判断の大きなウェイトを占める場合がある
  4. (※日本市場において) 理系出身者やコンピュータ工学のバックグラウンドを持つ人材も当然いるが、一方で文系出身者も多い(少なく見積もっても2割は文系出身者なのではないかと思う。Webフロントエンド開発者のみでいくと、これが3割を超えてくるように思う)

私がWeb系技術の方々と感覚が合わない原因

私は長らくWeb系技術者として働いているが、学問的な背景はコンピュータ工学である。コンピュータ工学履修者が学校で教わるような事といえば、コンピュータの仕組みとか、関連した数学とかそんなものであるが、主題の話をするにあたり、研究までにいった場合の話が特に分かりやすい。
コンピュータ工学の研究課題では、『高速に処理する』だとか『少ないコンピュータ資源で処理する』とかそんなものが大半である。要は、ざっくり言ってしまうと、ソフトウェアを高速化したり、ソフトウェアの計算資源を低資源化することが研究課題として多いように思える。

この文脈でいくと、間違いなく『組み込み、ハードウェア系技術者』の感覚がとてもしっくりくるのだ。まさに、計算機の性能を絞り出すために、効率の良いソフトウェアを書いているのだ、というスタンスが、前述の話の脈絡もあり、ごく自然に思える。

次に、Web系技術者の特徴に言及する。対して、Web系技術者の感覚は、計算機云々まで話がおよぶことが経験上極めて少ない。

Web系技術者は技術選定の文脈で語るとわかりやすい。Webアプリケーション開発でいくと、ソフトウェアの動作要件がゆるいことがあってか、技術を流行り廃りで選定するみたりみたいなケースも多くの現場で見かける。もっというと、その選定の裏付けにソフトウェア工学やコンピュータ工学の裏付けがない場面を多々見る。実際に『流行っているから』のみの理由で、フィーリングで技術が選定されることもある。
だいたい、Web系技術者の技術選定で意見が割れた場合で、どの技術とどの技術が対立しているだの、となっている場合、『こちらのほうが流行っているから』とか、『(私にとって)使いやすいから』とか、ソフトウェア工学やコンピュータ工学の裏付けがない、主観的意見の主張で言い合っていることが多い。

これは、組み込みやハードウェア系の技術者からしたら、特異な文化だと思う。
組み込み・ハードウェア技術者からしたら、技術の一過性の流行り廃りよりも、処理速度であるとか消費電力とか、選定技術が満たすべきソフトウェア要件にいかに貢献するかでしかない。一方、上記に書いたWeb系技術者像では、コンピュータ資源にまつわる議論はさておき、多くの場合感覚的な議論に落ち着いているのだ。

要するに、私が挙げたWeb系技術者像のような方々は、フィーリングで仕事をこなしている感じがすごいのだ。
技術的に突き詰めた話をしなければならない時、彼らに適切にコンピュータの文脈で話かけても、『???(何いってんだコイツ…?)』…という反応を第一にされることが多いため、コミュニケーションがスムーズに成り立たない。また、技術選定の話になると、『これが流行っている』と、記閲覧件数が多そうな技術ブログの記事しか出てこないことが多い。技術調査になると、当然私もGoogleでは調べる。しかし、調べるにせよできる限り、性能面のエビデンスのために調べたり、調べて行きあたった記事の内容を検証したり、検証のためにオープンソースのソフトウェアなら中身のコードを読んだりする。

計算機でソフトウェア動かしてるのだから、コンピュータの文脈で話しかけるのは正しそうではあるのだが、Web開発における文脈では、日本の市場環境的になのか、とても通りが悪いのだ。コミュニケーションは相手とのキャッチボールとはよく言う例えであり、キャッチボールでは当然ながら相手が取れないボールは投げてはいけない。それは、ただの暴投である。

では、私のようなWeb系技術者はどうすれば良いのか?

私は今後技術者として、コンピュータに今よりももっと詳しくなり、その道を極めていきたいと思っている。なので、技術に関するは、流行とかフィーリングではなくて、コンピュータの原理原則とかそういう観点にしかほとんど興味がない。
しかし、現実には、日本におけるWeb開発の分野においてらその感覚は仕事でなかなか通らない。これは日本市場特有の環境の『根が深い問題』であるので、会社員でいくと、自分の身を置く市場自体を変える他ないのではないか、と結論付ける。

海外のIT技術者の人材市場、米国あたりの話でいくと、ソフトウェア技術者になるにも学位(最低限、学士。あるいは学士相当の専門知識)の有無がまず足切りのラインとしてあるのはよく知られた事実である。さらに、ソフトウェアのコーディングテストが課されるため、ちょっとしたアルゴリズムの理解度も測られる。

一方、日本市場では、明確に学位や専門知識のレベル感で足切りがあったり、入社試験にコーディングテストを課す企業は企業はまだまだ少ないと思う。これは、おそらくシステムインテグレータの業界の風習(多重下請け構造)と、その風習に伴って、いわゆる人月の観点で、人材のバックグラウンドはさておき、とにかく適切な背景がない人材でも現場に投入しようとするような、日本のIT業界全体の歪んだ構造が起因しているように思える。

以上より、日本は、上記のような米国市場と比べると明らかにIT市場における人材の要件がゆるいので、いくら嘆いたところで、結局はそんな市場に身を置く人材自身が悪いように思える。

結論は、コンピュータの分野に原理主義的なWeb系技術者が、自己研鑽しつつWeb開発をやっていたい場合は、日本市場を捨てるしかないのだ。
自分の精神に、自らが身を置く環境が少なからず影響を及ぼすことは、さまざまな分野の本で言及されているから、私が特に言うまでもないことだと思う。フィーリングで会話するような環境に自然と調和ができなく、無理な同調・迎合が続くような環境はただのストレスでしかない。だから、自分のためには最後には捨て去るしかないのだ。

あとは、諸々の制限をなくして他のアイディアも考えてみる。
Web開発を諦め、ジャンル問わず技術者で良いのであればいっそWeb系技術者をやめてしまって、組み込み分野などの技術者になるのもありかもしれない。
会社員に限らず、事業を自分で興す、といった場合、自分がほとんどの採用の権限を持っている場合にはできるだろう。ただ、事業をやることと技術者をやることはまた別な話なので、これもかなり極端な話ではある。

いずれにせよ、私自身かなり考えたのだけど、やはり何かしらを『捨て去る』他ない、というのがどんなアイディアにおいても、変わらぬ結論だ。
もしかしたら、私が仕事で相手にしているWeb開発の分野自体が他の分野と比べて考えることや制約が少ないから、こういう市場環境になっているのかもしれない。でも、私はインターネット関連技術が好きなのだ。思い返せば、インターネットは中学生の頃、コンピュータサイエンスの分野を目指すきっかけの1つであった。

私は年齢が30も超え、30半ばに差し掛かろうとするような良い大人である。進むべき道は、ある慣れ親しんだ何かを捨てる未来しかない事実は、実際のところなかなかに堪える課題である。しかし、問題は大きなものであり、自身が変わらねば拓かることはない。これもまた事実である。

2021年4月9日 追記:

実際に海外で仕事をするということは、多くが衣食住もそこであるということ。米国をモデルケースに色々調べてみたが、経済成長しているせいなのか賃金の水準も高いが、日々の生活であるとか、教育や医療にかかる金額の大きさに驚いた。たしかに、仕事のみのくくりで話すのであれば、日本市場を捨てるがやはり最も正しいと思うのだが、現実に海外で仕事と生活をするとなるとそう単純な問題ではなさそうだと感じた(現実的にビザの問題もあるし)。

Article Tags
mmiyauchi

プログラムを書きながらTranceを聴くのが良いですね。みなさんも聴いたほうがいいですよ、Trance。EDMよりハードトランスでしょ。

Related article
2021年の目標と2021年のやらないこと

2021年の目標と2021年のやらないこと

上の画像は、2週間ほ…

「2020年の目標と2020年のやらないこと」振り返り

目標 1. Comm…

[Setlist] Connection 2020/11/27

[Setlist] Connection 2020/11/27

浅草Stella、隔…

Discussion about this post

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Type your search keyword, and press enter to search
%d人のブロガーが「いいね」をつけました。