「手順書どおりやったのですが、できません。」
これ自体は、耳を貸す、手を貸すに値するものではあるが、今回の作業はシステムのセットアップで、どうやら行き詰ってるのはミドルウェアのインストール。
たしかに当社製の手順書はあるものの、ネットで探せばわんさか記事が出てくるようなメジャーなミドルウェア。それを調べもしないで、恥ずかしげもなくよくそんなことが言えたもんだ。エラーログの1行目の内容でグーグル先生に問い合わせると、1件目の検索結果で解決した。
目的が、「ソフトウェアを動作させること」ではなく「手順書どおりトレースすること」なんだろう。こうなってくると、あらゆる例外を手順書で網羅しておかないといけない。
少しバージョンが変わっただけで表現や設定項目名の違いにうろたえては、手順書のせいにしていかないといけない。
もちろんそれらの変更を反映して維持していくことは大事だが、本質を理解することはもっと大事だ。
何年か前、新バージョンのシステムを開発してるときに、旧バージョンのソースの1行1行を新しい言語に写経するような作業をしてる若手エンジニアがいた。
これはたとえば、旧バージョンがjava版×oracle のシステムだったとし、新バージョンが python×PostgreSQL のシステムだったとして、javaの命令をpythonの命令文に置き換えるようにして。黙々とやって、無事うんこシステムが完成した。
10年以上保守してきてる旧システムは、お客別のカスタマイズや建て増しでスパゲッティソースになっているにもかかわらず、見事、新言語で最初から三ツ星レストラン級のスパゲッティを完成してみせた。
彼の目的は「ソフトウェアを開発する」ではなく、「別言語で書き直す」だったんだろう。
こういう一人一人のズレに対して、いつもいつも自分が軌道修正をしたり教育したりしていては、体も心も持たない。仕事を教える以前の大前提の問題解決意識みたいなところって、どうやって教えていけばいいんだろ。
自分から見ると、そこが明らかに足りていないのに、彼らはその違いに気づいていない。どうやったら実感してもらえるのさ。