2014年4月21日月曜日

似て非なるものは分けて考える

前回の続きとなりますが、

「似て非なるものは分けて考える」

についてです。

ソフトウェア開発は、「似て非なるもの」だらけでは無いでしょうか。

私もこの業界でいろいろとソフトを作ってきましたが、
ほとんどが似てるけど、ちょっと違うもの な気がします。

例えば、
ある機能を少し拡張した開発は
変更前とは少し違うもの になりますし、

例えば、
組込み機器の外部I/Fを変更する開発は
やる事は同じだけど、I/Fだけを置き換える

例えば、
機種Aのある機能を機種Bに移植する開発は
機能は同じでも、機種B用の少し違うものになる

例えば、
以前実施した機能移植作業を新人技術者を入れて実施する開発は
やる事は同じでも、体制が少し違うものになる

などなど

この他にも、視点を変えると
似て非なるものが、たくさん発見出来る気がします。

それらを、分けて考える事って、とても大事だと思うのです。

なぜかというと、

理由その1:シンプルになる

細分化する事で、要求や変更内容など
「非なる点」をシンプルにする事が出来ます。
異なる点がシンプルになれば、対応もシンプルに出来ます。


理由その2:早くなる

上記と関連しますが、対応がシンプルになれば
対応時間が早くなります。
つまり、生産性の向上に繋がります。


理由その3:似てるから「同じ」と決めつけない

本当に同じなら問題無いのですが、
よくある失敗に、
「〇〇と同じだと思ったが、実際は違った」
という事があります。
分けて考える事で、決めつける事の防止と、
「同じ」である事の確認となります。


理由その4:似てるものを共通化しない

似てるものを共通化し、結果的に複雑になってしまい
メンテナンス性を低下させてしまう例があります。
これを回避する為に、分けて考えて
違うものである場合は、共通化せずにシンプルにします。


「似て非なるものは分けて考える」
と同じように、理由やその効果についても
視点を変えると、違う効果、理由がまだまだ見つかる気がしますね....




0 件のコメント:

コメントを投稿