📅  最后修改于: 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。它将软件产品分为三类:有机软件,半分离软件和嵌入式软件。
项目中的项目计划是指在指定给每个活动的时间段内以指定顺序进行的所有活动的路线图。项目经理倾向于定义各种任务,并在计划里程碑时将各种因素牢记在心。他们查找任务在计划中的关键路径中,这对于以特定方式(由于任务相互依赖)并且严格在分配的时间内完成是必不可少的。超出关键路径的任务安排不太可能影响整个项目进度。
为了安排一个项目,有必要-
用于开发软件产品的所有元素都可以假定为该项目的资源。这可能包括人力资源,生产工具和软件库。
资源数量有限,并且作为资产池保留在组织中。资源短缺阻碍了项目的发展,可能会落后于进度。分配额外的资源最终会增加开发成本。因此,有必要为该项目估算和分配足够的资源。
资源管理包括-
风险管理涉及与识别,分析和为项目中的可预测和不可预测风险做好准备有关的所有活动。风险可能包括以下内容:
风险管理过程涉及以下活动:
在此阶段,根据项目计划执行计划中描述的任务。
执行需要监视,以检查是否一切都按计划进行。监控旨在观察检查风险的可能性,并采取措施应对风险或报告各种任务的状态。
这些措施包括-
有效的沟通对于项目的成功至关重要。它弥合了客户与组织之间,团队成员之间以及项目中其他利益相关者(例如硬件供应商)之间的鸿沟。
交流可以是口头的或书面的。通讯管理过程可能包含以下步骤:
关闭后,团队将移至下一个阶段或项目。
配置管理是根据产品的需求,设计,功能和开发来跟踪和控制软件更改的过程。
IEEE将其定义为“在系统中识别和定义项目,控制这些项目在其整个生命周期中的变更,记录和报告项目和变更请求的状态以及验证项目的完整性和正确性的过程”。
通常,一旦SRS最终确定,用户提出更改要求的机会就更少了。如果发生更改,则只有在获得上级管理层的事先批准后才能解决更改,因为这可能会导致成本和时间超支。
如果将SDLC的某个阶段作为基线,则假定该阶段已经结束,即,基线是定义一个阶段完整性的度量。当与该阶段有关的所有活动均已完成并有详细记录时,该阶段才为基准。如果不是最后阶段,则其输出将在下一个直接阶段使用。
配置管理是组织管理的一门学科,它负责在确定一个阶段的基准之后发生任何更改(流程,需求,技术,战略等)。 CM会检查软件中所做的任何更改。
变更控制是配置管理的函数,它可以确保对软件系统所做的所有变更都是一致的,并按照组织的规则和法规进行。
产品配置的更改需要执行以下步骤-
标识-更改请求来自内部或外部来源。正式识别变更请求后,将其正确记录在案。
验证-检查更改请求的有效性并确认其处理过程。
分析-根据进度,成本和所需的工作来分析变更请求的影响。分析了预期变更对系统的总体影响。
控制-如果预期更改影响系统中的太多实体或不可避免,那么在将更改合并到系统中之前必须获得上级主管的批准。确定更改是否值得合并。如果不是,更改请求将被正式拒绝。
执行-如果上一阶段确定要执行更改请求,则此阶段将采取适当的措施执行更改,并在必要时进行彻底的修订。
关闭请求-验证更改是否正确实施并与系统的其余部分合并。正确记录了软件中新合并的更改,并且正式关闭了该请求。
即使项目是按照既定方法开发的,风险和不确定性也会随着项目规模的增加而倍增。
有可用的工具,可帮助有效的项目管理。描述了一些-
甘特图由亨利·甘特(Henry Gantt)(1917)设计。它代表了有关时间段的项目进度。它是水平条形图,条形图表示活动和为项目活动安排的时间。
PERT(程序评估和审查技术)图表是一种将项目描述为网络图的工具。它能够以并行和连续方式以图形方式表示项目的主要事件。接连发生的事件表明上一个事件与后一个事件的相关性。
事件显示为编号的节点。它们之间通过标记箭头相连,这些箭头描述了项目中的任务序列。
这是一个图形工具,其中包含表示项目事件(或阶段)随时间推移所需的资源数量(通常为熟练人员)的条形图。资源直方图是进行员工计划和协调的有效工具。
该工具对于识别项目中相互依赖的任务很有用。它还有助于找出最短路径或关键路径,以成功完成项目。像PERT图一样,每个事件都分配有特定的时间范围。该工具显示事件的依赖性,假设只有在前一个事件完成时事件才可以继续到下一个事件。
根据事件的最早可能开始时间安排事件。开始节点和结束节点之间的路径是关键路径,无法进一步减少,并且所有事件都必须以相同顺序执行。