それから先は定期的に資料作りのために確認しに来るだけで、ほぼPJには関わることはなくなりました。時は少し戻り、基本的なマスタの開発に目処が立ってきたところで、顧客からメイン機能の一部を先行してリリースしてほしいとの要望が出た。関連機能の開発などもあるため、基本的にはガントチャートの流れに沿った形に進めたいけど、そこはある程度顧客の希望に対して柔軟に対応するのも必要なのかもしれない。決まればやるしかない。基本部分の機能はおおよそ想像つくし俺が作れる、ただこちらが想定している以外の要件があるかもだし、それは教えてもらわないといけない。僕「基本的な機能はこちらでなんとか作るので、それ以外の要望はテストの工数もあるので早く教えてくださいね。」ってことで、大量アクセス時の挙動やデバイスごとの違いなどの品質に不安がありつつも、なんとか基本部分は動くようになりました。僕「とりあえず動くようにはなったんですが、これ以外の要件ってありますか?」PM「おーいいじゃん。僕「いいんですか?顧客から指摘も指示も受けてませんけど・・・」ダメでした。顧客側もどういうフローで動いてるのか不明ですが、納品後にどんな機能が欲しいかのレビューを集めて要望として投げてきました。全面的に受け入れる方針。不具合を出してしまっていたのでこれについてはあまり強くは言えませんでした。本稼働までにリファクタする方向にしようと考えていましたが、予想以上に不安定になるしきい値が低かった。反省点としては、タスクが全て並行になってしまった点。割り込まれた機能の開発と、全てのタスクを僕が抱えてしまってました。画面の追加が必要なものなどに関しては対応を保留という形になりました。開発〜納品までの流れは必ず顧客との間で決めておくこと。ゆとりを持ったスケジュールを組むこと。(余裕なんて始めから無いけど)何を作るか、どこまでやるかは事前に合意を得ておくこと。フルスタックエンジニアを自称した者は死ぬ。PM「やるかやらないかは俺がまとめといてやる」→全部受け入れることになりました。PMもミーティングには出るようになりました。不要だと言っていたものを無くしたら不具合だと言い、対応すればやっぱり別のやり方に変更。明日までにやれ、できなければ次の日が納期といった状態で、もう僕らでは止めることの出来ないモンスターと化していました。僕「場当たり的に出てくる要望をそのまま実装しても矛盾が生じますし、このままだと無限に対応する羽目になりますよ。」PM「わかった、このタスクの中からやることやらないことは俺がまとめておくから」はい、もちろん取りまとめなんてやってきません。どこまでやってある?じゃねーよ、それはこっちのセリフだ。決まらない要件、止まらない要求、短すぎる納期、仕事しないPM...連日の深夜・徹夜作業で体力も精神も限界になってしまい、とうとう僕は懇願しました。僕「PMさん、これ以上無理です。無限にタスクが積まれて限界です。お願いだから月末までに要件決めてきて下さい。なきゃ機能一つも完成しませんし、本稼働なんて間に合いません。」そこで返ってきた答えはPM「ごめんごめん、今まで無理させて済まなかった。これからは俺も開発に参加するから。環境構築すらしてなかった。平常運転すぎて驚きもしなかったけど。そんなこんなで集められたメンバーに、残っているタスクを振ることに。いう機能を任せることになった。大丈夫かなぁというか、無理だろうと思ってはいたけど、なにせ僕の手はもう一杯一杯なので、彼に頼むしかない。納期にとにかく間に合わせろというので、なんとか手を空けて手伝いに入る。いつの間にか俺とBさんで全部巻き取ることになってた。これ、PMが自分でやるって言ったまま1ヶ月以上放置してたタスクなんだが・・・とうてい3日じゃ巻き返せるようなものじゃない。そもそも仕様がわからない。思っていたら一部の仕様書をPMがやっとくれた・・・なんだこのクソコードの切れ端みたいなドキュメントは。現行のソースコードの一部をコピペしてコメントを入れてるようだけど、まずプログラムのコメントなのか機能の説明なのか境目が分からない。しても使えないゴミを渡されて、これを見て実装しろってわけだ。ソースが汚いのは仕方ないにしても、こんなゴミを渡されても解析する工数も取れない。俺「いやこれどう考えても間に合わないですよ。」PM「とりあえず不具合があっても動けばいいから」それならばとBさんのフォローもありなんとか徹夜でやるも、もはやテストなんてやってる暇も無し、動いてるように見えるってところまでで終了。PM「Masakiありがとうな、後は任せてくれ!」といって、意気揚々と顧客企業に説明をしに行くPM。俺の責任みたいな雰囲気になってるし。絶対に無理なタスクは巻き取らないに限る。仕事をしたPM!!→できませんでした(笑)さて、リプレース案件ですからDBの移行が必要になります。DBが得意だと豪語していたPM。ここぞとばかりにデータ移行をやりますと申し出たので、どうぞどうぞとお任せすることに。データ移行の納期当日の朝。なんで納期当日まで放置してるんだwww)まずサーバの接続方法がわからない!!!!wwwwwwwBさんを通じて僕に問い合わせが入る。本番サーバの環境組んだのは僕じゃないし、てか資料共有されてるわけで、それ読んだら全部書いてあるんですよ。何でもこっちに聞かないと動けないって駆け出しエンジニアかよ。なんとか接続に成功したので仕切り直し。データを移行します!!失敗しました!!!!wwwwそりゃそうよ、現行DBくれないからスクラッチでDB書いたんだもの。現行と互換性ないし、事前に検証もしていないのになぜぶっつけ本番で出来ると思ったんだろう。結局データ移行は間に合わず、顧客からお叱りを受けながら、Bさんに介護をされながら作業をやったとのこと。余裕を持ったスケジュールを組むこと。本番リリースの前には十分に検証をすること。データ移行という最も大事な作業をぶっつけ本番でやらないこと。クソDBPMが初めて仕事をしたと書いたけど、それ以外にもやってくれてたことはありました。本人もDB屋を名乗ってるわけだし、こちとら仕様も分からずUIだけとりあえず用意してる状態。マスタに関しては画面を見ながらなんとかこちらで作成したけど、機能となるとまずDBありき、仕様ありき。見てみると、これ俺が別機能のために作ったテーブルのコピペじゃねーか!!しかも着手してる機能と俺が作った別機能は関連性もない全くの別物。僕「これどう使うんですか?使われ方が全く想像出来ないんですけど・・・」PM「Masakiがこないだ作ってたテーブルと同じ構造だよ。作成したUIとの親和性もゼロだし、こっちで描いていたイメージとかけ離れたテーブル構造だから聞いてるんだ。頭の中でデータをこねくり回しても、一向に機能が動作するイメージが湧かない。PMはこれで行けると言ってる。ベテランのDB屋が言ってるわけだ。SNSではPMがドヤ顔で「昼前に今日の仕事終わり。みんなもこのくらい出来ないとダメだよ」とか講釈たれてる。幸いなことにこの機能は俺の担当じゃない。俺の想像力が足りてないだけかもしれない。担当者に任せるしかない。担当者「よくわからないけど作ってみました。納期も残すところあと1ヶ月、ほとんどの機能は一通り動かしはしたものの、どれもこれも要件が決まっておらず仕様が右往左往し、完成してる機能は0。何を作れば完成になるのか、おそらくPMも顧客も既にわからなくなってる状態。顧客の言うことを全て盛り込めば矛盾だらけで不具合が起きる。矛盾した仕様をまとめる人間もいない。睡眠不足で集中力も無くなっている。そんな中、何の脈略もなくPMからこんな発言。PM「Xの機能なんだけど、このライブラリ組み込んだら簡単そう?」このXとは、当初から外注に出すと言っていた機能で、今の開発チームではやらないと決まっていたもの。聞いているように見えるが、これに答えれば自動的にこちらに担当を振ってくるのは目に見えてる。このタイミングでこちらに振ってきたということは、今まで全くの手付かずだったわけだ。どんな要件かは知らないが、一般的なことを言えばかなり重い。この機能一つでシステムを組むレベルだ。気合や根性ならもう使い切ってる。これ以上の無理は効かない。自分のケツくらい自分で拭け。僕「品質担保のためですよ。仕様変更の連続であちこちに不具合が出てます。品質を上げるために修正とリファクタに十分な工数が必要です。名言出ましたwww当たり前の話ですが、プログラムは何を作るかをまず決めなければ完成しません。フィードバックを行いやすいように務めてきたわけです。睡眠を削り、嫁に泣かれながらでもプロジェクトの完成を目指し、遅れている作業も巻き取ってきたわけです。そこまでやっても仕様が決まらないのだから、完成のさせようがありません。こんな状態の品質で出せるわけがない。その作業をやるには当然ながらお金が必要です。早い話、自分で吸収できなかった仕事を外注するなら金払うのが当然ですよね。代わりどころかカバーのしようもありません。支払いを渋っていた件は直接言われたわけではありませんが、金を払う気のない人間と一緒に働くわけにはいきません。これ以上は付き合いきれないと判断し、その月の請求はこちらから辞退する不具合に関しては、どう直せば良いか具体的に示してもらえたら対応する引き継ぎの資料は用意するということを伝えた上で、Bさんとともにプロジェクトを抜けることにしました。その発言は削除された上で、そのままルームを退室させられてしまいました。僕らが抜けた後、程なくしてリスケを行い、ソースコードも全部捨てて仕切り直しになったみたいです。綺麗に解決する話では無い気がしています。フリーランスで活動をしていく以上、何かしらのトラブルは避けられないとは思いますし、あまりに保守的過ぎても前進はできません。それと同時に、あくまでフリーランスである以上は自分の身は自分で守るもの。キナ臭かったり焦げ臭かったり、異臭を感じる案件からは身を引くというのも大切な自衛手段ですので、みなさんにはぜひ習得するようにしてもらいたいと思います。僕今までに二人ほどこのタイプの人間に遭遇したことがあるんですよ。このタイプの人の人は外ヅラの良さだけは天下一品でして、初対面から気づくのはなかなか難しい。天性の詐欺師ですからね。しつこいからたちが悪い。過去に出会ったこのタイプの人には幾度と無く軟禁されてひたすら罵倒されるという拷問のようなことをされましたし。これは結構濃くて面白い話なんで、またいつか別の機会にでも書きますwダラダラと長い文章を最後までお読み頂きありがとうございました。関西のフリーランスWebエンジニア。PHPとVue.jsに関する技術や、フリーランスについての情報を書いていきます。先行して環境構築プロジェクトが始まるも、共有される情報量が少なすぎる。PM「この機能は俺がやる」→やりませんでした。海外旅行・飲み会・トークショーざんまいPM「俺はPMじゃない、設計者がPMだ」→設計者「もうキレた。顧客「今月中にリリースしろ!!要件は出さないがな」PM「やるかやらないかは俺がまとめといてやる」→全部受け入れることになりました。plus_one_masaki。