次の DEMO を見に行く
ポエム

コードが書けなくてもITエンジニア

arthur

はじめに

未経験の方には信じられないかもしれませんがSierと呼ばれる業態のシステムエンジニアと呼ばれる人たちの中にはソフトウェアを作成する能力がない人が結構います。 私が見た中では20年近くこの業界で働いているにもかかわらず、設計もコーディングもできない人を見たことがあります。 かくいうわたしも元は文系大学出身で数学は苦手です。プログラムは実務経験を積む中で憶えていきました。 今回は未経験の人でもシステムエンジニアになることは難しくないということをお伝えするために私が見聞きしたことがある事例を紹介します。

名前の決め方が下手

設計やコーディングなどでは様々なものに名前を付ける機会があります。 変数名、メソッド名、ファイル名、テーブル名、カラム名…数え上げればきりがないほどです。 経験が乏しい人ほど名前を付けるのが下手です。なぜ下手なのかを考えたのですが、おそらくどのような役割を持った機能、あるいはファイルなのかということが言語化できていないのだと思います。

以下はかわいい例です。

int a = 0;
int zero = 0;

最近見た中で一番衝撃を受けたのは名前が完全に統一されているものです。 例としてネット通販サイトのデータベース(データの集まりみたいなものです)から取得した情報を利用する処理を使いましょう。以下の内容からどのようなデータを格納しているのか想像できるでしょうか。

var user;
var user1;
var userId;
var userMaster;
var userMasterId;

答えは以下のようなものでした。

var user;         // ユーザ情報
var user1;        // カートの中身
var userId;       // ユーザの住所
var userMaster;   // ユーザの購入履歴
var userMasterId; // 支払情報

…おそらく想像できた人はいなかったのではないでしょうか。私も見たときは驚愕しました。同時にこれを自分が直さなければならないと考えて絶望しました。でもこのレベルのコードを書いてくるエンジニアはたくさんいます。 念のため言っておくと、このコードが書かれたのはここ数年以内であり、古くからあるレガシーシステムではありません。現代のエンジニアが書いたコードです。

自分が書いた処理の内容を説明できない

実際には自分で書いてないんだと思います。俗にいうコピペプログラマというやつです。システムエンジニアとして働いていると大体既存のシステムを改修することが多いです。そうすると、大体はコードや設計をコピーできる場所があります。そのため、コピペだけで何とかなるケースがそれなりに存在するということです。 コピペ元が適切であれば「ちゃんとできてるな」と思って見過ごされます。この事態が露呈するのはコピペ元の選び方に失敗したか、改変に失敗した場合です。 間違ったときには「なんでこんな風に作ったの?」という旨のことを訊ねられます。コピペプログラマはどうしてこうなっているのかは説明できないため、ここでばれるということです。経験上、どの職場にも1人か2人はいますが、プロジェクトに配属させている人もそのことをわかっています。その場合は大抵はサポートする人がセットで配属されています。いざとなれば、サポーターやリーダーが何とかしてくれるということです。

同じ処理を何度も書いている

コーディングをしていると同じような処理が何度か現れることがあります。プログラムを書いていると共通する処理を再利用できるように処理を記述する方法があります。(メソッド化、関数化と呼ばれています) この手の話になるとDRY原則という原則が持ち出されます。しかし、メソッド化は奥が深く、適切に処理を共通化しなければ逆に修正が難しくなるケースもあります。 とはいえ、ここで語るのはそのような高度な話ではありません。全く同じコードが何度もたくさん書かれているのです。おそらくですが、これも単にコピペしているだけなのだと思います。ただ、誤りでないためこの点を追及する人はそれほどいない印象があります。

コメントの書き方が”ずれている”

“ずれている”というあいまいな表現になっているのは私の語彙力のなさによるものです。 コードが書けないエンジニアは以下の2パターンで対処しているように見えます。

  • そもそもコメントを書かない
  • コピペ元のコメントをそのまま書いている

最も多いのはコメントを書かないというのが対処方法です。メソッド化と同様コメントも語りだすと奥が深く、適切なコメントを書くにはある程度のスキルが必要になります。また、日本語で書けることから処理内容との齟齬に気が付きやすくなります。おそらく、それを避けるためにコメントを書くことを避けているように感じています。 コメントを書かないことには優位性があり、コードを見れば処理内容がわかるのだからコメントを書くのはムダという汎用性が高く技術力が高く見える言い訳を使っていることも多いです。

まとめ

いかがでしょうか。エンジニアにはコードや設計をすべてコピペで済ませる人もいます。実際にそれで仕事は進んでいます。特に古くからあるシステムの保守が多い大手のSIerほど生き残れる場所があります。

これは推測なのですがコードを書けないエンジニアはブロックの組み立てをしている感覚でいるのだと思います。処理や設計の”形”を憶えていて、やりたいことに合わせてブロックを組み立てるように作っているのだと思います。

この方法論は普通の仕事にも当てはまります。なぜなら、仕事にはある程度のパターンがあるためです。エンジニアもそれは同じです。他の専門職のようにエンジニアにはコーディングや設計という仕事があるというだけです。コーディングや設計も仕事の内容をタスクとして分割していくとある程度のパターンがあります。また、わからなければ質問をするなど基本的な仕事のスキルがあれば助けてくれる人がいるパターンは多いです。 他にもいまでもシステムエンジニアは売り手市場です。とにかく現場に人を送れば会社は利益を得ることができるという構造上、”誰でも作れるようにする”という思想がSIer業界には根付いています。そのことも、技術的な知識がなくとも働くことができる助けになっていると思います。

リーダブルコードなどの名著やプログラミング言語の入門書を読むことで改善できる内容です。中にはハローワークで受講できる講座も有効です。名前の付け方が上手、自分で書いた処理を自分で説明できる。これだけでSierという業界の中では比較的”高スキル人材”と呼ばれる存在になることができます。

ABOUT ME
ケン
ケン
ヨワモンのパートナー
ヨワモンのパートナー
記事URLをコピーしました