汎用性とは?・・・
2008.05.02
汎用・・・広くいろいろな方面に用いること
今回はソフトウェアにおける汎用性とそれを作るプログラマ・SEの
苦労について書こうと思います。
先ほど述べた通り汎用性とはいろいろな
方面で用いることのできるステータスです。
平たく言えば「誰でもどんな状況でも役に立つ機能」
これが汎用性の最高だと私は思います。
ではこの「汎用性の高い機能」を作る事でプログラマがどれだけの
苦労をするのか?についてですが・・・
機能によります。笑
例えばあるユーザーの方から機能追加の依頼を受けたとします。
ここで注意しなければいけないのはこのユーザー様にご利用して頂いている
ソフトウェアが
「受託開発によるもの」なのか
「パッケージ製品」なのかです。
受託開発によるソフトウェアをご利用頂いてる場合は
まだそれほど悩む必要はありません。
・データの整合性
・プログラムの構造的に可能なのか?
・機能追加(もしくは機能自体)による矛盾が生じていないか?などです。
では「パッケージ製品」の場合は?・・・
これは大変です。
「受託開発によるもの」の際に考えられた問題 + その機能に汎用性があるか?
これを考えなければいけません。
パッケージ製品である以上、他のユーザー様のことも
考えなければならないからです。
考えずに追加して「この機能必要ないんだけど?」
なんて話はいくらでも耳にします。
では仮に汎用性が無い機能だった場合はどうすればいいのでしょうか?
それと同様の機能をもち、汎用性のある機能を考え、
ユーザー様に提案する必要があります。
こうした試行錯誤だけでも相当なものですが、
プログラマ・SEはさらにプログラム内での汎用性も考えなければなりません。
機能を分解し、汎用性の高い機能は共有できる箇所に作成する・・・
汎用性の高い機能・ソフトウェアは魅力的ですが、それと比例して
打ち合わせ・要件定義・設計・コーディングの難易度や必要な濃度も上がってくる・・・
「機能追加は慎重にしないといけないなぁ」
なんて、最近改めて思ったりしています。