一口にIT土方と言っても色々な仕事があるが、その中でもブラックという悪名の大元になっている、開発の仕事を新卒から手がけて10年になったタイミングで、上司から「人の上に立つキャリアに行かないなら、技術者として横への広がりを」と勧められ(加えて開発の仕事があんまり取れない事情もあり)、そこから数年ほど運用チームの一員として業務をやってきたが・・・俺にはこの仕事のセンスがまるっきり無いことが判明しただけに終わった。
というか、今はもう運用という仕事に対して憎悪の感情しか沸かない。心底嫌気が差してしまった。
以下、色々向いていなかった系の主張メインの言い訳。
俺が長く手がけた開発は必ずゴールがあり、それを踏まえた細部への落し込みの段取りが仕事の核となる。そしてこの段取りを進める忙しさが常にあり、上手く行かなくなった時はブラック激務が待っていると。
一方の運用は、開発と比べたら桁違いにヒマで、しかもゴールがない。しかし、その緩やかな時間の中で日々業務改善に頭を巡らせ、より上手い回し方を工夫することが肝要である。
まず俺は、この時間感覚・仕事感覚の違いに、結局どうしても慣れなかった。ヒマに任せてひたすら惰眠を貪ってしまい、働かないオッサンに成り果ててていた。
多分このまま行ったら、給料泥棒としていずれ切られるだろう。
それから、今時のシステムにはサーバやスイッチのみならず、大小様々なアプライアンスが含まれる。それもアプライアンスが基幹装置だったりすることは全く珍しくないので、こいつらの監視は非常に重要なのだが・・・俺はこのアプライアンスというやつに全く興味が持てなかった。
真面目な運用者なら仕組みや機能を率先して調べ、業務改善や次期システムの提案に噛ませるなんてするんだろうけど、俺の場合「よくわからんブラックボックスで、でもなんかよろしくやってんだね、じゃあそれでいいんじゃね?」程度にしか思えず、出来れば障害の1つも起きないなら無視したいものだった。
これはもう運用者としては致命的にダメなセンスだろう。開発で例えるなら「ミドルウェアに興味ない」とか「クラスライブラリやフレームワークに興味ない」と言っているようなものである。
そうそう、開発と運用の違いと言ったら、確実に対立するポイントがある。
それは非機能要件の取り扱い。
開発にとって非機能要件というのは「障害発生時の検証用や、機能要件の異常系処理など、恙無くシステムを動かすのに最低限必要な仕組み以外は手を出したくないもの」だったりする。基本的に手を入れ始めたらキリがないので、やればやるほど仕事が増えてしまうのに、それに見合ったカネも時間も用意されていないことが多い(というかそんな見積もりを客に出すのは無理)からである。
一方の運用にとっては「機能要件は満たせていて当たり前で、その上で特に障害時の対応を中心とした非機能要件はきちんと作られるべきもの」である。システムトラブルで矢面に立つのは運用者であり、そこで手も足も出なければ存在意義を問われるのだから当然だろう。
このように非機能要件だけ取っても、同じシステム屋なのに見ているポイントが全く違う。
「正直気にしたって仕方ないような細かいところまで質問してきて、いちいちこっちの回答を言質に取って、その上で文句ばっかり付けてくる面倒な奴ら」
「いつも中途半端なモノを作り逃げし、いざという時も要領を得ない曖昧なことしか言えない、信用出来ない奴ら」
となる。
こういう、ともすれば対立の原因になる認識の違いを踏まえ、身も心も運用者になることが、俺にはできなかったと言ってもいい。
というわけで、これから俺はまた開発に戻る。
「流しのオッサンコーダー」として半年~1年単位で現場を点々とすることになると思うが、何年も椅子に座ってログを眺めているようで眺めていないよりは会社に貢献できるだろう。
或いは若手開発者育成という名の、ブラックな環境に飲まれないノウハウとか、「ハイリスクノーリターン」を避けるサバイバル術伝授とかやってもいいかなーと思っている。若手をOJTで潰すのは許せないので。
この場合、「この人にはどういう言い方をしたら通じるのか」という問題が今以上に重要になるだろうけど、それくらいは受けて立たないとという感じ。