607
社区成员
以上学期的编译课设为例,有的同学编译器代码只有3000+行,而有的同学代码量则达到了7000+行,能说后者的工作量是前者的两倍吗?显然不行。由于每个人采用的算法不同、架构不同,会导致代码行数有所差异,用代码量衡量会有失偏颇。此外,用工作时长和返工的质量也会由于个体能力水平的差异而导致评价结果不够客观。书中的比较方法只有在团队中各成员代码水平相差不大、采用的工程架构以及主要算法相同时才比较好用。
我认为,要衡量工作量,应当由专门的评估人员通过经验来评估误差比较小。产生这样的想法,是从英美法系获得的灵感。英美法系又称为判例法系,法官判决时主要根据过去对于类似案件的判决情况进行宣判。在软件企业中,对于大部分的工程企业都曾经接手过类似的项目,有经验的管理人员对于项目的前端、后端等各部分工作量的占比都应当大致有所了解,因此,在工作量评估时只需要根据已有的经验来评估工作量即可。而对于以前没有接手过的工程项目,可以成立一个类似陪审团的、具有丰富软件开发经验的小组,由程序员阐述工作量,由陪审小组来裁决该程序员对自身工作量的定位和描述是否准确。
A:所实现功能的难易程度吧。大一的时候天真的认为写的代码行数越多,任务量就越大。同样的功能采用不同的实现形式,代码量天差地别,更何况可能存在大段代码重复出现,复制粘贴的情况。所用时间可以列入考量标准, 但所占比重不会很大。原因在于每个人的情况不同,包括代码熟练程度甚至于打字速度。
我觉得可以用实现的功能来决定,不管是自己手撸代码或者是调用框架,项目的大小都可以用实现的功能来决定。总不能说实现一个计算器功能,我从开发新的编程语言开始,这就是一个大项目了,本质上我只需要计算器功能,并不关心你具体如何实现。
新的看法:经过α β阶段的冲刺,我对这个问题有了更深刻的理解。每个人对自己的要求不一样,就算是实现同一个功能,有些人可以做到尽善尽美,有些人只是为了“完成”任务。都是做的同一个功能,但是能说他们的工作量一样吗?目前我的想法是这样子的,可以交由用户来评判,由用户的满意程度来评判工作量的大小。但是这样子也明显存在着许多问题,很多用户并不是我们行业的人员、有些任务的大小不好量化指标给用户等等,这些也给任务的大小判断造成了许多的问题。我们项目当中的评判标准是在给出任务点的时候就确定好,最后看大家的实现成果再来决定是否加分,这也不失为一种方法。
我认为,应当用代码行数的数量级衡量项目的大小。我们的大作业代码行数的量级是千,一般的iphone应用代码函数的量级是万,鸿蒙操作系统、谷歌浏览器代码行数的量级是百万,通过这些数据能够大致比较项目的大小,对于量级相同的工程我们可以认为其大小大致相当(除非使用的语言有较大的差异,例如一个项目使用底层汇编语言,另一个项目使用python等较为高级的语言)。
在小组合作的过程中,我发现在大家都对unity 3D不太了解的情况下,因为组内的各个成员能力水平相差不大,可以使用投入时间来衡量任务的大小。有时候,为了调用合适的接口函数,可能需要阅读各种各样的接口说明书,理解清楚了以后才能进行调用,这样看起来代码不长,但是背后所花费的时间是巨大的,因此此时使用代码量来衡量工作量就有失偏颇,而使用花费的时间来衡量就更能反映任务的实际难度。
在企业里,要衡量一个任务的大小,可以用普通员工完成该任务上花费的时间来确定。何为普通员工?在这里,我说的普通员工并不是某一个具体的人,而是一名能够代表社会平均劳动生产率的员工,即业界平均水平的程序员完成该任务所需要花费的时间。
原文地址