ここはクソみたいなインターネッツですね

逆にクソじゃないインターネッツってどこ

エンジニアの心の健康とストレスについて - 考察と幾つかのidea -

f:id:teeeeeeemo:20160715160707j:plain

この記事について

目的

  • ストレスの相互理解による健康的な宇宙の創造

手段

  • 手始めに、エンジニア(僕)が感じるストレスの分析

発展

  • 他職種のストレス分析

デザイナーが一番ストレスに感じることとは何か。

僕らはこの質問に答えられるだろうか。

  • 好きなデザインをさせてもらえない
  • デザインの重要性を理解しない上司が多い
  • 具体的な課題を設定せず「こんな感じで作って」といわれる

こんなものなのかな、とそれらしい想像をすることはできる。

自分が一番考えて作ったUI案ではなく、 適当に5分で作った案が採用しばしば採用される。 僕はそれが一番ストレスかな。 - by とある社内UIデザイナー

あの職種の人の一番のストレスってなんなんだろう。

こういうのって、想像はできても本人の言葉で聞く機会って意外とないよね。

という立ち位置からの話。

目次

  1. 裏切り発見モジュール
  2. まなざしの地獄
  3. エンジニア同士のよい関わり方
  4. エンジニア以外とのよい関わり方

1. 裏切り発見モジュール

進化心理学という学問での仮説に、 “心のモジュール性”という言葉がある。

心が特定の機能を果たすために 個別の生得的な構造を基盤に持ち、 それぞれが進化的に発達したという概念である。

つまり、心にもライブラリやモジュールがあるのではないか、という話だ。

ウェイソンの4枚カード問題

f:id:teeeeeeemo:20160707160840p:plain

この問題を解くことができるだろうか。

論理的思考が得意な人にとってはさほど難しい問題ではないかもしれない。

f:id:teeeeeeemo:20160707160933p:plain

では、この問題はどうか。

1問目の答え:A,7

2問目の答え:酒,17

実は、この問題は全く同じ論理の問題構造となっている。

にもかかわらず、2問目の正答率が圧倒的に高いという実験結果がある。

この結果を受けた仮説に、以下のようなものがある。

常識/倫理観や、ときには損得勘定が 高い論理的思考力を引き出すトリガーとなっているのではないか。

少々誇張してこれをわかりやすくいうと、

人間は、裏切りものを発見する際裏切り発見モジュールによって高い能力を発揮するのではないか。

というものだ。

この仮説が正であるとすると、人間は裏切りに対し高い”能力”を発揮するという。では、感情はどうか。

やはり強い感情を持つのだろうか。

エンジニアである僕らが強い感情を向けられるのって、いつのことだろうか。

会社におけるエンジニアの”裏切り”とは何か。

責務を放棄することなのか、バグを起こすことなのか。

そもそもエンジニアの責務って、一体なんなのだろうか。

2. まなざしの地獄

僕らの責務は、バグを起こさないことなのだろうか。

以下は、僕がよく経験する業務上関係三者の言い分だ。

先輩エンジニア

バグを起こすのはしょうがない。 次に繋げられれば問題ない。

事業部門担当者

なぜバグが無くならないんだ。 正常に動くのが当然のはずだろう。 あいつはダメなんじゃないか。

エンジニア本人

なぜバグを起こしてしまったんだろう。 なぜこうも責められるんだろう。 普段既存のバグを修正している成果は、 見られてもいないのだろうか。


この歪な関係の根源は、以下のような考え方の違いによるものだと僕は考える。

エンジニアの考え:

仕様通りに動くよう頑張ろう。
バグを起こさないように頑張ろう。
ついでに他のバグを直しておこう。

エンジニア以外の考え:

仕様通りに動くのは当然だと思う。
バグを出すエンジニアはダメそう。
余計なことをして工数を伸ばさないで。

さらに突き詰めていけば、

  • 当然に期待されているもの
  • 評価される(する)もの

の2点において双方にギャップがあると予想できる。 このギャップこそが双方にとってのdisコミュニケーションを生じさせているのではないだろうか。

当初の目的を振り返って、僕が本人の言葉でストレスの原因を語るのならば。

見て欲しいところは見てもらえない。
見逃して欲しいたった一つのバグで、
信頼が失われていくのが目に見える。

ということになる。

この状況を僕は"まなざしの地獄"と名付けたい。

僕らの責務は、バグを起こさないことなのだろうか。

バグが起きることは即ち、僕らの責任なのだろうか。

責任、という単語が出てきたところで、考察はここまでとする。

次章以降は僕の実体験に基づく経験談を話したい。

3. エンジニア同士のよい関わり方

エンジニア特有の文化に、コードレビューというものがある。

コードレビューとは?

誰かが書いたプログラムを、
チームみんなでレビューをすること。
僕のチームでは、
レビューを通らないプログラムは、
誰が書こうが原則リリースされない。

この文化は本当にいい文化である。

今一度、このコードレビューという文化が持つ機能を整理したい。

コードレビュー4機能

  1. コード品質の向上(維持)
  2. 業務の相互理解
  3. 責任の分散
  4. サービス(チーム)への帰属意識向上
1. コード品質の向上(維持)

コード品質の向上(維持)といっても、実はここにも二つの意味がある。

  • コードそのものの品質向上
  • チームとしてのコーディング力底上げ(均一化)

コードそのものの品質向上

これはいうまでもないが、汚いコード、次に改修をかける際に不具合を招きそうなコードは指摘を受ける。

汚いコードはリリースされない。

チームとしてのコーディング力底上げ(均一化)

指摘とリファクタリングを繰り返すことにより、"この場合はこう書いたほうがいいんだな"というチーム内認識が共有される。

時にはレビュアー同士で議論が巻き起こる。

何が良いコードで何が悪いコードなのか、各々が自身の考えを持つ時間が得られる。

これを繰り返すことによって、チームのコーディング力が底上げされ、ある程度均一化される。

大切にする思想は人それぞれにせよ、確固たる"こだわり"を持って書かれたコードは全ていいコードだ。

僕はそう考えている。

2. 業務の相互理解

チーム内でも、誰が何をやっているのかそこまで把握していない状況はよくあると思う。

朝会や日報報告をやっていたとしても、それが何のための機能なのか、どんな仕様なのかまでは知り得ない。

そこで便利なものがプログラミング言語だ。

エンジニア同士では、日本語で説明するよりも書いたプログラムを見せる方が話が早く終わることが多く、

コードを読めばある程度の仕様は把握できる。

ああ、この人はこういう機能を作っているのか、こういった仕様で、こういった目的のものなのか。

以上の情報共有作用があることによって、コードレビューをすることでエンジニア同士のコミュニケーション不足や不満(あいつ何やってんだ感)が解消される。

3. 責任の分散

この責任の分散こそ、コードレビュー4機能において最も重要な機能だと僕は考えている。

レビューをして、承認するということは即ち、コードの保証人になるということ。

これによって、バグがあっても、その責任は個人ではなくチームのものとなる。

バグを起きた時に、人を責めることも他人事でいることもできなくなるシステムだ。

何も、不具合や不祥事を起こして会社に不利益をもたらすことなどエンジニアだけの話ではない。

しかし、システム障害というものは非常にやっかいだ。

他の業種よりも遥かに、大きな欠損を引き起こしやすいと言える。

新卒のよくわかっていない段階でも現状のそれなりに仕事を任されるようになった段階でもその状況は変わらない。

僕自身も数時間分の欠損を出したことがあるし、その際は死にたくてたまらなかった。

その欠損をエンジニア個人の責任にするには日本におけるエンジニアの給与は安すぎるし、何よりそんな仕事をさせていると辞められてしまう。

互いに互いを守る手段、として互いに責任を保持する文化、とても効率的でやさしい機能だ。コードレビューは美しい。

4. サービス(チーム)への帰属意識向上

これもまた重要な機能である。

就活生にエンジニアというと、"言われたことをやるだけのやりがいがない仕事"だとか、”個人プレー”だとか思われることがあるが、決してそんなことはない。むしろその逆で、自分から業務の効率化や売り上げ増加に向けた企画を考え実行していくことが当然求められるし、個人よりもチームを重視して動くことの方が遥かに多い。

エンジニアのチーム作りに関しては様々な書籍が出ている。googleマイクロソフト、アップル、はてなクックパッドなどエンジニアの強い会社で培われてきたチームビルディングのノウハウはエンジニアならば誰もが興味を抱くものであり、そのあたりの本もよく売れている。実際僕も僕の上司も何冊かチームビルディングの本を読みいくつかのテクニックを実践している。

話をコードレビューに戻すが、責任の分散によって一人一人がサービスの広い範囲に責任を持つ構図ができることは先述した。 責任の分散がもたらすものは文字通りのものだけというわけではなく、チームへの帰属意識向上という側面がある。責任を持つということは、評価を得るということ。売上に大きく貢献した機能は、誤解を恐れずに言えばレビューを行った全員の手柄であるのが当然のことなのだ。

開発を進め、レビューを繰り返し、サービスのいたるところに自身の責任を置くことはすなわち、サービス全体を自分の仕事領域と意識させることである。サービスを愛しているか否かは別として、自分の仕事が何なのかはっきりと認識できることはモチベーションに大きく影響を与える。僕のチームではメインエンジニアはいない。一応組織的に僕がリーダー的な立場をとることもあるが、全員が全員メインエンジニアであると僕は正しく認識している。誰もが自分のサービスに責任をもち、自分のサービスを自身の評価と直結されることを認識している。

こんないいチームが作れているのは、コードレビューのおかげだと今はっきり感じている。

何かあったらみんなのせい、何もなければみんなの手柄

この意識を持ったチームを作ることこそ、エンジニア同士のよい関わり方である。

4. エンジニア以外とのよい関わり方

  1. "裏切り者"ではなく"共犯者"となる
  2. 互いの責務の線引きをはっきりする
  3. 要件のさらに前、要求定義をじっくりする
1. "裏切り者"ではなく"共犯者"となる

これはコードレビューにおける"責任の分散"にヒントを得た考え方だ。

最も効果的なやり方としては、エンジニアだけで要求定義、要件定義、リリース前テスト、リリース後テストをしないということである。

全ての段階でコンセンサスをじっくりとること。

"そんな感じでいいよ"というような曖昧な合意ではなく、"これでいきましょう"という強い合意を得ることが何よりも大切である。

要件漏れやテスト漏れがあればバグは起こる。

バグは、何をしても起きる時は起きる。

バグが起きた時に自身ばかり責められるのが嫌なのであれば、互いの責任となる状況を作るべきだ。

他人を責めるのではなく、共犯者と"ここがいけなかったね、次からはこうしよう"と話合えることの方が遥かに建設的な仕事と言える。

2. 互いの責務の線引きをはっきりする

ヤマアラシのジレンマという言葉を知っているだろうか。

寒さを感じているヤマアラシは、自身を守るトゲが邪魔をして他のヤマアラシと身体を温め合うことができない。

結局トゲが刺さらないギリギリの距離に近づくことしかできない。

という話である。

エンジニア以外との関わり方もこれに似たものがあって、

互いを突き放すでもなく、かつ近づきすぎない、ある程度の距離を保つことが重要と言える。

ここからここまでは私がやります、ここから先はあなたが。とあらかじめ互いの責任を明示すべきである。

相手がその責任を果たしていない場合は正当性をもって意見しよう。

代わりに自身が責任を果たせていない場合はなぜ果たせなかったのかを分析反省し、改善に向けての行動を素直に行おう。

馴れ合いも敵対も避け、ドライな関係を保つことが大切ということである。

要件の前に、要求定義をじっくりする。

エンジニア以外には、基本プログラムの話は通じない。

そのため、‘何がしたいか’等低次元から相互のことを理解することが重要である。

プログラムの動作については相手は知らないし、

必要としている機能やビジネスとしての動きについては相手の方が基本的に詳しい。

互いにリテラシーによる齟齬を避けるためには、何が欲しいのか、どうして欲しいのか、丁寧な要求定義が必要だ。

エンジニア以外とのよい関わり方

仲良くなって
仲良くなりすぎないで
ある程度甘えて
あまり甘やかさないで
お互いを理解して

エンジニアといっても実際の業務内容や環境が幅広く、

僕が感じているストレスをエンジニア全員が抱えるストレス、と言い切ることはしたくない。

しかし、それなりの数のエンジニアが似たようなことを感じているのではないかと思う。

人間は欲求不満な生き物で、きっとどれだけ生活や自身や環境を改善してもないものねだりをしてしまうのだと思う。

けれども、今一緒に働いている人間がどういったことを不満に思っていて、それはどういった構造が原因となっているのか。

それを知るきっかけを作ることや、翻って自身について考えてみよう、とする姿勢はとても素敵なことに思う。

本投稿は"ストレスの相互理解による健康的な宇宙の創造"を目的にしていると冒頭に書いた通り、自分の辛さを理解してもらうことや、相手の辛さを理解しようと試みることによって、より働きやすく生きやすい世の中になっていってくれればいいと僕は思う。

労働なんてね、基本的に辛いもんだよ。みんながみんなね。

最速で激やせする方法

最速で激やせする方法

今週だけで会社を二日も休んじまった。 休んだのに深夜に緊急対応させられるし、これ出勤だったことにしてくれねえかな。まじで。

夏風邪とそれに伴う脱水症状でダウンしたのだが、おかげで体重がちょっとだけ落ちた。これはいい機会ということで、脱水には気をつけつつ断食ダイエットを敢行している。

俺は昔から10kg太っては10kg痩せて、というようなことを繰り返している。早10年ほどか、そういった意味で俺はダイエットのプロフェッショナルと言えるだろう。そんな俺は、結局のところ断食と糖質制限とカロリー制限の併用が最強のダイエットだと確信している。

いやお前それって何回もリバウンドしてんじゃねえの、という指摘はもっともだ。しかし考えてもみてほしい。"痩せたい"と思う人間なんて、基本的に余裕のないものだ。"健康的長期的にリバウンドなく痩せたい"と望めるような人は、せいぜい標準体重付近をうろついている余裕のある人だ。そんなん運動すりゃいいだろう。一月で3kg落とすダイエットとかよく雑誌なんかに書いてあるが、それができる人は才能があると思う。長い期間ちょっとずつ努力とか無理なんですよね。一瞬超辛いけどすぐ結果でるぜ、みたいなほうが楽。俺みたいな人、結構多いと思う。

俺の場合は大体気を抜いている期間に平均体重+5~10kg程度の脂肪を溜め込んでしまっていることが多いから、痩せたい時は一刻も早く痩せたい。体調を崩すだとか、基礎代謝が落ちて太りやすい身体になるとか、そんなことはどうでもいい。いくら不健康になってもいいから、今この瞬間から一秒でも早く1gでも多く痩せたいというのがまごうことなき本心なのだ。 その場合の最善の選択肢は、先述した通り断食と糖質制限とカロリー制限の併用で間違いない。

どうやるのそれ

答え:できるだけ何も食わない

基本的にこれしかない。運動するのは面倒だし、低炭水化物の料理を作るのも面倒だ。ならば食わなければいい。入れるより出す方が多いなら痩せる、と知り合いの栄養士が言っていた。その通りだ。多少筋肉が増えたところで基礎代謝の1500kcalが倍増するとかそんなことはないらしい。筋肉はどれだけ頑張っても一年に3~5kg程度しか増えないし、3~5kg増えたとしても基礎代謝が爆発的に上がるわけでもない。維持するために筋トレしないといけないしね。ならば、短期的に痩せたい場合は基礎代謝を上げる策は不毛。できるだけカロリーを取らないようにする方が圧倒的に有効であるのは間違いない。

何も食わない、とは具体的にどうするのか。 これが問題で、ずっと本当に何も食わないと、どうやら人は死ぬらしい。あいにく俺は餓死したことがないのでどのラインまで食わないと死ぬのかはよくわかっていないが、一部の研究では最大三ヶ月半まで人間はものを食べずに生きられるという。さすがに仕事や学業に支障をきたすわけにもいかないから、月単位で断食するのはやりすぎだとして、最大半月程度がギリギリ常人にできる範囲だろう。

俺がやった断食の最長記録は10日だ。痩せた体重は7kg程度だったという記憶がある。数値で見ると随分痩せたように見えるが、俺の場合は少し特殊で、普段飯を食う時に飲む水の量がとても多いらしい。そのため飯を食わない期間があると、自然と水分が抜けるようだ。その結果の7kgだから、まあ落ちたのはほぼほぼ水分。脂肪でいうと1kg程度しか減ってないだろう。まあしかし、10日やれば7kgは落とせるということだ。7kgも痩せれば水分だろうとなんだろうと人のシルエットは変わる。俺はシルエットが変われば満足なのだ。ちなみに10日断食した際は結局一月で12~15kgくらい痩せた。医者に行けと上司に言われまくったのを覚えている。

今回の目標は-5kgなので、5日くらいで見込んでいる。断食をしたことがある人ならわかると思うが、飯なんて食わなくても案外辛くない。現在三日目に突入しているところだが、大してストレスも感じていない。コーヒーの飲みすぎで胃を痛めているため、むしろいい感じに食欲がない。

もっと痩せたいデブは低糖質ダイエットも心がけること。断食からの復帰後も米だのうどんだのの炭水化物はなるべく取らないようにするのがいい。おすすめはどのコンビニでも最近売っている、おぼろ豆腐だ。復帰食としても優秀だが、まあ十中八九消化不良を起こし、下痢になるのは避けられない。もうそれはそういうもんだとして諦めろ。 それよりも、下痢になると脱水症状が現れる。水分だけはとるようにしないと、マジで死んでしまうか少なくとも私生活に支障をきたすので、その点だけは注意したい。塩と水分は大切にすべきだ。

体が利用するエネルギーの順序は糖>脂肪となっているらしい。一旦断食をすることで、当然体内では糖が枯渇する。そうなって初めて脂肪を分解したケトン体というものをエネルギー源に使う体になってくる。そんなもんよく知らねえが、断食後しばらくが一番目に見えて体脂肪が落ちる期間だというのはなんとなく経験上知っているしあながちトンデモ理論ではないんじゃないかと思っている。

デブは一旦体内の糖をリセットしてから低糖質を始めたほうがいい。デブって本当に甘えなんだな、というくらいすぐ効果がではじめる。大体水分なんだけどな。シルエットと数字が変われば満足だろ。

いやマジでデブは甘え。人間痩せようと思えば一瞬で痩せるよ。それでも痩せれない場合はなんか病気を疑ったほうがいい。痩せれない体質とかそんなん大体言い訳だからマジで。もの食わなけりゃ痩せるよ。デブがいうんだから間違いない。

ゆめゆめ疑うことなかれ

有給休暇とオデキの聖戦

尻にとても大きなオデキが出来た。これは神による仕事を休めという啓示である。そう気付くや否や、俺はすぐさま勤次郎とかいう無骨な勤怠管理サービスで有給休暇を申請することとした。今週の金曜日は休めと、そう神が言っている。 俺は無神論者故、神には逆らえない。矛盾を感じるであろうが、しかしどちらも本当のことなのだ。だつて、居もしない神などというものに逆らうなど、逆説的に神の存在を認める行為に他ならないのであるから。故に、俺は神には逆らえない。

一年に10日ほど授かる有給休暇というものは、それすなわち神による十の偉業である。十の内おおよそ九つほどが翌年に持ち越されるのがここ最近の通例となっているが、今回の俺の尻のおでき然り、時折神は優しく奇跡をもたらしてくれる。

風俗で可愛い嬢が出てきたとか、駅の階段でギャルのパンチラがあったとか、そないなことは神の奇跡ちゃうねん。有給と桜井ひなここそ神の奇跡やっちゅうねん。

若人よ、ゆめゆめ疑うことなかれ 夢見る子供の夢の夢。

跨る白馬の夢見玉

俺は普段、たくさんの夢を見る。それは俺の睡眠の浅さに由来するものか、はたまた俺の精神の浅はかさによるものか。そのどちらかなど俺にとっても誰にとってもどうでもいい話であるから、皆が皆興味津々であるはずの女性の夢の話をしようと思う。

このご時世に、女性にとっての夢はロマンスだなどという古臭いカビの生えたような話はふさわしくない。しかしそれでも白馬の王子様というものは未だ母やディズニーから子に受け継がれていくれっきとした象徴であることに変わりはない。

当然、本気で白馬の王子様が突然に声をかけてくると確信している女性は少ない。全ての女性が運命論者であった時代はこれまで一度もなく、ましてやそもそも運命論者と言えるほどこの世に希望を残す人々が男女問わず減っている現代日本では尚更といえる。 それでもまだ白馬の王子様という表現が現代に通用するのは何故か。それは結局のところ女性に限らず皆が皆、夢というもの自体を”かないっこないものだからこそ価値のある、非現実への憧れ”と認識しているからではなかろうか。それは正しい認識だ。正しくも過剰に現実的な認識である。夢は叶うものではなく、見るものだとするその姿勢は正に、白馬の王子様を夢見ながらDV夫にその影を探る所謂ダメ女のそれといえる。 星占いをアテにする子供と同じくして、良いところしか受け取らないというのもまた正しく前向きで、素晴らしい姿勢だと俺は思う。一つ20円ぽっちのガラス玉を、しかし本物の宝石以上にとても大切にしようとする愛らしい純情を誰が非難できようか。

女性の話に加えて言えば、俺も実は愛らしい純情の塊なんじゃねえかと最近考えている。こんなにも、こんなにも例えサマーが何百日目になろうともオータムを待ち続けている気持ちと純粋さは、またそれらと同様に非常に美しく尊いものに違いないのだよ。

世の中に白馬に乗った王子様などほとんど存在しないし、俺がたとえ王子だったとしても白馬になんて乗ったらオデキが潰れそうなんで遠慮したいところだが、しかしまあ俺自身も眠れる森の姫を常に待ち望んでいる節はあるのだから、やはり人々は性の枠組みもなく夢を大切にしていると考えられる。 夢への認識、夢への憧れは現実の行動や物事に関わりなく、全て愛しく美しく尊いものなのだ。かなえなくとも、かなわなくともよいから、少年は夢を抱け。迸る熱いパトスで、愛と正義と愛液と精液を持って夢を見るべきなのだ。

何が言いたいのかよくわからなくなってきたが、ゆめゆめ疑うことなかれ。

フレーム思考が上手くいかない理由

A:整理を必要とするほど考えていることが多くない

マインドマップとか色んな種類の思考フレームワークみたいなものが世間にはあるけれど、学生時代とか、就活中に知ったばかりのころは全く上手く使えなかった。

その理由がようやくわかりかけてきた。それが上記「整理を必要とするほど考えていることが多くない」というものだ。

僕はエンジニアをやっている。 正直最近仕事が辛い。何が辛いかっていうと、考えるべきことが多すぎる。特に自分が行っている仕事と取り組む姿勢、それが本当に上からの評価につながるのかという点が最も精神を追い込んでいる。しかし、そんな状況だからこそ思考の整理が役に立つものだと今回学んだ。 後輩、先輩、部下、上司、案件、自分の評価、個人目標、事業目標、評価制度の刷新と考えるべきことが呆れるほど多い今だからこそ、マインドマップが上手く使える。

悩みの多さに比例して自己にかかっている負担の全体像は見え辛くなる。どこに何割の力を注ぐべきで、またそれがどのように作用すると考えているのか。そんなこと意識して仕事してるわボケと今まで思っていたが、追い込まれている状況ではとても難しいことだ。

自然体でマインドマップを作成していると、無意識に強い言葉を使おうとする項目が出てくる。これは丁寧に書こうとすることに意識を向けがちな手書きではなかなか見えない感覚で、自分でも驚くほど不満や不安がつらつらと出てくる。

余談ではあるが使っているのはmacのアプリであるxmindというアプリだ。直感的な操作でそれなりに見やすいマインドマップが作成できる。他にいいのがあれば乗り換えてもいいが、今のところ不満はない。

完成したマインドマップはおおよそ人に見せられるものではない。負担を感じている時というものは、思いの外赤裸々に自分の心を捉えられるものだ。弱気に思っていることや、自分の中で矜持と呼べるほど大切にしていること、確認すべきと理解しているのに放置していることなど、冷静とは程遠いながらも認識のみえる化ができる。

就活中は「マインドマップとか作らねえでも自分が考えてることくらい分かるだろ」とか「意識高いでござるねwww」とか考えていたが、クソアホだったわ。余裕こいてんじゃねえよ、てめえも本気出して追い込まれてみろと今は言いたい。まあ今は本気出しているのかと聞かれると怪しいが。

あー、人に評価されるっていうのはこんなにも傷ついて傷つける行為なんだなぁ。抜け出したいね、この地獄。 思考を整理した上での感想はこんな感じだ。そこまで整理できただけでも大いに役立っていると言える。

はぁーーー、、、橋本環奈ちゃんの爪とか髪の毛とかおちてねえかなぁ。

バグを起こしたエンジニアのリアルな感情の流れ

いやーバグ出した。 0:00から今まで対応調査してた。結構大きなバグで、売り上げ数%欠損出しちゃうくらいのバグ。

気分は当然最悪なんだけど、こういう時のエンジニアの感情とか心境とかってあんまり見る機会ないから自戒の意味も含めて書いておく。

バグってどういうもの?っていう人もいると思うので今回辿った流れにそっていく。

バグを出した時の大体のながれ

  1. バグ発覚
  2. 関係各位に連絡
  3. バグ原因/内容調査
  4. バグ対応検討
  5. バグ一時対応
  6. 顛末書/報告書内容まとめ
  7. 関係各位に正式に顛末報告
  8. リカバリープラン及び予防策検討実施

1. バグ発覚

プログラムリリースは先月。 特定の時間に動くプログラム(バッチ処理とか定期実行プログラムとか言ったりするやつ)であったため、バグが起こりそうな月またぎの実行タイミングにあらかじめ確認体制を敷いていた。 大変申し訳ないが、エンジニアの僕だけでなく実際にそのプログラムを使う方々にも深夜まで起きて確認するよう頼んでいた。 しっかり動くようテストはしたのだが、人間が作る以上バグのないプログラムなどないという言葉はやはり真理であった。案の定バグ発覚。

第一に来るのは震えと混乱。バグが起きた場合どう動くか、ということまで予め見通しを立てていたにもかかわらず、とりあえず不安で震えが止まらない。どうしよう、と一人声に出してコンソールのログイン画面を見ていた。すぐにデータの整合性とログを確認しなければいけないのに、脳が20〜30秒ほどフリーズ。 やっぱりか、という気持ちと、どうして、という気持ちと、どうしようヤバい、どうするんだっけ、とりあえず連絡しなきゃ、という気持ちがせめぎ合い訳のわからないまま逆さまのタバコに火をつけログを追い始める。

2. 関係各位に連絡

とりあえず連絡。有難く申し訳ないことに、確認体制を敷いていたおかげですぐ連絡がつく。 取り急ぎですみませんがここでこういったバグらしきものが確認できております、というような文を送る。 どんな文を書いていても「申し訳ない」という言葉を挟みそうになるのを堪える。この段階では謝罪は必要ない。それより先にやることがあるのだ。

心はこの時すでに殺しておくのが吉。自分が起こしたバグということを忘れたほうがいい。実際はむしろ殺してくれという気持ちになるが、対応と調査を待っている人がいるのでそうも言ってられない。あまりの申し訳なさからドクドク鳴ってる鼓動が「直したら死のう」という声に聞こえてくる。そうだな、とつぶやき始めるが、応える声などなく、ただひたすらに鼓動に耐えることが要求される。流していたEDMが止まる。無音が激流のように感じられ、耳元で電マが鳴っている気さえしてくる。

3. バグ原因/内容調査

バグの原因は大体くだらない。プログラム的な内容は置いておいて、バグが起きる原因なんて三つしかない。 テスト漏れ、仕様漏れ、設計ミスのどれかだ。

なんでこんなミスを、なんでこの仕様を見落としてるんだ、テストではうまくいったのになんで、と不安が不甲斐なさからの怒りに変化していく段階。この一行だけ変えておけば、とか、バグというものは大抵そんな少しのミスや抜け漏れから起こる。

原因をメモしながら影響範囲に目星をつけ始める。このあたりから損失金額が計算できてくるが、ここでも無心を貫き原因調査と内容詳細を把握する。感情の面ではこのあたりがピーク。ここで「起きてしまったものはしょうがない」という考えに至るかどうかで精神及び肉体の生き死にが変わる。おかあさん、おかあさん、おかあさん、と紫煙を吐きながら独自のメロディを口ずさむ。

4. バグ対応検討

自分の犯したミスを直視しながら、一時対応を考える。心境としては考えるもクソもない、一刻も早く正常な状態に戻さないと損失額はどんどんと増えていくのだから。 データをあるべき状態に変えるコードなりクエリなりを組み立てる。相変わらず焦る気持ちが指先を揺らし目の前を真っ白に染め上げようとするが、ここでミスを重ねることは許されない。少しでも早く完了しなければいけないが、同時に確実な仕事をしなければいけない。奥歯を噛み締めながら1文字ずつキーボードを叩く。耳鳴りで打鍵音など聞こえやしないが。

5. バグ一時対応

上司なり責任者なりの承認を受けた上で、検討した対応方法を実行する。想定通りの結果が出るかどうか、ここでもテストを行わなければならない。処刑台に上がるのではない。すでに輪は首に掛けられている。あとは床が開くかどうかを己が目で確かめるだけとなる。今回は床は開かなかった。一緒に対応体制を敷いていてくれた方々がすんでの所でそれを支えてくれていた形となる。ここでも謝罪ではなくお礼を言うこととなる。謝罪はまだだ。己の罪も知らずに行っていい行為ではない。己が犯した悪業と、そして傷つけたもの、失ったもの、失わせたものを十分に知ってから行うべき行為だ。

6. 顛末書/報告書内容まとめ

首に輪を付けたまま、自身の罪を読み上げる。発覚経緯、日時、現状、影響値、原因、対応、本対応スケジュール、再発防止策。なにをしていてもまるで世界が全て自分を責めていて、決して許されない罪を犯してしまったのではないかという恐怖と迫力を持った錯覚に見舞われる。ブンブンハローユーチューブ、という呪文を唱えながら俺は作業を完了させた。

7. 関係各位に正式に顛末報告

作業完了の旨を顛末書と一緒に報告。 ごめんなさい。ぼくはわるいことをしてしまいました。わるいこととはこういうことです。かくにんさせてごめんなさい。 ここで漸く謝罪の言葉を混ぜられる。大抵のリアクションは冷たい。そりゃそうだ。余計なバグを起こしやがってコイツ死ねばいいのにってみんな思って当たり前だ。本当俺もそう思うよ、死ねればいいのにってね。

8. リカバリープラン及び予防策検討実施

ミスを補えるように、同じミスを犯さないように、何ができるかを考え承認を貰い、その後は使えないゴミムシとして反省し続け声も小さく息もなるべくせず権利を主張せず義務のみを遂行するクソお荷物ダメ社員として生きていくことを決める。ミスは誰にでもある、次に活かせばいいと上司が言ってくれたのなら、死への助走は十分だ。使えねえな、と言われたのなら反逆か服従を選択する他ない。 しばらく、飯はくわないでいいと心に決める。後輩には会いたくなく、上には顔を見せられない。そんな人間、そんな生き物になるしかない。皆が忘れるか、自分が忘れるまでこの状況は続く。それが正しくないことだと分かっていながらも、それ以外どうしていいかわからずただただ思いを溜め込んで心を朽ち果てさせていくしかない。

以上、バグを起こしたエンジニア(俺)のリアルな心境でした。

考えるべきことを溜めるとどうなるか

A:イライラしてくる

これまで会社員をやってきて、やることが多いのは別にそれほどキツくないと気付いた。 何よりキツいのは、考えるべきことが多い時だ。

やることっていうのはかかる時間が想定出来てるもので、これをするには15分かかって、あれをするには45分、合計一時間は確保せなアカンな、というスケジューリングが出来る。想定よりも時間がかかったのなら自分の想定が甘い。想定よりも早く終わったのなら、甘さは置いといて次の仕事を早く終わらせられるから精神的な問題はない。

考えるべきこと。これはアカン。

まず何時間考えれば自分(or提示先)が納得するかなんて予想できない。30分ありゃ足りるだろ、と思うことは大抵間に合わない。何月中に考える、というスケジュールは怠惰しかもたらさない。今日中に、と立てれば他の作業が舞い込んできて先延ばしになり、結果的に帰宅途中の電車やシャワーを浴びてる時間を仕事に捧げることになり、そしてまとまらない考えと焦燥ばかりが募っていくこととなる。

そうなるともう精神は終わりだ。

第一に、部下なのか先輩なのかよくわからない同僚に不意にブチ切れそうになったりする。よくある典型的な「あの人最近イライラしてるよね状態」だ。タバコや酒の量が増え、睡眠時間は反比例するように減っていく。他人に愚痴を言えるのはここまでだ。即ち愚痴を言う人はまだ第一段階のストレスしか抱えていないと言っていい。

第二に、自分より明らかに忙しそうな上司にもっと仕事下さいと言ってみるなど意味不明な行動と不安定な情緒が目立つようになる。この辺りの行動は人によって特徴が出る。俺の場合は大抵部屋の掃除を始めたり、不必要な残業をすることが多くなる。 恐らく、普段の自分と正反対の行動をとることで何か心のバランスを調整しようとしているのだと思う。自分の行動が制御しきれなくなる感覚や、視点をうまく定められなくなる感覚がある。 そして何より、この辺りからイライラの対象が他人ではなく自分や社会や人生など、自分の意識の中で不定形なものに変化していったりする。自分を責めがちな人はこの段階まで至るスピードが人より速い。いつの間にか出社拒否をし始める人がよくいるが、大抵の場合彼らは誰かでなく自分自身を責めている。

第三に、なにも考えていないのに涙や嗚咽が止まらなくなる。この段階でありがちなのが、乗り越えたんだな、とかもう少しいける、とかそういった勘違いを起こすことだ。フッと訪れた台風の目のようなもので、何も考えられなくなった頭と何も見えなくなった心では現状がそれほど悪くないんじゃないか、というふうに思えてくることがある。このタイミングしかないんじゃないか、ここで頑張ればどうにかなるんじゃないか、と盛大な錯覚を覚える。

これが人が仕事で心をダメにするフローだ。 昇進できるかもとか、上司への恩とか、そういった要素が各段階へ進ませる要素になったりする。

そして、もう俺はダメだ

働きたいやつは病院行った方がいい

「働くのは楽しいです。」とか嘘ばっかついてんじゃねえぞクソ若僧。こんだけ働きたくない大人がひしめいてんのに働くのが好きだぁ?舐めんじゃねえぞこのサイコ野郎。嘘ばっかついてんじゃねえよ本気で言ってんだったら病院行ってこいアホが。もしくは俺の代わりに頼むから働いて俺を養ってくれお願いいたしますほんとに。

働きたくとも働けない人もいる、なんて論にはなんの意味もねえよ。そいつらだって働かないでも金やるよって言われたら働かないだろうが。そいつらは働きたいわけじゃなくて働かないといけないのに働く場所がないって話で、働きたいかどうかは別の話だ。

こちとら社会に出てから、いや、社会に出る準備期間である大学だの高校だのにアホヅラして通ってるころから今までずっと、働きたくなすぎて発狂しそうな毎日だったわ。何日経っても何年経ってもゲロ吐きそうなくらい働きたくねえよ。なんなら死んだ方がマシなんじゃねえかと何度思ったことか。何度電車に揺られながら涙を流したことか。誰にだってあるだろうがそんなこと。そういう嫌なところっつうかまあそれが大体の部分なわけだけどそれをなかった事にして仕事は楽しいとか捏造してんじゃねえよ嘘つき共め。働いたってキラキラなんざ輝けねえから期待してるアホはクソして寝てろ。

世間のニート批判とかあるけど、働いてるやつなんかよりよっぽど自然だと思うわ。少なくとも働きたいとか嘘ついてるようなやつよりはずっと当たり前のことに思える。

俺が働いて稼いだ金から税金が取られていて、それによって生活保護を受けてる人がいたとしても羨ましいくらいの気持ちしか抱かない。俺の金で何を、とか、働けよクズ、とかそういう文脈から批判的な立場を取ろうとはほんの少しも思わない。性格とか環境とか切っ掛けとか、どれか一つでも違っていたら俺もそうなっていたと思う。今後そうならない自信もない。だからって別にニートを誇れとは言わないし、言わずとも誇ってる奴なんかそれほどいないだろう。

クソみてえに働いてクソみてえな人間関係にイラついてクソみてえな給与貰ってクソみてえなお決まりの人生送ってっていうのが普通の理想の人生なんだとしたら、マジでこの世とか地獄かよって思うぜ。家族がいれば変わるだぁ?じゃあ俺に俺の事を愛し続ける俺専用橋本環奈を用意してみろこのバカ野郎が。人の人生知った風な口で楽観的に捉えて俯瞰してますみたいな面してんじゃねえよそのアホヅラぶん殴るぞクソ。

あーはたらきたくない。なんか臓器移植とかしないと死ぬって決まってるけどすげー生きたがってる子供とかいねえのかな。こんなオッサンの臓器で良ければ喜んで差し出すのに。あるいは俺の目の前で俺が身代わりになれる距離とタイミングで事故に遭う人とかいないのかな。多分、少し考える時間くれれば代われるぜ。

じゃあ働かなきゃいいじゃん、って思うんだったらテメエの親父にそのまま言ってみろ。ほとんどの場合は働きたくなくとも働かねえといけねえんだよ。人間生まれた時からなんでか生きる事を義務付けられてんだよ。だからこそゾンビみてえなツラした大人が毎朝電車にたくさん乗ってんだ。生きることが義務付けられたゾンビとかなにそれかみさま頭おかしいんじゃないのって感じだわ。かくいう俺も、毎日毎日東京オブザデッドみてえな馬鹿げた地下鉄に乗らないといけねえ。ヒーロー側じゃなくてゾンビ側として乗るんだぜ。これでも俺は昔ゴレンジャーの赤になりたいとか言ってたんだぜ。ほんと世界が恨めしくてしょうがねえよ。何しに生まれたんだ俺は。何のために生きてんだ。

痛くなくて誰かの役に立つような死に方があったらさ、今の世の中きっと志願者多いと思うぜ。

君が無駄に過ごした"今日"は、昨日死んだ誰かが死ぬほど生きたかった"明日"なんだ。

とか言うじゃん。はぁ?知ったこっちゃねえよな。それを言うならてめえが生きてる今日は誰かが死ぬほど働きたくなかった今日だよ。今生きてる人間にとって、生きたいって思いより死にたいって思いの方が遥かに強い思いだと思うぜ、なんせ今の状態を変えたいって事なんだから。いい言葉で生き死にに関する思いをまとめようとすんな。ちゃんちゃらおかしいんだよ。

あーくそ、働きたくねえ。多分みんなそうなんだろ、それでも我慢して働いてんのなんて知ってるが、知ってるからこそ労働スキーの基地外どもとは相容れねえ。労働が楽しいとか働きたいとか嘘ついてるやつ、俺から見たらあんたも俺と同じくらい頭おかしいぜ。