2010-05-31 69 views
3

如何评估项目大小?如何确定项目的大小(代码行,功能点等)

A部分:在开始一个项目之前。

B部分:对于一个完整的项目。

我有兴趣比较无关项目。这里有一些选项:

1)代码行。

  • 我知道这不是一个很好的生产力指标,但是这是合理的项目规模衡量标准吗?
  • 如果我想估计需要多长时间来重新创建一个项目,这是一个合理的方式来做到这一点?我应该估计一天有多少行代码?

2)功能点。

  • 功能点被定义为的数目:
    • 输入
    • 输出
    • 询问
    • 内部文件
    • 外部接口
  • 任何人都有一个教职员点在这是否是一个去od措施?
  • 有没有办法**实际做到这一点?

有没有人有另一种解决方案?所花费的时间似乎可能是一个有用的指标,但不完全是。如果我问你什么是“更大的计划”,并给你两个计划,你会如何处理这个问题?

我已经看到了关于stackover流的几个讨论,但大多数讨论如何衡量程序员的生产力。我对项目规模更感兴趣。

+0

如果您有Visual Studio,则可以运行代码分析。它给了你圆复杂性,继承深度,LOC和各种其他工具,告诉你它变得太复杂了...... – Carlos 2010-06-01 08:52:33

+1

我能问你为什么想知道你想要达到什么吗?这可能会影响最适当的措施。基本上,你的意思是什么? – 2010-06-01 14:42:47

回答

3

我们使用“人日”来确定项目的成本。 单个普通男士将在多少天内完成该项目。 (好吧,有时候多少年)

代码行不是最好的,但不是最差的单位,但排除'库'。

一项研究估计,一个开发者可以写10行/日,仍然在最后的程序。 (但他也会做概念,文档,管理项目等...)

例如,检查Ohloh project哪些分析一些开源项目,他们估计成本与COCOMO算法(online calculator)。 基地是代码行。

+0

你从哪里得到10行/每天?我会对阅读那篇文章感兴趣。 – sixtyfootersdude 2010-06-01 09:55:29

+0

在IT课程期间,回到学校,抱歉我没有在线资源。 但我猜测它是低估的,因为该主题是为了强调大型项目中缺陷检测阶段的成本。 我再说一遍:这是整个项目每个工作日的最终贡献。不是程序员的生产/日子。 我会对别人的答案感兴趣。 – Syprien 2010-06-01 10:15:23

1

A部分 开始之前很难完全测量一个项目。如果你曾经参与过任何相当大的软件项目(听起来像你一样),这些要求事实上会随着时间而改变。但是,如果您在敏捷的环境中工作,我认为故事点是衡量软件大小的好方法。在项目开始时,你不会有所有的细节,但你应该有足够的估计。不明朗因素http://www.construx.com/Page.aspx?hid=1648的圆锥给出了一个很好的可视化,你可能会有多精确/精确。

B部分 您也可以在这里使用故事点。项目完成后,您应该知道您完成了多少个故事点。你也可以测量你的团队的速度(故事点数除以某个时间段)。

这里的关键之一是您的团队正在使用类似的故事点数量,因此一个团队需要2个故事点的任务等同于其他团队的2点故事。

1

A部分:

恕我直言,敏捷方法为评估项目范围的先验的最佳途径。你必须拥有一个已知速度的团队,在发布积压时首先进行裁减,并以同样的方式对团队建立速度的项目进行大小分类。如果您有兴趣,可以在http://www.rallydev.com/learn_agile/agile_planning/release_planning/有一个很好的幻灯片。

Agilists会指出你实际上选择了改变范围与日期/质量。所以从技术上讲,你并没有估计项目的规模。相反,您会优先考虑您的积压以适应固定的时间段。尽管如此,一支经验丰富,经验丰富的团队可以给你一个合理的想法,告诉他们什么时候可以交付。

部分B:

我觉得你的问题的关键部分是“无关”。国际海事组织这些指标仅适用于比较类似项目的情况 - 就团队,专业知识,开发环境,应用领域等而言。项目越“不相关”,比较项目规模就越困难。 KLOC和功能点指标似乎是应用最广泛的。

有一家名为QSM Associates(http://www.qsma.com/tools.html)的公司,拥有大型比较项目数据库。你可能想看看他们的网站的资源。

0

我不确定这是否可以作为答案,但我的声誉太低,无法评论。

你的问题非常非常广泛。有很多书籍试图用不同的运气来回答你的担忧。

试图在几行中恢复整个字段(至少)是误导性的。

我建议从这里开始:http://www.itmpi.org/这是一个很好的网站,充满了链接和适当的书目。

1

OP如何衡量项目规模?我的意思是,OP会使用哪些测量单位?在你的回答中,要小心建议测量项目大小而不是(计算机)程序大小。

在回答A部分时,我会花费时间和精力。以天为单位的时间(如果是足够小的项目,则以小时为单位),以人为度量。这然后给出成本=时间×人的成本。在项目规划中,对任何措施的估计值(例如200万美元(+/- 0.2百万美元))都伴随着这些估计值的变化估计也是至关重要的。

我可能会使用计算机程序大小的度量,例如LOC或函数点来估计项目的编程部分。但我不会使用这种估计值和乘数(比如说)来估计一个项目的成本和持续时间。我的意思是,我不会使用100天编程的估计值加上2.5的系数来获得250天的项目大小。

当然,当你所拥有的只是项目的两行描述时,你将得到的是一个模糊的估计,其误差范围很大。在您完善计划并确定子任务时,您可以更准确地进行估算。

一旦项目完成,我会希望我的统计数据与我的原始估计数据相同,以便进行比较,省时省力。我不确定我是否会使用LOC作为衡量生产力的指标,即使是回顾性的,我会更倾向于使用某种度量的功能,尽管标准方法(如功能点分析)并不可行以及目前我正在工作的领域,复杂的科学和技术规范。

编辑:我对时间,精力和成本的建议,部分基于我作为项目经理处理客户,经理等非IT利益相关者的经验。项目管理是一项业务活动,以及向总会计师或销售和营销团队说LOC和功能点,这是不正确的。

1

我可以推荐一本关于Steve McConnell的主题 - Rapid Development的真正优秀的书。这是写了Code Complete的同一个人,是恕我直言的一本远远更好更重要的书。它会告诉你一切你需要了解项目估算和测量。

0

代码行是专门使用的危险措施。考虑2位开发人员,他们在3行中写入一些功能,另一位在50行中实现相同功能。谁更有成效?我已经在大型系统上看到了这一点。这就是为什么我倾向于避开LOC。

我很喜欢使用功能点的功能大小。他们需要一点学习,但一旦你已经学会了如何计数和如何的规则,他们就会带来确定性,否则就会产生主观性。已发布的基于功能点的度量标准可以揭示您对软件和软件项目的深入洞察,而这些不会从LOC中获得。

所以相信它们的用处的,我写了一个应用程序供大家使用,使得它更容易和更快的计算功能点:projectsizer.com

一天计数300 FP是很实现的。 MI系统的美国平均每个成本费用约为1500美元,因此一天可以算出300个。