敏捷项目管理实战之进度管理

合集下载

项目进度跟踪使用Jira进行敏捷开发管理

项目进度跟踪使用Jira进行敏捷开发管理

项目进度跟踪使用Jira进行敏捷开发管理项目进度跟踪是敏捷开发管理中的关键环节,它能够帮助团队有效地掌握项目的进展情况,及时发现问题,并采取相应的措施加以解决。

在实际操作中,Jira作为一种常用的敏捷开发管理工具,被广泛应用于项目进度跟踪。

本文将重点介绍如何使用Jira进行项目进度跟踪。

一、Jira的基本介绍Jira是一款功能强大的项目管理与跟踪软件,它基于敏捷开发理念,提供了丰富的功能模块,包括任务管理、需求管理、缺陷管理、项目报告等等。

通过Jira,我们可以方便地创建、分配和追踪任务,查看项目的整体进展情况。

二、Jira的项目配置在使用Jira进行项目进度跟踪之前,我们首先需要进行一些项目配置的操作。

具体步骤如下:1. 创建项目:在Jira中创建一个项目,并设置项目的名称和描述等信息。

2. 定义任务类型:根据项目的实际需求,定义相应的任务类型,如需求、设计、开发、测试等。

3. 配置工作流:根据项目的开发流程,配置相应的工作流,包括已定义的任务类型、任务状态、转换规则等。

4. 分配权限:根据项目成员的不同角色,设置相应的权限,以确保只有具有相应权限的人员能够进行任务操作。

三、使用Jira进行项目进度跟踪在完成项目配置后,我们可以正式开始使用Jira进行项目进度的跟踪。

以下是几个关键步骤:1. 创建任务:根据项目的需求,创建相应的任务,并分配给相应的成员。

2. 更新任务状态:在任务执行过程中,成员可以根据实际情况更新任务的状态,如开始、进行中、完成等。

3. 添加任务评论:成员可以在任务中添加评论,对任务的进展情况进行交流和记录。

4. 追踪任务进度:使用Jira提供的报表功能,可以方便地查看任务的进度情况,如已完成任务数量、进行中任务数量等。

5. 解决问题:如果在任务执行过程中遇到问题,成员可以在Jira中创建缺陷,并将其关联到相应的任务上。

同时,可以与相关成员进行讨论并解决问题。

四、Jira项目进度跟踪的优势相比传统的项目进度跟踪方式,使用Jira进行敏捷开发管理具有许多优势:1. 实时性:Jira能够实时更新任务的状态和进展情况,帮助团队成员及时了解项目的进度。

软件项目管理与敏捷开发实践项目课程大纲

软件项目管理与敏捷开发实践项目课程大纲

软件项目管理与敏捷开发实践项目课程大纲一、课程概述本课程旨在帮助学生了解软件项目管理的基本概念和方法,并掌握敏捷开发实践项目管理的技术和策略。

通过课程学习和实践项目的执行,学生将获得实际项目管理经验,提升其软件项目管理和团队协作能力。

二、课程目标1. 了解软件项目管理的基本原理和方法;2. 掌握敏捷开发实践项目管理的流程和工具;3. 能够制定合理的项目计划和进度安排;4. 能够有效管理项目团队和资源分配;5. 能够识别和解决软件项目管理中的常见问题。

三、课程内容1. 软件项目管理基础1.1 项目生命周期及管理过程1.2 项目范围管理1.3 项目时间管理1.4 项目成本管理2. 敏捷开发实践2.1 敏捷开发简介2.2 敏捷项目管理原则2.3 敏捷团队协作与沟通2.4 敏捷需求管理2.5 敏捷测试与交付管理3. 项目计划与进度管理3.1 项目目标与需求分析3.2 制定项目计划与工期安排 3.3 项目进度跟踪与控制3.4 项目风险管理4. 项目团队与资源管理4.1 构建高效的项目团队4.2 团队角色与责任划分4.3 项目资源分配策略4.4 团队协作与冲突解决5.1 质量要求与评估指标5.2 质量计划与测试策略5.3 质量控制与改进措施5.4 缺陷管理与持续集成四、教学方法1. 理论讲解:通过课堂讲解介绍软件项目管理和敏捷开发的基本概念、原理和方法。

2. 实践项目:学生将分为小组进行实践项目,在实际操作中学习项目管理和团队协作技能。

3. 案例分析:通过分析真实软件项目案例,帮助学生理解项目管理中的问题和解决方法。

4. 讨论与分享:鼓励学生进行小组讨论和交流,分享彼此的项目管理经验和实践心得。

五、考核方式1. 课堂表现:参与讨论、提问和回答问题等,占总评成绩的20%。

2. 实践项目:根据项目成果、报告和演示,占总评成绩的40%。

3. 期末考试:笔试形式,考察学生对项目管理理论和实践的掌握程度,占总评成绩的40%。

项目管理中的敏捷方法与实践

项目管理中的敏捷方法与实践

项目管理中的敏捷方法与实践敏捷方法是一种快速、高效、灵活的项目管理方法,是近年来越来越受欢迎的方法。

敏捷方法的本质是秉承“变化优于计划”的原则,能够帮助团队以更快的速度响应变化并构建高质量的产品。

本文将介绍敏捷方法在项目管理中的应用以及一些实践技巧。

一、敏捷方法在项目管理中的应用敏捷方法在项目管理中主要应用在以下方面:1. 敏捷开发:敏捷开发是一种以迭代、快速响应客户需求和持续集成为特征的开发方法。

它鼓励团队有更频繁的交流和协作,不断优化产品和流程。

2. 敏捷项目管理:敏捷项目管理是一种以团队协作、快速响应变化、持续交付为主要特征的项目管理方法。

它与传统项目管理的区别在于,它强调团队在整个项目周期中的协作、频繁的交流和反馈,以便更快地做出适应于产品的变化。

3. 敏捷测试:敏捷测试是一种在开发早期就将测试工作融入到开发过程中的测试方法。

与传统测试不同的是,敏捷测试更侧重于通过持续测试、提供及时反馈等方式来确保产品的质量和可靠性。

二、实践技巧在实践敏捷方法时,以下技巧可以帮助团队更好地应用:1. 制定清晰的目标和计划:首先需要确立项目的目标和计划,明确团队的角色和职责,并且要将目标和计划与团队成员进行充分的沟通与协商。

2. 确保开发周期的灵活性:敏捷方法要求团队在项目过程中具有灵活性,能够根据市场或客户的反馈随时进行变更。

因此,开发周期不应过长,在一定周期之内要形成可交付的产品,以便及时响应市场变化。

3. 鼓励团队协作:敏捷方法强调团队协作和交流,让各个团队成员在工作中都能起到积极的作用。

因此,需要让各个小组之间保持良好的沟通和协作,及时共享信息和心得。

4. 持续交付:敏捷方法重视持续交付,把产品快速交付给客户,以尽快地验证需求的正确性和及时修改产品。

这要求团队的技能要非常强大,能够迅速地开发出原型,及时测试、修正。

5. 持续测试:敏捷方法鼓励团队在整个开发周期中通过持续测试来确保产品的质量和可靠性。

敏捷项目管理

敏捷项目管理

敏捷项目管理敏捷项目管理是一种通过迭代、增量的方式进行项目管理的方法论。

它强调灵活性、适应性和团队合作,能够提高项目交付的效率和质量。

本文将介绍敏捷项目管理的原则、流程和工具,以及其在实际项目中的应用。

一、敏捷项目管理的原则敏捷项目管理基于以下几个原则:1. 个体和互动胜过流程和工具:敏捷项目管理强调团队成员之间的沟通和合作,相比于过多依赖流程和工具,更注重人的因素。

2. 可工作的软件胜过详尽的文档:敏捷项目管理强调快速交付可用的软件,通过不断的迭代和反馈来改进和完善产品。

3. 客户合作胜过合同谈判:敏捷项目管理鼓励与客户密切合作,及早获取反馈并及时调整项目方向,以满足客户需求。

4. 响应变化胜过遵循计划:敏捷项目管理认为需求和环境是不断变化的,项目管理应该能够快速响应变化,调整计划和目标。

二、敏捷项目管理的流程敏捷项目管理通常采用迭代增量的方式进行,主要包括以下几个阶段:1. 产品规划:在项目开始之前,团队需要与客户共同确定产品的愿景和核心功能,制定详细的产品需求。

2. 迭代开发:开发团队根据产品规划,将项目划分为多个迭代。

每个迭代都包括需求分析、设计、开发和测试等阶段,生成可交付的软件。

3. 迭代评审:每个迭代结束后,团队与客户进行评审,获取反馈并进行改进。

根据反馈结果,调整产品需求和迭代计划。

4. 发布交付:当所有迭代都完成后,将软件进行集成和测试,确保产品符合质量要求。

最后将软件交付给客户使用。

三、敏捷项目管理的工具敏捷项目管理使用了一些工具来支持项目的开发和管理:1. 产品Backlog:用于记录产品需求和功能的列表,按照优先级排序,团队根据列表进行开发。

2. 燃尽图:用于可视化项目进度和迭代计划,团队可以清晰地看到已完成和剩余的工作量。

3. 绩效度量:通过追踪项目进度、团队工作量和质量等指标,评估项目绩效和团队效率。

四、敏捷项目管理的应用敏捷项目管理已经广泛应用于软件开发领域,特别适用于需求变化频繁、创新性强的项目。

敏捷开发项目管理制度

敏捷开发项目管理制度

敏捷开发项目管理制度一、总则为了规范和优化项目管理流程,提高团队协作效率和项目成果,制定本制度。

本制度适用于所有采用敏捷开发模式的项目,旨在保障项目的进度、质量和效果。

二、项目管理团队1. 项目管理团队由项目经理、产品经理、开发人员和测试人员组成,各成员需具备相应的技能和经验,并具备良好的沟通和协作能力。

2. 项目经理负责项目的整体规划、实施和控制,对项目的进度、质量和成本负责。

产品经理负责产品的需求分析和设计,开发人员和测试人员分别负责产品的开发和测试工作。

3. 项目管理团队应保持密切的沟通和协作,定期召开会议讨论项目进展、问题和解决方案,及时做出调整和改进。

三、项目计划1. 项目计划是项目管理的重要组成部分,包括项目的目标、范围、时间、成本和质量等方面的计划。

项目计划应符合敏捷开发原则,具有灵活性、可调整性和适应性。

2. 项目计划由项目经理和产品经理共同制定,根据项目需求和资源情况进行合理分配,确保项目的顺利进行和达成目标。

3. 项目计划应及时调整和更新,根据项目进展情况和变化需求做出相应调整,保证项目的顺利进行和最终成功交付。

四、需求管理1. 产品需求是项目成功的关键,产品经理负责对需求进行分析和设计,确保产品能够满足用户的需求和期望。

2. 产品需求应具有清晰、一致、可验证的特性,符合敏捷开发原则,包括用户故事、任务板、迭代计划等内容。

3. 需求管理应保持及时、有效的沟通和协作,确保需求的准确性和完整性,避免出现需求变更和不明确的情况。

五、开发实施1. 开发人员根据产品需求进行开发工作,遵循敏捷开发原则进行迭代开发。

开发人员应具备扎实的编码和测试技能,确保代码的质量和可靠性。

2. 开发工作应实行代码审查、版本管理、持续集成等技术手段,保证代码的可维护性和易测试性,并及时发现和纠正问题。

3. 开发工作应保持团队协作和沟通,及时交流工作进展和问题,确保项目的顺利进行和最终成功交付。

六、测试验证1. 测试人员负责对产品进行测试验证,确保产品的质量和稳定性。

《敏捷项目管理》课件

《敏捷项目管理》课件
03
敏捷项目管理强调团队成员的主动性和自我组织, 通过频繁沟通和协作实现项目目标。
敏捷项目管理特点
01
敏捷项目管理强调对变化的快速 响应,通过不断迭代和调整来适 应市场需求。
02
它注重团队成员的参与和协作, 鼓励跨部门、跨职能的沟通与合
作。
敏捷项目管理采用灵活的计划和 预算,可根据实际情况进行调整 ,而非固定不变。
06
敏捷项目管理案例分享
案例一:某互联网公司的敏捷转型实践
总结词:成功转型
详细描述:该互联网公司通过引入敏捷项目管理方法,实现了从传统项目管理向敏捷的转型,提高了项目交付速度和客户满 意度,取得了显著的成功。
案例二:某软件开发团队的敏捷项目管理经验
总结词:高效协作
详细描述:该软件开发团队采用敏捷 项目管理,通过跨部门的高效协作, 快速响应需求变化,有效降低项目风 险,确保了项目的顺利完成。
03
02
启动阶段
组建项目团队、分配角色和责任, 明确项目目标和期望。
敏捷启动会议
召开项目启动会议,向团队成员介 绍项目背景、目标和计划。
04
敏捷项目执行与监控
迭代开发
按照敏捷原则,将项目分解为多个迭代周期 ,每个周期内完成部分功能或需求。
每日站会
召开每日站会,同步团队成员工作进展、问 题和障碍,调整后续工作计划。
总结词
技术债务和持续集成是影响敏捷项目管理效果的两大技术问题,需要引起重视。
详细描述
技术债务是指开发过程中积累的技术问题,会导致系统维护成本增加、代码质量下降、 系统扩展性差等问题;持续集成是指通过自动化工具对代码进行持续的编译、测试和部
署,以确保代码质量,但实施过程中可能遇到集成效率低下、测试覆盖不全等问题。

敏捷项目管理实践经验总结

敏捷项目管理实践经验总结

企业研发敏捷架构
构想阶段
• 产品构想பைடு நூலகம்• 团队构想及组建
推测阶段 探索阶段 (多次迭代)
结束阶段
• 编写用户故事(代替原特性) • 确认范围 • 估计工作量 • 版本发布计划
迭代
迭代启动
需求细化
开发
测试及验收
评审及适应
• 制定迭代计划
• 完善用户故事 • 编写用例+设计
UI+绘制高保真 • 更新功能矩阵
产品经理+组长 +架构师+测试
经理
参与各方就设计思路达 成一致
共同评估工作量
确定故事范围及里程碑 计划
15分钟 /开发人员
20分钟
敏捷价值观及行为原则(一)
版本路线图(以三个迭代的版本为例)
迭代一
第1周
第2周
开发新故事
开发新故事
迭代一送测
一个版本
迭代二
第3周
第4周
系统测试 修改bug 开发新故事
开发新故事
目标: 1、通过三个月的实践,全员对敏 捷价值观和主要实践有深刻了解, 并有强烈认同感。 2、团队凝聚力加强,初步组建起 一支自律、高效的敏捷团队。 3、其他指标可根据10月的实际 执行情况届时制定。
迭代计划
目标: 1、全员对敏捷价值观和主要实践 有基本了解; 2、围绕产品的源头——产品规划 组的工作进行调整,适应新流程和 新方法;平均每个功能设计的产出 绩效(进度)提升10%,设计一 致性带来的缺陷减少30%。
简化
• 流程上:制定刚刚足够的流程(包括进行必要 的活动、合适的干系人、产出必要的制品)。
• 决策上:复杂问题简单化,迅速、但不要仓促 决策。

如何使用JIRA进行敏捷项目管理和问题跟踪

如何使用JIRA进行敏捷项目管理和问题跟踪

如何使用JIRA进行敏捷项目管理和问题跟踪使用JIRA进行敏捷项目管理和问题跟踪JIRA是一种流行的项目管理和问题跟踪工具,广泛应用于敏捷开发团队。

它提供了一系列功能强大的工具,帮助团队协同工作、追踪任务进度和解决问题。

本文将介绍如何使用JIRA进行敏捷项目管理和问题跟踪。

1. 创建项目在开始使用JIRA之前,首先需要创建一个项目。

点击JIRA主界面上的"创建项目"按钮,并选择"敏捷"项目模板。

根据项目需要填写相关信息,例如项目名称、描述和管理员等。

2. 创建用户故事用户故事是敏捷项目的基本单位,用于描述用户需求。

在新建项目后,可以通过点击"Backlog"标签创建用户故事。

填写故事的标题和详细描述,并分配优先级。

3. 划分和估算任务将用户故事细化为更小的任务,并为每个任务设定优先级和估算工作量。

这有助于团队成员更好地理解任务,准确把控工作量。

4. 创建工作看板工作看板是敏捷项目管理的重要工具之一。

在JIRA中,可以方便地创建自定义的工作看板,例如看板列可以表示任务的不同状态。

通过拖拽任务,可以方便地更改任务的状态,实时反映工作进度。

5. 制定迭代计划迭代计划是敏捷项目管理中的重要环节。

在JIRA的"计划"模块中,可以制定迭代计划,明确每个迭代的目标和计划完成时间。

将用户故事分配到不同的迭代中,并确保工作负载得以合理分配。

6. 追踪和更新任务进度在团队成员开始执行任务后,可以通过JIRA实时追踪任务的进度。

团队成员可以更新任务状态、工作日志和剩余工作量等信息。

此外,JIRA还提供了强大的报表功能,可帮助团队成员可视化地查看项目进度和问题。

7. 解决问题在敏捷项目开发过程中,难免会遇到一些问题。

JIRA的问题跟踪功能可以让团队快速而准确地记录和解决问题。

通过创建问题,团队成员可以描述问题的详细信息、优先级和处理人员。

8. 进行回顾和改进每个迭代结束后,团队应该进行回顾和改进。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

优化项目计划敏捷开发的基本特征是迭代开发。

而迭代开发的强调的是"小批量、频繁交付"。

因此,每次迭代所要实现的需求相对较少。

这使得迭代开发中的项目计划制定相对容易,制定项目计划时任务与任务间的逻辑关系也比较容易掌握。

但是,由于迭代开发往往采用时间盒(Time-box)的方式进行,即要求每次迭代的时间是固定的(业界推荐的是 2~4 周)。

而每次迭代所要实现的需求(Story)的个数及其难度都不尽相同。

这就要求我们在某些情况下要尽可能地优化项目计划,以保证工期不会超出时间盒的范围。

优化项目计划的常见方法是尽可能地使各个任务并行。

比如,有两个功能的开发任务,其中一个功能 A 依赖于另外一个功能 B。

但这并不意味着我们必须将这两个功能的开发任务串行安排(即先开发 B 功能,再开发 A 功能)。

此时,可以使用测试桩(Testing Stub)来模拟 B 功能的实现,这样使得 A 功能的开发和测试可以先独立于 B 功能的实现。

因此这两个功能的开发可以并行。

计划安排时考虑避免重复劳作也是缩短工期的一个常见方法。

在 Story 驱动的一个迭代开发过程中,从第二个迭代开始,往往存在多个 Story 的实现涉及同一个模块的代码修改。

此时,计划可以安排多个人并行开发这几个 Story、但是转 Story 测试时,这几个 Story 可以合并成一个"大 Story"一起转测试。

从而避免了多次测试同一个模块带来的浪费。

出于应对风险的需要在安排计划时留出所谓的缓冲时间有其合理性。

但是,这个缓冲时间延长了任务的持续时间。

而关键任务持续时间的延长则延长了整个迭代持续的时间。

值得注意的帕金森定律(Parkinson's Law)所阐述的现象却给了我们在某些情况下要适当压缩任务尤其是关键任务的持续时间。

帕金森定律告诉我们:只要还有可用的时间,一件工作消耗的时间就会不断地扩展,直到用完所有的可用的时间。

也就是说,一件任务如果需要 3 天时间完成,而计划安排的持续时间是 5 天的话,这个任务会消耗 5 天甚至更多的时间才能完成。

这种现象的方面给了我们一个启示:如果一件任务如果需要 3 天时间完成,而计划安排的持续时间是 2 天,那么这件任务真的可能在 2 天内完成,最多也可能是 4 天时间完成。

这也比将该任务计划为 5 天完成节省时间。

可见,过于宽松的机会反而可能拖慢了进度,而有一定紧迫感的计划所带来的适当压力可以激发人的动力和潜能反而可以加快进度。

对于迭代中的技术风险点要优先安排进行验证。

比如,对于从未使用过的技术或者新技术,要优先安排原型的验证,避免中途才发现技术障碍。

进度信息的获取由于团队开发中的每个团队成员的日常工作之间都存在或多或少的依赖关系:某个人的工作要以其他人的一件工作产出为输入,同时其工作的输出又是另一个人的某件工作的输入。

从团队自我管理的角度来说,进度信息是将团队成员的工作自主得衔接起来的重要因素。

因此,敏捷开发团队中,进度不应该是只有项目经理才关心的事情,而是整个团队成员都应该关心的事情。

但事实上,团队成员往往倾向于只关心自己手头上的工作。

因此,项目经理需要引导和鼓励团队成员主动关注自己手头上的任务所依赖的任务的进度。

另一方面,进度是整个团队应该关心的事情,这就要求在团队内有一个统一的进度信息获取与发布的平台和途径。

这个平台可以是一个管理软件,比如工作流软件。

也可以是一个即时通讯软件。

不管采用什么样的平台,项目经理应该引导和鼓励团队成员主动将各自的进度信息推送到这个平台,而不是每个人进度还要等其他人来询问。

站立会议也是进度信息的发布和获取的一个常见途径。

站立会议中,每个团队成员都要介绍自己昨天完成了什么,今天计划做什么。

这样,每个人的进度信息都可以让其他人了解到。

定义完成的标准和进度信息的核实获取进度信息后,要及时对其进行核实。

敏捷开发中的优秀实践"定义完成的标准"(Definition of Done)可以帮助我们对进度信息进行核实。

下面我们讨论什么是完成的标准、定义完成的标准的作用以及如何定义完成的标准。

曾经有个刚刚开始带领团队的人向我咨询这样一个问题:他向他的组员分配一个任务,然后他不定期得检查这个任务的进度。

可是每次他检查进度的时候,他的结论都是这个组员的工作成果没有达到他所期望的,而这个组员却是认为自己已经完成了当天的任务。

这种情形导致这种组员不断得为返工而加班,最后导致其身心俱疲,提出离职申请。

事实上,这样一个问题产生是因为任务的分配者和执行者事先没有约定好什么叫做"完成"。

双方都只是在依照自己心中的"标准"来判断是否完成,从而导致了对于进度认定的冲突。

可见,在我们断定一个任务是否完成、进行到什么情况前,首先要规定什么叫"完成",否则就会在衡量进度的时候产生上述例子中的冲突。

这种对于什么才叫做完成的规定就叫做完成的标准。

显然,进度不能在脱离质量的前提下孤立得衡量,因此完成的标准不仅定义了质量要求(通常是最低质量标准),也是进度衡量的重要依据。

比如,如果你让一个没有什么工作经验的人去安装一个数据库管理系统(DBMS),他很可能就是把安装程序执行一遍,若执行过程中没有遇到安装程序提示错误就认为是完成了软件的安装。

而最后,其他人都不知道这个已经安装"完成"的软件的访问信息,比如它所在机器的 IP 地址、侦听端口。

甚至知道了这些信息后,在实际使用时却发现所安装的软件根本就无法正常运作。

其实,对于这样一个任务我们可以定义一个完成标准:所安装的 DBMS 要经过验证(比如使用 SQL 能够在数据库中插入一条记录,并能够使用相应 SQL 查询到插入的记录),并输出软件的相关使用信息(如软件所在机器的 IP 地址、软件的侦听端口)。

可见,完成的标准不仅定义了质量要求(通常是一个最低质量要求),也定义了任务所要交付的产出物。

完成的标准所定义的产出物和质量要求正是评估任务进度的依据。

一个任务在整个团队中有了一个大家一致认同的完成标准时,任务完成的质量和进度的衡量才不会出现冲突。

进度风险控制进度管理中很重要的一个方面是进度风险控制。

提高进度信息的获取频率可以尽可能早得发现进度障碍,为消除障碍争取了最大时间,从而有效减低进度风险。

由于敏捷开发中的一个迭代周期持续的时间较之传统项目要短得多,进度信息的获取频率也要相应有所体现。

笔者通常每天对项目进度信息进行汇总。

任务采用认领的方式而非采用分配的方式落实到人,也有助于规避人力风险导致的进度风险。

比如,在需求评审与分析的时候,笔者并不指定谁负责哪个 Story,而是要求全体成员对本次迭代的所有需求都要有所理解,并能够讲解自己对本次迭代中的任意一个需求的理解。

敏捷开发采用迭代的方式,每次迭代所要实现的需求量同传统项目比较要少得多,这使得每个团队成员对本次迭代的所有需求都进行理解成为可能。

在确认每个团队成员对本次迭代所要实现的所有需求都有所理解之后,笔者才让团队成员对相应需求的开发测试任务进行认领,具体落实到人。

采用这种任务认领的方式,使得每个团队成员对本次迭代的所有需求都有所理解。

从而,在人力变更(如原先负责某个需求的开发人员请假了)时,可以快速得找到能够承接任务的人。

进而规避了进度风险。

从一开始就将需求落实到相应的开发测试人员,很容易就造成团队成员只关注自己手头上的"一亩三分田",从而使得对于需求的理解没有备份人力,一旦人力变更则很容易影响项目进度。

笔者在项目组中强调一个个人规避进度风险的原则。

该原则要求团队成员在遇到问题时,通过个人的努力消耗了 30 分钟而仍然未能将问题解决时,要及时寻求帮助,而不是继续在问题上打转,甚至于走进问题的死胡同。

当然,团队成员在遇到自己无法解决的问题时,可能会觉得不好意思让被人知道,而项目经理要消除他们的这种顾虑。

尤其是一些工作经验不长的员工,由于个人经验、能力等方面的限制,在遇到问题时候,往往容易只是一门心思地想着要解决问题,而完全没有顾及到时间。

这往往使得他们对于问题的解决就像是走进了一条死胡同,心里明明想要走出去,可是越是往前走,就越是走不出去,而时间却悄然而逝!进度信息的展示、传播及其激励作用Scrum 中提倡的采用燃尽图(Burn-down Chart)来直观得展现项目总体进度。

它展示了时间和项目剩余总体工作量间的关系,如图 1 所示。

图 1. 燃尽图笔者认为,燃尽图更多得是给人以一种压迫感---让人清晰直观得感受到随着时间的推移,项目所剩的工作量逐天减少!因此,燃尽图也受到了一定的批判。

而燃起图(Burn-up Chart)则直观地展现了时间与已完成的工作间的关系,如图 2 所示。

图 2. 燃起图传统项目由于项目周期较长,团队成员往往在漫长的开发过程中看不到自己的工作成果,慢慢得失去工作的热情。

因此,让团队成员看见其工作成果,对其来说也是一种激励。

敏捷开发由于采用迭代的方式,一定程度上能够让员工更快得看到自己的劳动成果。

而燃起图则更加有助于展示团队的工作成果。

因为它将团队成员的工作成果直观得展现出来。

因此,某种程度上燃起图不仅仅展示了项目进度,也是对团队成员的一种激励形式。

状态墙则直观得展示了每个任务的进度。

许多推行敏捷项目管理的团队,都采用这种方式来管理进度。

如图 3 所示图 3. 状态墙消除浪费时间是软件开发过程中最为稀缺并不可替代的资源。

其浪费将直接影响项目的进度。

而软件开发过程中存在各种各样的浪费。

因此,消除浪费是加快进度的一种重要途径。

返工则是软件开发过程中常见的一种浪费。

避免返工不仅有利于加快进度,同时也能够提升软件的质量。

敏捷开发中的一些优秀实践,如"定义完成的标准"、"结对编程"、"测试驱动开发"(TDD)等都有助于避免返工定义完成的标准"通过定义质量要求和产出物避免返工。

"结对编程"通过及时的 code review 避免缺陷在后期才被发现而造成返工。

"测试驱动开发"则是通过明确需求,避免因需求理解错误引入缺陷而造成的返工。

过度设计也是一种常见的浪费。

所谓"过度设计",指在设计阶段为未来可能发生的变化做过多的预测,并针对这些预测在设计上做过多预防。

正如俗话所说"计划不如变化快",过早地为这些可能根本就不会出现的变化做处理成了一种浪费。

因此,敏捷开发中提倡的是"简单设计"(Simple Design)。

所谓简单设计并不是没有设计,而是采用尽可能简单的设计方案。

相关文档
最新文档