にゃみかんてっくろぐ

猫か百合を見守る壁になりたい

品質と工数をトレードオフにしない

ソフトウェアの外部品質を上げたい局面はいろんなところで発生する。不具合が発生した、障害が発生した、利用者が増えた… などなど。

このとき私がポリシーにしているのは、品質と工数トレードオフにしない、ということだ。

品質が上がるが、工数も増えるケース

例えば以下のような対策は、品質が上がる一方で工数も増えてしまう。

  • デプロイ前にチェックする手順を増やす
  • プルリクエストの承認(レビュアー)を 1 人から 2 人以上に増やす
  • 長時間の設計ミーティングに全員参加する

私はよく「開発プロセスが重たくなる」と表現している。

品質は上がるが、工数は変わらないケース

以下のような対策はどうだろうか。

  • スクリプトで自動的にチェックする
  • ESLint などの静的解析ツールを導入し、ツールに怒ってもらう
  • すぐロールバックできる仕組みを整え、影響範囲を小さくする

導入工数はかかるが、日々プロセスを回していく工数はほとんど変わらない。開発プロセスが重たくならずに、品質が上がる。

私が好きな対策だ。選択肢が限られていたり、導入工数がかかったりと難しい面もあるが、だからこそ取り組む価値もあると考えている。

怠惰であれ

表に整理するとこんな感じだろうか。

品質\工数 増える 変わらない 減る
上がる それはそう 💮 よい 💮 素晴らしい
変わらない よくない 今まで通り 💮 よい
下がる よくない よくない それはそう

もっと極端に言えば、「仕組みや自動化でなんとかなることを、わざわざ人の手でやりたくない」。そんな感じ。