`
chenjie19891104
  • 浏览: 12394 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

敏捷开发中如何保障项目进度(相对估算加迭代求精法)

阅读更多

 

随着敏捷开发热潮的到来,很多开发者开始了敏捷之旅!本人也不例外,正踏上敏捷的航班!

 

敏捷开发的模式和普通的开发模式存在几点关键的不同:

@1、敏捷开发拥抱变化。

@2、是人管项目,而不是项目在牵制人。(人永远处于主动地位,不可让项目牵着走)。

@3、采用xp进行项目实践。

@4、采用scrum进行过程管理。

 

本文主要探讨敏捷流程中如何确保项目的开发进度の相对估算加迭代求精法

 

当开发团队第一次被问到"这个项目要多长时间能够完成?"的时候,项目的需求不全,只知道大概的功能模块,非功能性的需求还不是很清楚。

 

那么我们估计确定项目的开发时间呢?在敏捷中可以尝试采用“@@”方法。

 

一、相对估算:

1、项目经理和开发人员:定义功能模块,同时赋予每一个功能模块一个规模系数难度系数 。给出一个初步估计的分值。这个分值供相对参考使用。

     比如,现在有显示,查询,修改三个功能模块,初步确定显示是10分,那么查询可能定为15,修改可能定为20

2、项目经理和开发人员:选取一个分值最小的模块,进一步分析,如上例中显示为10分,最小分值的功能模块。确定,显示需要有设计数据库,查询,显示界面,显示内容等操作,初步确定需要10人天(一个人完成该工作的天数)。这样,一分值对应的工作量就是1人天。那么整个显示,查询,修改加在一起就是45人天。注意,这只是初步的结论。含有相当大的误差。

 

这样相对估算的过程就算完成了。接下来的任务是“迭代求精”。

 

二、迭代求精

1、开发团队开始实现显示模块,如果实际完成所用的时间是12人天,那么根据比例关系,剩余的工作所需的时间就为(12/10)*35=42人天。

2、开发过程中可以根据已经实现的模块,改变未实现模块的分值。然后根据修改后的分值,重新计算剩余模块的相对分值。

 

三、其他总结:

1、开发过程中可以将每个模块定义一个优先级,按照从高到底的顺序排列,对高优先级的模块进行细分,最后确定分值最小的功能模块。

2、在估计模块工作量的时候,可以加入调整系数,开始时,调整系数可能比较高,如0.4,随着项目的进行,各个功能模块的调整系数也在逐渐降低,经过几次调整,可以将调整系数定为0。

3、开始的时候,调整系数可能较大,如0.4,那么上例中项目时间就是[0.6*45~1.4*45]

后面显示模块做过之后,经过调整,剩余工作量是32个人天,现在可以将调整系数定为0.3,那么剩余的项目时间就是[0.7*32~1.3*32]。通过不断迭代,最终对工作量的估算也越来越精确。

4、项目时间的估算是有开发人员自己确定的。那么每个人如何估算某个模块所需要的时间呢?要求开发团队最好能做到每天开个小例会,在会上,每个成员需要当前任务的剩余的开发时间进行重新估计。

5、开发中在每日例会中及时解决瓶颈问题。

6、几次迭代之后,可以确定一个校正系数,这样,在估算任务时间的时候,可以有效避免过于保守或者过于乐观!

 

分享到:
评论
1 楼 wintersun 2011-07-27  
这种渐进明细(明确)的方法很不错。但是,如果在售前,需要估算项目规模——根本目的当然是项目成本——以便对客户进行合理报价时,该怎么进行呢?  凭以往项目经验?

相关推荐

    敏捷软件开发实践估算与计划 Mike Cohn

    2. **估算**:在敏捷开发中,估算通常是基于故事点或工作量的相对估算。故事点是一种度量单位,用来评估功能的复杂性,而不是简单的时间或工作小时数。它考虑了任务的技术难度、风险和不确定性。规划扑克是一种常用...

    软件开发项目工作量估算软件开发项目工作量估算软件开发项目工作量估算软件开发项目工作量估算软件开发项目工作量估算软件开发项目工作量

    软件开发项目工作量估算软件开发项目工作量估算软件开发项目工作量估算软件开发项目工作量估算软件开发项目工作量估算软件开发项目工作量估算软件开发项目工作量估算软件开发项目工作量估算软件开发项目工作量估算...

    敏捷开发管理试题及参考答案.pdf

    燃尽图是敏捷开发中的重要可视化工具,包括产品发布燃尽图和迭代燃尽图,用来追踪剩余工作量,预测何时能完成所有任务。 简答题: 1. SPRINT计划会议通常包括以下步骤:首先,团队从产品代办事项列表中挑选高优先级...

    异地分布式敏捷软件开发的时间成本估算研究.pdf

    异地分布式敏捷软件开发是现代软件工程中的一种重要开发模式,其核心优势在于能够将开发团队分散在不同的地理位置上,同时采用敏捷开发的快速迭代和灵活性特点,从而实现高效率和成本节约。然而,在异地分布式敏捷...

    火星人敏捷开发早期估算

    火星人敏捷开发早期估算法提供了一种基于功能点计算生产率的方法,通过预估的生产率和功能点数量,估算出项目的人天、人月甚至敏捷小时等指标。 ### 功能点分析 功能点分析是另一种估算项目规模和生产率的工具,它...

    敏捷开发培训资料,敏捷开发培训资料

    #### 敏捷估算中的图表应用 - 使用图表来可视化进度,如使用一个折线图显示随着时间的推移,已经搬运了多少车石头。这种图表有助于团队成员直观了解进度情况。 #### 敏捷规划层次结构 - **产品待办事项列表**...

    敏捷开发的项目管理文章

    在“敏捷开发的项目管理文章”中,我们可以深入探讨以下几个关键知识点: 1. **敏捷原则**:敏捷宣言的四个基本价值观和十二条原则是敏捷开发的核心。这些原则指导着团队如何在快速变化的环境中高效工作,以满足...

    敏捷项目开发过程

    敏捷项目开发过程是一种高效、灵活且迭代的软件开发方法,旨在快速响应变化并提供高质量的产品。这种方法论强调团队协作、客户参与以及及时反馈,以确保项目始终保持与需求和市场趋势同步。以下是对敏捷项目开发过程...

    项目开发软件估算

    在项目管理中,准确地估算开发软件的成本是至关重要的。"项目开发软件估算"涉及到一系列技术和方法,确保项目预算的合理分配与控制。这不仅关乎到项目的成功执行,还直接影响公司的盈利状况和客户关系。 首先,我们...

    敏捷开发(原著)

    《敏捷开发(原著)》一书详细介绍了敏捷开发的核心理念及其在实践中的应用。 #### 二、敏捷开发的发展历程 - **20世纪80年代**:开始出现了一些关注快速反馈和迭代的开发思想。 - **20世纪90年代**:极限编程(XP)等...

    敏捷Scrum开发流程培训总结.docx

    Scrum是一种敏捷开发框架,它强调灵活性、协作和持续改进,以适应快速变化的业务需求。在Scrum中,团队遵循一系列原则和实践,以提高效率、质量和客户满意度。 敏捷宣言是敏捷开发的核心,它强调人际关系、工作软件...

    项目软件开发价格估算

    本文将深入探讨“项目软件开发价格估算”的相关知识点,结合《软件开发价格估算方法》和《软件开发项目工作量及报价模板》两个文档,来阐述如何进行科学而准确的估算。 首先,软件开发价格估算的依据主要包括以下几...

    软件项目管理(工作分解结构、项目时间管理概述、项目进度估算)

    软件项目管理是指在软件开发过程中对项目的计划、组织、控制和监控,以确保项目的完成符合预期的目标、范围、进度、成本和质量要求。软件项目管理的主要内容包括工作分解结构、项目时间管理概述、项目进度估算、编制...

    敏捷开发项目需求确认书

    敏捷开发是一种快速响应变化、迭代式的工作方法,旨在提高软件开发效率和产品质量。在这个背景下,"敏捷开发项目需求确认书" 是一个关键的文档,它确保团队在开始开发之前对项目的需求有清晰、一致的理解。这份文档...

    敏捷开发手册

    故事板(Story Board)和看板(Kanban)是敏捷开发中常见的工具,用来追踪项目进度。敏捷开发强调团队协作,跨职能团队共同估算任务并进行迭代开发。为了提升代码质量,敏捷团队也可能会进行代码审查。 敏捷开发...

    敏捷开发知识总结

    - **敏捷开发** 相对来说更灵活,强调迭代开发和快速反馈。它允许在项目进行中调整需求,通过短周期的迭代,让客户频繁地参与到开发过程中,确保软件满足实际需求。 2. **敏捷开发的核心原则** - **速度与灵活性*...

    基于JIRA的敏捷开发项目管理

    "基于JIRA的敏捷开发项目管理" 基于JIRA的敏捷项目管理是指使用JIRA工具来实施Scrum敏捷开发方法,以实现项目管理的自动化和高效化。Scrum敏捷开发方法是一种 increments和迭代的开发方法,强调团队之间的现场沟通...

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

    因此,对于软件项目的成本估算成为了软件开发过程中的一个重要环节。然而,传统的软件成本估算方法往往存在着诸多不确定性因素,导致估算结果与实际情况存在较大偏差,不仅难以满足项目的实际需求,也不易获得客户的...

    敏捷开发培训(员工)+文档+PPT

    12. **敏捷估算与规划**:敏捷开发使用故事点、计划扑克等技术进行估算,以确定任务的相对复杂度,进而规划Sprint。 13. **敏捷教练(Scrum Master)**:Scrum Master是团队的教练和守护者,负责推广敏捷原则,解决...

    敏捷开发与测试

    8. **敏捷估算和规划**:使用故事点等相对估算方法,结合迭代计划,合理安排工作量,确保团队可以持续交付有价值的软件。 9. **敏捷度量**:通过跟踪如速度、缺陷率、代码覆盖率等指标,评估团队的表现,指导持续...

Global site tag (gtag.js) - Google Analytics