南千歳観察帳

twitter@minkai

暗黒のシステムインテグレーター3年生

 暗黒のSIerに就職して3年目となった。

 無事現在のプロジェクトも大炎上中である。

 そんな中、2年目から現在までを振り返って暗黒っぷりを書いておこうと思う。

 そしてこれを書いている現在絶賛メンタルぶっ壊れ中だ。

 

 【平和な社内研修】

 昨年4月は心身を軽く壊し、いわゆる生産性が低いのもあり、また所属部所でインフラエンジニアを増やしたいという政治的何かに巻き込まれて(俺はセキュリティ系やりたいとは言ったがインフラやりたいとは言ってないぞ)、インフラ系、特にAWS関連の研修に参加することとなった。

 研修先の別オフィスは自分の所属オフィスよりも遠く、ネットワークが遅い、近所に飲み屋が多い、治安が微妙などが特徴に挙げられるが、研修ということもあり非常に平和な雰囲気だった。

 講師にあたる先輩社員やその上司も話しやすく、いかに自分の所属オフィスが殺伐としていて異常なのかを実感した。

 たまたま仲の良い同期がいたというのもあり、飲んで逆方向の電車に乗って終電がなくなったとかもやったが本当に平和だった。

 新型コロナウイルスの影響もありすぐにリモートに切り替わったが、そんなに大した内容をやっているわけでもなくノルマは大体終わるし、日々のミーティングに参加する以外は割と自分のペースでできていたと思う。

 最後の試験はペーパーテストであまり点数が取れなかったし、なんなら成績悪くね?で上司からやんや言われたが、そもそもペーパーテストと相性が悪いのでなぁという感じ。実技寄りとか、その辺は点数にならんとこでは評価されていたよう。流石にパソコン小僧の面目躍如か。

 

【地獄の案件に戻る】

 さて、約1ヶ月の研修が終わると今度は心身を崩した原因の地獄の案件に逆戻り。

 そう、上司が倒れて離脱、俺も心身を破壊、また別の上司は弱った体に酒でトドメと刺し吐血して入院など、関わった人間が「もう二度とやりたくない」「近年稀に見る殺人案件」に戻ることとなったのだ。

 大体の開発は終わっており試験工程が残っていたが、ツーマンセルで試験を実施、時間をズラして試験を行うなどの体制を取っていたが、バディの先輩が消えてそのまま退職、また発見されたバグの対応と設計書の修正に追われていた。

 ここでこの異常なプロジェクトの設計書の修正について説明しよう。

 ウォーターフォール型開発を採用した本案件は、いわば「前工程の設計書が神」であり、実装中や試験中に改善や設計書のバグが見つかった際に報告を上げて修正を行うのだが、「神」があまりにも強いため、設計書の修正を行うにしても「修正理由と修正内容を提示」「許可をもらった上で」「修正前と修正後の設計書のキャプチャをエクセルに貼り付け」「修正箇所を赤枠で括り、なお説明を追加する」「そしてシート名につけたスペースやハイフンやアンダースコアが間違っていることに気がつくと鬼のように修正を要求されるので直す」といった作業が発生するのである、なおレビューした人間は内容なんかこれっぽっちもわからないのかそういう外面や体裁の指摘ばかりで、気づかれなければそのまま通るというまさに運ゲーレビューなのだ。

 しかも設計書にはSQLを書く箇所もあり「そんなの動かさないと確実かどうかなんてわかんねーよ」というところにも上述の修正方法が適用されるために異常に工数がかかり、その水平展開も同様の手順を踏まなければならないため、「バグ発見」「(実装は直しつつ)設計書修正」「承認」に無限に工数を取られるという虚無が発生するのだ。

 最初から「設計書はあくまで設計であり、実装後に要件を満たすよう設計書とはイコールにならない箇所は、実装からリバースして直す」というように決めておけばいいのだが、なぜかそれが許されないという状況だった。

 そして設計書はWordで20MB級など、開くだけでもプロセスがフリーズするもんだからもうやってられませんわな。しかも物によってはPowerpointで作成された設計書もあり、そちらの反映も当然ヒューマンエラー誘発がザラに発生する劣悪なドキュメント。 これで水平展開があるってんだから、いよいよキリがないということで、無事当初の締め切りから1ヶ月と少し延長し8月に一応の終わりを見せた。

 話によるとこのプロジェクトの保守の仕事が回ってきたらしいが、正直関わりたくはない……何事もなければよいのだが。

 

【暗黒の次案件】

 8月は夏休みがあったり、殺人プロジェクトの反省会なんかもやったがどうやら次の案件に提案が決まったようで、後半に商談に行くことになった。

 当初インフラ案件での提案だったがそちらではなく、既に自社チームの参加している所に加わる形で参画が決まった。

 9月から参画ということで、最初は試験を担当するという話だったが初日にその話がなくなった。なにやら開発のための検討をして欲しいということになった。

 全く別ジャンルな中身のため、お勉強から入ったわけで大体英語のドキュメント漬けとなった。まとめた資料などが良いか悪いかはともかく、ここでゴリゴリ英語のドキュメントを読んだのは悪くない経験だった、というか英語に抵抗がないので意味さえわかればなんとなくわかるのだ。ざっくり自動翻訳にかけて、見比べながら内容を理解するという感じ。

 途中プロジェクトのインフラチームの手伝いをすることになったが、いつまでたっても手伝いをするための環境が来ない、この辺からやばい予感はしてきていた。

 10月からこちらのチームでも開発に関わることになった、開発はアジャイルで行うようだ。しかしこのアジャイルという名の何かは大きな罠があり、実際は圧縮されたウォーターフォールモデルだったのだ。つまり、2週間で「検討」「レビューと承認」「設計」「レビューと承認」「実装と単体テスト」「レビューと承認」この全てをやれという、いや無理。

 もらった資料にはパワポで夢物語が書いてあり、これがやりたい、この辺は別のインフラチームが提供するからできる、程度の内容しかなく、まともなアーキテクチャが存在しなかった。また、開発環境や言語やバージョンやOSSやその他諸々、更に下回りがどうなっているのかといった情報も要求したが、検討中だのおいおいだのはたまた自社のリーダーからストップをかけられる始末。いや、素人の俺でもそれが必要だと思うんだけど、なんでどこからもその情報が手に入らないの?ということで、しょうがなく既存のソースなんかを見ていく。

 そして検討や設計を進め、知識が増えて行くと「明らかに機能の切り分け方がおかしい」ことに気がつく。

 しかし開発自体がスタートし、上記の理由などから遅れが発生し、似たようなことをやっているプロジェクトからソースを見せてもらい、それをベースにこちらで実現するよう改造していく中でそれを言い出せる状況に無かった……スクラッチで書ける人間ではないので、コーディングする元ネタがあるのは助かったが、問題は仮にある程度書いても動作させる環境がない、ということだった。

 与えられたのはすぐ重くなる貧弱なサーバ。インフラチームがあれこれ試験環境を整えていっているが、要件がコロコロ変わったり、そもそも十分なリソースがないのでちょっと動かしてみようなんてことができないのだ。

 環境のせいでできませーん、というのも理由にはなるがそれでも進めねばなるまいと、自分の作業マシンにデータベースのセットを一通り構築し、少しずつ実装を進める……当然、ここで問題になってくるのはマシンスペックだ。

 15.6インチのノートPC、画面はFHD、2枚目はなし、CPUは8世代Core i5の低電圧版、メモリは8GB、ストレージはHDD500GB……本当に開発させる気があるのか疑わしいスペックのマシンや環境で作業しているのだ、CPUはまだマシだと思うが(モニタについては年が明けてから自社から持ち込んで増えた)。

 

【インフラチームへの移籍】

 そんな中12月も後半に入った時、インフラがどうにもダメなので見て欲しいということになり、インフラチームのヘルプに入ることになった。

 どうやら仮想マシンのあるネットワークと、k8sを利用したPodのあるネットワーク間が上手くつながらないとのこと。実務としては始めてだし大してネタがあるわけではないので、思い浮かぶ限り情報を提供してもらったり、色々試したがダメをしばらく続けていた。最終的に自分たちよりも低レイヤのインフラをやってる人たちが解決してくれたが、結局どうやったかはわからずじまい。結果良ければ全て良しなんですかね、なんか抽象化されすぎててわからんとか、下回りのセッティングがわからないから上はどうしたらいいのかとかの情報も結局あんまりなし。

 年が明けてから人の入れ替えなんかがあり、インフラチームに本格的に移った。開発もまだ終わっていないので掛け持ちと言われたが、いやいやそんな分身の術なんか使えませんよと最初に言っておいた。

 人の入れ替え自体は様々な事情があるのでしょうがないが、知見を持った人間がいなくなったり、マシンの準備やらなにやら参画して即戦力というわけにもならないので、1週間から1ヶ月はパワーが出るわけがないと思っていたし、まさしくその通りだった。

 うちのリーダーや顧客のPMなんかは人月の神話を読んだりブルックスの法則を知らないのか?と言いたくなること多数。遅れをキャッチアップさせるために云々で色々やってもそう簡単にはいかないと思うんだが。

 そんなこんなで現在まで作業者3名とリーダー1名が逃亡というそりゃもうどうしようもない状況が発生した。作業は丸投げ、先が見えないし残業も多いし、顧客も無茶なことを言うし、それと戦わないウチの上の問題もあったし、そりゃ誰だって逃げ出してもしょうがないわけだ。

 ちなみに我らがインフラチームからも、自分と一緒に作業していた1名がいなくなったため一時期1人で作業していた。自分はこんな人格だし、体制としてもあまり外に出すべきではないというのは上と意見は合致していたが、会議などに出ざるを得ない状況だった。会議に出るということはつまり自分の純粋な作業時間が減るということだし、そして顧客にしてみれば逃亡者が出たから遅れたなどと関係のないことだ。と言われても技術的にも頭数的にも仕事が回るわけがないのだ。

 そしてインフラチームの闇の側面として、開発以外は全部押し付けられているという現実がある。そう、開発を除いたあらゆる問い合わせが飛んでくるのだ、それも内外から。体調を崩して休んだ翌日にはメンションが溜まり、体調を崩していなくてもメンション連打され、何か手順のメモを出せば1行ごとに合っているかを聞かれ、あれやこれやたまにダメな日もあったし電話対応もしていたけど、メンタルが結構ダメな折れ具合となって今に至るわけだ。業務が輻輳している話は常々しており、なんならこのプロジェクトのインフラ周りをある程度以上のレベルで抑えているのが数十名の内自分一人だという。オートスケールだのなんだの言って、人間は簡単にオートスケールできないっつーの。

 というわけでぶっ倒れてまぁなんとかキーボードを叩ける程度には戻ってきたが、現場行きたくねぇーしばらく休ませてくれという感じ。最近は少しは自分から仕事を剥がそうみたいになってきたが、最初からそうしろよという感じだ。

 え、テレワーク?そんなものあるわけないじゃないですか。お客さんやら他の協力会社はあるみたいですけど。遅れてる我々は現場で直接話したほうが早いだの、機材借用の手続きが手間だの、様々な理由でテレワークなんて夢のまた夢。進捗がどうのもあるけど、今じゃコロナだBCPだのある時代、そんな中通勤するしかなく心理的安全性も確保されないまま(まぁ罹った人がいないのは結果としては良いんですが)、無茶振りばかりで、そりゃあメンタルもぶっ壊れ逃亡者も続出ですわ。ま、ショボいマシンにショボいマシンでリモート繋いでもねぇというのもあるし。

 テレワークやるにしても、ハードウェア借りて~は正直イケてないなぁというのが個人の感想。シン・テレワークシステムとかあるんだから、ああいうソフトウェアで解決する方が良いと思うんだよね、ハードなり回線持ってない場合は流石になんとかするしか無いけど。

 あーあと契約絡みの話。この案件一括請負じゃなく、準委任契約月何時間って聞いてるんだけど、何時間のところがぶっちぎってもやれって言われるんだよね、指揮命令件の無い人に。まぁある人も丸投げしかしないのでやれになるんだろうが、そこは戦えよという。ここ4ヶ月くらい月何時間が守られたことがないんだけど、それは流石に紛争の種じゃないかなぁ。というわけで、表向きコンプラだのCRMだの聞こえの良いこと言ってるけど、実態はそんなもん守りません、恥ずかしいからそのポスター剥がしたら?

 自社的にも残業時間80時間オーバーは「つけられない」ことになっているのもダメなんじゃない?外面はあるんだろうけど。良いわけじゃないが、その分来月付け替えていいよも怪しいしなぁ。あんまり早く帰っても手持ち無沙汰になっちゃったりするし、今の手取りだともうちょっと収入も欲しいので残業は月30時間くらいがちょうどいいかなぁ。

 

 まぁなんというか、平和なプロジェクトでもっと金と休みが欲しいのと、実家の仕事もやりつつでできるとこ行きたいのでコネ探すか交渉かなぁ、平和な話があればいつでも待ってます。