Help us understand the problem. What is going on with this article?

異世界召喚 ~私、能力はバックエンドって言ったよね!~

背景

間違って入ってしまったSI企業での開発経験談です。
入社前に「バックエンドの経験しかない」と伝えたがフロントもやる羽目に。
入って知ったLAMP環境での開発。あと顧客の窓口もやる羽目に。
私の担当するシステムは二期目で、引継ぎなし・ドキュメントなし・前任者なし、のトリプルコンボ。
PCは13インチのラップトップ、サーバはレンタルサーバ。
Gitなし、CIなし、規約なし、静的チェックなし(エディタはサクラ)。
既存コードがPHPなのにオブジェクト指向じゃない。フレームワーク使えない。
開発規模はだいたい20人月。期限は3か月。
偉い人「OSSハセキュリティガー」

開発の流れ

  1. ローカル環境(MAMP)で実装。
  2. 実装したファイルをFTPソフトでレンタルサーバのテスト環境にアップロード(上書き)。
  3. テストを行って(テスト仕様書なし)動けば本番環境にアップロード
  4. なお、開発環境を変える裁量はないもよう

ざっくりこんな感じ。絶望的でしょ。

状況

1期目までは二人体制だったそうだが、2期目から一人体制にしたそうです。
顧客とのやり取り(TELやメール)も一人。開発からテストも一人。既存コードのドキュメント作成も一人。二期目の要件定義も一人。サーバ管理もひとり。DB管理もひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとりひとり

疲労はピークに達していましたが、なぜかやる気に満ち満ちていました。
寝ても覚めてもシステムのことばかり考えており(まあ実際深夜の2時でも電話が鳴れば即対応していましたが)、こんな状況でもなんとかやれてる自分はすごいのでは?と考えだします。イケイケですね。

ある日、朝からどうも体調がよくないんです。嘔吐きや頭痛や重低音の耳鳴り肩の痛みなどなど。
これが危険信号第一弾でした。
次に駅の改札を通る時になぜか切符を入れるところに家の鍵を突っ込んでいました。何度も。
危険信号第二弾ですね。ここで引き返しとけって話です。
寝ぼけてるなーと駅のホームで電車を待っていると、親切なおばさんに「危ないからもっと下がりなさい」と声をかけていただきました。
あと半歩で線路でした。
最後の危険信号ですね。病院行けって話です。

でも気分はイケイケ。自分以外に代わりがいない責任感。
出社しました。

起こったこと

ローカルで実装したファイルをそのまま本番環境に上書きしました。
ええ、そらイカれてる時に仕事したらインシデント起こしますわ。
ただでさえ綱渡り状態での開発だったのに、頭がおかしいんですから至極当然ですね。
やばいですねー。まあこの事に気づいたのが翌日なんですが。。。。

もちろんバックアップ(もどき)はあります。ただしそれは一週間ごとに本番環境の全ファイルを落としてフォルダに日付を付けただけの塊です。

翌日ファイルを確認すると案の定本番環境のDB設定がローカル用のまま。ネットワーク設定もローカルのまま。動くわけがない。
だが動いている
そう。動いているのです。
詳細まで調査していませんが(頭がイカれていたので)、なぜか本番環境のDBに繋がっているしCRUDも通る。
どこかあずかり知らぬところで本番環境にデプロイした際に自動でつながる記述をしたのでしょうか。記憶にない。ドキュメントは作ったが更新されていない。バージョン管理もどの日付を見ればいいかわからない。
だが動いている!!!

結論:なぜ動いているかわからない

そして私はその会社をやめた。
あとで知りましたが要件はかろうじて満たしていました。テストはしてないので投げっぱなしですがね。
ちなみにまだそのシステムは稼働中です(webシステムなので検索したらヒットする)。今あのババを引かされてるのは誰なんでしょうか。。。

なぜ起こったのか

まあ言うまでもないですね。
疲労とプレッシャーでイカれた人員。裁量のない開発現場。永遠とも思われる仕様変更の嵐。などなど。
本番環境に上書きした直接的な要因としては、FTPソフトでテスト環境と本番環境をIPアドレスで識別していたから(マジでアホ)じゃないでしょうか。

二度と惨劇を起こさないためにどうしたのか(どうしたらいいのか)

私は逃げました。ていうかドクターストップかかりました。

世の中のIT企業を名乗る会社はたくさんあって、中にはどうしようもない会社もあります。
自分の会社がまともかどうか気になる人は、機密保持契約などがあるかもしれませんが抵触しない範囲で他のエンジニア(できれば数人)に相談してみるのもいいかもしれません。じゃないと無意識のうちに線路に飛び込むかも(私は未遂でしたが)。

個人的に感じたのは、一人でも仕様変更がされまくっても窓口対応しても裁量さえもらえれば何とかなったのかなと。裁量さえ貰えれば勝手に考えて勝手に最適化するのになーって。

最後に

今は超絶元気です。毎週ジムで筋肉を育ててますし(ウザいやつを殴り〇すため)、仕事も定時で上がれて休みもいっぱい、給料もそこそこ貰えてますし。最近はアニメのシーンを三次元復元した点群をゴニョゴニョして遊んだりしてます。やはり人間やりたいことできれば幸せですね。

あとやべーと思ったら転職してみましょう。やばい会社もありますがとても良い会社もあります。
もし仕事でつらいことがあっても最後に頼れるのは自分です。つまり筋肉です!(筋肉がない人は鉄アレイで殴ろう)
ストレスフルな環境での生存ソリューションとして脳内撲殺式ストレス発散法を提案します。

以上です。技術的な内容がほとんど無くて恐縮ですが、同胞(エンジニア)の一助になれば幸いです。あとネットの海にこんな時限爆弾を流してすいません。

もし相談したいけど相手がいないって人はTwitterへ気軽にメンションでもDMでも飛ばしてみてください。
あとバンドリフレンズ募集中です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away