软件开发项目进度管理(软件开发项目进度管理软件) 软件开发

今天给各位分享软件开发项目进度管理的知识,其中也会对软件开发项目进度管理软件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

  • 1、软件项目的管理思路?
  • 2、软件项目的管理流程
  • 3、在项目执行的过程中如何进行项目的控制?
  • 4、软件项目设计与开发过程管理分析
  • 5、如何对软件开发进行进度管理
  • 6、多项目同时进行如何做好进度管理

软件项目的管理思路?

软件项目管理是为了使软件项目能够按照既定的成本、进度、质量顺利完成而对成本、人员、进度、质量和风险进行分析和管理的活动,它是决定软件项目能否高效、顺利进行的基础性工作。

目前的软件开发过程中尚存在开发环境复杂、代码共享困难、程序规模增大、软件重用性程度不高以及软件维护困难等问题,因此,对软件项目的管理就显得尤为重要。软件项目管理较其他类项目管理的特殊性主要体现在如下方面:

(1)与普通项目不同,软件项目涉及的是纯知识产品,其开发进度和质量难以准确估计和度量,很多软件项目交付的成果事先不可见。有的应用软件已经不再是业务流程的电子化,而是同时涉及业务流程再造或业务创新,这就造成了项目需求获取环节的困难。

(2)软件项目开发的周期长、复杂度高、变更可能性大。软件项目开发周期一般比较长,一般大型的软件项目开发周期达到2年以上。软件系统的高复杂度使软件开发过程的各种风险难以预测和控制。软件项目的变更主要来自外部和内部两个方面,外部变更包括商业环境、政策法规等对项目范围和需求造成的影响;内部变更包括组织结构、人事变动等对项目造成的直接影响。

(3)软件需要满足目标客户的期望。软件项目给客户提供的是服务,服务质量不仅由最终交付产品决定,更取决于客户的满意度。不同行业的客户对项目的关注点也不相同,因最终交付产品决定,更取决于客户的满意度。不同行业的客户对项目的关注点也不相同,因此,满足客户期望的前提是在项目之初以及项目开发的过程中始终关注客户的需求变更和关注点。

软件项目的管理流程

导语:关于软件项目的管理流程,相关人员来了解一下吧。下面是我收集整理的软件项目管理流程,供各位阅读和参考。

一、     风险评估

软件项目风险是指在整个项目周期中所涉及的成本预算、开发进度、技术难度、经济可行性、安全管理等各方面的问题,以及由这些问题而对项目所产生的影响。项目的风险与其可行性成反比,其可行性越高,风险越低。软件项目的可行性分为经济可行性、业务可行性、技术可行性、法律可行性等四个方面。而软件项目风险则分为产品规模风险、需要风险、相关性风险、管理风险、安全风险等六个方面:

1.      产品规模风险

项目的风险是与产品的规模成正比的,一般产品规模越大,问题就越突出。尤其是估算产品规模的方法,复用软件的多少,需求变更的多少等因素与产品风险息息相关:

(1)  估算产品规模的方法

(2)  产品规模估算的信任度

(3)  产品规模与以前产品规模平均值的偏差

(4)  产品的用户数

(5)  复用软件的多少

(6)  产品需求变更的多少

2.      需求风险

很多项目在确定需求时都面临着一些不确定性。当在项目早期容忍了这些不确定性,并且在项目进展过程当中得不到解决,这些问题就会对项目的成功造成很大威胁。如果不控制与需求相关的风险因素,那么就很有可能产生错误的产品或者拙劣地建造预期的产品。每一种情况对产品来讲都可能致命的,这些的风险因素有:

(1)  对产品缺少清晰的认识

(2)  对产品需求缺少认同

(3)  在做需求分析过程中客户参与不够

(4)  没有优先需求

(5)  由于不确定的需要导致新的市场

(6)  不断变化需求

(7)  缺少有效的需求变化管理过程

(8)  对需求的变化缺少相关分析等

3.      相关性风险

许多风险都是因为项目的外部环境或因素的相关性产生的。控制外部的相关性风险, 能缓解策略应该包括可能性计划,以便从第二资源或协同工作资源中取得必要的组成部分,并觉察潜在的问题,与外部环境相关的因素有:

(1)  客户供应条目或信息

(2)  交互成员或交互团体依赖性

(3)  内部或外部转包商的关系

(4)  经验丰富人员的可得性

(5)  项目的复用性

4.      技术风险

软件技术的飞速发展和经验丰富员工的缺乏,意味着项目团队可能会因为技巧的原因影响项目的成功。 在早期,识别风险从而采取合适的预防措施是解决风险领域问题的关键,比如:培训、聘请顾问以及为项目团队招聘合适的人才等。关于技术主要有下面这些风险因素:

(1)  缺乏培训

(2)  对方法、工具和技术理解的不够

(3)  应用领域的经验不足

(4)  对新的技术和开发方法应用不熟悉

5.      管理风险

尽管管理问题制约了很多项目的成功,但是不要因为风险管理计划中没有包括所有管理活动而感到惊奇。在大部分项目里,项目经理经常是写项目风险管理计划的人,他们有先天性的不足——不能检查到自己的错误。因而,使项目的成功变得更加困难。如果不正视这些棘手的问题,它们就很有可能在项目进行的某个阶段影响项目本身。当我们定义了项目追踪过程并且明晰项目角色和责任,就能处理这些风险因素:

(1)  计划和任务定义不够充分

(2)  对实际项目状态不了解

(3)  项目所有者和决策者分不清

(4)  不切实际的承诺

(5)  不能与员工之间的进行充分地沟通

6.      安全风险

软件产品本身是属于创造性的产品,产品本身的核心技术保密非常重要。但一直以来,我们在软件这方 面的安全意识比较淡薄,对软件产品的开发主要注重技术本身,而忽略了专利的保护。软件行业的技术人员流动是很普遍的现象,随着技术人员的流失、变更,很能会导致产品和新技术的泄密,致使我们的软件产品被它公司窃取,导致项目失败。而且在软件方面关于知识产权的认定目前还没有明确的一个行业规范,这也是我们 软件项目潜在的风险。

7.      回避风险的方式

(1)  以开发方诱导能保证需求的完整,使需求与客户的真实期望高度一致。再以书面方便形成《用户需求》这一重要的文档,避免疏漏造成的损失在软件系统的后续阶段被逐步地放大。

(2)  设立监督制度,项目开发中任何较大的决定都必须有客户参与进行的,在该项目中项目监督由项目开发中的质量监督组来实施。

(3)  需求变更需要经过统一的负责人提出,并且要用户需求的审核领导认可,需求变更应该是定期而不是随时的提出,而且开发方应该做好详细的记录,让客户了解需求变更的实际情况。

(4)  控制系统的复杂程度,过于简单的系统结构,对用户来使用比例会有明显的折扣,甚至造成软件寿命过短。反之,软件结构的过于灵活和通用,必然引起软件实现的难度增加,系统的复杂度会上升,这又会在实现和测试阶段带来风险。适当控制系统的复杂程度有利于降低开发的风险。

(5)  从软件工程的角度看,软件维护费用约占总费用的55%~70%,系统越大,该费用越高。对系统可维护性的轻视是大型软件系统的最大风险。在软件漫长的运营期内,业务规则肯定会不断发展,科学的解决此问题的做法是不断对软件系统进行版本升级,在确保可维护性的前提下逐步扩展系统。

(6)  设定应急计划,每个开发计划都至少应该设定一个应急预案去应对出现突发情况和不可遇知的风险。

   二、     成本预算

1.      成本预算方式

(1)  自上而下的预算方法

自上而下的预方法主要是依据上层、中层项目管理人员的管理经验进行判断,对构成项目整体成本的子项目成本进行估计,并把这些判断估计的结果传递给低一层的管理人员,在此基础上由这一层的管理人员对组成项目的子任务和子项目的成本进行估计,然后继续向下一层传递他们的成本估计,直到传递到最低一层。

使用此预算方式,在上层的管理人员根据他们的经验进行的费用估计分解到下层时,可能会出现下层人员认为上层的估计不足以完成相应任务的情况。这时,下层人员不一定会表达出自己的真实观点,不一定会和上层管理人员进行理智地讨论,从而得出更为合理的预算分配方案。在实际中,他们往往只能沉默地等待上层管理者自行发现问题并予以纠正,这样往往会给项目带来诸多问题。

自上而下更适用于项目启动的前期,与真实费用相差在30% ~ 70%之间。

Scrum使用自上而下的成本预算方式,它不会立即精确地确定成本,而是以最大限度容纳客户对未来产品要求所产生的变更。

(2)  自下而上的预算方法

自下而上方法要求运用WBS(Work Breakdown Structure,工作分解结构)对项目的所有工作任务的时间和预算进行仔细考察。最初,预算是针对资源(团队成员的工作时间、硬件的配置)进行的,项目经理在此之上再加上适当的间接费用(如培训费用、管理费用、不可预见费等)以及项目要达到的利润目标就形成了项目的总预算。自下而上的预算方法要求全面考虑所有涉及到的工作任务,更适用于项目的初期与中期,它能准备地评估项目的成本,与真实费用相差在5% ~ 10%之间。

注解:WBS

WBS是面向提交成果对项目的分解,从提交成果的列表可以确定每个提交成果需要执行的活动。Scrum会对WBS进一步细化,把一个迭代分解为一个或多个的工作包,再把工作包分解为细小的开发任务(一般开发任务的开发周期在15个工作小时以内)。

2.      确定项目支出

总体成本预算就是结合下列多个成本预算方式综合计算的开发成本:

(1)  零基数预算

在成本预算的初期应该使用零基数的计算原则,而不可以使用类似于:以上一年总体费用加上20% 这样粗略的方式计算项目成本。

(2)  软硬件成本、物品成本

物品成本是指类似于:服务器(RAM 硬盘 CPU NIC卡 RAID簇)成本、维护成本、机房租金、光纤通讯成本、软件成本等的成本。

计算成本时需要考虑组装硬盘需时的长短,技术人员需要具备的质素,产品供应商能否提供保证质量,管理时是否需要额外的管理人员这些多方因素。

(3)  软件许可证成本

(4)  外包成本

当使用类似:视频、短信、移动电信类服务、门户网站等子项目时可以考虑以外包形式完成,以降低开发成本。

(5)  人力资源成本

计算人力资源成本时应该使用以最高和最低的工作效率估算平均效率的方式,计算出人力资源的平均成本。

(6)  维修保养成本

   三、     客户沟通的过程

从客户沟通的方向出发来看,软件项目可分为:需求识别、方案定制、项目实施、项目结束等4个不同的阶段,各个阶段都具有不同的沟通重点。

1.  需求识别阶段

(1)  文本沟通

在需求识别的前期,应该通过问卷、原型展示、界面展示、逻辑处理展示、准化文档模板等方式进行全方位多角度的分析,随时将不明确之处反馈给客户,以期待客户解答。并以文本记录的方式建立需要分析书,并要求客户审核需求分析书,以达到需要分析与客户的真实期望高度一致的结果。

(2)  业务逻辑沟通

在进行业务沟通时,应该了解客户的行业语言,以促进业务分析的过程,越过应用需求和开发之间的鸿沟。沟通过程提倡以草图或者可视信息化的方式进行, 针对不同层面的企业用户提供最适合的操作界面。以多角度的方式思考问题,要抓住需求重点,尤其是客户方领导所关注的创新类和实用类需求。

(3)  需求变更的规范化管理

需求变更在软件开发类项目中是可以理解的,但必须对需求变更做好规范化的管理,以避免出现需求无止境变更的风险。需求变更必须由统一的负责人提出,并且由用户需求的审核领导者认可。需求变更的提出应该是定期而不是随时的,开发方应该做好详细的文本记录,让客户了解需求变更的实际情况和开发方为之所付出的成本代价。

2.  方案定制阶段

该阶段项目的主要任务是与客户共同制定一个以前期明确的需求、双方的资源、项目开始的阶段、实施的时间约定、项目费用限制等为基础的具有可操作性的项目计划,从本阶段开始争取客户全面参与项目的管理,并以双方的共同利益考虑项目实施的具体计划与风险规避。

3.  项目实施阶段

在该阶段,软件项目团队应该与客户共同领导项目的实施。同时,项目团队应实时评估客户满意度,并通过持续改进的方式提高客户满意度,还应要求客户参加必要的培训,以及在必要时检查项目产品。在出现客户的需求变更前,应主动与客户沟通交流,使客户充分了解项目的每个环节,以及变更带来的影响,减少需求变更。如果出现客户需求变更,应与客户一起共同解决由变更引起的成本、进度、质量变化。

4.  结束阶段

该阶段主要进行项目成果的移交,并把系统交付给维护人员,帮助客户实现商务目标,结清各种款项。完成这些工作后应该进行项目评估,审核此项目的成果并总结项目经验。

5.  售前人员注意事项

在产品型项目作为开发成果时,相关销售人员应该注意:对产品的推销不应该过分承诺。如果过分承诺,会给后续的项目实施带来困难;一旦承诺没有兑现,也会降低客户满意度,影响今后合作。如果有附加承诺,一定要以文本形式记录,让实施项目经理知晓并传达给项目组成员。

注解:在软件项目中,需要明确以下四种客户角色

A.   要明确最终使用部门和用户,要去了解他们现有的工作方式,要让他们知道项目的目标框架,知道项目要解决他们的哪些困难,但绝对不是全部困难,这样可以较好的控制项目范围。

B.   要明确需求的提出者,他或者他们要能够代表最终客户群体。提出产品需求的这类客户要具有一定的技术、业务能力和权威,能够真正代表最终客户团队的意愿和想法,最好有IT基础,能够用IT语言描述问题和需求,以利于双方的沟通、协作,避免产生歧义。

C.   要明确做需求确认的中层领导,他要把握方向。软件开发项目是解决实际生产或者管理问题,同时 也是领导系统建设的具体实现,做需求确认的客户领导,既要了解高层领导的系统建设要点和方向,又要谙熟具体业务和生产管理实际。如果是这样的客户领导来把 握和决策,对企业软件开发项目的顺利进展作用非凡。

D.   要明确谁来对成品提意见,谁来验收。项目验收环节,是项目的收尾环节,如果验收的人对项目初期的需求目标不了解,会从态度和产品实际使用效果上对验收产生负面的影响,对提供产品的企业关闭项目非常不利。根据实践总结,由需求提出人和确认人来做项 目的验收工作,能够促进项目的顺利完成,避免延期。

四、     需求分析

1.     需求分析的过程

需求过程包括需求开发和需求管理2个部分:

(1)  需求开发就是对开发前期的管理,与客房的沟通过程,可以分为4个阶段:需求获取、需求分析、编写需求和需求验证。

(2)  需求管理:就是软件项目开发过程中控制和维持需求约定的活动。包括:变更控制、版本控制、需求跟踪、需求状态跟踪。

2.      需求的层次

需求的层次包括:业务需求、用户需求、功能需求、非功能需求等4个方面。

3.     需求开发阶段的重点

(1)  提取业务对象

业务对象是指系统使用的真实对象,例如一个供应链管理 (Supply Chain Management ,简称SCM) 业务对象主要包括:生产批发商、零售商、送货商、顾客多个层次。

(2)  提取业务流程

在了解业务逻辑的过程中,应该列举出所开发软件模块的各自职能,并细化每个工作流程,深入分析业务逻辑。

(3)  性能需求

在分析的前期应该注意客户对所开发软件的技术性能指标,如存储容量限制、运行时间限制、安全保密性等。

(4)  环境需求

环境需求是指软件平台运行时所处环境的要求,如硬件方面:机型、外部设备、数据通信接口;软件方面:系统软件,包括操作系统、网络软件、数据库管理系统方面;使用方面:使用部门在制度上,操作人员上的技术水平上应具备怎样的条件。

(5)  可靠性需求

对所开发软件在投入运行后发生故障的概率,应该按实际的运行环境提出要求。对于重要的软件,或是运行失效会造成严重后果的软件,应提出较高的可靠性要求。

(6)  安全保密要求

在需求分析时应当在这方面恰当地做出规定,对所开发的软件给予特殊的设计,使其在运行中,其安全保密方面的性能得到必要的保证。

(7)  用户界面需求

为用户界面细致地规定到达的要求。

(8)  资源使用需求

开发的软件在运行时和开发时所需要的各种资源。

(9)  软件成本消耗与开发进度需求

在软件项目立项后,根据合同规定,对软件开发的’进度和各步骤的费用提出要求,作为开发管理的依据。

(10) 开发目标需求

预先估计以后系统可能达到的目标,这样可以比较容易对系统进行必要的补充和修改。

4.      需求分析的任务

需求分析的主要任务是借助于当前系统的逻辑模型导出目标系统的逻辑模型,其流程如下:

(1)  确定对系统的综合需求(功能、性能、运行、扩充需求)

(2)  制作产品需求文档 (PRD)

(3)  分析系统的数据需求(概念模型、数据字典、规范化)

(4)  导出目标系统的详细的逻辑模型(数据流图、数据字典、主要功能描述)

(5)  开发原形系统

(6)  从PRD提取编制软件需求规格说明书(SRS)

注解:SRS格式

1.引言  2系统概述(项目背景、系统目标、核心业务流程) 3.术语说明  4.系统结构(架构图、功能图)

5.主体功能与业务逻辑(重点) 6.接口需求(内部、外部接口、) 7.网络总体设计(拓扑网络、主机、组网)

8.运行环境(Linux、Windows、IIS、 WebLogic、Tomcat、OLAP、OLTP、JDK 8.0 、.NET Framework 4.0等)

五、     面向对象程序设计(略)

1.      设计原则

(1)  SRP单一职责链

每个类都应该只负责做一件事。

(2)  OCP开封闭合原则

软件的实体(类、模块、函数等)应该是可以扩展的,但是不可修改的。

(3)  LSP替换原则

子类必须能替换他们的基类型。

(4)  DIP依赖倒置原则

高层模块不应该依赖于低层模块,二者都应该依赖于接口与抽象类。抽象不应该依赖于细节,细节应依赖于对象。

(5)  ISP接口隔离原则

不应该强迫客户依赖于并未使用的接口,而应该把胖接口分离。

2.      实现UML建模

(1)  业务对象的提取

(2)  根据SRS、CRC等实现用况建模

(3)  实现业务顺序图

(4)  建立类图,根据用况图建立对象之间的关联

(5)  绘制活动图、实现协作图、状态图

   六、     开发管理

1.      建立项目计划

(1)  设计总体架构

针对系统的实施需要,采取适当的且成熟的框架结构。

(2)  控制可扩展度

扩展度过大,将提高系统的复杂程度,延长开发时间;扩展度过低,会直接影响系统的二次开发与维护。控制系统的可扩展性,能提高开发效率,降低系统维护的难度。

(3)  建立基础设施

合理分配部署软、硬件等基础设施所需要的时间与成本(例如:服务器的订购安装、光纤接入、软件平台订购)。

(4)  划分开发任务

利用WBS(Work Breakdown Structure,工作分解结构)对可交付结果进行分类与划分。每个项目都能划分为多个不同阶段,每个阶段又可以分为多个工作包(Work Package),工作包是WBS里最小的可交付结果,最后从工作包中分解出多个开发任务列表。

(5)  部署开发进度

一个项目应该按进度划分为多个开发阶段,每个阶段的开发周期一般在30~60个工作日以内。在此阶段内应该与客户举行协商会议,制定产品路线图,在开发过程中邀请客户积极参与并提出反馈意见。然后把该时段内的开发任务按照开发难度,依赖性,重要性等多方条件划分为多个迭代周期。

在Scrum 敏捷软件开发原则中,应该把每个迭代任务进一步细分为多个开发任务列表,再开发任务分配给组员各自负责,而开发时间应该控制在15个工作小时以内。如果开发时间超出15个工作小时,应该考虑把开发任务再度细化。开发任务建议应该由组员自主选择,而不要使用强制分配的方式。

(5)  测试项目成果

每个工作包都应该同步部署测试工作,提高项目的质量。对出错BUG的工作包应该由测试人员以文本方式记录,向开发人员展示错误所在,让开发人员及时进行修改。

2.      管理开发团队

(1)  组建团队

按照工作任务与项目时间的前提条件建立团队,按团队职责分配人员,一般团队人数应该控制在8~12人之间。当团队人数超过15人时,应该考虑把团队分解成2个独立团队,负责不同的开发任务。

(2)  分配开发任务

在每个迭代周期内(一般是15~30个工作日),应该把每个工作包进一步细分为多个开发任务,再开发任务分配给组员各自负责,开发时间应该控制在15个工作小时以内。如果开发任务的开发时间超出15个工作小时,应该考虑把任务再度细化。而开发任务应该以自由选择的方式分配给每个组员。

(3)  监督开发进度

在迭代的前期举行一次会议,让组员了解开发的进展及流程,并以自主选择的方式分配开发任务。期间可使用Microsoft Project等工具记录开发流程的进展,在每个工作包完成开发后应该进行性功能的测试,并以文本方式记录测试结果。

每天举行一次15分钟的站立会议,让组员交待昨天已完成的开发任务,当天将要做的任务,与开发过程中所遇到的问题。并在每周末举行一次例行会议,交待总体进程。

在迭代末期举行一次冲刺会议,总结项目的进展,交行已完成的任务,回顾该迭代周期内所遇到的问题,为下一个迭***
好准备。

(4)  系统测试

对每个已完成的工作包进行适时的测试,保证系统质量与性能。对测试结果进行文本的记录,并把测试结果与绩效工资收入挂钩,并以真实数据计算组员的绩效收入。

(5)  解决开发中所遇到的问题

对开发人员进行前期培训,可适当按工作能力分配任务,指导组员的开发。当遇到问题时应该在当天的站立会议时即时提出,并在15个工作小时内解决所遇到的问题以防止问题进一步扩大。

3.      监管产品质量

(1)  质量需要的是计划、设计而并非审查的。在产品建立的初级,必须与“质量保证”(QA)的部门进行协商,以正式文档的方式,决定恰当的质量策略和标准。

(2)  在开发过程中使用TDD(测试驱动开发)的模式,提高开发质量。测试人员应该以文本方式记录bug,并与开发人员共同工作的,把突出的缺陷演示给开发人员,以提高修改的效率。

(3)  在每个迭代的结束时进行一次产品效果的演示,从客户、使用者、高层领导中收集反馈信息。在团队内部举行评审会议,分析测试结果,了解产品性能,为下次迭代所需要做的改进做好计划。

4.      修改项目计划

(1)  在产品需要识别阶段,应该以文档形式记录产品功能与开发流程,在开发计划需要修改时,应该与客户共同探讨,让客户了解计划修改对项目进度所造成的影响。

(2)  项目计划的修改应该由统一的负责人提出,并且由用户需求的审核领导者认可。需求变更的提出应该是定期而不是随时的。

(3)  计划的变更应该做好详细的文本记录,让客户了解需求变更的实际情况和开发方为之所付出的成本代价。

七、     产品交付

1.      项目的后期审核

在项目开发最终完成后,对开发人员来说可算是放下工作的重担,但对项目经理来说这往往是项目的关键时刻。前期的风险评估、成本预算、需求分析、软件设计都是为了引导项目走向这一时刻,此时所有的目光都将投向项目管理人员。你可能发现大量而琐碎的工作将要在几个小时内完成,此刻项目经理更需要保持清醒与镇定,把最后的工作视为微型项目来对待。细致地对项目进行后期的审核,分析项目成果、项目团队的效率、可交付产品的价值,以此审核结果可作为项目管理经验总结的一部分。

2.      质量评审

在项目交付前,应该把项目交给相关的“质量保证”(QA)部门进行质量评审,并邀请典型用户感受产品的质量。

3.      项目的最终交付

正常情况下在项目的前期就会订立项目交付的协议,项目交付方式分为非正式验收与正式验收两种。一般在项目完成后都会先进行非正式验收,让客户体会项目的质量并提出反馈意见,最后在客户肯定产品质量后再以书面协议的形式进行正式的产品验收。

4.      项目的最终报告

在项目的最后,应该制定项目的最终报告,此报告可以视为是对该项目一个记录,但报告不必包含项目的所有方面。一般最终报告应该包含以下方面:

(1)  最初引进项目时的初期项目视图

(2)  对该项目的价值评估及支持性信息

(3)  项目的范围

(4)  项目的开发流程及WBS

(5)  项目的会议记录

(6)  项目变更的报告及变更的理由

(7)  与项目相关的沟通过程文件

(8)  项目的审核报告与客户验收报告

(9)  项目成员的表现报告

(10) 项目的最终成果

在项目执行的过程中如何进行项目的控制?

转载,供参考。

软件开发项目进度控制

一、影响软件开发项目进度的因素

要有效地进行进度控制,必须对影响进度的因素进行分析,事先或及时采取必要的措施,尽量缩小计划进度与实际进度的偏差,实现对项目的主动控制。软件开发项目中影响进度的因素很多,如人为因素、技术因素、资金因素、环境因素等等。在软件开项目的实施中,人的因素是最重要的因素,技术的因素归根到底也是人的因素。软件开发项目进度控制常见问题主要是体现在对一些因素的考虑上。常见的问题有以下几种情况:

1、80-20原则与过于乐观的进度控制

80-20原则在软件开发项目进度控制方面体现在:80%的项目工作可以在20%的时间内完成,而剩余的20%的项目工作需要80%的时间。这个80%的项目工作不一定是在项目的前期,而可能是分布在项目的各个阶段,但是剩余的20%左右的项目工作大部分是在后期。所以软件开发在进入编码阶段后会给人一种“进展快速”的感觉,使得项目经理、项目团队成员、用户以及高层领导产生了过于乐观的估计。有些领导看到软件交付给用户了,就一块石头落地“总算交差了”,同时又可能撤出一些被认为不必要的人力资源。但很多情况下这是为了对付用户不合理的交付期限要求而采用的不得已的措施。这样的结果是拖延了后期的工作,同时如果软件还不成熟的话,会给用户造成不好的影响。

2、范围、质量因素对进度的影响

软件开发项目比其他任何建设项目都会有更经常的变更,大概是因为软件程序是一种“看不见”又“很容易修改”的东东吧,用户是想改就改,造成需求的蔓延,项目经理有时还不知如何拒绝,加上要说“我能”的心理因素,一般都会答应修改。这样集少成多,逐渐影响了项目进度。

如果某项工作在进度上表面上达到目标了,但经检验其质量没有达到要求,则必然要通过返工等手段,增加人力资源的投入,增加时间的投入,实际上是拖延了进度。不管是从横向或纵向来看,部分任务的质量会影响总体项目的进度,前面的一些任务质量中会影响到后面的一些任务质量。

3、资源、预算变更对进度的影响

资源,最主要的还是人力资源,有时某方面的人员不够到位,或者在多个项目的情况下某方面的人员中途被抽到其他项目、或身兼多个项目、或在别的项目不能自拔无法投入本项目。还有一个很重要的资源,就是信息资源,如某些国家标准、行业标准,用户可能提供不了,而是需要去收集或购买,如果不能按时得到,就会影响需求分析、设计或编码的工作。其他资源,如开发设备或软件没有到货,也会对进度造成影响。

预算其实就是一种资源,它的变更会影响某些资源的变更,从而对进度造成影响。

4、低估了软件开发项目实现的条件

低估软件开发项目实现的条件表现在低估技术难度、低估协调复杂度、低估环境因素这样几个方面。

首先是低估技术难度。软件开发项目团队成员,有时甚至是企业的高级项目主管也经常低估项目技术上的困难。低估技术难度实际上也就是高估人的能力,认为或希望项目会按照已经制定的乐观项目计划顺利地实施,而实际则不然。软件开发项目的高技术特点本身说明其实施中会有很多技术的难度,除了需要高水平的技术人员来实施外,还要考虑为解决某些性能问题而进行科研攻关和项目实验;

其次,低估了协调复杂度,也低估了多个项目团队参加项目时工作协调上的困难。软件开发项目团队成员比较强调个人的智慧、强调个性,这给项目工作协调带来更多的复杂度。当一个大项目由很多子项目组成时,不仅会增加相互之间充分沟通交流的困难,更会增加项目协调和进度控制上的困难。

另外,企业高级项目主管和项目经理也经常低估环境因素,这些环境因素包括用户环境、行业环境、组织环境、社会环境、经济环境。低估这些条件,既有主观的原因,也会有客观的原因。对项目环境的了解程度不够,造成没有做好充分的准备。

5、项目状态信息收集的情况

由于项目经理的经验或素质原因,对项目状态信息收集的的掌握不足,及时性准确性完整性比较差。另外其它一些原因也会造成这种现象。某些项目团队成员报喜不报忧,不希望别人知道自己工作的不好的情况,例如软件程序的编制,可能会先编制一些表面的东西,现有界面,看起来好像完成任务了,实际上只是一个“原型系统”或演示系统。给领导造成比较乐观的感觉。

如果项目经理或者管理团队没有及时地检查发现这种情况,将对项目的进度造成严重的影响。当然,如果出现这种需要时时刻刻都互相提防的氛围,管理人员就应该从管理的角度,从制度的角度检讨一下,进行改进,让大家实事求是地进行沟通。温伯格说:“无论你多么聪明,离开了信息,对项目进行成功的控制就是无源之水、无本之木。”

6、执行计划的严格程度

没有把计划作为项目过程行动的基础,而是把计划放在一边,比较随意去做。例如对于项目团队内部沟通或外部沟通,在计划中要说明清楚人员、周期、方式、方法,不能遗漏,但在实际项目过程中,可能出现沟通没有按时或没有完整地达到所有项目干系人的情况。若项目计划本身有错误,执行错误的计划肯定会产生错误。如,计划制订者在计划系统框架设计考虑上的错误、进度安排上的失误等。实际的项目实施中,除了这种错误之外,还可能因为项目执行上的错误,造成项目的麻烦。例如,项目的客户及其他项目干系人没有及时为项目中出现的情况采取必要的措施或者所采取的措施的不适合具体的情况、没有效果或者有副作用等。另外,如果在项目中的某项工作(如某个子系统或模块、组件)被转包给第三方开发后,不能进行有效的管理,也会造成进度上的延误。

7、计划变更调整的及时性

渐近明细是项目的特点,特别是对于软件开发项目,并不是一个一成不变的过程。开始时的项目计划可以先制定得比较粗一些,随着项目的进展,特别是需求明确以后,项目的计划就可以进一步的明确,这时候应该对项目计划进行调整修订,通过变更手续取得项目干系人的共识。计划应该随着项目的进展而逐渐细化、调整、修正。没有及时调整的计划或者是随意的不负责任的计划的项目是难以控制的。在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式,随着项目的进展进行不断细化、调整、修正、完善。对于较为大型的软件开发项目的工作分解结构可采用二次甚至多次 WBS 方法。即根据总体阶段划分的总体 WBS ,需求调研阶段结束、概要设计完成后专门针对详细设计或编码阶段的二次 WBS 。由于需求的功能点和设计的模块或组件之间并不是一一对应的关系,所以只有在概要设计完成以后才能准确地得到详细设计或编码阶段的二次 WBS ,根据代码模块或组件的合理划分而得出的二次 WBS 才能在详细设计、编码阶段乃至测试阶段起到有效把握和控制进度的作用。有些项目的需求或设计做得不够详细,无法对工作任务的分解、均衡分配和进度管理起参考作用,因此要随着需求的细化和设计的明确,对项目的分工和进度进行及时的调整,使项目的计划符合项目的变化,使项目的进度符合项目的计划。

8、未考虑不可预见事件发生造成的影响

假设、约束、风险等考虑“不周”造成项目进度计划中未考虑一些不可预见的事件发生。例如软件开发项目还会因为项目资源特别是人力资源缺乏、人员生病、人员离职、项目团队成员临时有其他更紧急的任务造成人员流动等不可预见的事件对项目的进度控制造成影响(即项目按时完成是基于如下假设:人力资源不会缺乏、人员不会生病、人员不会流动)。企业环境、社会环境、天灾人祸等事件对项目的进度控制造成影响。对项目的假设条件、约束条件、风险及其对策等对于进度的影响在项目计划要进行充分的考虑,在项目进展过程中也要不断地重新考虑有没有新的情况,新的假设条件、约束条件、潜在风险会影响项目的进度。假设是通过努力可以直接解决的问题,而这些问题是一定要解决才能保证项目按计划完成;约束一般是难以解决的问题,但可以通过其他途径回避或弥补、取舍,如牺牲进度、质量等等;假设与约束是针对比较明确会出现的情况,如果问题的出现具有不确定性,则应该在风险分析中列出,分析其出现的可能性、造成的影响、采取的措施。实际上像没有考虑人的疾病、人员流动这些情况本身也不是什么问题,因为任何人都不可能把所有以外的情况都考虑完整,实际上也没有必要。但有些诸如下班或节假日的加班时间都被安排用于项目工作的情况就会造成更多的项目不确定性。在可能的情况下当然要对所有可能情况都做到有备无患,但是有的时候也要冒一定的风险,同时对于风险的防范也需要考虑如果防范的成本大于风险本身造成的损失和影响,则这种防范是没有必要的。

9、程序员方面的因素对进度的影响

程序员方面有两种常见的心态影响了进度的控制:一是技术完美主义、二是自尊心。

技术完美主义的常见现象是,有些程序员由于进度压力、经验等方面的原因,会匆忙先做编码等具体的事情,等做到一定程度后会想到一些更好的构思,或者看到一些更好的技术的介绍,或者是觉得外部构架可以更加美化,或者是觉得内部构架可以更加优化,这样他们会私下或公开对软件进行调整,去尝试一下新的技术。而是否使用这些新的技术对完成项目本身的目标并没有影响,相反可能带来不确定的隐患。这种做法不是以用户的需求为本、或以项目团队的总体目标为本,可能对软件开发进度造成较大的影响。

自尊心的常见想象是,有些程序员在遇到一些自己无法解决的问题时,倾向于靠自己摸索,而不愿去问周围那些经验更为丰富的人。有些人也许会通过聊天室等方式匿名地向别人求教。如果运气好会很快地解决,否则要花很多实践摸索。而如果向周围的人求教,可能摸索几天的问题别人早就解决了。

10、未考虑软件开发过程的循环、迭代特性

对软件开发的各个过程分类过于精细,制定进度计划时各项工作过于紧凑、没有弹性,造成的后果是,定期提交项目进度阶段报告的制度只有在表面上起到效果,按照计划的时间表提交阶段成果也只是在表面上起到效果。因为“上有政策、下有对策”,强行的规定会使人产生一些错误的认识:如在项目计划中“规定”某个时间只能做某某类别的事情,那么严格执行的后果就是编码阶段就不能修改文档;另外错误的“里程碑”概念可能会使大家轻易地相信上一个阶段的工作成果都是“通过评审”最终定稿了,而实际上可能只是因为时间到了该提交的人提交、该评审的人评审了。如果上下阶段是不同的人就根本不会去检查其中是否还有错误;如果上下阶段是同一个人,就可能非正式地修改上一阶段的错误,但占用的时间和精力却是下一阶段的,并且这样的修改时没有记录的。这样关于阶段进度控制的措施实际上只是在表面上有效。最为普遍的情况是,用户在合同中限定了提交软件系统的时间,实际上这个时间对完成项目任务来说是远远不够的,但计划只能按照合同来进行,所以要不用户让步,要不只能按照时间的约定提交实际上还未完成的软件系统,完成系统的安装,但这时候的“完成阶段任务”只是一个表面现象,系统虽然安装了,但可能是没有经过严格彻底测试的,也可能是只完成了部分的功能,省略了某些功能,有些是整块功能省略,有的是省略了某些功能的某个过程,如数据录入里面隐含的数据录入前缺省值设置、数据录入检验等功能,而是实现了比较粗糙的功能。这样,系统交付并不意味着项目的完成,而在项目交付之后还要花更多的时间。

11、其他因素

以上这些因素是影响项目进度的几个主要方面,除此之外还有很多其他的影响因素。其实最主要的因素还是人的因素,这里的人包括所有与项目相关的人。项目经理的素质、管理者的水平、用户的因素、项目成员的因素等等,都会对项目进度造成影响,这是因为由于软件开发的特性。因为篇幅有限无法一一列举,只能在此分析一些常见的因素。

不可否认,软件开发项目进度可控性还是带有一定运气成分的。特别是需要用户配合的那些软件开发项目,其可控性与用户的成熟度、软件应用领域的成熟程度和行业标准规范的完备程度有很大关系。关于可控性方面会涉及到一些与客户打交道经验,虽然我们说,顾客是上帝、以顾客为中心,但并不是说我们要把主导权交给他们,而关键是我们如何去主导、引导、把握。因此,项目控制的好坏与相关人员人际关系方面的经验也有关系。

尽管存在很多不可控的因素,我们的任务是首先分清哪些是可以控制的,哪些是我们不能控制的。项目经理一是要尽量扩大可控的领域,减少不可控的领域,二是不要在“不可控”上花太多时间,而是多花一些时间把可控的工作控制好,做好防范措施,减轻不可控因素对项目进度的影响。

项目进入实施阶段后,项目经理的几乎所有的活动都是围绕进度展开的。进度控制的目标与成本控制的目标和质量控制的目标是对立统一的关系。项目的进度、质量和成本构成一个相互制约的三角关系,需要项目经理去平衡。

二、项目进度控制的目的

项目进度控制和监督的目的是:增强项目进度的透明度,以便当项目进展与项目计划出现严重偏差时可以采取适当的纠正或预防措施。已经归档和发布的项目计划是项目控制和监督中活动、沟通、采取纠正和预防措施的基础。

1、根据计划进行监控

项目控制的第一个目的是根据计划对项目的各项活动进行监控,即根据已经制定并取得共识的软件开发项目计划来监控项目的实际表现和进度。为此应该根据项目计划来监控项目计划参数的实际值,这些参数包括进度表、项目成本、工作量、工作产品和任务的属性、使用的资源、项目成员的知识和技能;根据项目计划来监控项目团队所作的承诺是否已经或可能兑现、原来的确定的风险是否可以避免或减少损失,是否有新的风险出现;根据项目计划来收集、管理、使用项目数据;根据计划监督项目干系人的参与情况,监控各项任务承担人的参与活动;定期进行必要的进度评审,确定项目是否存在重大偏差、跟踪变更请求和问题报告直到变更或问题得到解决;在项目的里程碑对项目的成果进行评审。

2、管理纠正和预防措施

项目控制的另外一个目的是管理纠正和预防措施,即当项目进度或者结果已经或即将与计划有严重偏差时,对需要采取的纠正或预防措施进行管理。为此应当收集并且分析项目进行中可能存在的问题,并以此确定解决这些问题的纠正或预防措施;对已经确定的问题采取纠正和预防措施;监控要实施的纠正和预防措施,分析措施采取以后的结果,判断这些措施的有效性,确定和记录纠正与计划结果存在偏差的问题而采取的必要且合适的措施。

项目执行过程中仅仅靠最初建立的一份“完善”的基准计划是不够的,最好的计划也未必会一直有效。根据项目任务渐进明晰的特点,特别是软件开发项目的特点,在项目进行过程中,肯定需要在适当和必要的时候对项目进行变更控制,这种控制过程包括定期搜集有关项目进展情况的信息,把实际进展情况与计划进展情况进行对比;如果实际进展情况比计划进展情况有差距,或可能会有差距,就应当采取纠正或预防措施。变更控制应当在项目期间定期进行,这里所说的变更控制不一定要进行真正的变更,而是说要定期对变更进行控制。

如果在项目生命周期内的某一时间点,把实际进度与计划中约定的进度相比对,显示出项目已经延误或即将延误、超出预算目标或不符合质量要求,就必须采取纠正或预防措施使项目回到正轨上来,重新符合计划的安排要求。在已做出执行纠正或预防措施的决定之前,应评估一下纠正与预防措施的有效性和无副作用性,以确保纠正措施使项目回到项目的工作范围、时间和预算约束内,并对项目的其他目标不会造成太大的影响。

3、在各种项目目标中进行平衡

如果经过评估确定项目确实已无法控制,就应当下定决心以牺牲软件功能范围、工作成果范围(如某些中间文档)、成本预算、进度计划或软件质量中的某一项目标为代价,来保住项目最重要的那些目标,在各种项目目标中进行平衡,最终确定一个最合适的解决方案。有效的项目控制的关键是定期及时测量实际进程,并与计划进程相比较,如有必要就立即采取纠正或预防措施。指望不采取纠正和干预措施,问题就自行消失的想法是不现实的。问题越早发现就越好改正,造成的影响和损失越小。问题越提前发现就越好采取预防措施,可以用最小的代价避免造成损失。基于项目实际进展情况,就有可能准确预测项目进度计划和成本预算的实施情况,以便顺利完成项目。如果这些项目参数超出项目目标的限制范围,就必须马上采取纠正措施;如果发现这些项目参数有超出项目目标的限制范围的趋势,就必须马上采取预防措施。

软件开发项目实施中进度控制是项目管理的关键,若某个分项或阶段实施的进度没有把握好,则会影响整个项目的进度,因此应当尽可能地排除或减少干扰因素对进度的影响,确保项目实施的进度。

三、软件开发项目常用进度控制措施

1、项目进度控制的前提

项目进度控制的前提是有效地项目计划和充分掌握第一手实际信息,在此前提下,通过实际值与计划值进行比较,检查、分析、评价项目进度。通过沟通、肯定、批评、奖励、惩罚、经济等不同手段,对项目进度进行监督、督促、影响、制约。及时发现偏差,及时予以纠正;提前预测偏差,提前予以预防。

在进行项目进度控制时,必须落实项目团队之内或之外进度控制人员的组成,明确具体的控制任务和管理职责。要制定进度控制的方法,要选择适用的进度预测分析和进度统计技术或工具。要明确项目进度信息的报告、沟通、反馈、以及信息管理制度。

项目进度控制应该由部门经理和项目监控人员共同进行,之所以需要部门经理参与,是因为部门经理负责项目一般要负责一定人事行政的责任,如成员的考核、升迁、发展等。他们只有通过软件开发项目才能更好地了解项目成员,项目也只用通过对他们有切身利益的管理者参与管理才会更加有效。

2、项目进度控制主要手段

项目计划书:作为项目进度控制的基准和依据,项目负责人负责制作项目计划书。项目进度监控人员根据项目计划书对项目的阶段成果完成情况进行监控,如果由于某些原因阶段成果提前或延后完成,项目负责人应提前申请并做好开发计划的变更。对于项目进度延后的,应当分析产生进度延后的原因、确定纠正偏差的对策、采取纠正偏差的措施,在确定的期限内消除项目进度与项目计划之间的偏差。项目计划书应当根据项目的进展情况进行调整,以保证基准和依据的新鲜性、有效性。

项目阶段情况汇报与计划:项目负责人按照预定的每个阶段点(根据项目的实际情况可以是每周、每双周、每月、每双月、每季、每旬等等)定期在与项目成员和其他相关人员充分沟通后,向相关管理人员和管理部门提交一份书面项目阶段工作汇报与计划,内容包括:

a、对上一阶段计划执行情况的描述

b、下一阶段的工作计划安排

c、已经解决的问题和遗留的问题

d、资源申请、需要协调的事情及其人员

e、其他需要处理的问题

这些汇报将存档,作为对项目进行考核的重要材料。

在计划制定时就要确定项目总进度目标与分进度目标;在项目进展的全过程中,进行计划进度与实际进度的比较,及时发现偏离,及时采取措施纠正或者预防;协调项目参与人员之间的进度关系。

在项目计划执行中,做好这样几个方面的工作:

检查并掌握项目实际进度信息。对反映实际进度的各种数据进行记载并作为检查和调整项目计划的依据,积累资料,总结分析,不断提高计划编制、项目管理、进度控制水平。

做好项目计划执行中的检查与分析。通过检查,分析计划提前或拖后的主要原因。项目计划的定期检查是监督计划执行的最有效的方法。

及时制定实施调整与补救措施。调整的目的是根据实际进度情况,对项目计划作必要的修正,使之符合变化的实际情况,以保证项目目标其顺利实现。由于初期编制项目计划时考虑不周,或因其他原因需要增加某些工作时就需要重新调整项目计划中的网络逻辑,计算调整后的各时间参数、关键线路和工期。

3、进度控制内容

从内容上看,软件开发项目进度控制主要表现在组织管理、技术管理和信息管理等这几个方面。组织管理包括这样几个内容:

(1)项目经理监督并控制项目进展情况;

(2)进行项目分解,如按项目结构分,按项目进展阶段分,按合同结构分,并建立编码体系;

(3)制订进度协调制度,确定协调会议时间,参加人员等;

(4)对影响进度的干扰因素和潜在风险进行分析。

技术管理与人员管理有非常密切的关系。软件开发项目的技术难度需要引起重视,有些技术问题可能需要特殊的人员,可能需要花时间攻克一些技术问题,技术措施就是预测技术问题并制订相应的应对措施。控制的好坏直接影响项目实施进度。

在软件开发项目中,合同措施通常不由项目团队负责,企业有专门的合同管理部门负责项目的转包、合同期与进度计划的协调等。项目经理应该及时掌握这些工作转包的情况,按计划通过计划进度与实际进度的动态比较,定期向客户提供比较可靠的报告等。

软件开发项目进度控制的信息管理主要体现在编制、调整项目进度控制计划时对项目信息的掌握上。这些信息主要是:预测信息,即对分项和分阶段工作的技术难度、风险、工作量、逻辑关系等进行预测;决策信息,即对实施中出现的计划之外的新情况进行应对并做出决策。参与软件开发项目决策的有项目经理、企业项目主管及客户的相关负责人;统计信息,软件开发项目中统计工作主要由参与项目实施的人员自己做,再由项目经理或指定人员检查核实。通过收集、整理和分析,写出项目进展分析报告。根据实际情况,可以按日、周、月等时间要求对进度进行统计和审核,这是进度控制所必须的。

4、不同阶段的项目进度控制

从项目进度控制的阶段上看,软件开发项目进度控制主要有:项目准备阶段进度控制,需求分析和设计阶段进度控制,实施阶段进度控制等这几个部分。

准备阶段进度控制任务是:向业主提供有关项目信息,协助业主确定工期总目标;编制阶段计划和项目总进度计划;控制该计划的执行;

需求分析和设计阶段控制的任务是:编制与用户的沟通计划、需求分析工作进度计划、设计工作进度计划,控制相关计划的执行等。

实施阶段进度控制的任务是:编制实施总进度计划并控制其执行;编制实施计划并控制其执行等。由甲乙双方协调进度计划的编制、调整并采取措施确保进度目标的实施。

为了及时地发现和处理计划执行中发生的各种问题,就必须加强项目的项目的协同工作。协同工作是组织项目计划实现的重要环节。它要为项目计划顺利执行创造各种必要的条件,以适应项目实施情况的变化。

5、关于进度落后时的“赶工”措施

进度落后的情况下,有几种措施来弥补,如加人、加班、加激励等等,这些都是增加资源而又未必会见效的方法。根据Brooks原则,在某些项目进度延迟的情况下增加人手,有可能会使项目的进度更加延后。因为对于新加入本项目的员工来说,对项目相关背景、需求、设计的培训、对项目环境的熟悉和项目团队成员之间的沟通路径的增加

软件项目设计与开发过程管理分析

软件项目设计与开发过程管理分析

软件项目的规划,是软件设计与开发过程中比较复杂的阶段,也是决定软件开发质量和开发水平的关键,做好软件项目的整体规划将会为整个软件项目的运行奠定良好的基础。以下是我为您收集整理的软件项目设计与开发过程管理分析论文,以供参考,欢迎借鉴阅读。

摘要: 软件项目设计与开发的管理,其目的就是要从管理的角度,对软件项目在设计开发中的各个环节进行规范和监督,通过多种形式的有效管理措施,确保软件项目开发过程的高质量和低成本。对此,本文在分析软件项目设计与开发原则的基础上,结合软件项目设计与开发的全过程,就软件项目设计与开发的有效管理问题进行重点探讨。

   关键词: 软件项目;设计与开发;过程管理;有效性

对软件项目设计与开发的全过程进行有效的管理,不仅是要为了顺利实现软件的特定功能与性能,还要确保能够保质、保量、低成本的完成软件开发的任务,使软件在投入使用后也能够保持稳定性、可靠性、实用性和经济性。简单的说,软件设计与开发的过程就是要将需求转变为软件表达的过程,要想切实提高软件项目设计与开发过程管理的有效性,不仅要坚持正确的软件项目设计原则,还要明确软件的设计流程,在设计与开发的各个过程都采取行之有效的管理对策。

一、软件项目设计与开发的基本原则

(一)实用性

实用性指的是软件项目的设计与开发一定要能够满足现代企业经营管理的需求,能够促进企业的不断发展,要避免“形式主义”、“中看不中用”等问题,否则有可能导致企业软件开发资金的浪费,难以取得良好的投资回报效果。因此,在选择软件设计与开发技术时,不能过度追求先进性和高投入,而是应当在充分了解企业实际需求的基础上,结合企业的发展方向,充分满足企业在不同层次和环节上的管理需求,这也是决定软件开发项目成败的关键因素。

(二)先进性

毋庸置疑,在信息技术不断变化发展的时代背景下,先进性是软件项目设计开发过程中必须充分考虑的问题,这可以有效降低企业在未来的投入,避免未来在软件项目开发中的重复建设和系统升级等问题。因此,企业在进行软件项目的开发设计时,一定要面向社会经济的未来发展方向和人民生活需求的变化趋势,紧跟社会步发展的步伐,与信息技术、计算机技术、通信技术以及相关学科的发展方向保持一致,这样才能不断推动社会的进步。

(三)经济性

任何一个软件项目的设计与开发,都必须充分考虑到投入产出比的问题,力争用最小的经济投入获取最大的投资回报,实现最好的软件开发设计效果和更高的经济效益,这也是软件开发企业的主要目标。因此,在保证软件开发质量的前提下,软件的开发费用需要控制在合理的预算范围之一,并尽量压缩,在设计开发过程中必须要考虑到软件在后期运行维护过程中的费用投入,实现软件项目设计与开发全过程费用的节约。

(四)系统性

在软件项目的开发设计中,一定保证其整体功能的完整性,既能满足企业在整体上的管理需要,设计与开发的系统必须能够全面、完整覆盖企业管理的软件信息系统,又要能够满足采购、生产、销售等个别部门的`管理需求,便于各个部门之间信息数据的传递和衔接。此外,还应当制定系统的软件项目设计与开发的管理规范,如开发文档的管理规范、报表文件规范、数据格式规范等,这是确保软件系统开发和操作水平的重要条件。

(五)可靠性

为了充分保证软件项目系统运行的高效、平稳和准确,不仅要保证软件系统在正常运行状况下数据传递的准确性和系统运行的可靠性,还需要确保软件系统项目在非正常状态下的可靠运行,因此在软件项目的开发设计过程中要提前针对一些紧急情况制定相应的应对策略。一个优秀、可靠的软件系统,必然是一个灵活的系统,即使在软、硬件环境发生故障时,仍旧能够保持部分使用或正常运行。

二、软件项目设计与开发的全过程管理

(一)软件项目设计与开发的启动

在软件项目的设计与开发过程中,实施全过程管理的第一个阶段就是项目的启动。在软件项目的启动阶段,首先,要明确软件项目设计与开发的目的,并在软件开发与软件使用的双方协议或者合同中进行约束,并对软件设计的主题、工程量进行量化,合理确定软件项目开发和设计的阶段目标和周期。其次,要加强同软件用户的充分沟通,了解用户的软件使用需求,理清软件记录的关键点,制定出完整的软件设计与开发流程;再次,对于在调研过程中所获取的原始资料,一定要进行加工处理,理清相关的约束条件和非功能性的客户需求,确保软件开发与建设项目具有很强的可实现性。

(二)软件项目设计与开发的规划

软件项目的规划,是软件设计与开发过程中比较复杂的阶段,也是决定软件开发质量和开发水平的关键,做好软件项目的整体规划将会为整个软件项目的运行奠定良好的基础。具体说来,软件项目规划主要包括项目预算、风险分析与预测、进度管理、质量控制等内容,在编制软件项目的开发计划时,一定要理清各个开发环节之间的关系,并制定出完整、科学的项目计划书,以期为软件项目设计与开发的全过程管理提供相应的参考依据。

(三)软件项目设计与开发的实施

软件项目实施阶段的有效管理,其目的就是要保证软件项目安装在预先设置的计划上正常运行,确保项目不要偏离预定的开发进程和设计目标。在软件项目的实施阶段,一定要按照软件项目的初步规划进行,并在实施过程中,增强对软件项目开发的有效控制,确保成本支出控制在相应的预算定额之内。同时,要对软件项目开发的成果进行动态的监控,随时与原先的计划过程进行比较,对于出现的偏差或缺陷要及时进行调整,确保各项软件开发指标和系统功能的顺利实现。

(四)软件项目设计与开发的结束

一个完善的软件项目管理过程,必然离不开软件项目的结束,这时相关人员要进一步确认软件项目在设计与开发过程中取得的成就,做好软件项目的交接、评审等工作。

三、结语

总之,为了提高软件项目设计与开发的质量和水平,软件设计人员需要首先认识到软件质量的重要性,树立应有的软件项目质量管理意识,要坚持正确的软件设计与开发原则,懂得加强过程管理与控制,同时还要对风险控制、配置管理等环节给予足够的重视,采用科学的技术方法和先进的管理技术来提高软件项目质量管理的有效性。

参考文献:

[1]李勇华,骆启武,付春燕.基于问题管理提升软件项目过程质量的实践[J].计算机与现代化,2007,4.

[2]商惠华.基于过程改进的软件质量管理模型[J].计算机工程与设计,2011,5.

[3]雷坚.项目管理在软件开发中的应用探究[J].软件导刊,2011,7.

;

如何对软件开发进行进度管理

对软件开发进行进度管理的几个方法:

1、项目组长或项目经理,一定对整个项目的开发周期有一个清楚的了解,把任务的划分一定要一天为单位,不要以模块为单位,而每天无论是开发人员还是测试人员,都要对自己的工作有一个大致的估计。即每天下午,有项目组长组织开发人员进行系统的了解,并且作好相应的记录。对已经解决的问题一定要有详细的记录。而对没有解决的问题一定要重视起来。不要向后退。找到根本的原因所在。

2、沟通和交流,作为项目组长一定要多多与开发人员进行交流,要调动其积极性,让他们学会问题该如何解决,不要让他等待问题的解决。了解其实际的进展以及对开发工具的熟练程度,这对以后的任务的重新安排有重要的借鉴意义。

3、把一些难点提出,让大家共同克服,或者有一些技术比较精通的人来解决。解决完以后一定,让大家都熟悉其编程思路。而对经常用的知识点,一定有详细的说明。这样实现资源的共享。

4、做好项目的总结,无论是难点还是不难,只要有问题,一定要提出,并且解决完以后一定让大家都熟悉,这样有助于大家的技术水平的提高。

5、做到日清日结,是保证项目进度的关键所在。

6、引入项目管理软件。以8Manage为例,自动跟踪每个软件开发项目的活动与可交付成果的时间与进度。下一层活动的完成率与可交付成果会自动地汇总到上一层活动,逾期活动会自动亮红灯,并且系统会自动把预警信息发送给所有受影响的相关人员。8Manage 还可以追踪和记录研发项目计划的多个基线,保留每个基线的版本以供项目人员随时查看和对比。提高项目的管理效率和成功率。

多项目同时进行如何做好进度管理

多项目同时进行如何做好进度管理

工作中有朋友说他最多的时候要同时进行八个项目,忙得焦头烂额,虽然八个项目一个人担,听着就知道老板很扯淡,但是也提醒我们多个项目同时进行的情况其实并不少,那么如何进行多项目的进度管理呢?下面是我为大家带来的关于多项目同时进行如何做好进度管理的知识,欢迎阅读。

一、先从项目经理的角度分析下这个问题:

高效项目管理的几个要点:

1、明确且达成共识的项目目标。确保项目的每项工作都是在为实现这个目标贡献。

2、精细化的任务分解。要点是每个子任务时间不要超过一周,明确的子任务目标、时间点、交付物。

3、有时间保障且有能力执行的资源分配。有些项目虽然分配了资源,但是不能保障资源的有效投入,这个是项目不能推进的非常重要的原因。

4、每日检查、每周检查项目进展和提交物。如何高效开小组会的问题在知乎上能找到,建议看看。

5、根据检查情况调整任务目标、资源、进度,并修改计划。这个很考验项目经理的水平。

配套硬件:

1、规范化和流程化:为每项工作制定规范(第一次建立比较痛苦,但是一旦建立了有效的流程和规范,对将来复制成功的项目有很大的好处,能提高工作效率和降低资源能力的门槛)。尤其要注意设计、测试和配置管理的配合,文档手册工作及早入手。

2、按照配置管理规范,从硬件平台、配置管理上保证项目团队能有效协作,减少人工干预环节。

软件条件:

1、有效沟通:确保每个人听明白了自己的任务是什么。尤其是新进的人,往往怕丢面子在没听明白要求的情况下硬着头皮做。

2、能力培训:对不能胜任的人提供辅导和培训。不要把任务分配给没有能力完成的人,团队的成员如果拿到不能胜任的工作,容易磨洋工,也感受不到成就感,所以安排合适的任务给合适的人非常重要。

多项目管理很重要的是如何保证资源的有效投入,在项目团队中,一人跨多个项目的情况一定不要多,否则项目效率会低下。

多项目同时进行还要分清项目的主次,抓住每个项目目前阶段的要点和最大的风险,提前想清楚应对措施。

二、从项目成员的角度分析:

对于项目团队成员来讲,如果同时有多个项目并行,要学会管理自己的时间。

比如软件开发类的多项目并行,每个项目所处阶段可能不尽相同,有的在需求阶段,有的在设计阶段,有的已经提交了测试在修改BUG,有的在维护代码,总的.来讲就是掌握自己的生物钟,规律工作时间,分配合适的工作。

1、掌握好自己一天的生物钟,什么时间是最有创造性,什么时间最有效率,什么时候容易疲劳,然后把工作分配好。

2、把连片、效率高的时间留给处于设计阶段的项目。因为设计阶段思路连贯性很重要,被打断之后再重新捡起来比较困难,要保证这段时间能够集中精力不被打扰。

3、每天固定的时间来修改BUG、维护代码。修改BUG需要和测试交流,尽可能选择有些疲劳容易被打断的时间来做这事,比如下午4点之后下班之前。

4、下班前10-30分钟通常是会议时间。

5、不要相信你的记忆力,把做完的工作一个一个记下来,如果可能,记下来你当时的考虑。

比如同时有两个设计活在做,经常需要切换思路,很容易出错,写下来每个要点,在切换到另一个工作时快速浏览下之前都做了什么。 这个对琐碎和跳跃性的工作很管用,比如代码维护。

6、思考不同的项目有没有共性,如果有共性,提炼出可复用的部分,独立成可复用模块。

7、工作分优先级,按重要且紧急的、紧急的、重要的、排排序,如何排序根据任务情况自己考虑定,总之,80%的时间应该做重要的事情,20%的时间来做其他或者紧急的事,别本末倒置了。

判断重要与否要看对项目整体的贡献,而非对个人自身是否重要,所以又回到开头的那句:确保项目的每项工作都是在为实现这个目标贡献。

;

关于软件开发项目进度管理和软件开发项目进度管理软件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

在线客服
途傲科技
免费获取方案及报价
2024-05-19 12:04:26
您好!欢迎来到途傲科技,我们致力于软件定制开发,核心团队拥有10年以上开发经验,项目案例1000+。 目前已合作客户有【中电金信】【中建土木】【齐鲁壹点】【中软国际】等。为了节省您的时间,您可以留下姓名,手机号(或微信号),产品经理稍后联系您,免费帮您出方案和预算! 全国咨询专线:18678836968(同微信号)。
🔥线🔥
您的留言我们已经收到,现在添加运营微信,我们将会尽快跟您联系!
[运营电话]
18678836968
取消

选择聊天工具: