ソフトウェアエンジニアは病みやすいです。過度の残業、過労死、精神病による休職・退職・解雇などの話はよく聞かれる話です。精神を病んで休職中の僕がそんなソフトウェアエンジニアリングの闇(病み)との戦いを記事にしようと思います。
前提
僕が書くこと
- 僕がどうして病んでしまったのか
- 僕が病みとどう戦っているのか
- 僕が考える、病まないための方法論
僕が書かないこと
- 所属する、あるいは所属していない企業・団体に対する文句
この記事は特定・非特定の会社を責めるためのものではないということです。なので僕が実際には誰なのかを考慮しないでほしいのです。病みはどこにでもあります。
生暖かくお願いします
メンヘラは他人の攻撃に敏感です。過剰防衛しやすいです。被害妄想が発動しやすいです。薬である程度はコントロールできることもありますが、なるべくなら生暖かくお願いいたします。
人によって症状は違います
「○○さんは大丈夫だったんだからおまえも大丈夫だろ」などは通用しないと思ってください。人によって症状は違います。「俺は大丈夫だったんだからおまえも大丈夫だろ」。いいえ。「世の中なんてそんなものだ」というたぐいの言葉、知識としてはわかりますが、実際には僕に当てはまらなかったり耐えられなかったりしました。
また、ここに書いていることがメンヘラプログラマのすべてではありません。どうかそのことを念頭においてお読みください。
メンヘラプログラマが作業を開始するために
プログラミング(コーディング、設計その他含む)を開始する時に、僕は精神的な障壁を感じることが多いです。この話を同僚にしたところ「コード書き始めればいいじゃないですか?」「私なら書き始めますよ」と気軽に言ってくれるんですが、そうしたくても、なかなか始められません。
実際にはこの同僚の言葉には一理あります。やる気というのは「やる気があるからやる」のではなく「何かをやり始めれば、少しずつやる気が出る」という性質のものだというのは事実としてあります。
ただ、それをわかっていてもメンヘラプログラマの精神的な障壁というのは決して無視できない大きなものなのです。
メンヘラが感じる精神的障壁
人によってメンタルヘルスの悪化具合は違うので、ここで述べる症状がすべてのメンヘラプログラマに当てはまるとは限らないことを断った上で書きますが、僕のようなメンヘラは常に罪悪感・自責と戦い続けています。
健常者の方は想像がつかないかもしれません。ひどい場合は起きている時は常に罪悪感と戦い続けているのです。「クソ設計をしてしまう罪」「クソコードを書いてしまう罪」「手抜きをしてしまう罪」「コミュニケーションが成功しない罪」「無能な僕をお許しください」…。そういったメンヘラは、自分が書くものが少しでも汚れている、効率が悪い、他の人との齟齬が発生するといった状況に対して、心が悲鳴を上げてしまいます。
「完璧主義じゃなくてもいいんだよ」「なんでそんなしょうもないことに罪悪感を感じるの」とかすべての言葉が自分を責めている言葉だと受け止めてしまうのです。あらゆる言葉が攻撃だと感じてしまうのです。心が安まるときがありません。
対処方法
一部の安定剤はこういった感情を少しだけ緩やかにしてくれます。ただし眠くなるという致命的な副作用がおります。職場の理解がなければこの点が致命傷になります。
また、心理的負荷の低いことから始めるという手があります。
- 作業について思いを馳せる
- TODOリストを書き出す・確認する
- 机を整理する
あるいは、心理的負荷を恒常的に下げるために、タスク粒度を小さくするというのも大切です。
- コミットする粒度、公開する粒度などを小さくする
- 一回の作業を極限まで小さくする (変更は数行まで)
- 完璧な設計をするのではなく、設計要素の一部を抜き出して、検討・実験・再調整のイテレーションにする
また他人の言葉が呪縛になっていることも多いので対処しましょう。
- 気軽に言ってくれるアドバイスを無視する勇気を持つ (相手はあなたの症状について全く知らないのだ)
メンヘラプログラマがワークライフバランスを整えるために
僕が心を壊した主原因は、本当にやりたいことをやれなかったことです。つまらない業務プログラム、他人が設計し他人が作ったモノを引き継ぎという名の押しつけをされたこと、技術的おもしろみのないだけではなくむしろ現代において有害とすら考えられる開発スタイルを取るチームなど、僕がやりたかったプログラミングとかけ離れてしまっていたのです。
「仕事なんてそんなものだ」「だって、おまえはプロなんだろ?」「押しつけられるとか言うな」ええ、その通りなのでしょう。そうでしょう、そうでしょう。
僕が考えた対処法
仕事の時間は仕方ないので犠牲にしつつ、一日24時間のうち残った時間(通勤や食事の時間もある!)で個人プログラミングにいそしもうと。この考えは最初のうちはうまくいってました。睡眠時間を削り、土日もずっとコーディングし続けるのはとても楽しく、捗りました。さっきの節で述べた作業をやり始める時の心の障壁にもそれなりにうまく対処できていました。
三ヶ月か四ヶ月くらいすると、急に効率が悪くなったのです。精神状態が悪化しすぎて会社に行けない日が増えて有給ががんがん消費されていきます。それでいてプログラムは数行ずつしか書かれない、あるいはそもそも手を付けることができない。
人間は睡眠が必要な生き物である
そう、まず一つ目、人間は睡眠が重要なのです。特にメンタルヘルスに問題のある人は、睡眠のゴールデンタイム(夜中24時〜26時)に寝ろとクリニックの医者には口酸っぱく言われていたのですが、ちゃんとその時間帯に寝ていなかったのです。睡眠時間が少ないのも当然問題です。
人間は気分転換が必要な生き物である
そう、二つ目は、ひたすらコーディング漬けだったことも問題だったのでしょう。
元々メンヘラは気分転換というものをうまくやれないタイプの人種です。気持ちのスイッチができない、やったらやりっぱなし、何か一つに集中していたい、そういった性質があり、気分転換というのが元々壊滅的なのです。その状態なのに、意図的にコーディングばかりやり続けていたら、そりゃ気分転換もできずにストレスだけがたまり続けることでしょう。
さらに考えた対処方法
セロトニンおよびメラトニンのために L-トリプトファンEX(350mg×80粒)40日分 を買ってみたのです。これはかなり効果があって、睡眠効率の改善と、精神状態の改善につながりました。
もう一つの対処方法は休職したことです。皆さんカジュアルに休職しましょう。
今のところ、僕は働きながらワークライフバランスを整えるための方法には至っていません。なんとかしないといけないのですが…。
メンヘラプログラマは素直な生き物です
メンヘラプログラマは、と言い切るには主語が大きい気もしますが、面倒なので言い切ります。きっと素直な人が多いです。
素直は美徳だと言われ続けました。僕は極力嘘をつかない、素直な言葉を口にするようにしています。嘘も演技もへたくそなのだから仕方ない。
ただ、問題だったのは素直な生き物は他人の言葉を真に受けすぎてしまうのです。
言葉を真に受けすぎてしまう弊害
たとえば空気が読めない、コミュニケーションに問題がある、というたぐいの問題もありますが、それは割と目に見えやすい軽い症状だといえます(もちろん、人によってコミュニケーションで致命傷を負います)。一番の問題は、原則やルールに心をとられすぎてしまうのです。
たとえば、DRY原則というものがあります。Don't Repeat Yourself. の略で作業者自身が繰り返す(重複する)ことは望ましくない(コードにやらせよう)という思想で、これ自体はすばらしいものです。コードも設計も重複を防ぐことでシンプルになり、読む方にも書く方にもメリットがあるはずです。
メンヘラはこういったすばらしい思想、原則は、スコーンと脳内に入り込んで支配的になってしまいます。ルールを守らない人を見ると、殺意がわいてきたり、ルールに従えない自分に苦しみを感じるのです。罪悪感と無能感の無限の苦しみが待っています。
対処方法
正直なところ、僕はこの問題への対策方法を見つけられていません。職場の人とどうしてもプログラミング論で対立してしまうのです。休職するしかなかったんですが復職するためには、これをなんとかしないといけません。
一つは今の職場を辞めて、理想的なプログラミングの環境へいくことでしょう。
もう一つは地道にKAIZENを続けていくことでしょうか。でも、考えないといけないのは、KAIZENに耐えられるだけの精神状態ではないということです。人と衝突することに苦しみを覚えている状態ではKAIZENを進めることはできません。
終わり
もう少し落ち着いたら、続きの記事を書くと思います。精神状態の悪化の主原因はやりたいことがやれなかったことですが、急速に悪化させた要因としてもう一つ大きいのがコミュニケーションの問題です。職場の人ととのコミュニケーショントラブルがどうしても僕の精神状態を悪化させてしまったのです。
この記事を書くだけで心拍数は上がり続けて体は臨戦態勢に入って、本当に疲れるししんどいし、つらいんですが、がんばって次回も記事を書こうと思います。仕事をしていた頃は眠気が致命的だった安定剤も積極的に使えますしトリプトファンで調子もいいので、きっと大丈夫でしょう。
- 休職の仕方 (生活編)という記事を書きました