日々常々

ふつうのプログラマがあたりまえにしたいこと。

プログラマになろう

もうすぐ4月になると言う事で、時事ネタ。コの業界、特にエンタープライズSIerやその協力会社なんかに就職される方向けに、夢や希望をなるべく潰さないつもりで書いてみる。

PGになってはいけない

SIer用語でPGって言葉があります。あとSE、PL、PMとかありますけど、序盤は関係ありません。これらは契約形態は違うのですが、作業内容よりも主に単価で分けられます。で、PGは「末端作業員」と言う意味です。
PGはプログラマではありません。プログラマに失礼です。PGにプログラムは作れません。また、PGはコーダーでもありません。PGにコードは書けません。PGはSEの指示の元、似た事をしている既存システムのコードを切り貼りして、それっぽく動くものを作る下請け作業員でしかありません。そこに創造的な仕事は一切ありません。多くのPGは自らの意思か外部からの圧力によって、思考を放棄もしくは停止しています。PGがするのは仕事ではなく、単純作業です。PGになってはいけません。
責任も無く、既存システムやWebに転がってるコードをコピペして、なんか知らないけど動くっぽいものを作りたいと言うなら止めません。

SEになってはいけない

PGに指示をするのがSEならば、SEになれば創造的な仕事が出来るかと思いきや、そうではありません。SEは上級PGがそう呼ばれる事もありますが、PGを介さずにSEになる人も居ます。SIer用語で言うところのSEは「ドキュメント書き」と言う意味です。
SEはシステムエンジニアの略らしいのですが、とてもエンジニアとは呼べません。設計書と言う名のExcelドキュメントを書いて、お客さんやリーダーと時間を捨てるような会議を繰り返し、似た事をしている既存システムの設計書を切り貼りして、それっぽく見栄えのいいドキュメントを作る作業員でしかありません。ある程度業務フローを意識した作りはありますが、大半は既存の流用なので創造性や独自性を持たせると寧ろ上手くいかなくなります。また、多くのSEはプログラミングに精通しているわけでも設計技法を学んでいるわけでもないので、プログラミングを意識した設計がされる事は殆どありません。万一それらを修得していたとしても、実装は前述のPGがする作業なので、するだけ無駄です。SEになってはいけません。
お客さんやリーダーとPGの板ばさみを取り持ったり、Excelで綺麗な方眼紙ドキュメントを書きたい言うなら止めません。

プログラマになろう

コンピュータに魅せられてこの業界に興味を持ったのなら、PGやSEなんて最初から選択肢にすらならない筈です。PGやSEのやっている事は、プログラマにとってはコンピュータにやらせる作業が大半です。プログラマがPG作業、SE作業をやると極端に短い時間で出来上がる事もしばしばあります。5人掛かりで一週間かかる作業も、1時間足らずで片付いたりします。
プログラマを冠した本を読みましょう。特にこの2冊。

プログラマが知るべき97のこと

プログラマが知るべき97のこと

達人プログラマー―システム開発の職人から名匠への道

達人プログラマー―システム開発の職人から名匠への道

  • 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/11
  • メディア: 単行本
  • 購入: 42人 クリック: 1,099回
  • この商品を含むブログ (348件) を見る
コの業界の一部ではプログラマは非常に苦労します。ありとあらゆるトラブルが舞い込んできます。単純な環境問題から、既存の情報だけでは困難なお客さんの夢に応える等、PGやSEがどうしようもない事は山ほどあり、それらを解決/実現させる事ができるがゆえに、プログラマを擁したチームはプログラマに依存します。
これらの苦労は望むところかもしれませんが、職とするのだからお金が絡んできます。ぶっちゃけ、良くてもSE単価止まりです。コードを書き続けるとPG単価まで買い叩かれます。また、前述のように作業単位の実働時間が短くなるため、人月単価の元ではさら収入は少なくなります。PGが1ヶ月かかることを1日で片付けてしまうので、作業あたりの金額は1/20になります。もちろん残りの19/20に別の作業を割り当てられるので額面では並びますが、そこにプラスアルファはまずされません。
待遇面で不満はあるかもしれませんが、プログラマになると「コンピュータを使って創造的な仕事をしたい」みたいな欲求を持っていればそれは満たされます。コの業界で作業じゃなく仕事をしたいならプログラマです。

外の空気に触れよう

井の中の蛙にならないこと。会社によっては、特定のお客さんと付き合っていたり、固まりきった開発スタイルがあったりで閉じた世界になっています。そういうところは得てして時代遅れです。システム開発の分野は3年もすれば最先端も時代遅れです。なのに10年前の仕組みで運用していて、更新とか言って5年前の仕組み持ってくるとかもザラです。
そんな所で一人でどれだけ本を読んだりしていても、簡単にレガシープログラマになれます。それは避けるべきです。外の勉強会に行きましょう。最初は戸惑うと思います。会場にどう入っていいか判らないところからかもしれません。知らない言葉がバンバン出たりもします。大丈夫、皆最初はそんなもんです。とにかく触れ、肌で感じ、そして実践すること。いつになっても遅いって事は無いと思いますが、なるべく早いうちがいいとも思います。