实践是最好的老师。
Practice is the best of all instructors.
实践是最好的老师,但是,如果不能从中学习,再多的实践也没有用。
Experience is a dear teacher, but fools will learn at no other.
首先,需要指出的是,仅仅通过对编码部分的估计,然后应用上述比率,是无法得到对整个任务的估计的。编码大约只占了问题的六分之一左右,编码估计或者比率的错误可能会导致不合理的荒谬结果。
第二,必须声明的是,构建独立小型程序的数据不适用于编程系统产品。
工作量 = (常数)×(指令的数量)^1.5
Portman 的数据
曼彻斯特 Computer Equipment Organization(Northwest)的 ICL 软件部门的经 理 Charles Portman,提出了另一种有用的个人观点
他发现他的编程队伍落后进度大约 1/2,每项工作花费的时间大约是估计的两倍。
Aron 的数据
Joel Aron,IBM 在马里兰州盖兹堡的系统技术主管,在他所工作过的 9 个大型项目(简要地说,大型意味着程序员的数目超过 25 人,将近 30,000 行的指令)7的基础上,对程序员的生产率进行了研究。他根据程序员(和系统部分)之间的交互划分这些系统,得到了如下的生产率:
非常少的交互 10,000 指令每人年
少量的交互 5,000
较多的交互 1,500
该人年数据未包括支持和系统测试活动,仅仅是设计和编程。当这些数据采用除以 2,以包括系统测试的活动时,它们与 Harr 的数据非常的接近。
Harr 的数据
生产率同样地被划分为两个类别,控制程序的生产率大约是 600 指令每人年,语言翻译大约是 2200 指令每人年。注意所有的四个程序都具有类似的规模——差异在于工作组的大小、时间的长短和模块的个数。那么,哪一个是原因,哪一个是结果呢?是否因为控制程序更加复杂,所以需要更多的人员?或者因为它们被分派了过多的人员,所以要求有更多的模块?是因为复杂程度非常高,还是分配较多的人员,导致花费了更长的时间?没有人可以确定。控制程序确实更加复杂。除开这些不确定性,数据反映了实际的生产率——描述了在现在的编程技术下,大型系统开发的状况。因此,Harr 数据的确是真正的贡献。
对常用编程语句而言。生产率似乎是固定的。这个固定的生产率包括了编程中需要注释,并可能存在错误的情况.
使用适当的高级语言,编程的生产率可以提高 5 倍
- 本文链接: https://halo.cjh.kim/archives/人月神话9-胸有成竹
- 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!