公開日:
更新日:
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は少数派だった。