`
clamp
  • 浏览: 92166 次
社区版块
存档分类
最新评论

程序员的估算

阅读更多
在项目实施过程中,程序员的估算准确性是合理完成计划的关键一环
然而,在实际实施过程中,往往受到各种因素的影响,导致程序员不能/不愿合理估算实施情况
往往是高手过于乐观,然后发现来不及,然后本着负责任的态度要加班加点
新手根本估算不出,唯上级之命,能做则做,不能做也没有责任意识

以下是可能导致程序员估算不准确的因素
1、对需要估算的任务理解不清
2、采用了新的技术
3、不善于对付技术主管或项目经理的压力
4、不善于估计风险
5、不善于估计和其他人的协同工作
6、不善于应对变化
7、难于控制自己的工作效率
8、微妙的心理因素,不愿意让人看低自己的能力
9、博弈心态,故意高估,准备讨价还价


为了改善程序员的估算准确率,首先是技术主管或项目经理必须要充分认识程序员估算的重要性
1、理解程序员的弱势地位,不能倚势强压,鼓励程序员合理估算并给予充分尊重。
      不能把工作量估算的过程变成一个双方讨价还价的过程
2、工作必须细致,估算结果应该是带有前提的,但是绝大多数程序员在估算的时候会不表述这个隐含前提。
      技术主管A:这个工作你要几天?
      程序员B:大概三天吧
      (可能隐含前提:如果我今天下午把我那台突然病毒发作的机器搞好的话
                                      如果这份需求/设计文档写的足够细致的话
                                      如果老大你愿意及时给予我支援的话
                                      如果不考虑单元测试的时间的话
                                     ……)
     因此技术主管或者项目经理必须鼓励程序员充分考虑各种前提,从而作出比较符合实际的估算
3、加强事后总结,并判断原因,协助程序员改善估算方法。
     

分享到:
评论
10 楼 抛出异常的爱 2006-11-20  
gigix 写道
估算只估相对大小,不估绝对时间。至于相对点数如何转换成绝对时间,是在项目进行当中根据统计数据来换算的。


相对的一个类有七个方法
大多方法是一个参数
有二个是三个参数
大约需要2小时(经验时长)
给普通程序员一上午时间
(一份工作不被打段的话可用时间为3小时)
如果一上午不能完成
则在下午由其它程序作或再作一次分析...
9 楼 gigix 2006-11-20  
估算只估相对大小,不估绝对时间。至于相对点数如何转换成绝对时间,是在项目进行当中根据统计数据来换算的。
8 楼 抛出异常的爱 2006-11-20  
原子化功能模块
可以提高工作效率
但是...
原子化过程花费时间比
工作时长还要长
对于不了解的成员可以用这种方式发现
每个人的最大工作速度
(当然是在一定范围内)
之后用这个速度开估量每个人的开发进度
可以提高其工作强度
并加大剥削力度
7 楼 lordhong 2006-11-20  
实际估算的至少两倍。客户的需求往往都要改。。。
6 楼 LucasLee 2006-11-17  
估算的不准确不要紧,关键是每次都要有进步。这样可以逐渐逼近。
5 楼 Godlikeme 2006-11-17  
充分了解新工作的内容和要求,细化成小任务,评估其中的难点,区分常量时间工作(重复劳动)和突破性工作(需要研究的),需要考虑自己的研究问题能力。
一般先做一个乐观时间估计,就是假设不遇到较大技术和业务难点。视工作重要程度,越重要的工作估计时间越长(可能遇到问题的可能性越大)。普通工作是乐观时间的两倍,重要工作是乐观时间的3-4倍。
个人感觉还是比较合理的。

4 楼 clamp 2006-11-17  
毫无疑问,正确的估算首先应当来自技术主管和项目经理的认识
然而,如果技术主管和项目经理缺乏这个认识,作为程序员的自我判断是否有其必要呢?

如果希望获得进一步发展的话,我认为估算的能力是必须的。
能够正确估算自己三天内的工作的,是一个好的程序员,
能够正确估算自己一周内的工作的,是一个优秀的程序员,
能够正确估算自己两周内的工作的,那多半不仅仅是程序员:P
能够正确估算别人工作的,是开发管理的必备素质。

因此,有必要在外在环境不具备的情况下,从自身做起,逐步提升自己估算的能力。

做法很简单,自己做一个对照表,列明任务、自我估计工作量、实际工作量、误差、原因等。工作量最好精确到小时。
不断的进行总结和改进,估算的能力必定会有大幅度的提升。

3 楼 tuti 2006-11-17  
PERT法, 改进delphi法.
2 楼 wolfsquare 2006-11-17  
1.把需求明确,全组讨论,产生可随时查看的文档
2.新技术统一一个适应期,在这适应期内加强交流
3.压力只来自自己承诺的期限压力,项目压力是PM承担的
4.程序员不应该承担不属于他那部分的风险,一般来说,到了这一级风险都是可以接受的了
5.有些人善于交流,而有些则相反,这些要靠PM来协调
6.达成变化是需要的共识
7.效率问题有些复杂,需要具体分析
8,9.属于PM沟通和引导的问题
1 楼 yuxie 2006-11-17  
我现在的估算方法是:

工期 = 领导定的工期 * 3

相关推荐

    为什么程序员不擅长估算时间

    为什么程序员不擅长估算时间

    程序员的时间换算表

    一个曾经与我一起工作过的经验丰富的项目经理声称,他拿到程序员的时间估算以后,先将它乘以π,然后转化下一个时间数量级后,才能得到真正的值。  一个曾经与我一起工作过的经验丰富的项目经理声称,他拿到程序员...

    C#程序员统计自己的代码行数

    很多程序员都以自己写的代码的行数作为自己程序员阅历的一个标志,如何统计呢,以下是具体内容。 小编,已经快学了两年编程了。昨天突发奇想,想统计下这些年到底写过多少行代码,于是做了一个这个小程序来统计代码...

    java校招笔试题-programmer:如何成为一名程序员,罗伯特·里德

    java校招笔试题程序员 如何成为程序员,作者:Robert Read? 如何成为一名程序员:简短、全面和个人的总结 罗伯特·L·里德 版权所有 2002, 2003 Robert L. Read 版权所有 Copyright :copyright: 2002, 2003 作者:...

    软件开发案例分析实验指导书

    软件开发案例分析实验指导书 软件开发案例分析实验指导书

    人月神话-程序员必读书

    空泛的估算................................................................................................................................11 重复产生的进度灾难............................................

    程序员考试刷题-awesome-devops-books:DevOps书籍列表

    程序员考试刷题真棒开发书籍 这是与 DevOps 相关的精选书籍列表。 目录 技术的 以下书籍侧重于几个 DevOps 概念和技术。 敏捷 敏捷可能是 DevOps 组织使用的系统开发方法。 因此,您必须了解它的概念、起源和反模式...

    程序员每日刷题的软件-awesome-engineering-management:工程管理和领导力的学习和日常实践的指针和工具

    程序员每日刷题的软件 练习 模型和方法论 敏捷 图书 快速应用开发 图书 文件 极限编程 图书 瀑布 文件 快速原型制作 文件 增加的 图书 整理房间 文件 图书 过程和工件 项目章程 项目管理计划 模板 工作分解结构 模板...

    c++函数指针使用示例分享

    需求假设要设计一个名为estimate()的函数,估算编写指定行数的代码所需的时间,并且希望不同的程序员都可以使用该函数。 对于所有的用户来说,estimate()中一部分代码都是相同的,但该函数允许每个程序员提供...

    软件项目进度表:协调与并行提高工作质量

    在软件项目管理工作中,对软件项目的进度安排有时比对软件成本的估算要求更高。成本的增加可以通过提高产品定价或通过大批量销售得到补偿,而项目进度安排不当会引起顾客不满,影响市场销售。  制定软件项目进度...

    python毕设-基于夜光遥感影像分析的油气产量估算技术研究+源代码+文档说明

    夜光量提取 ArcMap10.8.1 1.设置默认地理数据库 2.以表格显示分区统计 3.表转excel 处理后的csv数据在data文件夹,十一种回归模型代码在code文件夹 <项目介绍> 该资源内项目源码是个人的毕业设计作业,代码都测试...

    SuperBudget公路造价系统

    SuperBudget公路造价系统是由几十位交通上长期从事造价管理、招投标管理工作,能娴熟掌握和运用公路工程定额、规范的专家和十几位资深的程序员共同努力的结果。整个软件的开发过程完全遵照了专家的思维和操作习惯,...

    《软件工程导论》张海潘_第五版_清华_课后答案

    7.9.2 估算平均无故障时间的方法180 7.10 小结182 习题7183 第8章 维护189 8.1 软件维护的定义189 8.2 软件维护的特点190 8.2.1 结构化维护与非结构化维护差别巨大190 8.2.2 维护的代价高昂190 8.2.3 维护的问题很...

    eMule V0.44d (Hotfix) 程式原始码

    他召集了一批程序员,这就诞生了eMule-Project。他们的目标是把eDonkey以前的优良传统继承下来,加上一系列新的特性和更友善的界面。他们想不到当时的决定会产生多大的影响…… eMule是什么意思? Mule是骡子...

    eMule v0.43b (Hotfix) 程式原始码

    他召集了一批程序员,这就诞生了eMule-Project。他们的目标是把eDonkey以前的优良传统继承下来,加上一系列新的特性和更友善的界面。他们想不到当时的决定会产生多大的影响…… eMule是什么意思? Mule是骡子...

    Java中读取文件进度条的实现

     当读取一个大文件时,一时半会儿无法看到读取结果,需要显示一个进度条,是程序员明白已经读了多少文件,可以估算读取还需要多少时间。  实现这个功能比较简单,用到的类有两个:ProgressMonitorInputStream...

    信息化项目软件开发费用测算规范 (四川成都 地方标准)

    技术总监、项目经理、产品经理、程序员、码农、商务人员、销售进行软件项目开发概预算

    服务器工程师岗位主要职责.doc

    帮助程序员提高编码能力,具有在需求明确情况下合理 估算开发时间并严格按照文档要求完成开发功能的能力 ----------------------- 服务器工程师岗位主要职责全文共4页,当前为第1页。 服务器工程师岗位主要职责全文...

    编程珠玑.pdf

    第3章 程序员的忏悔 23 3.1 二分搜索 24 3.2 选择算法 26 3.3 子程序库 28 3.4 原理 30 3.5 习题 31 第4章 自描述数据 33 4.1 名字—值对 33 4.2 记录来历 36 4.3 排序实验 37 4.4 原理 39 4.5 习题 39 第二部分 实 ...

    AlgorithmsCourse:普林斯顿大学通过Coursera提供的Algorithms课程的分配项目

    本课程涵盖了每个认真的程序员都需要了解的有关算法和数据结构的基本信息,重点是Java实现的应用程序和科学性能分析。 第一部分介绍基本数据结构,排序和搜索算法。 第二部分着重于图形和字符串处理算法。 作业1-...

Global site tag (gtag.js) - Google Analytics