您应该问自己的问题是,销售人员如何知道该功能将花费x开发人员工作日的时间。鉴于即使是具有多年专业经验的优秀项目经理也常常无法分辨这一点,因此,来自销售人员的此类数据似乎极具推测性。
根据我的经验,销售人员通常不进行估算,但会猜测对管理人员或客户而言太多了:如果管理人员准备支付50个工时周的工作,但绝对会拒绝75个工时周的工作,那就告诉我们该功能将需要花费70个工作周来准备重新协商(实际估计这是毫无疑问的),最多需要55个工作周。
这完全取决于您在公司中的影响力。沟通是这里的关键,这是销售人员通常在向管理人员(或客户)解释功能优势时赢得IT专业人员的机会。
请注意,如果您过去的估算非常准确,您将获得声誉和影响力。如果您的估计总是错误的,那么管理层可能会忽略您的建议。
至于估算,由于要考虑很多参数,因此在这里做出有价值的估算非常困难。除其他外:
您实际上知道与VB6相比,您的C#团队熟练吗?是基于实际测量还是只是猜测?
这个团队是否使用C#开发了大型项目?他们是否知道应该使用的工具(IDE,调试器,分析器等)?您是否需要其他许可证(在Microsoft的世界中,这意味着每台计算机数千美元)?
当前项目是否完全清晰,您可以保证迁移时不会有意外?重写所有内容,每个功能是否简单明了,还是会有惊喜?
您有支持C#的基础结构吗?持续集成又如何呢?那你的构建服务器呢?风格指南?静态检查器?
在生产中,服务器(如果是Web应用程序)或客户PC(如果是台式机应用程序)是否能够运行您希望使用的.NET Framework版本?
但是最重要的是要知道为什么要重写所有内容。什么是你试图通过重写来解决这个问题?生产力下降?您如何衡量?您如何向管理人员显示这种生产力损失?
一旦证明自己由于VB6浪费了每天$ 8 000(这意味着一旦迁移到C#,您每天将节省$ 8 000),如何解释进行每个新功能开发的好处以及专注于完整的重写?与渐进式重写相比,您在交付新功能时一小块一小块地迁移组件有什么好处?