システム管理者と開発者は何故対立することが多いのか。今回はそれについて考察し、よりよい解決方法を模索してみたいと思います。

システム管理者の立場で考えると

システム管理者の立場からWEBサイトを見ると無駄にネットワークやDBリソースを食い潰すものをたくさん見つけることができます。普段DBやサーバチューニングを一生懸命やっているシステム管理者から見るとそういうものもチューニング対象と考え、いくつかの提案をまとめて開発側に修正依頼を出します。しかしそういった依頼はなかなか開発側で対応してもらえずイライラがつのります。

開発者の立場で考えると

開発者のミッションは決まったスケジュールの中でシステムを完成させるということです。ミッションを達成するために取る合理的な行動としてはシステムを一番楽な方法で完成させるということになるかと思います。そんな開発者にシステム最適化という仕事が振ってきても、それの達成が自身の評価の対象にならないのだとしたら、あまり引き受けたくない仕事になります。

対立を避けるには

お互い話しをすればお互いの言い分はもっともであると言えます。しかし当事者同士でこれらを話し合っても決裂するかもしくは開発側で忙しい時間を割いて仕方なく対応してくれるかのどちらかになるかと思います。ではどうしたら対立を避けることができるか。それは開発側のプロジェクトマネージャにお願いして、開発スケジュール作成の時にシステム修正のためのリソースも組み込んでもらうことだと思います。開発側のミッションにシステム修正も加わればそれをやらざるを得なければならなくなります。ただしそのためにはシステム管理者はそのシステム修正によってどのくらいのインパクトがあるのかということを開発側のプロジェクトマネージャに説明できないといけません。スケジュールは各プロジェクトの優先順位によって決められていくため、その修正がどの程度優先順位が高いか把握できないとスケジュールに組み込みようがないというわけです。

※とはいいつつ、本音は企画や設計段階がしっかりしていればシステム修正なんて必要ないのになぁと強く思うんですけど、現実はなかなかそうはいかないんですよねえ。