【图灵图书推荐】经典图书英文注释版即将推出
Andy Hunt & David Thomas《程序员修炼之路》(The Pragmatic Programmer)
Martin Fowler & Kent Beck等《重构》
Martin Fowler《企业应用架构模式》
Robert Martin《敏捷软件开发》(Java和C++描述)
Robert Martin父子《敏捷软件开发》C#版
Andy Hunt和David Thomas的《程序员修炼之路》英文注释版(The Pragmatic Programmer)的13条是讲软件估算的,注释者给出了一些背景知识。书里排不下,只好放在配套网页上了。
Robert L. Glass在 Facts and Fallacies of Software Engineering一书中谈到估算的7个真相:
1. 糟糕的估算是项目失控的两大常见原因。(另一个原因是需求不稳定。)
2. 估算的时机错误。估算往往在项目开始之初进行,而实际上,只有在充分理解了项目问题,确定了需求之后,估算才是接近事实的。
3. 做估算的人选择不当。估算往往由管理高层或者市场人员做出,往往与开发人员的实际不符。
4. 僵化地按糟糕的估算进行管理,会严重影响项目的其他方面。在不切实际的进度要求下,程序员会被迫牺牲质量,偷工减料。
5. 估算一经做出,就不再根据项目实际进行修正。
6. 在糟糕的估算下,管理层与程序员对项目是否成功理解不同。管理层往往将预算超出、进度超期的项目都视为失败,而程序员更看重结果:软件的特性是否完成,质量是否令人满意。
7. 可行性研究的结论永远是“可行”。
还有一个关于估算的谬论:
估算成本和进度时,首先估算代码行数(LOC)。
相对于功能点(还可以辅以特性点)和用户故事,LOC是随意性非常大精确性很差的一种度量,尽量不要使用。
目前比较有影响的估算方法有:
【外部链接】
Applied Software Project Management 一书中的章节 Software Estimation
Steve McConnell的 Software Estimation一书,样章 What is an "Estimate?" , Count, Compute, Judge, Standardized Estimation Procedures
Andy Hunt & David Thomas《程序员修炼之路》(The Pragmatic Programmer)
Martin Fowler & Kent Beck等《重构》
Martin Fowler《企业应用架构模式》
Robert Martin《敏捷软件开发》(Java和C++描述)
Robert Martin父子《敏捷软件开发》C#版
Andy Hunt和David Thomas的《程序员修炼之路》英文注释版(The Pragmatic Programmer)的13条是讲软件估算的,注释者给出了一些背景知识。书里排不下,只好放在配套网页上了。
Robert L. Glass在 Facts and Fallacies of Software Engineering一书中谈到估算的7个真相:
1. 糟糕的估算是项目失控的两大常见原因。(另一个原因是需求不稳定。)
2. 估算的时机错误。估算往往在项目开始之初进行,而实际上,只有在充分理解了项目问题,确定了需求之后,估算才是接近事实的。
3. 做估算的人选择不当。估算往往由管理高层或者市场人员做出,往往与开发人员的实际不符。
4. 僵化地按糟糕的估算进行管理,会严重影响项目的其他方面。在不切实际的进度要求下,程序员会被迫牺牲质量,偷工减料。
5. 估算一经做出,就不再根据项目实际进行修正。
6. 在糟糕的估算下,管理层与程序员对项目是否成功理解不同。管理层往往将预算超出、进度超期的项目都视为失败,而程序员更看重结果:软件的特性是否完成,质量是否令人满意。
7. 可行性研究的结论永远是“可行”。
还有一个关于估算的谬论:
估算成本和进度时,首先估算代码行数(LOC)。
相对于功能点(还可以辅以特性点)和用户故事,LOC是随意性非常大精确性很差的一种度量,尽量不要使用。
目前比较有影响的估算方法有:
- Barry Boehm(就是提出了“螺旋式软件开发方法模型”的那位大师)提出的Cocomo II
- 极限编程(XP)方法中的计划游戏(Planning Game)
- ISO标准化了的功能点(FP)方法
- Watts S. Humphrey在PSP(个体软件过程)中提出的PROBE方法
- 项目管理中比较通用的PERT
【外部链接】
Applied Software Project Management 一书中的章节 Software Estimation
Steve McConnell的 Software Estimation一书,样章 What is an "Estimate?" , Count, Compute, Judge, Standardized Estimation Procedures