メルマガ ソフトウェア業界 新航海術 |
ホーム |
バックナンバー |
2010年のシステム開発 |
航海術 |
||
バックナンバーの全文検索 全バックナンバー(古い号が先) 全バックナンバー(新しい号が先) ●:5年後のシステム開発 ●:ブルックスの法則 ●:グーグルの衝撃 ●:保存できないエディタ |
●:製造業の呪縛 ●:請負と派遣 ●:永久運動の設計 ●:大きくなるか、小さくなるか ●:ゴーイング・コンサーン ●:金持ちソフト会社、貧乏ソフト会社 |
●:経営の基準となる数字 ●:借入れと連帯保証 ●:ソフトウェア振替という麻薬 ●:賃金決定の仕組み ●:SE・プログラマの資質 ○:その他 |
************************************************************** _/_/_/_/_/_/_/ ソフトウェア業界 新航海術 _/_/_/_/_/_/_/_/_/ ************************************************************** 第23号 2004/05/10 ▼ まえがき ▼ [5年後のシステム開発]芸術と技術 ▼ [5年後のシステム開発]システム開発と建築の類似性 ▼ [5年後のシステム開発]システム開発と建築との大きな違い ▼ 次回以降の予告 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= まえがき *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= 蒲生嘉達です。お疲れ様です。 本メルマガは、慶の社員(正社員・契約社員)及び慶と契約している 個人事業主の方々に配信しています。 感想をお持ちなら是非返信してください。 第3号でシステム開発の本質的部分が何故難しいのか解説しましたが、 今回はその部分を書き直しました。 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= [5年後のシステム開発] 芸術と技術 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= 第22号で、小説書きの本質的作業はプロット(あらすじ)作りであり、 システム開発の本質的作業は設計であると述べました。 何故システム開発で本質的作業が難しいのでしょうか? 小説は芸術の範疇に属するものであり、その本質的部分である 「面白い粗筋作り」が難しいことは分かります。 芸術はどの国でもいつの時代でも極めて限られた数の個人的才能に 依存します。 一方、システム開発は技術です。 ここでは簡単に「表現されるものが作者自身に内在するのが芸術」 「表現されるものが作者の外部から提示されるのが技術である」と 定義しておきましょう。 外部からの要求があるから技術には「正解」があります。 外部からの要求を満たすものが「正解」なのです。 また、正解があるから、体系的な方法論も生まれます。 体系的な方法論があるから、ある程度の素質を持つ人は努力すれば 誰でも技術者になれるのです。 それに対し、芸術では「正解」が一つには絞れません。 したがって、体系的な方法論は生まれにくいし、体系的な方法論は 芸術家の自由な発想を殺してしまう可能性さえあります。 「正解も方法論もないから小説のプロット作りは難しい」と説明 できます。 このように考えると、システム開発の設計の難しさの説明として、 「小説書きのプロット作りが難しいからシステム開発の設計も 難しい」というだけでは不十分だということが分かります。 システム開発は技術であり、正解も体系的な方法論もあるのですから。 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= [5年後のシステム開発] システム開発と建築の類似性 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= システム開発と同様に巨大な産業を支えている技術である建築と 比較してシステム開発の設計の難しさを考えてみましょう。 建築でもシステム開発でも、表現されるものが作者の外部から 提示されます。建築もシステム開発も、発注者が提示した仕様を 受注者が実現する作業です。 建築とシステム開発とでは、仕様の作成とその実現までの工程 も似ています。一般に建築は次の手順で進められます。 (1)建築家は顧客のために顧客に分かる言葉で設計図を書きます。 この段階での設計は利用者の側から見た設計です。 (2)工事の施工段階に入ると建築家は施工業者のために工事用の 詳細図を作成します。 (3)施工業者は設計者の作成した設計図と詳細図に基づき工事します。 システム開発では要件定義から概要設計までが(1)の作業にあたり、 詳細設計は(2)の作業であり、プログラミング以降は(3)の作業に あたります。 本質的作業と付随的作業という分類で言うなら、(1)が本質的作業、 (2)(3)が付随的作業です。 これだけ見ると建築とシステム開発とは似ています。 しかし、システム開発は建築よりもはるかにやっかいで異質なもの なのです。 建築会社にとって、「計画通りの品質、コスト、納期」を実現する ことは当たり前のことです。 しかし、システム開発においては、システム開発というものが 生まれてから現代に至るまで「計画通りの品質、コスト、納期」を 実現することは常に難しいことでした。 建築においては当たり前のことが、システム開発においては何故 それほどまでに難しいのでしょうか? 次々と高度な新技術、方法論が登場するにもかかわらず、何故 いつまでたっても「計画通りの品質、コスト、納期」を実現できない のでしょうか? *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= [5年後のシステム開発] システム開発と建築との大きな違い *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= システム開発と建築との大きな違いを4つ上げます。 (a)不可視性:視覚化しにくい 建築は3次元空間に物理的に存在するものです。 したがって本質的に視覚化しやすいものなのです。 建築の場合は、素人でも設計図を見てどのような建物ができるのか 十分に理解できます。 それに対して、ソフトウェアは人間の思考という形のないものから 生まれ、最終形はビットのオン・オフとも、不特定多数の人々の 使用とも言える創作物です。 ソフトウェアはどの段階でも自然には視覚化できないものです。 例えば楽譜を見ても素人はどのような曲であるか理解できません。 玄人なら分かるかというと、同じ楽譜でも解釈に大きな幅があります。 ソフトウェアは視覚化しにくいという一点では音楽に似ています。 しかしながら、音楽と違って極端な厳密性が要求されます。 (b)可変性:柔軟すぎる 建築の場合は、途中での仕様変更がいかに大変なことか、素人でも 直感的に理解できます。 一方、プログラムは極端に自由で可塑的な素材なので、顧客も プログラマも仕様変更を安易に考えてしまいます。 また、視覚化のしにくさ故に、顧客は設計図段階では完成像を イメージできず、工程が半分以上進み、おぼろげながら完成像が 見えてきた段階で、「自分のイメージと違う」と言い出します。 つまり、システム開発での仕様変更(顧客の側から見たら変更ではない) の圧力は建築の比ではないのです。 (c)複雑性:量が増大すれば質が複雑化する 建築は規模が大きくなっても部品の種類はさほど増えません。 同種の部品を数多く使って規模的に大きくしていくのです。 体積が10倍になっても、部品の数が増えるのみで部品の種類はほとんど 変わりません。 一方、ソフトウェアは似通っている部品があれば共通化して行数を 圧縮するので、規模が大きくなるということは、部品の種類も増えている ということです。 つまり建築は体積が増えても質的には大差ないのに対し、ソフトウェアは 規模が大きくなれば質的にも複雑になっていくのです。 (d)同調性 家を建てるときにも、北側斜線とか道路斜線とかその家を建てる 環境に基づく様々な制約があります。 しかし、ソフトウェア開発において、そのソフトウェアが動く環境 (インフラ、OS、ミドルウェア、既存システム)から受ける制約は 建築の比ではありません。 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= 次回以降の予告 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= 次号は、5月17日発行予定です。乞うご期待!! -------------------------------------------------- 発行: 株式会社 慶 代表取締役 蒲生 嘉達 y_gamou@kei-ha.co.jp http://www.kei-ha.co.jp TEL:03-5951-8490 携帯:090-1258-6347 |