2ヶ月前に参画した2人のSESエンジニアが月末でいなくなり、12月から新しいSESの2人がやってきた。今のプロジェクトはリモートワークでしている人も多く、まずそれぞれの作業場所にMacbook proが送られてくる。これはコロナ禍ではもはや当たり前の様式であり、それ自体はよろしいことだ。
契約後の初日に何をするのかっていうと、webで初会議を終えた後、せーので開発環境を作り上げることだ。馬鹿げてるなーと思った。1時間で終わるならいい。その日の午後にはコード修正が始まるっていうんならいい。だがこの現場は開発環境を整えるのに1週間かかった。4人同時に参加して1人を除いて5平日を使った。それもこれも開発環境を整えるためのドキュメントにいろんな間違いがあり、おまけにdockerの最初のbuildに1時間放置するほどかかるだからだ。
ある開発者はSESの中でも「当たり」の部類であり、彼なりに推測したりテレパシーして、開発環境をうまい具合に作った。他はハズレか並であり、間違ったドキュメントの自己補足などしてくれなかった。この光景をみて、雇う側はうんざりしただろう。うまくやった1人がいるだけに、他の3人にうんざりしただろう。だがこの場合悪いのは誰かというと、このアプリを設計した最初期の担当者(もういない)と、糞の詰まった脳みその経営者である。
Macを自宅や事務所に送付するなら、なぜ開発環境を作ってから送付しないのだろう。何も事情のわからぬSES達に比べれば経験している中の人がすべて作ったほうが遥かに効率的だ。初回ビルドが1時間かかるならなおさら、テーブルにMacbookを並べて順番に作業したほうが遥かに楽だ。1日あれば4人分は終わるだろう。ところが4人*5日分の経費を使って不完全な開発環境を作らねばならないし、プロパ社員がそれをなんとも思ってないし、何とかできないという環境がすでにオワットル。
そいつらがあえて契約期間を短くしてSESガチャに励んでる姿を見ると、憎悪と軽蔑しかわかない。経営者がわかっていることは、SESには出来損ないのエンジニアが多いから、1-2ヶ月で契約終了できるようにしておこうという浅知恵のみだ。
dockerを使うのに配布するのはMacであるということもどうなんだと思う。dockerが遅いOSの方を揃えるのか。まあMacには全く同じ性能のPCを揃えれるというメリットがある。これも事務方の仕事優先なんだろう。
切られた2人に変わって、やってきた2人はどうだろうか。同じだった。開発環境でyarnだかなんだかのversion違いやらで動かない動かないと言っていた。PM2人は多忙を極めており、今更ドキュメント整理なんぞする気もないらしい。そのPMとて設計を担当した人ではないからうんざりしているだろう。
そのような開発環境を作った人たちのアプリのソースコードがどうなっているのかは察してくれ。SESの「当たり」エンジニアでさえ辟易として苦慮している。コードを読んで追いかけることが難しいコードというのは久しぶりだ。気に食わないのは、能力がなくてスパゲッティになっているのではなく、意図的にわかりづらいコードを書いているというのがわかってしまうからだ。
CircleCIとslack連携、Laravel、Vue、gulp、docker、yarn、これらを4-5年以上前のアプリで採用しているということは、作った人流行りを追いかけたいタイプなのだろう。だがソースコードの中身は過度に隠蔽化されており、定義ファイルまで追いかけられないようにしている節さえある。共通化したjsファイル内部が原因で些細な不具合が起こっていても、そこに手を付けるわけにはいかず、それらを経由しないでvueやlaravel本来の機能に依存してもいけないというデッドロックに陥っている。その結果が大量に逃げ出したエンジニアの足跡と次々に投入するSESだ。
アプリは利用者がいるのでrm -rfで消し飛ばすことはできない。だが不具合も仕様変更も機能拡張もある。かつて先端だったスキルセットは細かく言えばやや古くなり、肥大化し、依存関係のバージョンも上がり続けている。
どう解決するんだろう、と思うかもしれないが、jquery全盛期のスパゲッティコードと同じで、後からやってきた開発者が苦労して何とかして、嫌になったら辞めるということを繰り返すだけだ。いったい最先端技術の成れの果てがどうして古臭いコードベースプロジェクトと同じような結果になるのか理解できない。そういった糞みたいなプロジェクトにしないための新テック新FWではないのか。
あと10年も20年もこんなのを続けるのか?それともどこかで優れた技術がクソの山を築かないでいられるようにしてくれるのか。わからない。わからないが不具合は修正しなければならない、ということだけがわかっている。