我们有大型企业项目,它们通常涉及将数据从源数据库复制到目标数据库,然后设置许多其他应用程序来同步此数据等。
最后一个项目包含250,000个项目(数据行)。下一个项目将仅包含4,000个项目。项目经理/业务人员认为,该项目应该是完成时间的1/10,因为它只是上一个项目规模的一小部分。
我可以用一个很好的类比来解释,编写代码以将数据从一个系统传输到另一个系统所花费的时间是相同的,而与项目的数量无关-写一个项目或一亿个代码将花费大致相同的时间。观点看法。
我们有大型企业项目,它们通常涉及将数据从源数据库复制到目标数据库,然后设置许多其他应用程序来同步此数据等。
最后一个项目包含250,000个项目(数据行)。下一个项目将仅包含4,000个项目。项目经理/业务人员认为,该项目应该是完成时间的1/10,因为它只是上一个项目规模的一小部分。
我可以用一个很好的类比来解释,编写代码以将数据从一个系统传输到另一个系统所花费的时间是相同的,而与项目的数量无关-写一个项目或一亿个代码将花费大致相同的时间。观点看法。
Answers:
告诉他们,这就像在该国偏远地区修建一条新的四车道高速公路。不管该道路每天被100辆汽车使用还是每天1000辆汽车使用,创建该道路的努力将大致相同。
当然,如果要每天支持一百万辆汽车,您必须使道路更加坚固,但是无论如何,您都必须砍伐相同的树木,冲破相同的山脉,平整相同的数量污垢,无论有多少辆汽车上路,这些活动几乎都是固定成本。
给他们一个计算器,要求他们将1238783423加到9858238483,这需要多长时间。然后要求他们将3423加到8483,并告诉他们您期望答案大约快100000次。
您可能还会解释数据量(可能)会影响软件运行所花费的时间长度,而不是影响开发时间。
并不是一个真正的类比,但我仍然相信有一个处理此论点的好方法:证明其中存在致命缺陷。
您以前的项目包括(从我那里得到的)复制数据并对其进行一些修改。
如果我做对了,那么一个由100名会计师组成的团队可以在几个月内完成这项工作。那他们为什么要让软件开发人员来解决这个问题呢?
因为您创建的软件并不关心它是否会处理10或1000万个数据(不完全是,但是我怀疑您的经理是否关心O(n)
复杂性)。因此,它可能更便宜,更快和更干净(更少出错的过程)。
如果您比较激进,甚至可以建议他们,如果他们不喜欢软件团队的工作速度,他们总是可以请会计师亲自完成工作。
这使您的经理在开发上一个项目时的工作变得轻松多了,而现在,当他们不得不使用相同的逻辑来确定下一个软件是否可以运行1000万或4时,他们就不必在意了。 000行,他们突然忘记了。
我认为在您的情况下,经理们只是在打估计游戏,并试图通过指出4000与250000之间的差异并希望有“罪恶感”来迫使团队更快地工作。我可能是错的,但是我之前已经看过。
这是管理程序员团队(实际上是任何类型的创意团队)的一种糟糕方法,并且对任何人都没有帮助。
我每周都会导入数百个客户端文件。
我发现的一件事是,小文件通常需要更长的时间来开发数据导入,原因是:
我们发现,通过构建具有标准子进程的父子SSIS包,可以节省大量开发时间,并且可以在父级中完成以标准形式获取数据的任何必要操作。这样,当我们进行估算时,它变得不再是多少记录的问题,而是变得越来越接近我们要获取的文件的标准。现在,当较小的东西需要较长的开发时间时,因为它们不符合标准,我们不会收到太多的抱怨。