目次
Web系にも納期はあります
Web系自社開発企業は納期がないのか
Web系自社開発企業は納期がない
Web系自社開発企業は毎日定時帰りだ
そういう文面をエンジニアブログで読んだことありませんか?
私自身Web系自社開発企業のプロジェクトに参画したことがあります。
納期に間に合わせる為に、休日出勤、深夜残業
ガンガンします。してました。
しかも、2社あります。
こういうと、
「それはWeb系受託企業でしょ。
受託はブラックだとブログで読んだことがある。
自社開発と受託企業を一緒にするなよ」
と思った人もいるでしょう。
僕も現役エンジニアです。
受託と自社開発の違いくらいわかります。
休日出勤、深夜残業が続いたのは
間違いなく、自社ブランドのWebサービスを開発していた会社です。
2社ともです。
これを言うと、今度は次にこう思うんじゃないですか。
「それは福岡のWeb系自社開発企業だからでしょ。
東京のモダンなWeb系自社開発企業はそんなことにならないよ」
と。
残念でした。
2社とも、東京に本社を置いている会社です。
まぁ、
たった2社の事例じゃないかー、とか、
福岡だから炎上するんだ、東京はホワイトだー、とか
と言われればそれまでです。
僕は実際に自分が経験した
2社のWeb系自社開発企業の炎上プロジェクトの経験を
淡々と話すだけです。
命の貴重な時間を膨大に使って質が高いポートフォリオを作って、
何とかWeb系自社開発企業に入社して
「やったー、ホワイトでモダンな環境でスキルアップして
高収入フリーランスになるぞー」
なんて思って入社してみたら、
残業続き、毎週休日出勤なんてことになる可能性もゼロではありません。
ホワイト企業だと信じ切って入社したら超絶ブラックだった
というのは、
ブラックかどうか分からなくて入社してやっぱりブラックだった
ということより精神的ダメージが
かなりかなりかなりでかいです。
Web系自社開発企業でもブラックの可能性がある
ということを知っておけば、いざブラックWeb系自社開発企業に
入社してしまったとしても、腹をくくることができるでしょう。
ということで、福岡の事例ではありますが、
Web系ブラックの実態をこれからお話しします。
1社目の炎上プロジェクト
まず、簡単に開発環境を整理しましょう。
バックエンドはPHP。フレームワークはCakePHP。
フロントエンドはAngularJS。
すでにリリース済みのWebサービスでした。
BtoB、つまり法人向けのWebサービスで
契約済の法人しかログインできない
クローズドなWebサービスでした。
で、このWebサービスのデザインを一新しようというのが
このプロジェクトの目的でした。
このプロジェクトなんですが規模が結構大きかったんです。
画面数が、50画面くらいありました。
しかも50画面が結構密に関係し合っていて、
こちらの画面を修正したら、別の画面の動きにも影響が出る、と
そういう画面設計になっていました。
エンジニア未経験の人はよく分かりませんよね。
とにかく、難しかったんだ、と思ってください。
で、現場の有識者が見積もりしたところ、
「今の人数だと半年はかかるだろーなー」という話になっていました。
ところが、上層部が決定した開発予定期間はたった2ヶ月。
3分の1です。で、この期間は絶対で、何が何でも
期日までに仕上げろ、という話でした。
現場と上層部でそれはそれは揉めましたよ。
機能削減とか開発する画面数を減らす案も出ました。
でも、速攻で却下されました。
上層部からのお達しはこうでした。
「期限厳守だ。画面も減らさない。絶対に期限までに仕上げろ。
金はいくらかけてもいい」
金はいくらかけてもいい、という話になったので
人集めが始まりました。
他社からも自社からもフリーランスも
続々と人が集められました。
開発効率を上げる為に、
有料ツールも積極的に取り入れられました。
期限までに終わらせると上層部は意気揚々でしたけど、
現場のエンジニアたちはこう期待していました。
「別にお客さんに納品するわけでもないし、
最終的に間に合わなかったら、
納期延長するだろう」
しかし、その儚く脆く切ない期待は容赦無く冷徹に残酷にも
打ち砕かれました。
その会社のHPにデカデカと
「何年何月何日リニューアル!」
と表示されたからです。
あれを見た時、
「正気か」
と思いましたね。
上層部は鬼だと思いました。
上層部は悪魔だと言うエンジニアもいました。
「いや、鬼でも悪魔でもないさ。もっと恐ろしく
おぞましい存在、人間だよ」
と、輝きを失った生気のない死んだ魚の目でそっと呟く
エンジニアもいました。
Webサービスのデザインが変わるとさっき言いましたけど、
画面の動きもフロント周り、フロントというのは
画面制御側のプログラムのことですね、
登録ボタンを押したら、データを登録するとか
削除ボタンを押したら、データを削除するとか
クリアボタンを押したら、入力値がクリアされるとか
そういった画面の動きのことをフロントと呼んだり
フロントエンドと呼んだりします、
その画面のライブラリ、ライブラリというのは
外部サイトからダウンロードして使う
プログラム群のことですね
そういったものも一新します。
ですので、画面制御のプログラムを全部作りかえないといけません。
一新前も一新後も同じフレームワークAngularJSで動くんですけど、
複雑な動作については、ライブラリに依存していました。
具体的に言うとグラフを描くライブラリが変更されました。
グラフを描く処理は結構複雑で、調査が大変でした。
ですが、スケジュールがめっちゃ厳しいので、
毎日終電まで深夜残業で目を血走らせて
ググって、ググって、ググって調査していました。
英語のサイトもヒットするので、
自動翻訳を駆使しては、調査、調査、調査です。
休日出勤もしていました。
流石に土日両方というのはありませんでしたけど、
毎週土曜日か日曜日どちらかは出勤していました。
祝日が多い月だったんですけど、祝日は全部なくなりました。
僕は期限に設定されていた月で契約完了だったので
代休もとれませんでした。
そういう過酷な状態でプログラミングを進めていました。
最後の方とか頭がくらくらしていました。
当時はSESの社員だったので、契約を終わらせるという選択肢もありませんでしたね。
ただ、あのプロジェクトのおかげでAngularJSとか
GitとかDockerも覚えられたので、
今から考えれば、まあ僕個人にとっては学びになった
プロジェクトではありました。
今の経歴であのプロジェクトに参画させられたら、
納期とか関係なく毎日定時で帰るし、
たぶん契約も解消しますね。
というのが、1社目の炎上プロジェクトでした。
2社目の炎上プロジェクト
まず、簡単に開発環境を整理しましょう。
バックエンドはRuby on Rails。
フロントエンドはAngularJS。
すでにリリース済みのWebサービスでした。
BtoB、つまり法人向けのWebサービスで
契約済の法人しかログインできない
クローズドなWebサービスでした。
まず、一つ目のWeb系自社開発の幻想を破りましょう。
スーツ勤務です。
とまぁ、これは開発ルームがあった場所の特殊な事情によるものなので、
仕方ない面はありました。
ただ、Web系自社開発企業でも場合によってはスーツ勤務も
ありますよ、ということですね。
ただ、これは、本当に例外的だと思います。
あなたが入社したWeb系自社開発企業がスーツ勤務を
義務付けていた場合は、ちょっと変わっているなと
思ってもらっていいと思います。
このプロジェクトが炎上した原因は
海外製の画像解析ツールでした。
画像解析ツールを使っている部分を変更しないといけなかったんですけど、
この画像解析ツールの使い方が、
公式ReadMeにしか書かれていないんですよ。
海外製の画像解析ツールなので、公式READMEは当然英語で書かれています。
英語のままで読み込んでも時間がかかるだけなので、
自動翻訳で公式READMEを読み込むんですけど、
何が言いたいかさっぱり分からない。
公式READMEにしか登場しない、謎の単語がいくつかあって
そのせいでどういう値をどういうメソッドのどういう引数に
セットしたらどんな動作をするのかが分からない。
結局そのツールに想定しうる値を全部セットして、
ひとつひとつ、どんな値を返してくるのか
確かめる作業が発生したんです。
この画像解析ツールめちゃくちゃ動きが遅いんです。
けっこうスペックがいいマシンで動かしてはいるんですけど、
一回処理をして、処理が完了するのが、
三時間くらいかかっていた気がします。
それを何回も繰り返す必要があったので、
めちゃくちゃ大変でしたね。
このプロジェクトもSESとして参画していたんですけど、
お客さんの社員さんにめちゃくちゃ
文句言われながら仕事していました。
この会社の仕事では何回かリリースがあったんですけど、
そのたびにやたら急かすんですよね。
社員さんは毎日深夜まで残業で土日も毎週出社していました。
僕らSESはつっぱねて、土日出社だけは
拒否してました。
このプロジェクトの方は、一番遅くても夜10時までの残業だったんですけど、
人間関係がドロドロしていて、そっちが精神的に
参っていましたね。
当時はRubyを覚えることにそんなに価値があるなんて
知りませんでしたし、一刻も早く契約が終わることを願っていました。
まぁ、この時Rubyの使い方をYouTubeで調べたことがきっかけで
フリーランスエージェントの存在を知ったので、
このプロジェクトに入っていなかったら、
今でもSESの社員として、月収30万で働いていたでしょうね。
そう思うと何が人生を好転させるきっかけになるか分かりません。
そこまでしてWeb系企業に入社すべきなのか
僕が参画した炎上Web系自社開発プロジェクトはこの2社だけなんですけど、
フリーランスになった後、フリーランスエージェントに紹介された
案件の中には、スマホゲームの炎上案件もありました。
エージェントさんが正直に炎上案件だと言ってくれたので
その案件に入ることはなくなりましたけど、
まあ、スマホゲームの開発もWebサービスを使っているので、
Web系自社開発の案件ですよね。
以上でした。
SIerは炎上しやすいという話もよくエンジニアブログに登場しますけど、
SIerの案件でも毎日定時帰りのプロジェクトなんて
いくらでもありましたし、
SIer案件で私服勤務の案件もありました。
SIerが炎上しやすいというのは、もう10年近く前の話なんですよ。
今は、結構コンプライアンスというんですか、
なんかそういうのが厳しくなって、
深夜残業とか、休日出勤とか、そういうのをすると、
役所から怒られるんですよ。
まぁ、数で言えば、SIerの方がWeb系自社開発より多いし、
歴史も古いので、世の中に出回るブラック案件の話は
どうしてもSIerのものが多くなるよね、
という面はあるとは思います。
ただ、同じ炎上プロジェクトなら、SIerよりは
Web系企業の炎上プロジェクトの方が
将来性があるスキルが身につく分
まだマシだとは思います。
そういう意味では、選べる立場にあるなら
Web系自社開発企業に入社した方がいいでしょうね。
ただ、Web系自社開発企業は人気があるので、
競争は激しいですよ。
炎上することもある、競争が激しい、
そういうのを覚悟のうえで、Web系自社開発入社を目指してください。