システムエンジニアインサイド012〜前例踏襲主義〜

稼働中のシステムにおいて、停止を伴う保守作業を実施しなければならない場合、まあ当然という形で利用時間帯外、つまり深夜に作業を行うこととなる。
先日実施した作業もシステム停止を伴うものだったため、例に漏れず深夜に作業を実施した。内容は、端的に言うとシステムのパラメータチューニングを実施し、
性能改善を図るというものだ。
(分かる人向けに書くとJVMのNew領域とOld領域それぞれのヒープサイズの拡張)



個人的に深夜作業はとっとと終わらせるに限ると思っている。そもそも人が活動する時間じゃないのでミスが多くなりがちというのもあるが、それよりも単純に
眠いしかったるいのでさっさと終わらせたいのである。そのために色々と工夫をしたり事前準備したりして少しでも作業時間を少なくできるようにかつミスの
無いように調整している。

早く終われば早く終わるほど良い。深夜作業にはそういう気構えで望んでいる。もちろん今回もだ。



作業は22時からと聞いていたので、仕事は早めに切り上げ、さも当然のように車を飛ばして20分ほど前にはサーバルームに入る。
作業の体制はシステム基盤側として私と作業を覚えるためにもう一名、本作業のリーダーを含むアプリ側2名という体制。
22時まで残り5分となった辺りで関係者が全員サーバルームに入り、準備も完了、作業を始めるだけという状態になった。

変更作業はせいぜい30分程度で完了する。少なくとも日が変わる前までにはサーバルームを出られるだろう……人気のない国道を飛ばし
家に着いたらエビスで祝杯ややテンションの高い深夜に飲む一杯に心が躍る。(酒飲みの思考です)



いよいよ22時。さて変更開始だ、と思ってコンソールにコマンドを打ち込むのを待っていたら、作業のリーダから待ってくれとの依頼があった。
作業前後の状態比較のために、事前に性能テストを実施するとのこと。
こちらで想定していた作業ではなかったが、必要な作業なのは理解できたので性能テストが終わるまで待つことにした。



しかし、30分経っても性能テストの完了報告がない。さらに十数分後、タブレットに放り込んだ4コママンガを一冊読み終えた辺りで流石にしびれを切らし、
アプリ担当に確認をしてみる。



私「テストってあとどのくらいかかります?」

アプリ担当(以下ア)「えと、あと1時間半ぐらいかかります」




はい? そんな「(`・ω・´)キリッ」とか顔文字付けられそうな感じでハキハキ言われても困るんだけど。



私「え、なんでそんなに時間かかるの? どんなテストやってるの?」

ア「多重度を30にして、シナリオを2つ流してます。一つのシナリオが30分ぐらいかかるので、一回実行すると1時間かかります。事前確認は
二回テストを行うので、2時間ぐらいかかります」

私「いやいやいや長すぎないそれ? そもそも何で30多重なの?」

ア「アプリチームとして今までこれでずっとやってきたので……




この段階でこれ以上ここで議論をしても意味がないと察したので「今後ちょっと効率考えてください」とだけ告げて退くことにした。
このアプリ担当はテストの意義も理由も目的も大して理解していないと分かったからだ。
彼の回答が「今までこれでずっとやってきた」であったということは、つまりそういうことなのだ。



結局、私が設定変更作業を実施できたのは日付も変わった翌日の0時半過ぎ。さらにテストを実施し、サーバルームを出たのが夜中の2時。
家に帰ればもう3時近い。エビスが飲める時間はとうに過ぎた。ところで、今日は平日なんだが午前中寝てて良いかな。(少し遅れて出社しました)



「今までこれでずっとやってきたので」「他のシステムで使っているから」

システム方式やテスト方法の決定理由を求められた際、こういう回答をする人は少なくない。新人さんでこの回答ならまあ仕方がないかなと思う部分もあるが、
この回答をするのはSE4年目を過ぎた辺りの中堅どころに入ってくる人が多い印象がある。

それは効率よく仕事を回す方法を覚えた結果だと言えなくもないのだが、この回答だけをするのは基本的にNGだ。
なぜなら「僕は何も分かりません」と言っているに等しいのだから。



この人たちの考え方に名前を付けるとすれば「前例踏襲主義」というところか。当初自分で考えてこの名前を付けたのだが、ネットで探すと結構引っかかる
政治などで多いようだが、まあどの業界でもこの考え方をする人はいるし、それを批判する人がいると言うことなのだろう。



一応補足しておくと、前例を踏襲する事自体は悪いことではない。ただし、それは以下の2条件が満たされるときに限られる。

・代替手段と比較検討した結果、前例で採用している結論、手段に対する明確なメリットが見いだせない
・前例の採用理由、検討過程を理解し、利用している




分かりやすく言い換えると「ちゃんと前例の採用理由を説明できる人が、比較検討した上で前提踏襲をしているなら良い」と言うことになる。SEの前提踏襲主義は、
往々にして比較検討もせず、前例の採用理由も分からない人が「今までコレでずっとやってきたから」だけで採用する場合が多いのでどうよ、と言っているのである。

では何故前例と代替手段の比較検討をしないのか。「前のシステムが今のシステムに類似していたから」「プロジェクトの方針だから」。
うんまあ色々理由は出てくると思うが、そんな事は大した理由ではない。もっと直接的、かつ納得のいく理由があるじゃないか。それは、



「面倒臭いから」



ほとんどの人は反論しないと思う。出来ないだろう、事実だから。反論できるならその人は前例と代替手段をちゃんと比較検討している人なわけで、この文章で
取り上げている「前例踏襲主義」の人とはまったく違う人である。そして、ちゃんと仕事をしようとしている人なら反論できてしかるべきなのである。

この「前例踏襲主義」の人は最近とみに増えてきているように感じる。SEの質が下がっている、とは最近よく言われる言葉だが、それを反映しているような気がして
とても残念だ。もちろんそれをよしとしているリーダークラスにも責任はあると思うので、それは私自身気にするべき点である。
少なくとも自分のチームのメンバーはそうさせないように、とは何だかよく分からないうちに人を率いる立場になってしまった人間としての責任だ。



最後に一つ。私は、相手が前例踏襲主義な人だと分かったとき、心の中でいつも質問することがある。



「恥ずかしくないの?」



はたして、「恥ずかしいと思います」と心から言える人は、何人いるだろうか。

Written by Kamiya



SEって、「考える人」と「手先になって働く人」の二極化が顕著になってきてる気がする。

2011/9/4 初稿