システムを設計する上で、冗長化というのは多くの人が当然のように考えている。重要なポイントは、複数の内の一つがダウンしても自動的にその他に割り振られることと、サービスの提供が継続(但しパフォーマンスが落ちる可能性はある)することだ。
冗長化が必要なのは人間も同じである。人間の場合も「担当者の自動変更」と「等価な行動」が重要だ。具体的に言えば、前者は病気でも退職でも理由に問わず欠員が出たときに、その人の担当分を引き継ぐべき担当者が決まっているかどうかという点で、後者はいなくなった人と同等のパフォーマンス(技術スキルであったり知識であったりマネジメント能力であったり)を発揮できるかどうかという点だ。このような人間冗長化が行われていない場合は、欠員が出た時点でほぼサービス停止状態(具体的にはスケジュールの遅延など)が発生する。
このようなことは当たり前のことなのだけど、人間冗長化をしていないのにサービス停止を気合で防ごうと考える人が本当に多い。しかし、実際に気合(サービス残業やらなんやら)で防げる例はかなり稀だ。そのわりには、本人たちは頑張って対応したという意識から「よくやった」と結ぶのだけど、根本的に問題を見誤っている。
ただし、人間冗長化は別に必須な事柄ではない。システムの場合、冗長化していないなら問題発生時にいきなり復旧対応が待っていることを皆想定している。だから、深夜でも電話がかかって来て対応できるような策を弄している。なのに人間のことになると、冗長化していないにも拘らず策を弄していないことがほとんど。この差が非常に気になる。
人間は非常に高価なので、冗長化構成が取れないことは多い。であれば、最低、欠員が出たときの対応策を考えておくことは必要ではないだろうか。人間の集団は微妙にクラスタリング(欠員の部分を全員で少しずつまかなうみたいな)が働いているので事無きを得ることもあるけれど、それに頼っているようでは決して計画的とは言えないだろう。
退職が決まってから引継ぎを行うという行為は、エラーが出始めてから別サーバーを購入するという行為と同じであることを理解しなければならない。勘違いしている人が多いが、引継ぎというのはリアルタイムに行うべきものである。