📜  软件项目管理

📅  最后修改于: 2021-01-07 06:21:52             🧑  作者: Mango


从事软件开发的IT公司的工作模式可以分为两部分:

  • 软件创作
  • 软件项目管理

项目是定义明确的任务,是为了实现目标而进行的若干操作的集合(例如,软件开发和交付)。一个项目可以表征为:

  • 每个项目都有一个独特而独特的目标。
  • 项目不是日常活动或日常操作。
  • 项目带有开始时间和结束时间。
  • 项目在达到其目标时结束,因此这是组织生命周期中的一个临时阶段。
  • 项目需要足够的时间,人力,财力,物力和知识储备资源。

软件专案

软件项目是在指定的时间段内根据执行方法执行的,从需求收集到测试和维护的软件开发的完整过程,以实现预期的软件产品。

需要软件项目管理

据说软件是无形的产品。软件开发是世界业务中的一种全新流,在构建软件产品方面经验很少。大多数软件产品都是根据客户要求量身定制的。最重要的是,基础技术如此频繁且迅速地变化和发展,以至于一种产品的经验可能无法应用于另一种产品。所有这些业务和环境限制都会给软件开发带来风险,因此,有效管理软件项目至关重要。

时间成本质量

上图显示了软件项目的三重约束。交付高质量的产品,使成本保持在客户预算范围内并按计划交付项目是软件组织的重要组成部分。内部和外部都有多个因素可能会影响此三重约束三角形。这三个因素中的任何一个都会严重影响其他两个因素。

因此,软件项目管理对于整合用户需求以及预算和时间限制至关重要。

软件项目经理

软件项目经理是负责执行软件项目的人员。软件项目经理完全了解软件将经历的SDLC的所有阶段。项目经理可能永远不会直接参与最终产品的生产,但他控制和管理生产中涉及的活动。

项目经理密切监视开发过程,准备并执行各种计划,安排必要和充足的资源,保持所有团队成员之间的沟通,以解决成本,预算,资源,时间,质量和客户满意度方面的问题。

让我们看看项目经理要承担的责任-

管理人员

  • 担任项目负责人
  • 与利益相关者联络
  • 人力资源管理
  • 设置报告层次结构等

管理项目

  • 定义和设置项目范围
  • 管理项目管理活动
  • 监控进度和绩效
  • 每个阶段的风险分析
  • 采取必要的步骤避免或摆脱问题
  • 担任项目代言人

软件管理活动

软件项目管理包括许多活动,其中包括项目计划,确定软件产品的范围,以各种方式估算成本,安排任务和事件以及资源管理。项目管理活动可能包括:

  • 项目计划
  • 范围管理
  • 项目估算

项目计划

软件项目计划是一项任务,在实际开始生产软件之前执行。它在那里用于软件生产,但不涉及与软件生产有任何方向联系的具体活动。相反,它是一组多个过程,这有助于软件生产。项目计划可能包括以下内容:

范围管理

它定义了项目范围;这包括所有活动,为了制作可交付的软件产品,需要完成流程。范围管理是必不可少的,因为它通过明确定义项目中要做什么和不要做什么来创建项目边界。这使得项目包含有限且可量化的任务,可以轻松地将其记录在案,从而避免了成本和时间的超支。

在项目范围管理中,有必要-

  • 定义范围
  • 决定其验证和控制
  • 将项目分为多个较小的部分,以便于管理。
  • 验证范围
  • 通过合并范围的更改来控制范围

项目估算

为了有效地进行管理,必须准确评估各种措施。通过正确的估算,经理可以更有效地管理和控制项目。

项目估算可能涉及以下内容:

  • 软件大小估算

    可以根据KLOC(基洛代码行)或通过计算软件中函数点的数量来估算软件大小。代码行取决于编码惯例,功能点根据用户或软件要求而有所不同。

  • 努力量估算

    管理人员根据人员需求和生产软件所需的工时来估算工作量。对于工作量估算,应该知道软件的大小。这可以根据管理人员的经验得出,也可以通过使用一些标准公式将组织的历史数据或软件规模转换为工作量。

  • 时间估算

    一旦估算出规模和工作量,就可以估算出生产软件所需的时间。根据需求规范和软件各个组件的相互依赖性,所需的工作分为几类。根据工作突破结构(WBS)将软件任务分为较小的任务,活动或事件。这些任务是按日或日历月计划的。

    完成所有任务所需的时间总和(以小时或天为单位)是完成该项目所花费的总时间。

  • 费用估算

    这可能被认为是最困难的,因为它比以前的元素依赖更多的元素。估算项目成本时,需要考虑-

    • 软件大小
    • 软件质量
    • 硬件
    • 其他软件或工具,许可证等
    • 具有特定任务技能的熟练人员
    • 涉及旅行
    • 通讯
    • 培训与支持

项目估算技术

我们讨论了涉及项目估算的各种参数,例如规模,工作量,时间和成本。

项目经理可以使用两种公认的技术来估算列出的因素:

分解技术

该技术假定软件是各种组成的产品。

主要有两种模式-

  • 代码行估计代表软件产品中的代码行数进行。
  • 功能点估算为代表的软件产品函数点的数量来完成。

经验估计技术

该技术使用经验推导的公式进行估算。这些公式基于LOC或FP。

  • 普特南模型

    该模型由Lawrence H. Putnam制作,它基于Norden的频率分布(瑞利曲线)。 Putnam模型映射了软件大小所需的时间和精力。

  • 可可

    COCOMO代表由Barry W. Boehm开发的COnstructive COst MOdel。它将软件产品分为三类:有机软件,半分离软件和嵌入式软件。

项目计划

项目中的项目计划是指在指定给每个活动的时间段内以指定顺序进行的所有活动的路线图。项目经理倾向于定义各种任务,并在计划里程碑时将各种因素牢记在心。他们查找任务在计划中的关键路径中,这对于以特定方式(由于任务相互依赖)并且严格在分配的时间内完成是必不可少的。超出关键路径的任务安排不太可能影响整个项目进度。

为了安排一个项目,有必要-

  • 将项目任务分解为较小的,易于管理的形式
  • 找出各种任务并将其关联
  • 估计每个任务所需的时间范围
  • 将时间划分为多个工作单元
  • 为每个任务分配足够数量的工作单元
  • 计算项目从开始到结束所需的总时间

资源管理

用于开发软件产品的所有元素都可以假定为该项目的资源。这可能包括人力资源,生产工具和软件库。

资源数量有限,并且作为资产池保留在组织中。资源短缺阻碍了项目的发展,可能会落后于进度。分配额外的资源最终会增加开发成本。因此,有必要为该项目估算和分配足够的资源。

资源管理包括-

  • 通过创建项目团队并向每个团队成员分配职责来定义适当的组织项目
  • 确定特定阶段所需的资源及其可用性
  • 通过在需要时生成资源请求并在不再需要时取消分配资源来管理资源。

项目风险管理

风险管理涉及与识别,分析和为项目中的可预测和不可预测风险做好准备有关的所有活动。风险可能包括以下内容:

  • 经验丰富的员工离开项目,新员工进来。
  • 改变组织管理。
  • 需求变更或误解需求。
  • 估计所需的时间和资源不足。
  • 技术变化,环境变化,商业竞争。

风险管理流程

风险管理过程涉及以下活动:

  • 识别-记录项目中可能发生的所有可能的风险。
  • 分类-根据已知风险对项目的可能影响,将其分为高,中和低风险强度。
  • 管理-分析各个阶段发生风险的可能性。制定计划以避免或面临风险。尝试最小化其副作用。
  • 监视-密切监视潜在风险及其早期症状。还监视缓解或避免采取措施的效果。

项目执行与监控

在此阶段,根据项目计划执行计划中描述的任务。

执行需要监视,以检查是否一切都按计划进行。监控旨在观察检查风险的可能性,并采取措施应对风险或报告各种任务的状态。

这些措施包括-

  • 活动监视-可以每天监视某些任务中计划的所有活动。任务中的所有活动完成后,将被视为已完成。
  • 状态报告-这些报告包含在给定时间范围(通常是一周)内完成的活动和任务的状态。状态可以标记为已完成,待处理或进行中等。
  • 里程碑清单-每个项目都分为多个阶段,其中根据SDLC的阶段执行主要任务(里程碑)。此里程碑清单每隔几周准备一次,并报告里程碑的状态。

项目沟通管理

有效的沟通对于项目的成功至关重要。它弥合了客户与组织之间,团队成员之间以及项目中其他利益相关者(例如硬件供应商)之间的鸿沟。

交流可以是口头的或书面的。通讯管理过程可能包含以下步骤:

  • 规划-此步骤包括确定项目中所有利益相关者的身份以及他们之间的沟通方式。它还考虑是否需要任何其他通讯设施。
  • 共享-确定计划的各个方面之后,经理将重点放在在正确的时间与正确的人共享正确的信息。这样可以使每个参与项目的人员都保持最新的项目进度及其状态。
  • 反馈-项目经理使用各种措施和反馈机制,并创建状态和绩效报告。这种机制确保了来自各个利益相关者的输入都将反馈给项目经理。
  • 结案-在每次重大活动结束,SDLC阶段结束或项目本身结束时,将正式宣布行政结案,以通过发送电子邮件,分发文件的纸质副本或通过其他有效的沟通方式来更新每个利益相关者。

关闭后,团队将移至下一个阶段或项目。

配置管理

配置管理是根据产品的需求,设计,功能和开发来跟踪和控制软件更改的过程。

IEEE将其定义为“在系统中识别和定义项目,控制这些项目在其整个生命周期中的变更,记录和报告项目和变更请求的状态以及验证项目的完整性和正确性的过程”。

通常,一旦SRS最终确定,用户提出更改要求的机会就更少了。如果发生更改,则只有在获得上级管理层的事先批准后才能解决更改,因为这可能会导致成本和时间超支。

基准线

如果将SDLC的某个阶段作为基线,则假定该阶段已经结束,即,基线是定义一个阶段完整性的度量。当与该阶段有关的所有活动均已完成并有详细记录时,该阶段才为基准。如果不是最后阶段,则其输出将在下一个直接阶段使用。

配置管理是组织管理的一门学科,它负责在确定一个阶段的基准之后发生任何更改(流程,需求,技术,战略等)。 CM会检查软件中所做的任何更改。

换控制模式

变更控制是配置管理的函数,它可以确保对软件系统所做的所有变更都是一致的,并按照组织的规则和法规进行。

产品配置的更改需要执行以下步骤-

  • 标识-更改请求来自内部或外部来源。正式识别变更请求后,将其正确记录在案。

  • 验证-检查更改请求的有效性并确认其处理过程。

  • 分析-根据进度,成本和所需的工作来分析变更请求的影响。分析了预期变更对系统的总体影响。

  • 控制-如果预期更改影响系统中的太多实体或不可避免,那么在将更改合并到系统中之前必须获得上级主管的批准。确定更改是否值得合并。如果不是,更改请求将被正式拒绝。

  • 执行-如果上一阶段确定要执行更改请求,则此阶段将采取适当的措施执行更改,并在必要时进行彻底的修订。

  • 关闭请求-验证更改是否正确实施并与系统的其余部分合并。正确记录了软件中新合并的更改,并且正式关闭了该请求。

项目管理工具

即使项目是按照既定方法开发的,风险和不确定性也会随着项目规模的增加而倍增。

有可用的工具,可帮助有效的项目管理。描述了一些-

甘特图

甘特图由亨利·甘特(Henry Gantt)(1917)设计。它代表了有关时间段的项目进度。它是水平条形图,条形图表示活动和为项目活动安排的时间。

甘特图

PERT图

PERT(程序评估和审查技术)图表是一种将项目描述为网络图的工具。它能够以并行和连续方式以图形方式表示项目的主要事件。接连发生的事件表明上一个事件与后一个事件的相关性。

PERT图

事件显示为编号的节点。它们之间通过标记箭头相连,这些箭头描述了项目中的任务序列。

资源直方图

这是一个图形工具,其中包含表示项目事件(或阶段)随时间推移所需的资源数量(通常为熟练人员)的条形图。资源直方图是进行员工计划和协调的有效工具。

直方图表直方图图

关键路径分析

该工具对于识别项目中相互依赖的任务很有用。它还有助于找出最短路径或关键路径,以成功完成项目。像PERT图一样,每个事件都分配有特定的时间范围。该工具显示事件的依赖性,假设只有在前一个事件完成时事件才可以继续到下一个事件。

根据事件的最早可能开始时间安排事件。开始节点和结束节点之间的路径是关键路径,无法进一步减少,并且所有事件都必须以相同顺序执行。