私はIT系の会社に勤めている。業界内ではSIerの立場にいる。SIerというと、中抜きして下請けに丸投げ、というイメージを持たれがちだが、実際は機器設定やアプリ開発、ラックマウントからテープバックアップなど手を動かす案件の方が多い。
もちろん、その中で派遣会社から人を派遣してもらうが、案件を丸投げにすることは少ない。
先日、部門で「Ansible」というサーバの自動構成ツールを導入することが決まった。詳細はここでは割愛するが、簡単に言うと複数台のサーバの設定を自動で実行してくれるソフトだ。
仮想サーバなら、テンプレートを作っておいて複製していけば良いのだが、物理サーバではそうはいかない。手作業で設定をするので、時間がかかったり、漏れが発生する。
個人的には、このツールは便利で良いと思う一方、ツール導入と併せて会社の文化を変える必要があると思っている。
弊社の文化を一言で言うと、「レビュー&承認主義」だ。
どんな作業も事前に課長や有識者のレビューを通し、承認を得なければならない。そして作業は2人一組で実施することになっている。作業中はレビューワーがレビュー&承認をしながら進める。
作業時の組み合わせは社員同士でないといけない。作業を派遣が実施し、社員がレビューという体制は、数年前に消えた。
きっかけは、レビューをおざなりにして障害を起こした社員が再発防止策で
「これからは社員と社員で組んで実施します」
という訳のわからん防止策を提出、上層部がそれを承認するというものだ。
レビュー研修なるものも受講させられたが、そこではダブルチェックの重要性が説明されるだけ。
「システムによるチェックの後も、念のため人の目で確認しましょう!」
「レビューのコツは、思い込みをなくすことです!」
なんてことが声高に繰り返されている。
弊社の案件では、たいていのシステムで本番環境と開発環境が構築されている。顧客が開発環境を予算的な問題で構築したがらないときは、スモール版を社内に作ったりしている。
ここまでは良いのだが、問題はこの環境へのアクセスにも2人一組、しかも紙のアクセス管理簿へ課長印を捺印して貰わなければならない。ちょっとした設定の確認(変更の伴わない確認、例えば ps -aef | grep ntp といったコマンドも打つにもこのステップが必要となる)をするだけでもこの手続きをしないと、社内監査で減点される。
さて、こんな環境でAnsibleを入れてどうなるだろうか。まず、Ansibleの設定内容でレビュー&承認を得る。その後、Ansibleの管理サーバへのアクセスで捺印をもらって、設定内容の反映を行うタイミングで人の目でレビューをする… …。
どこかが間違っている。
Ansibleの「べき等性」機能だけはうまく活用できるだろう。が、その他の機能については、それを使うまでにクリアしなければならないステップが変わらないので、生産性向上にはつながらないと思う。