不寛容社会とエンジニアの「正しさハラスメント」


Sponsored Link

先日、珍しく時間を持て余していたので、テレビを見る機会があった。
バラエティ番組を見るつもりもなく、また、10分ほどだったので、回したのはニュースチャンネル。そのときの題材に「不寛容社会」というものがあった。

何かと繊細な昨今、運動会での組体操でのピラミッド禁止や、除夜の金に苦情がきたために日中におこなうなど、ノイジーマイノリティによる過度な規制や自粛に疑問を示す内容であった。

「不寛容社会」というものは、インターネットにも溢れていると思う。いや、インターネットこそが不寛容社会を助長させていると言っても過言ではない状態だろう。どうあっても必ず誰かが批判をし、それが大きく取り上げられ、最終的には自由が制限される世界はまさに今のインターネットだ。

そうしたインターネットについて述べても良いのだが、今日は少し変わって、「不寛容」という言葉から連想された、エンジニアの「正しさハラスメント」について述べたいと思う。

正しさハラスメント

Qiitaやはてなブログなどを始めとするインターネット上の媒体で、「正しさハラスメント」は日常に行われている。これは今作った造語ではあるものの、ワードから実例を連想することができる人も非常に多いだろう。

例えば、初学者がプログラミングを始める時に、言語としてPHPを選んだとしよう。実際に多くの人が選ぶ言語であるし、この後に述べるような現象も多く起こっている言語なので、適切だろう。

初めからMVCの概念やらO/Rマッパーやらをブラックボックスのまま使っていても仕方がないため、PHP初心者ははじめは「index.phpだけで構成された(=生のPHP)、formのpostリクエストを受け取ってどーのこーの」といったコードを書くことから始める人は多い。そうして学んだことを、個人ブログやQiitaに書くこともまた、非常に多いことだろう。

しかしながら、この初学者のはじめての挑戦、そうして、何かしら自分で「動くものを作れた」という成功体験を折りに来る人が存在する。

正しくないとすまないエンジニアたち

前述のような過程によって生み出されたプログラムというのは、概ねネットを調べて得られた情報をいくつか結合したものであり、拙いものであることも多いだろう。しかしながら、「正しさハラスメント」を行うエンジニアは、それを許さない。

セキュリティ周りとか

例えばセキュリティ対策を例に挙げる。

Qiitaやはてなブログなどを見ていると、初学者が作った簡単なフォームによるリクエストとそれに対してのレスポンスを行うプログラムに対して、「こういった書き方はセキュリティ上問題があるからまず最低限このようにXSS対策をしましょう。また、現在のモダンなコードとしてはこのような記述のされかたが一般的であり……」といったコメントをしている人をたびたびみかける。

彼らにとっては「はじめてのプログラムが思い通りに動いた」という事実がベースとなっているわけであり、わざわざその成功体験の「気持ちいい」状態を阻害する行為には、正直疑問を覚える。

初心者というのは、まだ知人間で少し成果物を見せてみたり、レンタルサーバーすら借りておらず、ローカル環境だけで開発してる人だって多く、Production環境で何かを運用するという人はまだまだないような状態で、プログラムの基本から始めている人に対して、セキュリティ周りについて教えても仕方がない。 「取り敢えずh()関数を利用していればOK」といっただけの状態になっても本質的には何も解決しないし、学んでいく中で、セキュリティ対策というものはいずれ得る知識ではあるだろう。

私の周りには、そのあたりの知識に疎い状態でTwitterなどでツイートをして、いたずらされるような人も多くいたが、そういった過程を経て学ぶこともまた成長につながると思うし、決して悪いことではないだろう。

なぜそういった、「実際に直面して体験するタイミング」や「その時点ではさほど重要ではないタイミング」で指摘をしてしまうのかというと、私はひとえに「それが間違っているから」に尽きると思っている。

勿論、全くセキュリティ対策をしていないプログラムというのは、Production環境で使うには危ういものではあるし、当然推奨されるものではないが、その「正しくない」状態でも、別にセキュリティ対策がプログラムの本質ではないのだから、先により本質的な成功体験を積ませてやるべきである。

しかしながら、「正しくない」状態を許せないエンジニアが多く、前述のような長文が長々と書かれている場合が多く、正直みててうんざりすることもよくある。

アプリケーション設計とか

他の事例だと、設計周りもまた顕著だろう。

別に単機能程度のアプリケーションで設計も何もないし、習作に対してスケーラブルやらなんやら考えることもないと思うのだが、おおよそ一般解とされているパターンを推し続ける人もよく見る。

これらは、先程「ブラックボックスのまま使っていても仕方がない」と述べた通り、基本さえ抑えることができれば役立つが、はじめから学ぶにはハードルが高いので、はじめはdirtyだけどわかりやすいやり方でやっても問題ないであろうに、変に使わせようとする人が多いように感じられる。

そのあたりまとめて

正直、もう少し配慮ができないものかと思っている。

エンジニアというものは、本来柔軟な思考を持ちつづけ、新たな着想を基に問題を解決していく生き物であり、そうあるべきであるはずなのだが、ハラスメントを日常に行っているものには、その柔軟な思考というものが抜けているように感じる。

通り一遍な正論を振りかざしても、萎えて去る人を増やすだけあり、巡り巡って人口の減少、衰退につながるはずだけれど、そのあたりを考慮していないように思う。

もう少し工夫して、本人と近ければ、そっと少しずつ、必要な時に教えてやれば良いし、そうでなくとも、例えばQiitaが媒体なら編集リクエストがあるうえ、コメントならブログにもあり、ひとことふたことと参考URLあたりを書いておくだけでも十分だと思う。

そういった、小さな小さな配慮によって、当人は自身が学ぶべきタイミングでそれらを身につける機会を逃さず、また、リアルタイムで駆け抜けている学びを阻害されることもないと思う。

初学者にとって「正しさ」などどうでもいいので、もう少し初学者の望みの本質的な部分を考えて、そこに寄り添うべきではないだろうか。

思うこと

私自身は、ある程度プログラミングにこなれてくるまではできあがった成果物以外はあまりあげてこなかったし、情報も外に出さない傾向であったが、今思うと、正直非常に賢い選択だったと思っている。

はじめてPHPWebサービスを作るまでに、前述のような発言があったら、私はきっとプログラミングすることは楽しいままだったとしても、外に何かを公開する、情報を表に出すという行為へのモチベーションは酷く低下していただろう。

私自身は、多少間違っていても、今後伸ばせる、変えていけるようなことは、そっと伝えてやるなり、実際に危うくなりそうになった時に止めてやるなど、できる限り当人の「やりたい」を萎縮させないように、人を伸ばしていくべきであると思っているし、そうしていくつもりだ。

「エンジニアが不足している」と長いこと言われているが、多少間違っていたらしつこく指摘されるような世界に、長くいたいと思う人間はそうそういないだろうし、エンジニアを不足させているのは、当のエンジニア本人ではないだろうか。