コーディングとプログラミング:1990年のパンチカードとPG/SEの実態
人月の次に覚えたのはPGとSEだった。PGはプログラマー、SEはシステムエンジニアの略だ。
コーディングとプログラミング
会社ではプログラミングとコーディングなる用語が飛び交っていた。勘定系の社員と話をすると、プログラミングという言葉はでてこない。
「俺らはさ、設計書の通りにコーディングして、単体テストをするだけ!このコードが何のためにどこで使われているのかなんて、さっぱり知らないし、興味もない!」
そういうものなのかな?
「COBOLなんて、“MOVE” “GO TO” “PERFORM” だけ知っていれば、コーディングできる!」
そういうものなのかな???
実際には、コーディングとプログラミングの違いは次の通りだった。
- コーディングは、設計書をプログラム(ソースコード)に落とし込むこと
- プログラミングは、設計書からプログラムを作成し、テストして完成させること
パンチカードが現役だった1990年
そういえば、なんでUNIXにはed(ラインエディタ)とvi(スクリーンエディタ)があるんだろう? なんでも、その昔は設計→コーディング→パンチカード入力→コンパイル→リンク→ロード→テストという流れだったらしい。
パンチカードでプログラムを入力するのは、ほぼほぼ若い女性で、この人たちの機嫌を損ねると大変なので、機嫌を取るのが日常的に不可欠だったらしい。急ぎのときはケーキを差し入れして、内緒で割込みをかけてもらうこともあったようだ。へたくそなコーディングをすると、それを読んで怒った先輩が、パンチカードを窓から外に投げ捨てるので、それを集めるのが大変だったとも聞いた。
しかも、1990年頃でもパンチカードは現役だった。NTTデータに派遣された社員が興奮気味に話していた。
「仕事で日立のDIPSを使ってるんですけど、まさかのパンチカードですよ!あんなの、専門学校の研修で行った博物館でしか見たことないのに、まさか自分が仕事で使うなんて!」
パンチカードは1枚1行。そのためCOBOLやFORTRANのプログラムは、1行の長さが80桁と厳格に決められている。このパンチカードをコンピューター上で編集できるようにしたのがラインエディタ。次に登場したのが、行を束ねて編集できるスクリーンエディタだ。だから、viでもedが使えるのだろう。
PGとSEの実態
私の案件は制御系でC言語。業務には開発工程があった。
| 略語 | 工程名 |
|---|---|
| FD | 機能設計 |
| DD | 詳細設計 |
| MK | 製造 |
| FT | 単体テスト |
| IT | 結合テスト |
PGの担当はDDとMKとFT、ITはSEの担当だと言われた。現実には、元請けからは機能設計書を渡されており、業務では機能設計書のレビュー及び詳細設計から結合テストまでが担当工程だった。作業は詳細設計なんてせずに、機能設計書を直接プログラミングしていた。見積はステップ数(=プログラムの行数)で行われていて、テスト項目数も1,000行当たりの項目数が決まっていた。実際、1.5万行くらいプログラムを書いた記憶がある。
以上から、次のように導き出せる。
- コーディングはMK(製造)に相当
- プログラミングはDD→MK→FT(詳細設計→製造→単体テスト)に相当
つまり、開発工程の担当の違いが、PGとSEの違いなのか?
当たっているが、否。
経験2年までがPGで、経験3年目からはSEだという。その通りだが、それも違う!
会社にとって、PGとSEの違い。それは「単価の違い」なのだ。PGは単価が低い。SEは単価が高い。重要なのはSEであって、PGではない。
受託案件の場合は、社内で開発するために客先から人数が見えない。そのため、優秀なエンジニアがいれば何人分もの仕事をこなしてしまい、その分も請求できるからお得らしい。その代わり作業場所やある程度の機材を用意しなければならない。もしも開発に失敗したら、大損する可能性もある。
対して派遣は、あくまでも一人なので受託のような旨味はないが、会社が作業場所や機材を用意する必要がない。人数さえそろえて派遣できれば金になるのだ。同じ派遣なら単価が高いほうがいい。だからPGよりもSEが大事なのだ。
それなのに、会社にいるのは若手のPGばかり。SEは少数派だった。