|
前回の記事では、是か非かについては一切書いていない事をあらためて読み返して気づきまして、急遽その2を書くことにしました。
是か非かと問われると、是だと私は答えます。
でも、大中小のソフトハウス(殆どのソフトハウス)では、非なのです。
それはただでさえ多い残業,休日出勤,持ち帰り作業というとても余裕が無い環境で働いている事が原因だと考えます。
要するに、オブジェクト指向なんて考える余裕も無いし、初期コストが従来より多少かかったり、何よりアジャイル的な手法で開発していくために何時終了するのかが今までの工程管理に適わないからというのが理由だと考えます。
Smalltalkで開発している人の話を聞くと、客先の方にヒアリングしながらメモ代わりにコードをジェネレータで掃き出して、「こんな感じですけどどうでしょう」的に仕事を進めておられるという話しを聞きました。
これはSmalltalkだからこそ出来る技なんです(コードビルダーと一体化した環境)が、そういうラピッドプロトタイピングを行なうという事は、工程管理する上で不向きなんですよね。
ある程度のものを客先で作って動きを見てもらいながら作成してしまい、社に戻り再分析,再設計,ビルド,デバッグを繰り返しながら品質と不要なモノのそぎ落とし不足分の足し込み行なっていくというスパイラルをするわけです。
なので、仮に一週間のある人の作業を毎日同じ時間に状況を聞くと、常に「再設計中です」とか「再ビルド中です」なんて笑えない報告をされてしまう事になります。
そういった進捗状況を上司が何と感じるかと思うと、「そんな事はとんでもない、今すぐコーディングしてデバッグしなさい」って事になるわけです。
近視眼的にみるとそんな光景になるのですが、やがて社内で作成したリポジトリ上には汎用的に使えるオブジェクトクラスがどんどん蓄積されており、それらを組み合わせれば、一日で請け負ったシステム開発が完了するって事もまんざら夢物語ではありません。
しっかりとした物事とか事象について分析された、実装されたものが増えれば増えるほど、再利用されていくのです。
再利用したオブジェクトクラスを継承して作成したオブジェクトクラスもまた抽象的であれば、そいつも他のプロジェクトで再利用する事が出来ます。
初期コストはかかるものの、その後には簡単にペイ出来るだけのメリットがある事についてまで許容する環境であれば、是非とも導入すべきなんです。
というよりその様な開発形態でトータルなコストダウンをしないと、中国・インドあたりにどんどん仕事が流れていきます。
もう既に中国・インドへの外注委託化が進みつつあったり合弁企業が出来てたりして、国内で作成していたシステムがどんどん国外で生産されるようになり、SEは日本人が行なうというビジネスモデルが出来上がっているという現実もあります。
ですが、SEって何するの?って要するにエンドユーザに対する御用聞きなんですよね。(言葉は悪いですが)
ですが、ノートPC一台持ち込んでお話ししながらこんな感じで如何でしょうって具体的に折衝するのと、客先で打ち合わせした議事録からガリガリ提案書・仕様書を作成するっていう従来の方法でどちらが楽できるかって、明らかに前者の方がコストダウンしているんです。
海外発注してコストダウンするより、現場SEがオブジェクト指向により分析しながらプロトタイプをその場で作成した方が絶対的にコストが低くなるんです。
そのあたりが、トップ・取締役会・管理職・現場のそれぞれが、そういった仕事の仕方を想像できないって所が非常に歯がゆい所ですね。
という話だけは皆聞いてくれるんですが、実際実践させてくれるわけではありませんので、私自身実はこの業種自体に興味が無くなっているのも事実なんです。
うつも結局根本的にそういった限界を感じたからかもしれません。
オブジェクト指向は是か非かという問いに対する答えですけど、私は必須と思ってます。
なんてこったい。
|