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

程序员的估算

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

以下是可能导致程序员估算不准确的因素
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

相关推荐

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

    程序员不擅长估算时间是软件开发领域的一个普遍现象,这涉及到多个因素。首先,软件开发的复杂性和不确定性使得准确预测时间成为一项挑战。编程任务往往涉及众多未知因素,比如需求的模糊性、技术难题的出现、代码的...

    程序员的经验.doc

    在项目进度的估算上,程序员需要坚持实事求是的原则,以免在用户压力下妥协,导致进度过于紧张。在必要时,应与用户沟通,适当缩减功能以满足时间要求,但同时也不能牺牲产品的基本质量。 解决疑难问题需要程序员...

    程序员成长路线图:从入门到优秀

    因此,程序员往往把软件的价值看做自己的价值,例如一个软件卖了 5 万元,程序员就会把自己的劳动价值估算在 5 万元以上;如果这个软件有 100 个潜在的市场,那么程序员就会把这个价值升值到 5×100=500 万以上。 ...

    程序员能力矩阵教材.pdf

    * 算法:基本的排序、搜索、数据的遍历和检索算法、树、图、贪婪算法、动态规划、数值估算、NP 问题等 在计算机科学方面,程序员需要具备基本的数据结构和算法知识,能够解释和使用数组、链表、字典等数据结构,...

    Web系统软件开发项目的成本估算模型

    ### Web系统软件开发项目的成本估算模型 #### 一、引言 随着信息技术的快速发展,软件在现代社会中的应用越来越广泛,其复杂性和规模也在不断增加。因此,对于软件项目的成本估算成为了软件开发过程中的一个重要...

    程序员的时间换算表

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

    程序员四大宝典

    理解软件工程原理意味着掌握如何有效地管理项目、控制质量、估算成本和时间,以及如何应用各种设计模式和架构来创建可维护和可扩展的系统。此外,了解软件生命周期模型(如瀑布模型、敏捷模型)以及质量管理标准(如...

    如何成为一个优秀的程序员

    如何成为一个优秀的程序员:深入解析与实践指南 在IT行业,成为一名优秀的程序员是众多技术追求者梦寐以求的目标。在《如何成为一个优秀的程序员》一文中,作者罗伯特·L·里德(Robert L. Read)列出了多达一百条...

    程序员 面试智力 题

    第二组的题目主要考察问题解决能力和常识,如圆盖不卡住、汽车钥匙转动方向、数量估算等。这些问题涉及到实际生活中的问题,要求面试者具备基本的推理和生活经验。 第三组的题目更加复杂,包括分金条、火车相遇、...

    程序员面试金典 代码 全

    8. **数据结构和算法的时间复杂度与空间复杂度**:理解并能够估算代码运行效率是衡量技术能力的重要标准,面试时通常会要求分析代码的时间和空间复杂度。 9. **网络知识**:TCP/IP协议、HTTP协议、Socket编程等网络...

    程序员考试补课笔记

    在当今信息化社会,程序员已经成为一个倍受欢迎的职业,但想要成为一名合格的程序员,除了需要具备扎实的编程能力,还需要通过各种专业技能的考核。程序员考试补课笔记对于考试准备来说是必不可少的资料,尤其是掌握...

    java 程序员 开发 转正答辩 ppt

    - **工时估算**:基于需求和业务逻辑,合理估计所需的工作时间。 - **开发实施**:按计划进行开发工作,确保每个阶段的质量。 #### 2.2 项目流程反思 - **不足之处**:在项目开发过程中,可能存在需求理解不透彻、...

    人月神话(程序员的神话)

    8. **时间估算**:布鲁克斯提醒我们,软件开发的时间预估往往过于乐观,需要考虑各种未预见的问题和延迟,合理地预留余量。 9. **软件工程的哲学**:《人月神话》提倡一种工程化的软件开发方法,强调文档、设计、...

    程序员面试智力题总结

    7. **时间与空间复杂度分析**:理解并能估算算法的时间和空间效率是衡量解冑方案优劣的重要标准。面试中,面试官可能会询问你如何优化算法以提高性能。 8. **问题拆解与迭代优化**:复杂的智力题往往需要一步步解决...

    初级程序员考纲与培训指南(2009版)

    - 了解软件项目管理的基本常识,包括风险管理、成本估算等。 7. **信息技术标准与法律法规** - 了解常用的信息技术标准,如ISO、IEC等。 - 掌握信息安全的基本概念,包括加密技术、认证机制等。 - 了解与信息...

    程序员接单宝典(第四版)

    合理的项目范围设定、时间规划和费用估算,以及如何起草合同以保护双方权益,都是程序员在接单过程中必须掌握的关键技能。同时,风险管理也是本书的组成部分,它教会程序员如何预见并应对项目延期、预算超支等潜在...

    2021年程序员工作总结工作总结.docx

    - 成本估算不仅是财务部门的职责,程序员也需参与,特别是在项目初期阶段。它要求对项目资源、时间、风险等因素有深入了解,为项目预算和进度计划提供依据。 - 实践中学习和改进估算技巧,结合理论知识,可以帮助...

    产品经理PUA程序员话术欣赏!

    例如,可以通过敏捷开发中的站立会议、故事点估算和迭代回顾来增强协作。 5. **技术知识的理解**:产品经理可以学习一些基础的编程和技术概念,这有助于更好地理解程序员面临的挑战,同时也能提高需求描述的准确性...

Global site tag (gtag.js) - Google Analytics