▲ このウインドウを閉じる |
He that knows little, often repeats it. |
プログラム の ソース・コード は、シンタックス 上、1つの単語を間違えても稼働しない。プログラム を作成する作業は、緻密な作業である。そういう作業と比べたら、事業の状態を記述するために、ザッ とした (おおまかな) 構造図を描く作業は、杜撰に映る。 上流工程とか下流工程という言い方をするが、誤解 (misleading) を生む。 (SDLC の waterfall モデル では)上流工程が下流工程を統率するように勘違いされているが、それぞれの工程の間に断層が生じていて、上流工程のなかで描かれた設計図が プログラム に対して強制力として作用しないから、上流工程の作業を無視して、プログラム を作成することはできる。そして、実際に稼働している オブジェクト・コード が唯一の真実となる。
プログラマ を経験してから SE になる、という キャリア・パス では、プログラマ は 「通過点」 としか考えられていないから、プログラマ も SE も専門職にはならないかもしれない。そうであれば、プログラマ は、SE になるまでの予備軍 (経過勘定) でしかない。
幸い、小生は、第一級の プログラマ たちといっしょに仕事することが多い。彼らが作成する プログラム には、まず、バグ がない。そして、プログラム の構造が見やすい--ソース・コード は コンパクトな (冗長性がない) 記述になっていて、しかも、コントロール・フロー を追跡しやすい。ソース・コード のなかには、「nested-IF (および、IF)」 が、ほとんど、ない。 或る若い プログラマ が、顧客 テーブル の設計をしていたのを小生は、たまたま、観たことがあって、「ひどい (杜撰な)」 設計だったので、助言したことがある。顧客 テーブル のなかに、電話番号が挿入されていた。そして、電話番号の入力は任意だったので、データ のなかには、 null が生じている。こういう データ 構造を 「疑問を感じないまま」、実装すれば、プログラマ 自身が苦労することになる。小生は、彼のためを思って、以下のような助言を与えた。
「電話番号がなければ顧客として扱わない、という事業をやってはいないでしょう。 彼曰く、 「いままで、こういう設計ですから。僕は、『ぺいぺいの』 プログラマ ですから。」 彼の言いかたは、小生に対する皮肉であった。つまり、プログラマ は、「能書きを言う」 コンサルタント とは違って、「実際に稼働する」 プログラム を作成しているのだ、と。「開き直り (so-what attitude)」 である。まるで、シロート の言い草ですね。ただ、そういう態度が、「動けば良し」 という杜撰な プログラム を平気で乱造することになる。「走れば良い」 という杜撰な態度で自動車を製造してはいないし、「稼働すれば良い」 という いい加減な態度で原子力発電所は建設されていない。 小生は、直接に、彼の プロジェクト には関与していなかったので、彼の言いかたを聞いて、助言することを、もう、しなかった--「余計な お世話」 になるから(笑)。ただ、小生は、内心、彼に対して、「一生、『ぺいぺいの』 プログラマ でいなさい。」と冷笑していた(笑)。 営業では、腕の立つ先輩が、後輩に同行して、営業のやり方を指導助言する 「playing manager」 制が導入されているそうですが、先輩のほうも、営業を実際にやっている現役なので、後輩を指導する仕事は 「余計な」 負荷のように感じるようです。なぜなら、腕の立つ人であればあるほど、そういう指導に対して労力を費やすよりも、実際の営業をやったほうが事業に対して貢献することができるから。 「教育」 というのは、マネジメント の大切な責任である、と云われている割りには、丁寧に配慮されていないのが実態のようですね。
SE が「業務知識」を習得するのがむずかしいのと同じように、プログラマ が、データ 設計の技法を理解するのは、むずかしいようですね。 (2003年10月10日)
|
▼ このウインドウを閉じる |