通过估算一年中编写的代码来计算可以节省的时间

时间:2010-01-21 22:11:39

标签: language-agnostic code-analysis project-planning time-estimation

我正在寻找真实的数据和经验,请不要过于主观地接受这个:

在寻找其他内容时,我happened on an interesting statement,部分内容如下:

  

[...]全国平均值为9,000   每年的代码行数   人。[...]

我写了很多代码,但不是全职。当我回顾过去一年的项目时,我做了一个(非常)粗略的计算(只计算代码行,没有评论或白线),我来到大约19.000一年,这使它成为一个项目。如果我可以自动化部分内容,我可以及时和省钱地扣除利润。

为了估算大型项目的省时,我需要平均值。一年中,人们用C#(或其他选择的语言)编写了多少代码行?而且,看看你自己的情况,你会认为你的手写代码可以(部分)自动化并获得什么收益?

5 个答案:

答案 0 :(得分:5)

18000平均每天约36行代码。

每天只有36行代码,问题是什么?问题是调试和重写代码。

没有你可以做的自动编码会加快你的速度 - 事实上,任何你可以自动化的东西都不应该被编码,因为如果你在代码中自动输入某些模式,那么它应该被考虑在内。 / p>

您可以节省时间,更加小心您的编码方式。通过QA更快地完成项目 - 使用更明确,类型安全的语言编写代码并更清晰地编写代码。

同时尽可能地驱动代码数据并进行全面考虑,尽管它会减少您发布的LOC,但它会让每个人的生活更轻松,项目的运行速度更快。

不要自动化代码输入 - 如果可以的话,你做错了!

另一种思考方式 - 您创建的每一行代码都必须进行调试和维护。当你可以创建完全因素化的代码时,为什么你想要想办法给每个人更多的工作(完全因素代码的输入不能自动化 - 几乎按照定义)。

答案 1 :(得分:3)

这是Mythical Man Month中谈到的指标类型。以人日/月/年为单位估算项目,或将代码行计为生产力度量表,可以保证报告不准确。

答案 2 :(得分:3)

首先,编写的代码行与实际生产率无关。至少在我看来,如果你想测量和/或估算生产率,功能点是一个更有效的衡量标准。其次,当指标在很大范围内变化时,平均值通常意味着很小。在这种情况下,几何平均值通常意味着超过算术平均值,但没有(至少)关于方差/标准差的东西,它仍然没有多大意义。

我还注意到,有些相当复杂的模型经过了大量的研究,甚至可以根据实际项目进行衡量,以至少得出一些结论,即他们的结果与现实相关。例如,COCOMO II模型通常会产生比每单位时间使用代码行更好的结果。至少有一个free online implementation(编辑:查看它,现在允许基于LoC或基于功能点的建模)。还有一个工具,如SoftStarFunction Point Modeler),它们将类似COCOMO的模型与功能点结合起来,以使得(至少对我而言)看起来是相当可靠的结果。

答案 3 :(得分:1)

我认为LOC的比率很大程度上取决于项目中的technical debt

我有一个27KLOC的项目(SQL)(加上4K以上的支持)。在这个代码上工作了7个多月,我在项目中增加了3K净新LOC,大约14KLOC仅用于一次性测试(测试以隔离异常,而不是单元测试)。

根据你的测量方法,我写29KLOC /年((3K + 14K)/ 7个月* 12个月),但每年只生产5KLOC(3K / 7个月* 12个月)。

将代码(27KLOC)视为债务,我们的代码每月一次性生成7%(2KLOC),或每年88%(24KLOC)。

假设我可以继续使用整个29KLOC /年,并且假设维护代码的成本保持在88%/年,我的个人项目限制是33K行代码。除此之外,我将花费我所有的时间来支付我的技术债务利息,编写一次性代码,并产生净零LOC。

幸运的是,最后一个3KLOC是重构,这应该会降低我的利率。

答案 4 :(得分:-2)

实际上,这是一个相当BS的问题。即使SLOC信徒也会向您承认SLOC生产力估算仅在类似环境中有效。它不仅因编程语言而异,而且因行业,开发环境,应用程序等而异。

尽管SLOC数字是值得的,但它只是在同一个开发团队中从事类似的项目。