すべてのITエンジニアは、最低限でも自分が携わる業界の業務知識は頭に入れておかなければなりません。PMやSEならば当然ですが、プログラマやテストエンジニアであっても業務知識は必要です。なぜならば、そもそもITとは業務をサポートするためのものだからです。サポートするべき業務すら知らずに職務を全うすることは、ゴールも見ずに走り続けているようなものです。
あるところにひたすら石を積み上げている男達がいました。
私 「あなた達は何をしているのですか?」
男A「見たら分かるだろ。石を積み上げているんだよ。」
男B「砦を作るために石を積み上げているんだよ。」
男C「領地を守る砦を作るために石を積み上げているんだよ。」
今自分がやっていることが目的なのか、手段なのか。この2つの違いをきちんと理解しなくては、目的と手段がすり替わっていることに気づけません。
男Aは石を積み上げることが目的になっています。
男Bは砦を作ることが目的になっています。
男Cは領地を守ることが目的となっています。
もしあなたが王様だった場合、どの男に多くの報酬と権限を与えますか?という話です。
男Aは積み上げることだけが目的なので、強風が吹いたらすぐに倒れてくるかもしれません。すくなくとも男Bが積み上げた石の方が、防御力は期待出来ます。さらに男Cは敵の方角の壁を高くするなどの工夫にも期待出来ます。石を積み上げる行為は単なる作業ですが、領地を守る工夫は本来の仕事だと言えます。
上記例をそのままITエンジニアに置き換えた場合、
私 「あなた達は何をしているのですか?」
男A「見たら分かるだろ。プログラミングしているんだよ。」
男B「システム構築のためにプログラミングしているんだよ。」
男C「業務を円滑にするシステム構築のためにプログラミングしているんだよ。」
業務知識を理解していないプログラマが、コーディングをしてしまうと設計の誤りに気づけません。設計ミスはSEの責任なのかもしれませんが、そこはチームプレーなので他責にするようでは進歩がありません。優秀なプログラマは設計の誤りに気づき指摘出来るし、もっと良い案を提案することだって出来ます。プログラミングだけなら単なる作業ですが、業務を円滑にする工夫は仕事と言えます。ようするに、ITエンジニアが本来の仕事をしたければ必ず業務知識が必要であって、業務知識を持ち合わせていなければ仕事は出来ません。
若いエンジニアの方の場合、任されているタスクは大きなシステムのほんの一部分かもしれないので、全体像を掴むのは難しいかもしれません。だからといって何も考えずに石を積み上げるだけの人生で終わってしまうのはあまりにももったいないです。業務知識を習得するのに自力だけでは限界があるようなら、遠慮なくSEの先輩に聞いてみたり、勇気を出して業務部門の方やクライアントに聞いてみて下さい。案外優しく教えてくれるものです。
コメント