[英]Calculating how much time you can save by estimating the code you write in a year [closed]
我正在寻找真实的数据和经验,请不要过于主观地接受这个:
在寻找其他东西时,我碰巧发表了一个有趣的声明 ,部分内容如下:
[...]全国平均每人每年9,000行代码。[...]
我写了很多代码,但不是全职。 当我回顾过去一年的项目时,我做了一个(非常)粗略的计算(只计算代码行,没有评论或白线),我来到大约19.000一年,这使它成为一个项目。 如果我可以自动化部分内容,我可以在时间和金钱上扣除利润。
为了估算大型项目的省时,我需要平均值。 一年中,人们用C#(或其他选择的语言)编写了多少代码行? 而且,看看你自己的情况,你会认为你的手写代码可以(部分)自动化并获得什么收益?
18000平均每天约36行代码。
每天只有36行代码,问题是什么? 问题是调试和重写代码。
没有你可以做的自动化编码会加快你的速度 - 事实上,任何你可以自动化的东西都不应该被编码,因为如果你在代码中自动输入某些模式,那么它应该被考虑在内。
你可以节省时间的地方是要更加小心你的编码方式。 通过QA更快地获得项目 - 使用更明确,类型安全的语言和代码更清晰地编写代码。
同时尽可能地驱动代码数据并进行全面考虑,尽管它会减少您发布的LOC,但它会让每个人的生活更轻松,项目的运行速度更快。
不要自动化代码输入 - 如果可以的话,你做错了!
另一种思考方式 - 您创建的每一行代码都必须进行调试和维护。 当你可以创建完全因素化的代码时,为什么你想要想办法给每个人更多的工作(完全因素代码的输入不能自动化 - 几乎按照定义)。
这是神话人月中谈到的指标类型。 以人 - 天/月/年为单位估算项目,或将代码行计为生产力度量表可确保报告不准确。
首先,编写的代码行与实际生产率无关。 至少在我看来,如果你想测量和/或估算生产率,功能点是一个更有效的衡量标准。 其次,当指标在很大范围内变化时,平均值通常意味着很小。 在这样的情况下,几何平均值通常意味着不仅仅是算术平均值,但没有(至少)关于方差/标准偏差的东西,它仍然没有多大意义。
我还注意到,有一些相当复杂的模型经过了大量的研究,甚至对实际项目进行了测量,以至少得出一些结论,即他们的结果与现实相关。 例如, COCOMO II模型通常会产生比仅使用每单位时间的代码行更好的结果。 至少有一个免费的在线实现 (编辑:查看它,现在允许LoC或基于功能点的建模)。 还有一些工具,如SoftStar和Function Point Modeler ),它们将类似COCOMO的模型与功能点相结合,以获得(至少对我来说)相当可靠的结果。
我认为LOC的比率很大程度上取决于项目中的技术债务 。
我有一个项目(SQL),它是27KLOC(加上4K以上的支持)。 在这个代码上工作了7个多月,我在项目中添加了3K净新LOC,大约14KLOC仅用于一次性测试(测试以隔离异常,而不是单元测试)。
根据你的测量方法,我写29KLOC /年((3K + 14K)/ 7个月* 12个月),但每年只生产5KLOC(3K / 7个月* 12个月)。
将代码(27KLOC)视为债务,我们的代码每月一次性生成7%(2KLOC),或每年88%(24KLOC)。
假设我可以继续每年完成29KLOC,并假设维护代码的成本保持在88%/年,我的个人项目限制是33K行代码。 除此之外,我将花费我所有的时间来支付我的技术债务利息,编写一次性代码,并产生净零LOC。
幸运的是,最后一个3KLOC是一个重构,这应该会降低我的利率。
实际上,这是一个相当BS的问题。 即使SLOC信徒也会向您承认SLOC生产力估算仅在类似环境中有效。 它不仅因编程语言而异,而且因行业,开发环境,应用程序等而异。
尽管SLOC数量是值得的,但它只是在同一个开发团队中从事类似的项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.