ブログトップ

公開日:

更新日:

7 min read

技術文化史

システム開発の実際(中編):コーディングとプログラミング

システム開発の実際(中編):コーディングとプログラミングのイメージ

(前回はこちら)

人月の次に覚えたのはPGとSEだった。PGはプログラマー、SEはシステムエンジニアの略だ。

コーディングとプログラミングの違い

現場での認識

会社ではプログラミングとコーディングなる用語が飛び交っていた。 勘定系の社員と話をすると、プログラミングという言葉はでてこない。

「俺らはさ、設計書の通りにコーディングして、単体テストをするだけ! このコードが何のためにどこで使われているのかなんて、さっぱり知らないし、興味もない!」

そういうものなのかな?

「COBOLなんて、“MOVE” “GO TO” “PERFOME” だけ知っていれば、コーディングできる!」

そういうものなのかな???

定義の整理

実際には、コーディングとプログラミングの違いは次の通りであった。

  • コーディングは、設計書をプログラム(ソースコード)に落とし込むこと
  • プログラミングは、設計書からプログラムを作成し、テストして完成させること

開発環境の歴史

パンチカードの時代

そういえば、なんでunixにはed(ラインエディタ)とvi(スクリーンエディタ)があるんだろう? なんでも、その昔は設計→コーディング→パンチカード入力→コンパイル→リンク→ロード→テストという流れだったらしい。

パンチカードでプログラムを入力するのは、ほぼほぼ若い女性で、この人たちの機嫌を損ねると大変なので、機嫌を取るのが日常的に不可欠だったらしい。 急ぎのときはケーキを差し入れして、内緒で割込みをかけてもらうこともあったようだ。 へたくそなコーディングをすると、それを読んで怒った先輩が、パンチカードを窓から外に投げ捨てるので、それを集めるのが大変だったとも聞いた。

しかも、1990年頃でも、パンチカードは現役だった。 NTTデータに派遣された社員が興奮気味に話していた。

「仕事で日立のDIPSを使ってるんですけど、まさかのパンチカードですよ! あんなの、専門学校の研修で行った博物館でしか見たことないのに、まさか自分が仕事で使うなんて!」

パンチカードは1枚1行。そのためCOBOLやFORTRANのプログラムは、1行の長さが80桁と厳格に決められている。

エディタの進化

このパンチカードをコンピューター上で編集できるようにしたのが、ラインエディタ。 当時としては革新的だったと思う。 次に登場したのが、行を束ねて編集できるスクリーンエディタだ。 だから、viでもedが使えるのだろう。

システム開発の実務

開発工程

私の案件は制御系でC言語。 業務は開発工程とやらがあった。

略語工程名
FD機能設計
DD詳細設計
MK製造
FT単体テスト
IT結合テスト

PGの担当はDDとMKとFT、ITはSEの担当だと言われた。 現実には、元請けからは機能設計書を渡されており、業務では機能設計書のレビュー及び詳細設計から結合テストまでが担当工程だった。 作業は詳細設計なんてせずに、機能設計書を直接プログラミングしていた。 見積はステップ数(=プログラムの行数)で行われていて、1人月は400ステップだったか…(覚えていない)で計算されていた。 テスト項目数も1000行当たりの項目数が決まっていた。

実際、1.5万行くらいプログラムを書いた記憶がある。

以上から、次のように導き出せる。

  • コーディングはMKに相当
  • プログラミングはDD→MK→FTに相当

PGとSEの実態

つまり、開発工程の担当の違いが、PGとSEの違いなのか?

当たっているが、否。

経験2年までがPGで、経験3年目からはSEだという。

その通りだが、それも違う!

会社にとって、PGとSEの違い。それは「単価の違い」なのだ。 PGは単価が低い。SEは単価が高い。 重要なのはSEであって、PGではない。

受託案件の場合は、社内で開発するために、客先から人数が見えない。 そのため、優秀なエンジニアがいれば、何人分もの仕事をこなしてしまい、その分も請求できるからお得らしい。 その代わり作業場所やある程度の機材を用意しなければならない。 もしも開発に失敗したら、大損する可能性もある。

対して派遣は、あくまでも一人なので、受託のような旨味は無いが、受託開発のように会社が作業場所や機材を用意する必要が無い。 人数さえそろえて派遣できれば、金になるのだ。 同じ派遣なら単価が高いほうがいい。

だからPGよりもSEが大事なのだ。

それなのに、会社にいるのは若手のPGばかり。SEは少数派だった。