エンジニア転職2ヶ月半で労基署に行ったまま会社を辞めてしまったお話(無茶振り開発編その2)

こんにちは! ktgです!

さて、前回の話では開発会社での無茶開発について語りました。

↓ これ

その2では、続きとなる10月後半〜悪夢の11月までの悪戦苦闘をお伝えします。

このお話を経て労基へ直行という流れに繋がります!

どうぞご覧下さい!

前回までのおさらい

おさらいですが、

  • 開発プロジェクトにアサインされる
  • Hello, Laravel ! 、API開発とは? postman? swagger? docker? という状態で開発スタート
  • 分からないことが分からない状態で進捗が1mも出せず…
  • 聞ける人不在で途方にくれる

という散々な状況に置かれていました・・・

この状況を打破すべく、行動に出たというのが今回のお話です!

救いの手が入って少しづつ進められるように

流石に誰かを頼らないとこのままでは1mも進まない… …

すでにAPIを数本こなしているフリーランスの方に事情を説明し、新人向けにAPI開発に関する説明会を開いてもらう動きを段取りました。

おかげで、postmanの正しい使い方、仕様書やswaggerから具体的なコードの作り方、開発のゴールをイメージすることが出来ました。

本当にその方は親切でした!

社員ではなく質問したら時間を奪ってしまうと躊躇っていた僕にも、

「気兼ねなく聞いて良いですよ!」

と声をかけて下さいます。その方からのご指導のおかげでやるべきことが見えてきました。

僕が担当する事になったAPIは、ボタン押下時に検索フォームから情報を取得して、その情報をPDF生成するというもの。

具体的には、


①検索フォームから顧客が入力した情報を取得

②検索条件を絞ってデータを取得

③検索条件を新たに1レコード追加して保存。オートで発行されたidを返す

④別スレッドで顧客の注文情報が載っているPDF生成開始

⑤PDFのバイナリデータを所定のカラムへ保存


という流れです。別スレッドって何だよ…

要するに、PDF生成は重たくなるのでバッチ処理で行いたいという要望。

ちなみにRadisではなく、Commandを使ってexecで呼び出す形式でOKのようです。

分かる人からすると容易いのだろうけど、全然わかりませーん。。

一応フリーランスの方に質問すれば色々と教えてもらえますが、詳細は流石に仕様が分からないと進められません。

そもそもDB設計書はどれ…? それがないと何も始められないような・・?

取引先の方にslackで質問する事で、やっとDBの仕様書を手に入れることができました。

う〜ん、こちらから言わないと出てこないのは経験ない者からすると手厳しい..

僕はビギナーという立場上、あまり粗相がないようにビクビクしています。取引先の方にメンションつけて質問1つ投稿するのもおっかなびっくりという格好です。

マルチタスクで揉まれながらも

しばらくすると、サイト移設を終えた同時期入社のメンバーが加わりますが、僕と同じく大苦戦。

9月も終えて、社長の明言するAPI開発1本こなすという”期待値”を満たす事は出来ませんでした

API開発は10月も引き続き行う事となり、期待値としても残ったまま。

また、並行して請け負っているソーシャルゲームの運用タスクも加わります

ソーシャルゲーム運用はちゃんとメンターなる方がおりました!

社長の想定や指示とは違うようですが、そこはチームでこうした方が良い! と検討してくれまして。

適切なメンターの方をつけてくれるような動きを取ってもらい、席も隣につけてくれて、本当に配慮して頂けました。

ゲーム運用のプロジェクトは毎日のミーティングがあります。気兼ねなく話せる場もあって、心地よく業務に取り組めました。

が、マルチタスクなので、どうしてもAPI開発への意識や取り組み時間が分散されてしまいます。

社長の意図した事だそうで、仕事はマルチタスクが当たり前! という教育方針。

そりゃそう。確かにそうなのですが、時間半分の取り組みで中々進みません。

フリーランスの方に聞いて得たヒントを元に進めて、自力では調べても一向に進められない日々が続きます。

何とか10月終盤にはPDF生成の手前までは進められて、自分の書いたコードがちゃんと機能する事に感動しました!

苦労も大きかったので嬉しさもひとしおです。ここまで掛けた時間、約100時間少々。

取引先から突然の催促…

相変わらず取引先の方にメンションつけて質問するのにビクビクしながらも、徐々に知るべき仕様が分かってきました。

が、右も左も分からない、自分の知識に自信のない状況で、自ら必要な情報を取りに行くのは相当キツイです…

まだ技術的な話がスムーズにできるならば、どんどん聞けたかもしれませんが。。

取引先からのレスポンスは良くなく、先輩方がプルリク送っても中々レビューされず、定かでない仕様はそのまま放置されている始末…

気付いたら、強強のエンジニアさんは社長の指示の元戦線離脱し、他の重要なプロジェクトでフル稼働されていました。

10月終盤に開発プロジェクトのslackにて。取引先から突然のご連絡が入る。

「10月も終ろうとしていますが、いつ頃までに残ったAPIのチケット終わるのでしょうか…?」

誰も何も返事をしません。

僕らは絶賛着手中ですが、このまま自力でチマチマ進めていてもいつ終わるか分からずです。

強強エンジニアさんにメンション振られるもスルー。

と思ったら、チームにアサインされているのが僕らである事を確認し、

「私は他のプロジェクトで手一杯なので、担当の2人に連絡させます。よろしくお願いします」

と返答。

取引先「そこまで時間がかかるものでしょうか…?」

API開発がこなせるエンジニアが着手すれば、もっと早く終わるんでしょうけど、、

僕らでは、いくら時間をかけても全然終わりがみえないんです。

これでは心象が非常によろしくない… という事で提案して取引先に状況報告をしてくる事に。

納期が10月一杯です宣言に絶望・・・

slackでアポイントを取る。

取引先は会社から徒歩5分の近距離にあった! 共用連絡のslackで一言投稿していざ訪問!

チームリーダーなる人1名とエンジニアの人1名のお二方に囲まれ、開発が遅れている事の謝罪と現状の説明。

詰められるかと思いましたが、こちらの状況や未熟である事も包み隠さずお伝えした甲斐あってか、和やかにアドバイスを貰えます。

納期についてはまだ待てるが、予定では10月一杯との事。

ええ? そんな話聞いてない… チラッと聞いたのが11月半ばくらいかな〜という程度の話です。

今の進捗では全然間に合わないので、社内で調整してサポートして欲しいと。

当然ですよね。向こうからしたら、お金払ってお願いしているのですから。

社長にも今の状況はまずいと相談しました。誰がどうみても、デキル別の人が引き継いで完結させるべき。

ところが、頼みの綱のご指導して下さったフリーランスの方。しばらく前に、別の重要度が高いプロジェクトの方へ移動してしまっている状態。

「ヘルプに入れるが、今自分のプロジェクトタスクも重くて優先度が分からないから判断して欲しい。」

ヘルプを振られて、可能ですが優先度を教えて欲しいとフリーランスの方が言うと、原則API開発には戻さない。担当しているAPI開発はあなた達がやり切るように! と指示されます…

正直、ほとんどの事を自力で進められず、人から聞いてよちよちPDF生成まで進められてきた状況なのです。

PDFの開発から先は未知の世界で、別スレッドでとかどのくらいの工数がかかるかすら読めません・・

やり切りたいのはそうなんだけど、どうにも出来ないので途中からバトンタッチになるかな。としていた予想は見事に覆されます。

完全に終わった… …

土日祝のフル稼働でなんとかしようとするも・・

強い危機感を感じ、土日もフル稼働を決意!

というか、人に聞きまくれる土日こそ稼働しなくては非常にまずい…

まずは11月最初の3連休。お世話になってる方へお願いし、泊まり込みで教えてもらいながら業務を進める事に。

教えて下さる方の技量や説明力がこれまた高く、なぜそうなるのか? どう考えて実装すれば良いのか?

という事がクリアになっていき感激しながら進められたのを覚えています!

ペアプロ本当にオススメです!!

この時の進捗は、やっと生成したPDFの表示ができるようになった状態です。

ここで初めてblade.phpを触る事に。過去にcakeで学んだ記憶を頼りに着手。

初めましてbladeから数日で納品とは..w

何か既存のコードで使い回せるものがないか取引先に聞いてみるも、そんな物はないと…

え! 1からbladeを作るの…

運が悪い事に、僕が着手したAPIはHTMLで組むにはめんどくさそうな帳票のデザインでした。しかも4種類…

誰もチケットをやろうとせず、残ったままになっていた理由がよく分かりました。

しかしこれを精査せず、新人に完遂させようとは… ワイ「完遂は無茶や・・・」

再三社長にはSOSを投げていますが、金曜(11/8)までがデッドラインなので絶対終わらせるようにとの事。

寝る間も休憩も惜しんだ末に

どう考えても1人で終わらせられる分量ではない。

同時期入社メンバーの数名が手伝えそうな状況だったので、HTMLの帳票デザインだけご協力をお願いしました。

僕は慌ててbladeの呼び込み、繋ぎ込みに取り組みます。

お昼休憩なんてない。夜も日が変わるまで。それでも終わらない…

PDF帳票が厄介なのは、デベロッパーツールが使えない点です。なので、レイアウトの微調整はひらすら更新→ページ確認の繰り返し。これがまためんどくさい・・

foreachでデータによって繰り返し表示する範囲を制御したり、ページ数をPDFに合わせてカウントさせたり、日付をyyyy/mm/ddに変換させたり etc

レイアウト調整以外にも、細かい実装があります。しかもさっとできる技量は残念ながらなく。

さらに最悪な事に、作ってもらったHTMLのファイルをbladeに移したら、レイアウトが見事に崩れてしまっている..

HTMLで開くとバッチリデザイン通り作ってもらったのに、bladeで崩れるのは何故でしょうか… ….

あああ。。。

金曜日中にどうしても終わらず、結局土曜も出社して作業する事に。

土曜日も日付が変わる頃までガッツリ作業。するも終わらない。

日曜も家で進めて進捗は都度プッシュしておくように。と社長からの指示。

あれ? 確かに遅れてるのは僕らの力不足が原因だけど、こちらの予定無視で業務をぶっこまれるのは…?

たまたま何の約束もない(する余裕もない)けど、例えば外せない用事があったらどうするのだろう?

(今回は被らなかったけど今月は法事があった)

日曜の徹夜と月曜の2時までコースで頭が働かなくなる

土曜日、たまたま社内で休出中の強強エンジニアさんがいらっしゃり、アドバイスを幾ばくかもらってbladeの実装は進みます。

最悪、別スレッドのバッチ処理実装は諦めて、帳票のデザインだけでも完璧にしようという話になる。

レイアウトを整えるのは特に難しい技術を要せず、手間さえかければ何とかなりそうです。

と言う事で、先週お世話になった方へ再度頼み込んで、日曜も泊まり込みで作業させてもらう事に。

アドバイスを聞ける環境の内に進めないと、完全にアウトだ・・・

お世話になっている方が夜型だったので、モンスターエナジーをスタンバイさせて徹夜作業を覚悟。

ご指導の甲斐あって、細かい実装はなんとかなりそうです。あとはレイアウトの調整!

しかし、4種類はチョット大変… 繋ぎ込むカラムの数も、1帳票につき20カ所は軽く超えています。

表示される位置や項目が正しいか、確認作業だけでもかなり大変ですね。

このAPIのチケットには工数3時間とか書いてあったけど、どんなに早い人がやっても40時間近くはかかるのでは…

進めてからはじめて分かったAPI開発のボリュームと難易度に想いを馳せます。

進捗の度に怒りのプッシュ連発! 一応できるかぎりのことはやったつもりだったので、せめてもの証明に。

月曜の早朝3時半ごろ、流石に頭が全く働かなくなり、2時間だけ仮眠。

朝早い方が電車に座れてPC作業できそうと言う理由で6時の電車に乗る。しかし座れない。。

侮っていましたよ、東武スカイツリーライン。。結局座れたのは押上あたりでしたね。

会社には7時半ごろには到着し、そこから翌朝の2時までぶっ通しでした…

社長から取引先宛に終わり次第プルリクさせます! とあって、もう今日以上に引き伸ばす事ができない。

修正もあとちょっとのはずなのに、どうしても帳票のレイアウトがサンプル通りの再現にならない。

そもそも手は動かしているつもりでも、頭が働いてないので何をやってるか分からない状態。

つまり進捗出そうで何もできていない・・・

なぜか眠気も疲れもそこまで感じてはいませんでしたが、このまま朝まで過ごしたら死ねるかも…

なんて思っていました。

そうこうしている内に午後22時、日が変わって0時、1時… と時間は進みます。

2時ごろになると、残っていた社長から一旦プルリクを送ってクローズするようにと指示が出る。

帰りは同僚2人とタクシーで帰宅しました。

不完全な出来でしたが、プルリクを持って一旦終了という形で着地です。

プロジェクトを管轄する人がいない&自力でこなせない難易度のタスク…

この後も正常値テストをやれだとか、少し話は続きますが、無茶振り案件の全容はこんな感じです。

そもそもの不幸は、

  • プロジェクトのマネージメントができておらず、全部丸投げ
  • 着手した新人2人が自走できるレベルでなかった
  • 納期の把握が出来ておらずデスマーチ発生
  • 社長の見込み違い(強強エンジニアさんがもっと面倒みてくれると思っていた)

ということがあります。

フリーランスの方や、泊まり込み合宿に付き合ってくださった方には本当に感謝しかありません!

あなた達がいなければ、私はもっと早々に詰んでいました。

一応庇っておくと、今回のプロジェクトにおいて取引先と会社の関係では”会社が助けてあげている”立場なので、

僕ら新人レベルがおぼつかなくても大丈夫な関係値のようです。が、そんなの僕ら末端には関係ない…

初めてのシステム開発、初めての納品、ちゃんと真っ当に約束を守ってベストなシステムを提供したかった。

しばらく心臓の少し痛む日々が続きました…

とても辛かった今回の経験ですが、

Laravelの基礎を少しは叩きこめましたし、API開発のなんたるか、postmanの基本的な使い方、DBやSQLについても密度の高い経験値を得られたと思っています。

ここまでだったら、大変だったなぁ〜で済ませられたのですよ。本当に。

ではなぜ労基→退職にまで至ったのか? それを続きの労基特攻編にてご説明します!

続きが気になる方は、ぜひご覧下さい!