先日、とある記事が削除された。
数時間の寿命だったのでご存じない方もいると思うので、つかみだけ紹介しよう。
簡単に言うと、Unityの有志開発ライブラリ、UniRxについての記事だ。
企業プロジェクトでUniRxを気軽に採用すると地獄だぞ、という内容だった。
そしてこの記事が削除された理由は、コメント欄に
「それ全部あんたのチームの問題であって、UniRxの問題ではなくない?」
という趣旨の反論、批判が発生したからである。
彼らの言い分はこうだ。
技術力が低い人間が高等な武器を手にしても自爆スイッチ押すだけだ、と。
なので、技術力を身に着けてから着手すべきだし、追加人員も教育してから実戦投入しろと。
■
さて、この発言そのものは真理である。
チームの全員が「UniRxチョットワカル」と言える程度の理解度があって、
仕様を把握して地雷を踏むことを避け、完璧なデバッグ可能になっていれば。
そうなっていれば、確かに問題は起きないのだ。
「なるほど完璧な作戦っスね―――ッ
不可能だという点に目をつぶればよぉ~~~」
(引用:ジョジョの奇妙な冒険 第4部)
現実は非情である。
世の中には想像を絶するバカというものがいる。
例えば、iOS用アプリの開発案件があったとしよう。
iOS開発案件にはXCodeを使う必要があるので、Macを購入する必要がある。
そして、上納金として年会費やらユーザー課金の3割を支払う必要もある。
何故か作る段になってもこういう基本情報を自分で調べないやつがいるのだ。
未だにDB保存するユーザーパスワードを平文で保存してるバカもいるし、
関数なくてエラーになると、Javaで開発してるのにC#のページ見ながら文句を言うバカもいる。
もちろん今挙げたのは極端な例だ。
流石にないでしょーwwという人も居るだろうが、上記のような例が世の中にはいるのだ。
そして、格上の世界に住んでいる人間は彼らを知らないのだ。
富裕層が、最低賃金割れした環境の労働者の生活を知らないように、
ライブラリの仕様をちゃんと把握して開発ができる格上の人間は、
それっぽく動いたからこれでいいや、で済ませる格下の人間のことを知らないのだ。
■
さて、格上の人間は、無慈悲な人間だろうか?
そうではない。むしろ、基本的に格上のほうが慈悲深くさえあるだろう。
彼らは格下の人間を見て憐れむ時にこういうのである。
「彼らには知識がないのだ。よし、我々が与えてやろう」
非常にありがたいことだ。
本来しなくてもよい労力を割いて、技術記事を書く人は良い人である。
私自身、彼らの技術記事を見て勉強することが多い。
場合によっては、公式解説よりも分かりやすく、教材として最適ですらある。
だから、彼らが書くリファレンスレベルの技術記事は非常にありがたい。
だが、その上で言おう。
ガチの格下層は、読まない。
格下層が読むのは、現場のソースコードだけである。
アドバイスを求めたときも、現場の上司に話を聞きに行く。
もう一度言おう、ガチの格下層はQiitaを読んじゃいないのだ。
というか、存在すら知らねえやつ居るからな。俺はマジで見たぞ。
そうして、コードは劣化していく。
ん?現場の元のコードが正しければ、そうはならんやろ、だって?
それは、リファクタリングが全く行われず、コメントが全く存在せず、
コピペしたせいで意味のないローカル変数がスコープ内に散見され、
関数の動きを追うことすら困難な他階層継承のクラスを見たことがないやつの言い分だ。
保守され続けるコードは、人間がベタベタ触るから常に腐敗し続ける。
リファクタリングは腐敗箇所を削ぎ落とし、代替素材を投入して、新鮮さを保つ作業だ。
それが為されないという地獄を、あなたは見たことがあるか?
そういったコードを、炎上した他社から引き継いで絶望したことはないか?
そうか、そういう案件を目にしたことがないなら君は上級階級の人間だ。
一生目にしないで済む身分であることを、本当に心の底から願うよ。
■
ライブラリの選定をする立場にいる人間は、比較的に格上側だ。
Qiitaとか各種情報サイトをちゃんと読める。調べる。把握できる。
一流ではなかったとしても、大体の職場では、二流は十分にエースである。
だが、彼らは中間管理職でもあるので、どうしても部下を意識しなければならない。
部下も格上側ならそりゃ何も問題はないのだが、厳しい現実は存在する。
格下に仕事を回さなきゃならない人間が考えるべきことは、
格下が地獄を生み出すことを、どうやって防ぎながら納品まで仕上げるかだ。
格下をどうにか格上に育てることは考えるべきことではない。というか無理だ、んなもん。
そんなことが可能なんだったら、受験とか面接で人間を足切りする必要がない。
人間の学習意欲や理解度には明確な個体差が存在する。伸びないやつは絶対に伸びない。
人間はポケモンと違ってLv500まで行くやつもいるが、Lv20で止まるやつもいるのだ。
Lv100に満たない者が多い世界に住んでいる人間が
「このライブラリは高等すぎるので採用すべきではない」
ということの何が悪いというのか?
それをLv200とかの人間が叩くことに、何の意味があるのか?
マジで、自分の住んでいる世界が一般的だと思わないでくれ。
それが出来たら誰も苦労しない、なんてこと世の中いっぱいあるんだよ。