Anger Driven Development と誰かが言ったそうです。
なぜ怒りを感じるのか?
開発を行っている場合で感じる怒りの多くは理想とのギャップに起因すると思っています。
- 既存コードがクソすぎる!!
- なんでこんな手順を踏む必要があるのか?
- などなど...
理想とのギャップを感じているので、これらは以下のように (比較的具体的な) 理想が見えています。
- こんな風に書けば直しやすかったのに!
- こんな手順になっていれば自動化できるのに!
怒りを感じている私たちは、理想的な状態が何であるかを知っています。
そこに手が届かないもどかしさから怒りを感じているのです。
あなたは怒りを感じて不快な思いをしているかもしれませんが、その目は確かに理想を捉えて希望で満ちています。
怒りに向き合う
怒りを自覚した時点で怒りの原因がおぼろげであることもあります。
まずは怒りに向き合い整理していきましょう。
- 怒りの原因はなにか?
- 怒りが解消されている状態はどんな状態か?
例えば
- 既存コードに自動テストがないから新しい実装やそれの動作確認にすごい時間がかかる
- 自動テストが整備され、本質的な検証に集中ができる
必要ならもう少し掘り下げてみましょう。
- どれくらい時間がかかるの?
- どの作業に時間がかかっているの?
- 本質的な検証ってなに?
- 本質的な検証ができないと何がダメなの?
考えれば考えるほど、当然であるはずの理想との遠さを痛感して、あなたの怒りはどんどん大きく具体的になっていくはずです。
少し怒りを放出する
どうなればいいかが見えているのだから少しやってみましょう。
ちょっとだけでいいです。
例えば、まさに今向き合っているメソッドに自動テストを書いてやればいいです。
その過程で、いままで放置された理由を知るかもしれません。
もしかしたら怒りが萎えそうになるかもしれませんが、自分の怒りに自信を持ってください。
その程度で消える怒りではないはずです。
途中で方針を見失うかもしれませんが、方法を探してください。怒りのエネルギーに満ちたあなたならできるはずです。
怒りに任せてやり切ってください。
やり切ったあとは、なんとなくやってやった感があって、ほんの少し気持ちが落ち着いたんじゃないですか?
もちろん、こんなもので満足はできないと思いますが、いいタイミングなのでもう一度怒りに向き合ってみましょう。
その怒りすべてを解消するまでに必要なステップがより鮮明に見えると思います。
- テストを書くにはあまりにもモジュール同士が密結合すぎるな
- そもそもテストが維持できるのか?CIサーバが必要じゃないか?
怒りを告白する
怒りに任せて勝手にコード改変してしまうのはあまり褒められた行為ではないです。
関係する人にはちゃんと相談しましょう。
きっと多くの場合は受け入れてもらえます。
あなたが感じている怒りはきっとほかの人も感じています。
以下を伝えましょう
- 私が何に怒っているか
- どうすれば私の怒りが収まるのか
- 怒りを一部収めるために何をやってみたか
- 私の怒りを収めるためにはあと、何をする必要があるか
これを伝えるのは簡単です。
ここまであなたがやってきたこと、感じたことがすべてです。
運が良ければ同じ怒りを持つ同士が生まれてあなたを助けてくれるかもしれません。
いやいや、そんなものでは生ぬるいと、さらにあなたを満足させるプランが生まれるかもしれません。
とにかく、素直に怒りを告白しましょう。
怒りを開発へ向ける
ここまでで、あなたが怒りを開発へ向ける準備は整っています。
ゴールは明確。踏むべきステップもわかっている。あなたには開発をするエネルギーが満ち溢れている。
あとは進むだけです。
きっと困難もたくさんあるでしょうし、これまで多くの人がしてきたように諦めてしまいそうになるかもしれません。
あなたの持った怒りの大きさに自信を持ってください。
あなた以上の怒りを持った人はこれまでにいないはずです。
怒りに身を任せすぎて、ステップを間違えないようにしましょう。
正しく順番に理想へのステップを踏んでいれば、途中で息が切れても必ず恩恵を得られるはずです。
次の怒りへ
怒りに任せて、ゴールできたかもしれません。
もしくはステップの途中で満足できたかもしれません。
とにかくあなたの怒りは収まりました!
満足げにあなたの理想の世界を見渡してみてください。
きっとあなたは新しい怒りに満ちていると思います。
あなたがここまで来るために蓄積した努力や知識によって、新しい理想が目の前に現れたのです。
決して、『まぁ、前よりはマシだしいいか。』なんて言わないでください。
あなたの怒りにウソをつかないでください。
大げさにオフィスチェアに深く座りなおして、大きな舌打ちを鳴らして、頭を掻きむしりながら、また新しい怒りに身を任せましょう。
怒りを感じる源には、これまでの経験・努力・知識に裏付けられた、手の届きそうな理想があります。
我々の目の前にしているソフトウェア・サービスのユーザたちに、その理想を提供できない無念さがあります。
我々が勤勉であり続ける限り怒りがなくなることはありません。
その怒りはあなたに新しい景色を見せてくれるはずです。
おわりに
どう頑張ってもクソっていう環境は存在するからそういう時は無理しちゃだめだよ。