前提:一度生まれたシステムはそう簡単に死なない
昔話をしよう。
あるエンジニアがいた。コードを書くことに没頭した男だ。技術的負債が山ほど生み出された。
善良なエンジニアもいた。男の罪を肩代わりし、レポジトリからコードを抹消し、満足して死んだ。
この話には教訓がある。「一度生まれものはそう簡単に死なない。」
一度生まれたシステムは簡単に死なない。
- 誤った技術選定で構築されたデータ・パイプライン
- 有効性を失ったドキュメント
- 使っていないデータを入力するオペレーション
技術選定を間違えたデータ・パイプラインは必要以上の労力を吸収し、有効性を失ったドキュメントは誤った動作を誘発し、使っていないデータを入力するオペレーションは管理コストを増大させる。
しかし自然に死ぬことはない。殺さない限り、生き続ける。
悪を成すために生まれてくるシステムは存在しない。すべてのシステムは善なる目的のために生まれる。システムそのものが悪なのではない。変化があり、有効性を失う。ただそれだけのことだ。
一度生まれたシステムは、その有効性を失ってもしぶとく生き続ける。
まず殺意
だから殺す。一度生まれたシステムが自然に死ぬことはない。だからこそ、今いる人間が積極的に殺さなくてはいけない。
- 有効性を失ったドキュメントはゴミ箱に入れる
- 有効性を失ったオペレーションは削除する
- 使われていないダッシュボードを削除する
すでにある仕組みを意図的に殺すことは、易きに流れようとする自然の精神的傾向に争うことを意味する。殺意を持ってこの流れに対抗するべきだ。「殺意ドリブン開発」は、殺意を利用して易きに流れようとする精神的傾向に抗う開発手法である。
殺意を持たなければ心は易きに流れる。まず殺意を抱くのが重要だ。「まず、殺すべきである」から初め、次に「殺すのは俺だ/私だ」となる。主体性を持った確信犯である必要がある。他者から強制されるのではなく、自由意志のもと殺すのが肝心だ。
殺す理由は後でいい
殺意を抱いたら、次に殺す理由を見つける。殺意さえあれば、理由は後からいくらでも思いつく。
- 有効性を失ったドキュメントを放置していては、既存のオペレーションが混乱する
- すでに使っていないデータを入力するオペレーションが残っているのは、人件費の無駄である
大事なのは殺意であり、殺意の理由は対外的な説明目的を得るためにすぎない。業務上必要だからやるのだ。
跡形を残さない
復活する余地を残さず、徹底的に殺す。跡形を残すべきではない。
- リポジトリごとdeleteする
- ゴミ箱をクリーンアップする
- インスタンスが絶対に残っていないよう確認する(あるいは、IaCを利用して確実に殺せるようにする)