ポーティングにかかる工数

この経済状況は弊社にも影響して、次の仕事が決まらない状況。今の仕事は3月で終わりだということだけが決まっている。
そんなわけで、次の仕事の受注のために、見積もりだのを頼まれることがあるのだが、見積もりは苦手だ。そして、あまり信じていない。もちろん、どこを見積もるか、何を見積もるかでかなり精度高くいけるというのは経験則からもわかるが、上流工程からの見積もりなんて、ぶれ多いし、不確定な部分も込みで、だし、けど、リスクいれると費用が高くなって受託失敗したりするし。そして、下流においても、大規模なプロジェクトであれば、平均的にっていう手法がとれるけど、数人のプロジェクトだと、個々のスキルと、何よりもモチベーションで、数倍のずれは簡単にでてしまうし。まぁ、そのことはまた別の日に書くとして・・・

今動いているあるソフトを別のプラットフォームでも動かして欲しいという依頼があるらしい。そのための工数を見積もって欲しいと言われたのだが、どうしたものか。

似たような環境であれば、もしかすると、インストールするだけで、ある程度動きが期待できるかもしれない。しかし、全く違うプラットフォームだと、なにげに呼んでいるシステムコールですら保証できないかもしれない。前者だと、うまくいけば、数日。後者だとやもすると、すべてが作り直しで、数ヶ月から1年程度(を数人で)ってなるかもしれない。

何を基準に見積もるべきなんでしょうな。外部関数(移植対象外の関数)のコール数で見積もるべきなのか?それとも、全部作り替えということを想定して、今あるソフト(移植対象)のコード規模で見積もるべきなのか?