凪瀬 Blog
Programming SHOT BAR

目次

Blog 利用状況
  • 投稿数 - 260
  • 記事 - 0
  • コメント - 46952
  • トラックバック - 192
ニュース
広告
  • Java開発者募集中
  • 経歴不問
  • 腕に自信のある方
  • 富山市内
  • (株)凪瀬アーキテクツ
アクセサリ
  • あわせて読みたい
凪瀬悠輝(なぎせ ゆうき)
  • Java技術者
  • お茶好き。カクテル好き。
  • 所属は(株)凪瀬アーキテクツ
  • Twitter:@nagise

書庫

日記カテゴリ

 

今回はビターな大人の味のカクテル。

プログラムの製造現場というのは未だに家内制手工業(資本の関係で言うならば問屋制家内工業という方がより正しい)の 色合いが濃いのですが、作業を分業化して工場制手工業にしたい、ということは経営側の人間なら誰しも思うところでしょう。
プログラミングの工場制手工業というのは工程の横割りです。 いわゆる、SE/PG制も非常に稚拙ではありますが工場制手工業と言えなくもないですね。

分業による効率化というのは、その習熟によるところが大きい。 昨今のWebシステムの開発などは非常に広い知識範囲を必要とするようになってしまいました。
HTMLの構造から、CSSによるレイアウト、JavaScriptによるブラウザ上での動作、 HTTPによる通信、Servletの知識、JSPの知識、DBとの通信の知識といったことに対して習熟して 初めてWebシステムの設計ができるようになるわけです。
こんな人材はなかなか少ないですし、育てるにしても相当の時間を要する。 だが、各パートごとに分業すればすべてができる凄腕プログラマがいなくとも高品質に仕上げられる

ここにコストというものが絡んでくると、バベッジ的な分業効果というものになります。 チャールズ・バベッジ(Charles Babbage、1791 - 1871) はコンピュータ科学者としての活躍が有名ですが分析哲学者として経済的な分析も行った人です。 バベッジの原理では労働を分解し、単純労働を分離して安い労働力をこれに当てることで生産性の向上とコストダウンを図るのです。

昨今、BtoC(ようするに企業が一般消費者向けに行うサービス)でもないのに、Webシステムとして設計されたシステムが多いですが、 これは多分に経済的な理由が大きいと思います。
LANの中だけで使うシステムとしては、近年ではリッチクライアントの手法もあり、Webシステムの配布せずにすむというメリットは それほどアドバンテージではなくなってきました。
なのになぜ、いまなおWebシステムにするのか?
私の経験則からすれば、Webシステムは大規模システムを分業しやすいからではないか、と思うのです。

このバベッジの原理は、じきにIT業界に深く根を下ろすことになるでしょう。そうなると、何が起こるのか? プロジェクトは一部のプロフェッショナルと多数の凡庸なプログラマという取り合わせで行われることになります。
プロフェッショナルへの賃金は向上するかもしれませんが、凡庸なプログラマへの賃金は恐らく下落するのではないでしょうか。 そして、システム全体で見ると製造コストが下がっていくのではないでしょうか。

投稿日時 : 2007年8月3日 12:50
コメント
  • # re: プログラミングの効率と経済
    シャノン
    Posted @ 2007/08/03 13:18
    確かに、分業すればすべてを知っている必要はなくなる。けど、それでも担当する部分についての深い知識があるに越したことはない。
    そして、前述のWebアプリの構成要素の各々、どれをとっても、プログラミングのプの字も知らない新人にまともなものが作れるとは思えない(HTMLだって奥が深いんだぞっ)。
    結局のところ、できあがるモノのクオリティは今と変わらないか、むしろ全体的に低下し、全体を監督するアーキテクトの負担が増えそうな気がしないでもない。
  • # re: プログラミングの効率と経済
    凪瀬
    Posted @ 2007/08/03 14:29
    いや、HTMLの修行だけに明け暮れれば満遍なく漠然と仕事するよりも熟練するでしょう?ということ。

    「分業による効率化というのは、その習熟によるところが大きい。」の部分ですね。
    専門を狭めることで習熟を早めよう、そして本当に技能の要らない仕事は安い労働力にさせよう、という流になるのです。
  • # re: プログラミングの効率と経済
    裏口
    Posted @ 2007/08/03 15:13
    分業による採算管理は難しいです。
    事後に集計するケースだと単純ですが、進行中の原価計算等
    は難易度が高い。
    # ウチは仕掛かり中は人によって異なる原価を反映させず
    # 平均の時間単価で試算する方式だったりするので採算
    # 割れの予測が困難です。

    うまい管理方法が無いと実現はさせても管理面で厳しそう。
  • # re: プログラミングの効率と経済
    凪瀬
    Posted @ 2007/08/03 15:30
    確かにマネージメントの方法論で悩むところですね。

    縦割りにしてモジュール単位で別会社に発注なんてのはよくある話ですが、効率はさておき、マネージメントのしやすさでは利があるからなのでしょうね。

    最近自分がやったプロジェクトではDIコンテナの活用で横割りでの分業がうまくできたので、どうにか生かせないものかと考えています。
    つまり、Webの表面部分、ビジネスロジック部分、DBアクセス部分で3層構造になっていて、それぞれの階層をインターフェース越しに呼び出す仕掛け。
    開発時はモックで仕様書に従って組み上げるのです。

    結局、何をどう作る、どれだけの工数だ、という見積もりができるので受発注には無理はありませんでした。
  • # re: プログラミングの効率と経済
    むら
    Posted @ 2007/08/03 15:42
    特定の技術に特化することで習熟する速度は速まるかも知れませんが、選択出来る技術が固定化してしまうリスクを抱えていると思います。

    また技術を限定することで「一部のプロフェッショナル」が生まれにくい土壌を作ってしまう気が...
    そもそも「凡庸なプログラマ」の中から「一部のプロフェッショナル」は生まれないのかも知れませんが...

    # うちは人別に(ほぼ)正確な原価を計算しています。
  • # re: プログラミングの効率と経済
    シャノン
    Posted @ 2007/08/03 16:34
    > 専門を狭めることで習熟を早めよう、そして本当に技能の要らない仕事は安い労働力にさせよう

    その「本当に技能の要らない仕事」ってのが例えば何なのか気になります。
  • # re: プログラミングの効率と経済
    凪瀬
    Posted @ 2007/08/03 16:44
    >むらさま
    幅の広い人材はどこから生み出されるのか?という問題が別途残るのは間違いないです。

    ただ、ソフトウェアの大量生産というプラントを作るのだ、と考えた場合、多くは特定の技術を一定水準まで学び、生産してくれる職工だったりします。自動車工場のベルトコンベアとかイメージしてもらうとそんな感じ。
    企業というか経営者はそういった金を生み出すプラントを作るのが仕事のようなところがあるので、こういった味気ない話になっちゃうのですが、そこに組み込まれるのを是としないなら自分のキャリアプランをどうするか考えなくてはなりませんね。

    プロフェッショナルは別途育てる必要が出てきますから、いわゆるキャリア組のような階級社会が出来てきそうです…。
    入り口でフィルタリングされてしまう夢のない社会は私は嫌だなぁ。

    >シャノンさま
    「本当に技能がいらない」というと語弊があるのですけど、新人にでも任せられるような高度な技能を必要としない作業ですね。
    程度問題なので線引きは難しい。
    どんな仕事でもプロフェッショナルなやり方ってありますから。
  • # re: プログラミングの効率と経済
    むら
    Posted @ 2007/08/03 16:56
    > プロフェッショナルは別途育てる必要が出てきますから、いわゆるキャリア組のような階級社会が出来てきそうです…。
    > 入り口でフィルタリングされてしまう夢のない社会は私は嫌だなぁ。
    私も同じ様なイメージを持っておりました。
    全く同感です。
  • # re: プログラミングの効率と経済
    凪瀬
    Posted @ 2007/08/03 17:17
    IT職人としては経済なんて知ったことか!と言いたい所なのですが、世捨て人になって隠居してコードを書いているならともかく、その経済の中にいるかぎり、無関心でいるわけにもいきますまい。

    自分たちが経済の中でどう扱われようとしているのか、自分たちの幸せな仕事環境のためにはどうしていくべきか、考えずにはいられないのですよね。
  • # re: プログラミングの効率と経済
    まさぶん
    Posted @ 2007/08/03 17:59
    ネタから外れているかもしれませんが

    >自動車工場のベルトコンベアとかイメージ

    あれはある程度の「繰り返し」生産だから可能に
    なったのです。

    ソフトウェアは「一品」生産で、同じものを大量に
    焼くのは簡単ですが、一つのプロジェクトでは
    繰り返し生産ができません。

    例えばベルトコンベアでDVD、テレビ、冷蔵庫など
    毎回組み立てる物が違うと考えると、例え部品の
    「ネジ」や「ハンダ」は同じでも「トヨタ方式」の
    ような作業の標準化は難しい所です。

    #ウィザードのようなソフトがもっと進化して、
     より人間を支援してくれればと考えています。
  • # re: プログラミングの効率と経済
    凪瀬
    Posted @ 2007/08/03 18:36
    いや、そこをどう「繰返し」に落とし込むか、ということですね。完璧にというのは無理でしょうけども。

    横に細かく層を分けて、作業を細分化することでシステム構築を「繰返し」にしよう、と。
    HTMLを書く人は延々HTMLを書くことで繰返しの部分が多くなるという話です。
    当然ながら画面ごとに仕様は異なりますから完全な繰返しにはならないのですけども。

    そして、DIコンテナといった仕掛けはそれをさせるための横割りを支援している。

    ついでに「繰返し」の作業は人間がやるんじゃなくて機械でやってしまえという動きもでてますね。
  • # re: プログラミングの効率と経済
    シャノン
    Posted @ 2007/08/03 19:37
    1:全体を俯瞰し統括管理するアーキテクト
    2:システムを構成する各々の技術に精通したエキスパート
    3:一山いくらの新人や派遣

    にうまいこと分かれてくれればいいですね。
    1と2だけで3がないと、クオリティは高くなるけどお値段も高くなる。

    ま、現実は1と3だけになっちゃいそうで怖いんですけどね。
    しかも3は中国とか。
  • # re: プログラミングの効率と経済
    凪瀬
    Posted @ 2007/08/03 21:13
    3の部分はどんどん単価下がるでしょうからねぇ。
    技術者を自認するなら1か2でなければならないわけですが、
    最初に3で入るとそこから上に上りにくい階層化が進むといやな感じ。
  • # re: プログラミングの効率と経済
    なちゃ
    Posted @ 2007/08/04 11:33
    1や2に3の人がいたり3に2の人がいるのが現実…
  • # re: プログラミングの効率と経済
    凪瀬
    Posted @ 2007/08/04 15:19
    立場と能力のミスマッチはよく生じていますね。
    契約と現場のミスマッチは経営者の責任ですが。
  • # 大規模システムの設計
    凪瀬 Blog
    Posted @ 2007/08/14 15:16
    大規模システムの設計
  • # 開発工程の分離の是非
    凪瀬 Blog
    Posted @ 2007/10/25 13:33
    開発工程の分離の是非
  • # 静的オブジェクト指向は設計者が苦労を背負込むシステム
    凪瀬 Blog
    Posted @ 2008/05/10 13:02
    静的オブジェクト指向は設計者が苦労を背負込むシステム
  • # ABgQaQXGzuBADkjr
    http://www.luckyvitamin.com/c-1511-glucosamine-for
    Posted @ 2012/01/07 3:48
    I decided to help and sent a post to the social bookmarks. I hope to raise it in popularity!!...
タイトル
名前
Url
コメント