管理进化

软件项目管理的内容包括哪些


软件项目管理的过程包括:1、启动软件项目;2、制定项目计划;3、跟踪及控制项目计划;4、管理项目计划;5、评审项目文档。

一、软件项目管理的过程

管理的过程分为如下几个步骤:

(1) 启动软件项目

启动软件项目是指必须明确项目的目标和范围、考虑可能的解决方案以及技术和管理上的要求等,这些信息是软件项目运行和管理的基础。

(2) 制定项目计划

软件项目一旦启动,就必须制定项目计划。计划的制定以下面的活动为依据。

  • 估算项目所需要的工作量
  • 估算项目所需要的资源
  • 根据工作量制定进度计划,继而进行资源分配
  • 做出配置管理计划

在项目计划制定的时候,我们通常会使用到甘特图或者是路线图进行可视化跟踪展示,比如以下是我们在 PingCode 这个工具绘制的路线图:

image.png

(3) 跟踪及控制项目计划

在软件项目进行过程中,严格遵守项目计划,对于一些不可避免的变更,要进行适当的控制和调整,但要确保计划的完整性和一致性。

(4) 评审项目计划

对项目计划的完成程度进行评审。并对项目的执行情况进行评价。

(5) 编写管理文档

项目管理人员根据软件合同确定软件项目是否完成。项目一旦完成,则检查项目完成的结果和中间记录文档,并把所有的结果记录下来形成文档而保存。

二、软件项目管理的内容

软件项目管理的内容涉及上述软件项目管理过程的方方面面,概括起来主要有如下几项。

1、目标

需求管理的目的是在客户和处理客户需求的软件项目组之间建立对客户需求的共同理解。需求管理的目标有两个:

  • 使软件需求受控,并建立供软件工程和管理使用的需求基线。
  • 使软件计划、产品和活动与软件需求保持一致。

2、原则

为进行有效的需求管理,一般要遵循如下五条原则:

  • 需求一定要分类管理:进行软件项目管理的时候,一定要将软件需求分出层次。不同层次需求的侧重点、描述方式、管理方式是不同的。
  • 需求必须分优先级:在软件项目中,如果出现过多的需求,通常会导致项目超出预算和预定进度,最终导致软件项目的失败,因而需求的优先级可能比需求本身更加重要。
  • 需求必须文档化:需求必须有文档记录。该文档必须是正确的、最新的、可管理的、可理解的,是经过验证的,是在受控的状态下变更的。
  • 需求一旦变化,就必须对需求变更的影响进行评估:无论需求变化的程度如何,只要需求变化了就必须进行评估,这是基本的原则。
  • 需求管理必须与需求工程的其他活动紧密整合:进行需求管理一定不能脱离需求工程,需求工程包括了需求获取、需求分析、需求描述、需求验证、需求管理,因而需求管理必须与前面的几个需求阶段保持密切相关。

3、需求管理活动

需求管理是一个对系统需求变更了解和控制的过程。初始需求导出的同时就启动了需求管理规划, 一旦形成了需求文档的草稿版本, 需求活动就开始了。

image.png

三、软件项目估算与进度管理

1、软件项目估算

软件项目估算包括工作量估算和成本估算两个方面。软件估算作为软件项目管理的一项重要内容,是确保软件项目成功的关键因素。估算是指通过预测构造软件项目所需要的工作量的过程。初步的估算用于确定软件项目的可行性,详细的估算用于指导项目计划的制定。

2、软件规模——工作分解结构

对软件项目进行估算遇到的第一个问题就是软件规模,即软件的程序量。软件规模是软件工作量的主要影响因素。软件项目的设计有一个分层结构,这一分层结构就对应着工作分解结构(WBS,Work Breakdown Structure ),它将软件过程和软件产品结构联系起来。图是一个典型的WBS结构。

image.png

3、软件项目成本估算

成本估算是对完成软件项目所需费用的估计和计划,是软件项目计划中的一个重要组成部分。成本估算步骤如下:

  1. 建立目标
  2. 规划需要的数据和资源
  3. 确定软件需求
  4. 拟定可行的细节
  5. 运用多种独立的技术和原始资料
  6. 比较并迭代各个估算值
  7. 随访跟踪。

4、软件项目进度管理

  • 制定项目计划:项目计划在项目开始的时候制定,并随着项目的进展不断发展。软件项目计划的要素包括目标、合理的概念设计、工作分解结构、规模设计、工作量估计和项目进度安排。项目计划为管理者提供了根据计划定期评审和跟踪项目进展的基础。
  • 进度安排:在确定了项目的资源(总成本及时间等)后,把其分配到各个项目开发阶段中,即确定项目的进度。项目各阶段的工作量可以参考表
image.png

延伸阅读:软件项目进度管理工具

四、软件开发过程

我们用瀑布模型来描述一个软件开发的生命周期,如图所示

image.png

如果你还想了解敏捷开发模式下的软件开发生命周期,可通过以下文章查看: https://docs.pingcode.com/agile

五、软件开发各生命周期阶段与文档、角色间的关系

软件开发生命周期与文档、角色之间的关系:

image.png

六、软件开发项目中的各大角色职能

项目经理:

管理整个项目过程。包括制定计划、项目跟踪、项目成员的角色分配、协调、管理,软件配置管理,文挡标准制定,文挡审查等。

技术经理:

对项目的技术及方案总体把握,配合系统分析员做一些大的工作,审查系统分析员做好的各种设计,对系统分析员提出的问题一起去解决。

系统分析员:

和项目经理一起参与需求分析,形成需求规格说明文档。根据需求规格说明文挡做概要设计,形成概要设计文挡。根据概要设计文挡做详细设计文挡。在编码及测试阶段协助程序员、测试人员编码和测试。

程序员:

根据详细设计文档进行编码,并对自己的代码模块进行单元测试,形成单元测试报告。

测试员:

在编码完成后,做系统测试,形成测试报告,通知项目经理测试结果。

文档管理员:

对所有项目文档进行管理,保持所有文挡的同步与一致。

项目成员结构:

image.png

延伸阅读:软件项目的计划

软件项目计划是一个软件项目进入系统实施的启动阶段,主要进行的工作包括:确定详细的项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计划、成本和预算计划、 人力资源计划 等。

软件项目管理过程从项目计划活动开始,而第一项计划活动就是估算:需要多长时间、需要多少工作量、以及需要多少人员。此外,我们还必须估算所需要的资源(硬件及软件)和可能涉及到的风险。

为了估算软件项目的工作量和完成期限,首先需要预测软件规模。度量软件规模的常用方法有直接的方法——LOC(代码行),间接的方法——FP(功能点)。这两种方法各有优缺点,应该根据软件项目的特点选择适用的软件规模度量方法。

根据项目的规模可以估算出完成项目所需的工作量,我们可以使用一种或多种技术进行估算,这些技术主要分为两大类:分解和经验建模。分解技术需要划分出主要的软件功能,接着估算实现每一个功能所需的程序规模或人月数。 经验技术 的使用是根据经验导出的公式来预测工作量和时间。可以使用自动工具来实现某一特定的经验模型。

精确的项目估算一般至少会用到上述技术中的两种。通过比较和协调使用不同技术导出的估算值,我们可能得到更精确的估算。软件项目估算永远不会是一门精确的科学,但将良好的历史数据与系统化的技术结合起来能够提高估算的精确度。

当对软件项目给予较高期望时,一般都会进行 风险分析 。在标识、分析和管理风险上花费的时间和人力可以从多个方面得到回报:更加平稳的项目进展过程;更高的跟踪和控制项目的能力;由于在问题发生之前已经做了周密计划而产生的信心。

对于一个项目管理者,他的目标是定义所有的项目任务,识别出 关键任务 ,跟踪关键任务的进展情况,以保证能够及时发现拖延进度的情况。为此,项目管理者必须制定一个足够详细的进度表,以便监督项目进度并控制整个项目。

常用的制定进度计划的工具主要有Gantt图和工程网络两种。Gantt图具有悠久历史、直观简明、容易学习、容易绘制等优点,但是,它不能明显地表示各项任务彼此间的依赖关系,也不能明显地表示 关键路径 和关键任务,进度计划中的关键部分不明确。因此,在管理大型软件项目时,仅用Gantt图是不够的,不仅难于做出既节省资源又保证进度的计划,而且还容易发生差错。

工程网络不仅能描绘任务分解情况及每项作业的开始时间和结束时间,而且还能清楚地表示各个作业彼此间的依赖关系。从工程网络图中容易识别出关键路径和关键任务。因此,工程网络图是制定进度计划的强有力的工具。通常,联合使用Gantt图和工程网络这两种工具来制定和管理进度计划,使它们互相补充、取长补短。

进度安排是软件项目计划的首要任务,而 项目计划 则是软件项目管理的首要组成部分。与估算方法和风险分析相结合,进度安排将为项目管理者建立起一张计划图。

以上就是关于软件项目管理阶段、内容、角色职责、计划等全部内容,希望对大家项目管理过程有一定启发。

智齿客服