53、敏捷Scrum方法中的项目管理

敏捷Scrum方法中的项目管理

一、引言

管理指的是为有效实现既定目标而采取的一系列行动。根据目标群体的不同,可分为组织管理、公司管理和项目管理等。管理过程涉及组织资源的整合与协调,管理者的任务包括规划、决策、组织和控制,涵盖预算和工作时间表等方面。

近年来,计算机科学在IT项目管理领域发展迅速,软件实施和控制模型的选择日益多样,相关支持工具也不断增加。

二、软件开发模型

目前尚未有适用于所有IT项目的通用软件开发标准。选择管理技术时,需考虑诸多因素,如系统规模、所用技术、需求变更可能性、项目范围(分布式或本地团队)以及实施风险等。常见的软件开发模型有瀑布模型、迭代级联模型和敏捷编程。

  1. 瀑布模型 :该模型将项目严格划分为不同阶段,且阶段顺序固定,必须完成前一阶段才能进入下一阶段。它是较古老的经典软件生命周期模型。
  2. 敏捷方法 :基于迭代增量编程,由自我管理、紧密协作的团队实施软件。其原则和目标体现在《敏捷宣言》中,主要特点是迭代式创建产品,每次迭代后输出可用的软件版本,摒弃了严格的顺序阶段序列。

通过对两种模型的图形比较和相关文献分析可知,敏捷方法更适合IT项目。因此,本文所介绍的系统采用迭代增量方法,即Scrum方法。

市场上也有其他基于Scrum技术管理IT项目的工具,如iceScrum、Banana Scrum和Agilefant等。但本文提出的系统针对软件开发管理问题采用了定制化方法,旨在支持整个项目团队的工作,优化团队成员间的任务工作流程,而非仅辅助产品负责人或Scrum主管。

三、系统假设与架构

系统在Visual Studio 2013环境中使用SharePoint 2013实现。借助产品中的WebPart组件,每个项目团队成员(即系统用户)可向默认的Scrum站点添加其他组件,从而基于默认模板创建适用于每个项目参与者的工具集。

初步分析表明,单个Sprint中的每个任务都有其生命周期,因此该系统将任务及其生命周期作为管理元素。任务工作流程如图所示:

graph LR classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px; classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px; classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px; A([开始]):::startend --> B(Scrum主管安排开发):::process B --> C(程序员开发任务):::process C --> D{测试结果}:::decision D -->|通过| E(任务接受,状态转移):::process D -->|不通过| F(返回程序员修正):::process F --> C E --> G(设置任务状态为关闭):::process G --> H([结束]):::startend

系统设计允许将任务分配给SharePoint组并设置其持续时间,还能编程设置私有时钟(定时器作业),在固定时间执行既定操作。此外,系统具备用户与颜色关联的功能,便于解读看板,能快速识别工作过度和无法完成任务的人员。

在确定系统需求时,特别强调了开发者和测试者之间工作流程的安全性。为避免单个测试者验证所有任务或程序员只选择特定测试者合作的情况,开发者不能将任务发送给特定测试者,任务发送到下一阶段后,"分配给"字段会自动填充所有测试者组。测试者登录后有两个视图:自己的任务和待处理任务,可选择是否验证任务。验证后,任务可返回给开发者,开发者修正后再分配给原测试者,这种方式能确保任务检查的一致性,节省测试团队成员熟悉任务的时间。

四、系统实用性分析

在IT项目中,在规定时间和预算内实现所有合同功能至关重要。在Scrum方法项目中,预算和时间具有灵活性,产品负责人可在每次迭代后选择下一Sprint要完成的项目。该系统可控制任务,尤其能评估项目团队的工作效率,Sprint完成后可查看团队成员的项目参与情况,包括完成任务数量、优先级和任务规模等。同时,还能检查测试者和开发者的效率,若测试者频繁将任务返回给开发者,可能表明测试有效,但如果总是返回给同一开发者,则可能意味着开发者工作效率低、质量差。

该系统在项目管理的9个领域中,对集成管理、成本管理、沟通、人力资源和质量管理这5个领域进行了改进或完全自动化。而交付管理、风险、范围和时间管理等领域,对于软件开发团队的日常工作并非必要,若实现这些功能可能会增加系统使用难度,或只有少数用户偶尔使用,被视为冗余功能。

4.1 基于项目模拟的分析

为测试系统实用性,模拟了IT项目开发环境,估算因开发者和测试者沟通不足以及对错误响应不及时可能产生的浪费。

假设项目中有Scrum主管、产品负责人、10名开发者(标记为P1 - P10)和3名测试者。以下是一次Sprint中分配给开发者的任务示例:

| 开发者 | XL (40h) | L (16h) | M (8h) | S (4h) | 任务总数 | 总时长 |

| ---- | ---- | ---- | ---- | ---- | ---- | ---- |

| P1 | 1 | 2 | 0 | 1 | 4 | 76 |

| P2 | 0 | 3 | 4 | 0 | 7 | 80 |

| P3 | 1 | 0 | 1 | 7 | 9 | 76 |

| P4 | 1 | 1 | 1 | 3 | 6 | 76 |

| P5 | 2 | 0 | 0 | 0 | 2 | 80 |

| P6 | 0 | 4 | 2 | 0 | 6 | 80 |

| P7 | 0 | 0 | 4 | 10 | 14 | 72 |

| P8 | 1 | 1 | 0 | 6 | 8 | 80 |

| P9 | 1 | 0 | 4 | 1 | 6 | 76 |

| P10 | 0 | 1 | 1 | 12 | 14 | 72 |

| 任务总数 | 7 | 12 | 17 | 40 | 76 | 768 |

模拟的下一步是对任务进行优先级排序,为不同优先级任务分配相应的单位值:高 - 8u,重要 - 6u,中等 - 4u,低 - 2u。任务得分是根据实现任务所需小时数乘以其优先级计算的加权值。

例如,3个高优先级(8u)的XL (40h) 任务可得 3 * 40h * 8u = 960 分。

以下是模拟中分配的分数和因接受和发送错误任务给客户导致的损失:

| 开发者 | 高 (8u) | 重要 (6u) | 中等 (4u) | 低 (2u) | 总和 |

| ---- | ---- | ---- | ---- | ---- | ---- |

| | XL | L | M | S | XL | L | M | S | XL | L | M | S | XL | L | M | S |

| P1 | 1 | 1 | 1 | 1 | | | | | | | | | | | | | 4 |

| P2 | 2 | 2 | 1 | 2 | | | | | | | | | | | | | 7 |

| P3 | 1 | 2 | 2 | 1 | 2 | | | | | | | | | | | | 9 |

| P4 | 1 | 1 | 1 | 1 | 2 | | | | | | | | | | | | 6 |

| P5 | 1 | 1 | 2 | | | | | | | | | | | | | | |

| P6 | 1 | 1 | 1 | 2 | 1 | | | | | | | | | | | | 6 |

| P7 | 1 | 2 | 1 | 2 | 2 | 2 | | | | | | | | | | | 14 |

| P8 | 2 | 2 | 2 | 1 | | | | | | | | | | | | | 8 |

| P9 | 1 | 1 | 1 | 1 | 1 | 1 | | | | | | | | | | | 6 |

| P10 | 1 | 1 | 1 | 5 | 6 | | | | | | | | | | | | 14 |

| 任务总数 | 3 | 3 | 4 | 7 | 2 | 2 | 5 | 5 | 2 | 3 | 5 | 12 | 0 | 4 | 3 | 16 | 76 |

| 得分 | 960 | 384 | 256 | 224 | 480 | 192 | 240 | 120 | 320 | 192 | 160 | 192 | 0 | 128 | 48 | 128 | 4024 |

| 错误 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | |

| 错误成本 | 320 | 128 | 64 | 32 | 240 | 96 | 48 | 24 | 160 | 64 | 32 | 16 | 0 | 32 | 16 | 8 | 1346 |

| 质量下降百分比 | 7.95 | 3.18 | 1.59 | 0.8 | 5.96 | 2.39 | 1.19 | 0.6 | 3.98 | 1.59 | 0.8 | 0.4 | 1.99 | 0.8 | 0.4 | 0.2 | 33.8 |

可以看出,一次错误会使项目质量下降约1/3,导致项目成本增加和团队声誉受损。不同优先级和规模的任务,一次错误对产品质量的影响不同。通过模拟可知,一个高优先级的XL任务错误相当于多个低优先级任务错误的影响。

在实际项目中,Sprint期间的错误可能使软件开发质量下降高达43.53%。使用该系统可避免将不合格任务交付给客户,任务会全程得到验证和监控,若验证发现任务不合格或不完整,会立即返回给开发者,可能会移至下一个Sprint,确保不会以错误形式交付给客户。

五、结论

该系统支持IT项目团队的活动,具备此类工具的多种特定选项,与同类产品相比,具有以下特点:颜色配置列表、项目团队成员间的任务工作流程以及生成和存档Sprint的能力。

此外,系统还具备自动Sprint审查功能,这是其他替代方案所没有的。根据良好编程实践原则,Sprint结束时应将该阶段实现的变更列表发送给产品负责人。若仅基于任务状态或看板进行总结,创建此类列表会非常耗时。而该系统会自动生成Excel电子表格形式的Sprint总结,并通过电子邮件发送给客户,无需Scrum主管或项目经理参与。同时,系统还能发送未完成任务列表及未完成原因。

该系统可作为软件项目员工的工具,也可为软件开发过程的有效管理提供研究基础。

敏捷Scrum方法中的项目管理

五、结论(续)

系统的这些独特功能使得它在IT项目管理中具有显著优势。下面我们进一步详细探讨系统的这些特点及其带来的好处。

  1. 颜色配置列表

    每个团队成员在看板上都有自己独特的颜色标识。这一设计极大地提高了看板的直观性和可读性。通过颜色,团队成员可以快速识别任务的负责人,了解每个人的工作负荷情况。例如,当看板上某一颜色的任务堆积过多时,就可以直观地看出该成员可能工作过度;而如果某一颜色的任务较少,则可能表示该成员有更多的精力可以承担新的任务。这种可视化的呈现方式有助于团队更好地进行任务分配和资源协调。

  2. 任务工作流程

    系统为项目团队成员之间的任务流转设计了清晰的工作流程。从任务的分配、开发、测试到最终完成,每个阶段都有明确的状态和操作。这种流程化的管理方式确保了任务的有序进行,避免了任务的混乱和延误。例如,开发者完成任务后,任务会自动流转到测试阶段,测试者可以根据任务状态进行相应的操作,如验证、返回修正等。整个过程中,任务的状态和流转信息都可以在系统中清晰地查看,提高了团队的协作效率。

  3. 生成和存档Sprint

    系统具备生成和存档Sprint的能力,这对于项目的跟踪和回顾非常重要。每个Sprint结束后,系统会自动保存相关的任务信息、团队成员的工作情况以及项目的进展数据。这些存档数据可以为后续的项目规划和决策提供有力的参考。例如,通过分析以往Sprint的数据,可以了解团队的工作效率、任务完成情况以及可能存在的问题,从而在后续的Sprint中进行改进和优化。

  4. 自动Sprint审查

    自动Sprint审查是系统的一大亮点。在Sprint结束时,系统会自动生成包含该阶段实现变更的列表,并以Excel电子表格的形式发送给产品负责人。这一功能不仅节省了大量的时间和精力,还确保了总结的准确性和完整性。同时,系统还会发送未完成任务列表及未完成原因,让产品负责人能够全面了解项目的进展情况,及时做出决策。

六、系统操作流程总结

为了更好地理解和使用该系统,下面我们总结一下系统的主要操作流程:

  1. 任务分配

    • Scrum主管根据项目需求和团队成员的能力,将任务分配给相应的开发者。任务可以分配给SharePoint组,并设置任务的持续时间。
    • 开发者登录系统后,可以在自己的任务列表中查看分配给自己的任务。
  2. 任务开发

    • 开发者按照任务要求进行开发工作。在开发过程中,系统会记录任务的状态和进度。
    • 开发完成后,开发者将任务发送到测试阶段。
  3. 任务测试

    • 任务发送到测试阶段后,"分配给"字段会自动填充所有测试者组。
    • 测试者登录系统后,有两个视图:自己的任务和待处理任务。测试者可以选择是否验证任务。
    • 验证过程中,如果发现任务存在问题,测试者可以将任务返回给开发者进行修正;如果任务通过验证,则可以将任务标记为完成。
  4. Sprint管理

    • 系统会自动生成Sprint,并在Sprint结束时进行自动审查。
    • 自动生成Excel电子表格形式的Sprint总结,包含该阶段实现的变更列表,并发送给产品负责人。
    • 同时发送未完成任务列表及未完成原因。
七、系统优势对比

为了更直观地展示该系统的优势,我们将其与传统的项目管理方式进行对比:

| 对比项 | 传统项目管理方式 | 本系统 |

| ---- | ---- | ---- |

| 任务分配 | 可能存在任务分配不合理,信息不透明的情况 | 任务分配明确,可分配给SharePoint组,信息透明 |

| 任务跟踪 | 依赖人工记录和汇报,容易出现信息滞后和不准确的问题 | 系统自动记录任务状态和进度,实时更新 |

| Sprint管理 | 需要手动进行Sprint总结和汇报,耗时耗力 | 自动生成Sprint总结和未完成任务列表,节省时间和精力 |

| 团队协作 | 沟通和协作效率较低,容易出现任务冲突和延误 | 任务工作流程清晰,团队成员之间协作更加高效 |

八、未来展望

随着IT项目的不断发展和变化,对项目管理工具的要求也越来越高。该系统虽然已经具备了很多优秀的功能,但仍有进一步发展和完善的空间。

  1. 集成更多工具

    可以考虑将系统与其他常用的开发工具进行集成,如代码管理工具、缺陷跟踪工具等,实现数据的无缝对接和共享,提高开发效率。

  2. 智能化分析

    引入人工智能和机器学习技术,对项目数据进行深入分析,提供更精准的预测和建议。例如,预测任务的完成时间、识别潜在的风险等。

  3. 移动端支持

    开发移动端应用,让团队成员可以随时随地通过手机或平板访问系统,查看任务信息、进行任务操作,提高工作的灵活性和便捷性。

总之,该系统为IT项目管理提供了一种高效、便捷的解决方案。通过不断地优化和完善,相信它将在未来的项目管理中发挥更大的作用。

graph LR classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px; classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px; classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px; A([开始]):::startend --> B(任务分配):::process B --> C(任务开发):::process C --> D(任务测试):::process D --> E{任务是否通过}:::decision E -->|是| F(任务完成):::process E -->|否| C F --> G(Sprint结束):::process G --> H(自动Sprint审查):::process H --> I(发送Sprint总结和未完成任务列表):::process I --> J([结束]):::startend

以上就是关于该系统的详细介绍和分析,希望对大家在IT项目管理方面有所帮助。

相关推荐
猴哥聊项目管理1 天前
2025年敏捷开发项目管理工具十大排名(Scrum/Kanban支持度、看板灵活性、团队协作效率)
项目管理·产品经理·scrum·敏捷流程·项目经理·项目管理工具·项目管理软件
F36_9_3 天前
2025年plm项目管理系统8款选型推荐
项目管理
F36_9_3 天前
项目管理工具测评:11款常用软件测评
项目管理
F36_9_3 天前
项目管理app测评:2025年主流9款项目管理软件
app·项目管理
CodeCraft Studio7 天前
让项目管理更智能:基于 DHTMLX Gantt + AI 的自然语言项目构建方案
人工智能·项目管理·甘特图·dhtmlx·dhtmlx gantt·gantt
Mintopia7 天前
🌐 大厂AIGC技术生态与中小Web开发者的“和谐共生”之路
人工智能·aigc·敏捷开发
www32701258 天前
项目管理系统打通数字化转型全链路(从需求到交付)的实践路径
运维·项目管理·项目管理系统
0和1的舞者8 天前
《Maven 核心功能与仓库体系详解》
ide·maven·项目管理·仓库·依赖
我晕死哦9 天前
【管理系列】什么是管理?
项目管理·管理·团队管理·企业管理