業務システムエンジニアに本当に必要なもの〜過労死しない仕事のために

システムエンジニアの過労死の話を聞くと心が冷えます。体の問題も心の問題も個人差がすごくあってそれも才能の一つと考えると不幸せになりますが、現実においては比較的頑強な個人をベンチマークに労働の量が決められてるように思えます。
最近違う現場にヘルプに行くことが多いのです。いわゆる火消しですね。とはいっても、現場と掛け持ちですから管理的なポジションにはつけず、主に実務面のお手伝いをします。すると、設計書を書いたりコーティングをすることになるわけです。だから、比較的若いエンジニアや協力会社の人と接することになるんですが…
なぜ火消しに呼ばれるかというと、当然ながら成果物が上がらないからです。なぜ上がらないのか。平たく言ってしまえば、その局面において無能な人しか実務が出来ないからに尽きます。ああ、言っちゃったぜ…
設計書を書ける人は客との無意味な調整とスケジュール管理に忙殺されプログラムを書ける人は得意でない業務の設計をさせられ、新人に毛が生えたようなレベルの人がああでもないこうでもないと言いながらプログラムを書く。うん、そりゃダメだわ。
業務エンジニアのヒエラルキー的にはあってるんですが、所属する階層が一段違う。これはもう、人が足りないからです。でも業界的には人が余っているところもあります。つまり、有能な人が足りないことがさらなる有能な人の欠乏を呼ぶと言うデススパイラルですね。
この状態を脱するためにはどうしたら良いのか。マネジメントの観点からは、標準の整備と管理の明確化をする事で作業レベルを下げる、という解決策が提示されます。確かにそれは有効なんですが、それが本当に有効なのはこのエンジニアのレベルと現場としての所属階層が実態と乖離しすぎてない事が前提です。無能をマネジメントするところまでは想定していません。(ちなみにディルバートなんかを見ていると無能問題は海外でもネタになるくらいは問題)
ここで、エンジニアとして言わせてもらうと、マネジメントは戦術に近いと思うわけですね。戦いに至るまでに国を富ませ、練兵を繰り返し、外交を固めるという戦略的行為ではない。開戦したときにすでに負けているような戦いでマネジメントができる事なんて撤退戦くらいのものです。まあ、戦わずして勝つ事はあり得ませんから、せいぜい強兵に励むしかないわけです。しかし、人を成長させる事も、成長しようと考える人もどうも少なくなっているような…
前述した火消しに行ったプロジェクト。詳細設計書が見積の1/4の時間で書けるわけですこの業界の利益額が人月計算を元になされる限り、そのような生産性は不要とみなされますが、じゃあ他の人はどうかというと見積以上の時間がかかってペイしない。だから残業しなきゃならんことになります。もうね、ここでいう生産性ってのは技術力そのものですよ。要件を分析する技術、システム/ロジックに落とし込む技術、文章を書く技術。
よく、業務プログラマーに必要なのは業務の理解、言語なんて何で書いても同じ、と言う人がいます。それは正しいこともあるのですが、大抵は間違っています。正しいのはシステムのアーキテクチャが同一の時。ホストからオープンへの再構築案件でそれやると死にますよ。プリンタの速度に業務が依存してた!なんてのが発覚した日にゃあ完全にアウト。言語は少なからずシステムアーキテクチャに影響を与えるし、業務ロジックの組み方にも影響を与えます。それを知らないで設計書書けるものかそう思いません?
生産性をあげるってのはマネジメントやったり標準化やったりすることではないんですよ。それは次のステップ。品質の管理だと思った方が良いです。それよりも技術です技術。抽象的ですが技術なんですよ。飛び抜けてなくてもいいから広範な知識を。業務も技術のうちだと思って貪欲に習得を。
あるいは、コーティングなんて事務作業だと思っている人は完全に分業化(当然低賃金)でやって行くしかないかもしれませんね。いずれにしても、フェーズにマッチしない人材の投入っぷりはそこに必要な人材が確保出来ないからで、業務がわかるわからない以前なんですよね。
とはいえ、業務システムを作るのに業務知識がないと客と話をできません。でもねえ、何年その業界にいても業務のなんたるかなんて知らないぜみたいな人がたくさんいるんです。一方で、昨日きたのにもう大体概要つかめてるって人もいるんです。もちろん、難しい業務の理解がすぐに完璧って訳にはいかない。でも業務システムエンジニア魂があればまず業務を理解しようとするのは当然だし、なんだかわからないけど要件定義書に書いてることを適当に設計に落とせばいいやなんて思わないはずなんだけどなあ。
つまるところ、これは態度の問題なのかもしれませんね。わからない知らない出来ないというのは僕の中での三大言っちゃいけ「ない」ですが、まあ出来ないのはいろんなファクターがあるので譲るとしても、わからないと知らないはちょっとねえ。
僕はできれば残業せずに帰りたい派なんですけど、仕事が楽しくて頑張っちゃうのはわかんないでもない。でも、ただ淡々と目の前の仕事を適当にこなしてなんの進歩もなく、唯々成果物がそれなりの時間をかけてできて行くだけの仕事をしている人はつまんないんだろうな、と思うとなんで少しでも進歩しようとしないのかちょっと理解できない。事務作業しかしないつもりならフェーズアンマッチといってもそれまでであるし、若くて何も知らなくても、少しでも目の前のことを吸収しようと努力している人は少しづつでも前に進んで行って、いつかは何がしかはできるようになる。そういうひとが集まらないと、業務システムなんてできるわけないと思うんだよね。ただ日常を過ごしただけで応用の効くなにかが身につくと思ったら大間違い。ルーチンワークしかできないとそこから外れた時になんにもできないの。常に頭を働かせて仕事をして欲しいんだよなー。常になぜなにを考えていれば、何のためにどうやってってのは身について行くし、本質がわかれば違うものを作る時に何が差異なのかもわかるようになるからね。
そこまで個々人がやってくると、あとはマネジメントの問題になるんだよね。そうじゃないと会社も辛いのよ。みんなは目の前の仕事をこなしてけばいいと思ってるけど、予定と合わないと会社は下手すりゃつぶれるの。もちろん、見積が悪くてオーバーワークを強いるなんてのは異常事態。でも、妥当なのに成果が上がらないってのは給料なりの仕事をしてないやつがいるから。フェーズアンマッチっていっても、その単価やその年次でできてるべきことができてないだけですから。
もうちょっと、一人一人のプロ意識を高めていかないと、ホワイトカラーの労働ではないんです。