项目管理是在项目活动中运用知识、技能、工具和方法,以便达到项目要求。
软件项目管理有其特定的对象、范围和活动,着重关注成本、进度、风险和质量的管理,还需要协调开发团队和客户的关系,协调内部各个团队之间的关系,监控项目进展情况,随时报告问题并督促问题的解决。
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。
随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。
实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋于成熟,企业越能够稳定发展。
同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是像过去那样一两个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。
管理流程
image1080×60 46.8 KB
需求阶段
- 项目经理:需要完成在项目管理工具中建立项目目录,分析项目所需资源、风险等,预估项目的周期等活动。活动完成后输出一个包含大致时间规划的项目计划。
- 产品:需要完成收集整理需求,环境分析等活动。活动完成后输出需求文档。
- 研发:要参与到需求分析和环境分析活动中。
- 测试:要参与到需求分析和环境分析活动中。
设计阶段
- 项目经理:需要完成监控项目进度,组织安排本阶段的评审,任务分解、责任到人,细化项目计划等活动。活动完成后输出具体到各个功能的项目计划。
- 产品:需要完成系统功能设计。完成后输出系统说明书。
- 研发:需要完成系统功能技术设计和数据库设计。完成后输出概要设计文档和详细设计文档。
- 测试:需要组织测试计划评审。完成后输出一份测试计划。
开发/单元测试阶段
- 项目经理:需要完成监控项目进度,调整人员安排,跟踪解决技术难点等活动。活动完成后输出更新进度后的项目计划和项目进度报告。
- 产品:参与需求细节沟通。
- 研发:需要完成具体功能开发,组织 code review 和单元测试等活动。完成后输出功能代码和单元测试代码。
- 测试:需要完成编写测试用例和组织测试用例评审等活动。完成后输出测试用例。
集成测试阶段
- 项目经理:需要完成监控项目进度,跟踪解决技术难点等活动。活动完成后输出项目进度报告。
- 产品:参与需求细节沟通和 Bug 修改方案的制定。
- 研发:需要完成集成测试,Bug 修改等活动。完成后输出集成测试报告,部署测试环境。
- 测试:支持研发进行集成测试,准备测试数据。
系统测试阶段
- 项目经理:需要完成分配 Bug,跟踪解决技术难点等活动。活动完成后输出项目进度报告。
- 产品:参与需求细节沟通和 Bug 修改方案的制定。
- 研发:支持测试活动,修改 Bug。
- 测试:需要完成测试环境搭建,补充测试数据,功能测试,自动化测试等活动。完成后输出系统测试报告和缺陷报告。
软件项目管理的方法
image1080×81 54.1 KB
制定项目计划
对于大项目,一般在项目启动或者立项时会制定一份完善的项目总体计划。有些公司可能会有自己的项目管理的工具。对于小项目或者版本,因为周期比较短,一般一个月,所以直接制定简单的日程计划进行跟踪。
执行该计划并监控跟踪管理
项目计划制定并得到项目组评审确认后,项目组要按照计划中安排的任务、时间和人员去执行。项目管理人员需要对计划执行情况进行监控,比如每周检查任务完成情况,每个里程碑点检查里程碑内所有任务完成情况。监控的结果会在项目日程计划中刷新任务完成进度,以便在非里程碑任务时间点时可以查看项目进度。必要时每周要召开项目例会并形成项目周报。每个里程碑结束时,要召开里程碑总结会议。
项目风险应对与问题解决
项目经理通过对项目周跟踪、里程碑跟踪活动,将发现项目进展中出现的问题及潜在问题,已经影响或将要影响项目目标。项目组需要跟踪和分析项目数据,对这些问题和风险进行识别、分析,策划相应的应对措施。
对问题解决或风险缓解措施的执行,项目经理须进行监督和控制,持续跟踪问题和风险状态变化,确保措施有效执行,直至问题关闭、风险缓解。对问题与风险的识别、解决策划和状态跟踪等信息,项目经理应记录在项目周报和里程碑总结报告的问题跟踪表或者 风险跟踪表中。
项目收尾
项目收尾是项目最后一个重要的工作环节,要完成项目的各项收尾工作,保存项目资产,移交工作责任、进行项目总结与评价,并最终释放项目资源。软件项目的管理需要依赖管理工具,一款符合需求的软件项目管理工具可以帮助团队更好的管理项目,更好的去实践开发模型。
跨部门沟通协作
与产品沟通
由于产品的岗位职者就是要设计产品功能,产出产品需求文档,那么可以得出需要和产品沟通的阶段有以下四个:
- 需求评审会
- 在分析需求阶段
- 在测试用例编写阶段
- 在测试过程中
总之,只要涉及到需求方面的问题,都需要和产品进行深入沟通,这样才可以深入完整的理解产业务的逻辑和项目的需求。这样最终交出去的软件才是符合用户需求的。
与研发沟通
- 在分析需求阶段
- 在测试用例编写阶段
- 在测试过程中
- 在线上监控发现 Bug 时
在需求分析和测试用例编写阶段,如果遇到一些需求的实现手段和逻辑不是很明确的话,就需要和研发进行进一步的沟通。
在测试过程中,如果发现 Bug 的话也要和研发进行沟通,接下来还有协助复现 Bug,提交 log,验证 Bug 等等,这些活动都需要和研发进行进一步沟通。
同理,在项目上线后,如果线上监控出现了 Bug 时,也需要同样的沟通步骤。
上下游配合测试
现在公司中的一个项目,往往会涉及多个团队,比如说服务端,客户端,数据库等等。那么在项目测试的时候,就需要多个团队的测试人员合作联调,这样会更加容易进行测试,并且可以更好的发现问题。
那么在这种上下游配合联调测试的时候,应该注意哪些问题呢?做到哪些可以使合作更加顺畅呢?
- 测试计划沟通:和上下游模块沟通各自负责的测试计划安排、测试范围、测试重要场景、跨团队测试数据的构造、配合的方式,把团队间的影响降到最低。
- 环境对接:了解相互之间接口的调用问题,接口是否沟通清楚,接口是否满足需求等,确保联调环境的可用。
- 熟悉业务:了解对方的业务、申请权限等,避免后续影响测试进度。