Neural Project Institute面向 AI 时代的项目管理认证

各行业项目管理指南 · IT、软件与数字化

软件项目管理:生命周期、角色、方法与 KPI

软件项目管理是对软件产品和功能的规划、协调和交付,涵盖从探索和需求,经过设计、开发、测试和发布,直至持续改进的全过程。由于软件易于修改却难以估算,大多数软件团队以短迭代方式管理工作,并以可运行的软件而不是文档来衡量进展。

要点总结

  • 由于需求不断演变且估算具有不确定性,软件项目管理采用短迭代方式。
  • 根据工作性质而非习惯来选择 Scrum、Kanban、DevOps 或计划驱动的方法。
  • 用 DORA 指标和流动指标跟踪交付,用成果指标衡量成功。
  • 代码层面的工作使用开发者问题跟踪工具,跨职能规划则使用 Wrike 等平台。

软件项目管理的独特之处

  • 需求不断演变。 用户往往只有在看到可运行的东西之后,才知道自己想要什么。
  • 估算具有不确定性。 很多工作都是解决新问题,因此团队使用区间和历史吞吐量来预测,而不是固定日期。
  • 交付可以是持续的。 借助自动化测试和部署,团队每周可以发布多次。
  • 技术债。 为赶工期而采取的捷径,如果不偿还,就会拖慢未来的工作;参见 Scrum 中的技术债.
  • 质量内建。 代码评审、自动化测试和监控取代了项目末期的大规模测试阶段。
  • 产品与项目相互重叠。 许多软件团队是长期存在的产品团队,因此“项目”往往是一次发布、一组功能或一款新产品。

要大致了解团队如何在代码中应用敏捷价值观,请参阅 敏捷软件开发.

软件开发生命周期(SDLC)

阶段主要工作关键输出
探索了解用户、问题和目标;通过研究和原型验证想法问题陈述、产品愿景、早期原型
规划塑造范围、对待办事项列表排序、规划发布和产能产品待办事项列表, 发布计划, 路线图
设计UX 设计、架构和技术方案设计、架构决策、验收标准
开发以小增量编写代码,并进行评审和自动化测试可运行且经过测试的增量
测试与质量保证自动化测试、探索性测试、性能测试和安全测试测试结果、已解决的缺陷
发布与部署部署到生产环境,通常通过 持续交付 流水线已发布的功能、发布说明
运行与改进监控、支持用户、衡量成果,并将所学反馈到待办事项列表中指标、事件、新的待办事项

在敏捷团队中,这些阶段在每次迭代内持续进行,而不是按顺序只进行一次;参见 敏捷开发生命周期.

关键角色

角色主要职责
产品负责人 / 产品经理负责产品愿景,并按价值对待办事项列表排序;参见 Scrum 产品负责人
工程经理领导工程师,负责招聘、成长和交付实践
技术负责人 / 架构师负责技术方向和质量
开发人员设计、构建和测试软件
QA / 测试工程师测试策略、自动化测试和探索性测试
UX / 产品设计师用户研究和界面设计
Scrum Master 或交付负责人引导流程并消除障碍;参见 Scrum Master 角色
技术项目经理或项目群经理协调跨团队的依赖关系、时间表和风险;参见 技术项目经理
DevOps / SRE构建流水线、基础设施和可靠性

软件项目的方法论

方法适用场景说明
Scrum构建新功能并定期获取相关方反馈的产品团队固定长度的冲刺,包含计划、评审和回顾
Kanban维护、平台和支持团队;持续流动以 WIP 限制和流动指标代替冲刺
极限编程(XP)希望拥有严格工程纪律的团队结对编程、测试驱动开发、持续集成
DevOps自行构建并运行服务的团队实现交付自动化,并共同承担运维职责
瀑布 或 V 模型固定范围的合同以及受监管或安全关键型软件正式的阶段、文档和验证
规模化框架多个团队开发同一产品请参阅 SAFe 和 LeSS

比较各种选项,请参阅 敏捷与瀑布 和 Kanban 与 Scrum.

必备文档与模板

文档目的模板
产品待办事项列表产品可能需要的所有内容的有序列表产品待办事项列表模板
用户故事从用户视角编写的需求用户故事模板
冲刺计划冲刺目标和选定的工作冲刺计划模板
发布计划和路线图在宏观层面说明何时交付什么发布计划模板, 产品路线图模板
需求文档适用于固定范围或合同工作业务需求文档模板
回顾会记录团队商定的改进措施冲刺回顾会模板
RAID 日志跨团队风险和依赖关系RAID 日志模板

同时维护架构决策记录和完成的定义;参见 完成的定义.

软件项目管理的 KPI

KPI衡量内容典型应用
部署频率代码进入生产环境的频率交付能力(DORA 指标)
变更前置时间从提交代码到进入生产环境的时间流动速度(DORA 指标)
变更失败率导致故障的部署所占比例发布质量(DORA 指标)
服务恢复时间故障修复的速度韧性(DORA 指标)
周期时间从工作开始到完成的时间预测和发现瓶颈
吞吐量 或 速度每周或每个冲刺完成的工作量发布预测
逃逸缺陷发布后发现的缺陷测试的有效性
成果指标采用率、转化率、留存率或任务成功率软件是否创造了价值

请参阅 敏捷指标与 KPI 指南。

常见挑战

  • 日期和范围都固定。 固定日期、灵活调整范围,并根据过去的吞吐量以区间形式进行预测。
  • 技术债不断累积。 每个冲刺都为重构和平台工作预留产能。
  • 跨团队依赖关系。 将其清晰地标示出来,围绕共同的里程碑保持一致,并使用 Scrum of Scrums 或类似的同步会议。
  • 在制品过多。 应用 WIP 限制 ,先完成再开始新工作。
  • 衡量产出而非成果。 将发布与用户和业务目标挂钩,而不仅仅是故事点。

软件项目管理软件

开发团队需要一个与代码仓库和 CI/CD 流水线相连的问题跟踪工具,以及看板、待办事项列表和冲刺报告。产品经理和交付经理还需要路线图、跨团队依赖关系视图以及非工程人员也能看懂的报告。

Jira 被工程团队广泛用于问题跟踪。 Wrike 是 我们的工具排名 ,适用于软件工作需要与营销、支持、设计及其他部门一起规划的情况,可在同一处使用敏捷看板和甘特视图。另请参阅 Scrum 软件工具.

本主题的免费模板

浏览所有模板

常见问题

什么是软件项目管理?

软件项目管理是对软件产品和功能进行规划、协调和交付,涵盖从探索、开发、测试和发布直至持续改进的全过程。

软件项目管理有哪些阶段?

SDLC 的阶段包括探索、规划、设计、开发、测试、发布以及运行与改进,通常以短迭代方式重复进行。

哪种方法论最适合软件项目管理?

Scrum 适合功能团队,Kanban 适合持续流动和支持工作,DevOps 实践适合自行运行服务的团队,瀑布式或 V 模型适合固定范围或受监管的工作。

软件项目管理中的 DORA 指标是什么?

来自 DevOps 研究与评估(DORA)项目的四项交付指标:部署频率、变更前置时间、变更失败率和服务恢复时间。

在敏捷团队中,谁负责软件项目管理?

职责是共同承担的:产品负责人管理优先级,团队规划自己的工作,Scrum Master 负责引导,技术项目经理可能负责跨团队协调。

在软件项目管理中如何进行估算?

使用相对估算,例如 故事点 ,或根据历史吞吐量和周期时间进行预测,并以区间形式表示日期。

软件项目管理使用哪些文件?

产品待办事项列表、用户故事、冲刺计划、发布计划、路线图、完成的定义,以及(针对合同工作的)需求文档。

软件项目管理使用哪些软件?

与代码仓库相连的 Jira 等问题跟踪工具,以及在软件工作需要与其他部门一起规划时使用的 Wrike 等平台。

在软件项目管理中如何处理技术债?

使其在待办事项列表中可见,在每次迭代中预留产能来偿还,并将其纳入与产品负责人的规划讨论中。

软件项目管理与产品管理有什么区别?

产品管理决定构建什么以及为什么构建;软件项目管理则关注如何交付以及何时交付。

软件项目管理需要哪些技能?

了解开发流程、敏捷实践、风险和依赖关系管理、与技术和业务相关方的沟通,以及基于数据的预测。