对于复杂的IT项目而言,其投资规模较大,实施周期较长,在实施过程中存在诸多风险,所以对其质量进行合理的跟踪与管理,以保证最终结果能够满足企业的要求,是一件非常重要的事。
IT项目管理同其他项目一样,都包括计划管理、质量管理、时间管理、预算管理、人员管理、风险管理等。项目质量管理是IT项目管理的一个重要组成部分。
从管理流程来看,IT项目质量管理是为了保证it项目最终能够达到预期的质量目标而进行的一系列的管理过程。it项目的质量管理可以分解为质量规划、质量控制与质量保证等三个过程。整个it项目质量管理过程可以分解为以下四个环节。
首先,要确立有效的质量标准体系。
建立适当的质量衡量标准是进行it项目质量管理的前提性的关键性工作。根据企业在实施it项目方面的整体战略规划与it项目实施计划,实施it项目的主体企业首先要确立衡量项目质量的标准体系。衡量项目质量的标准一般包括项目涉及的范围、项目具体的实施步骤、项目周期估计、项目成本预算、项目财务预测与资金计划、项目工作详细内容安排、质量指标要求以及客户满意度等。这里需要注意的是,项目质量指标体系一定要具备完整性、科学性与合理性,项目实施各相关主体应该事先进行讨论与沟通,以保证其完整、无漏洞,又具备较强的可实施性。
其次,要在项目执行过程中采取有效措施来监控项目的实际运行。
在IT项目实施过程中,根据要求收集项目实施过程中的相关信息,观察、分析项目实施进程中的实际情况以便监控。为了达到有效监控项目的目的,可以利用的监控措施与沟通渠道包括正式的监控与沟通渠道,比如,项目进度报告、项目例会、里程碑会议、各种会议纪要等;非正式的监控与沟通渠道,比如,与项目小组成员或最终用户进行交谈与讨论,与企业管理层进行非正式的交流等。在这个环节上,要根据项目质量标准体系的要求,通过有效的监控措施与渠道,全面、客观地跟踪与反映项目实施的实际情况。
再次,把项目实施过程中的实际表现与项目质量衡量标准进行比较,分析出差异。
在监控与跟踪项目实际运行状况时,往往需要解决这样一些问题,比如,“项目进展如何”,“如果发生了与项目计划偏离的情况,是如何造成的”等。通过对项目实施相关衡量指标的综合分析,为客观评价项目质量状况提供依据,帮助项目决策人员迅速、有效地对项目的实际进展情况进行监控与管理,从而可以根据需要采取有效措施来保证项目实施按着既定的轨道运行。
最后,根据具体情况采取合理的纠正措施。
经过比较与分析,如果发现偏差,就要采取适当的措施进行纠正,让项目实施回到正轨。可供选用的纠正措施包括重新制定项目计划、重新安排项目步骤、重新分配项目资源、调整项目组织形式、调整项目管理方式等。一般而言,为了保证it项目不偏离正常轨道,按着既定计划走向成功,保证纠正措施的合理性与有效性,需要it项目的实施主体事先了解一些it项目质量管理基础知识与相关案例,确保纠偏措施的有效性。
从IT项目质量管理的承担主体来看,既可以由IT项目实施主体来承担,也可以选择外包。it项目实施双方可以成为项目质量管理的主体,分别或者共同对项目实施质量进行管理。此外,还可以根据需要与企业资金实力情况,决定是否选用专业的第三方项目监理商协助对项目实施质量进行管理。
无论是否采取外包协助的方式进行it项目的质量管理,实施it项目的企业都应该作为主体首先提出IT项目的整体规划,为IT项目质量规划确立明确的方向,清楚自己究竟想要通过IT项目的实施得到什么。作为IT项目实施的服务提供商,对项目质量承担根本责任。因而,需要为IT项目的质量管理制定更为明确的计划,协助客户实现IT项目规划,达到预期目标。
另外,还要注意做好项目质量管理的组织工作。由于整个IT项目实施过程往往可能涉及到两方、三方甚至更多相关方的参与者,为了做好项目质量管理,达到预期的质量目标,在整个项目的组织架构中,还要明确建立对项目质量管理负责的团队及其相关的工作流程,从组织方面为项目质量管理做好准备。
什么是项目管理?
经过人们长期探索总结,项目管理在发达国家中已经逐步发展成为独立的学科体系,成为现代管理学的重要分支,并广泛应用于IT、金融、服务、航空航天以及工程等诸多行业。由于其诱人的高额年薪以及广泛的就业前景,项目管理目前已经成为超越MBA的最炙手可热的“黄金职业”。 项目管理无疑将会是未来二十年中最热门的行业。那么到底什么是项目管理?
项目管理的定义有很多,按照教科书的理解是:项目管理是在运作方式和管理思维模式上最大限度地利用了内外,去完成项目目标。项目管理包含很多层面:团队管理、风险管理、采购管理、流程管理、时间管理、成本管理和质量管理资源等。
笔者的理解是:项目管理,就是通过合理地组织,利用的一切可以利用的资源,按照计划的成本和计划的进度,完成一个计划的目标。在项目实施过程中,目标很可能会发生变更,那么成本和进度都需要做相应的调整。
项目主管如何解决问题?
按照白猫黑猫理论,评价项目管理是否成功的唯一标准就是项目是否保质保量按时完成。现在的项目实施一般都是主管负责制,项目主管重任在肩,要达到项目成功这一目标谈何容易。
在项目管理过程中,笔者就要经常思索以下问题:
如何在选择余地不多的情况下,组建一支得力的项目组?
项目组成员的挑选非常重要,假如在一个关键的岗位安排了一个不合适的人选,这个项目很可能会出师不利。当然在现有的人力资源中,不一定能顺利选到优秀的人才并组建成一只能战斗的队伍。笔者就碰到这种最恶劣的情况:项目组只有主管有经验,别的成员都是刚刚毕业的大学生,那么主管的任务就不仅仅是管理,而且需要花费大量时间精力来培养这些新手,让他们能尽快进入预定的角色。
如何界定项目成员工作的范围和定义他们之间的工作接口?
这个问题就是俗语说的"派活"。要把活分出去可不是一件简单的事情。项目主管首先需要对项目组成员非常了解和熟悉,知道他们的知识结构和能力水平;其次要对项目情况非常清楚,并能对项目实施过程进行划分和功能模块的细化,并结合每个人员的特点指派具体的任务;最后要重点注意的是,尽量让组员之间的工作接口简单和接口定义详尽,避免将来产生互相推诿和扯皮。
如何准确衡量项目成员的工作量?
做过主管的人都碰到过这种问题:分配给甲的工作,要求一周完成,但是一个月过去了,他还没干完;分给乙的工作,要求一周干完,但是他一天就干好了。实际上现在的项目管理中,工作量的衡量往往靠主管的经验来加以主观判断,而且这种判断也不是因人而异的。主观判断会造成较大的误差,这些误差的积累最终导致不可控制的因素增加和项目风险扩大。
如何在不打扰项目组成员工作的情况下,及时进行沟通?
现在很少有单q匹马就能把项目全部搞定,往往需要团队来完成,那么团队的合作精神就显得尤为重要。在一般人的眼里,技术人员都普遍比较孤傲,不好管理。主管不仅仅要掌握良好的沟通技巧,还要擅于感情交流,帮助解决项目组成员工作上和生活上的实际困难,使他们集中精力干好本职工作。良好的上下级和同级关系创造了融洽的工作气氛,项目成功的可能性大大增加。
如何评估项目执行状况,随时掌握项目进展?
在项目运作过程中,如果靠员工的报告来掌握项目进展是不够的。事实上,员工都愿意报喜不报忧,在项目初期就出现的问题苗头,如果不能传递上来,将在后续阶段造成大的纰漏。笔者认为除了要定期听取项目组成员的报告,还要专门有一个品保组来监督项目的执行情况。品保组就像廉政公署一样,不参与项目的具体实施,专门给别人"挑刺",或者写一些测试程序来发现问题。
如何与客户单位沟通与协作?
有时候,项目都已经执行到最后阶段,客户单位突然提出了新的要求,这会让主管非常为难。一方面要尽量满足客户的需求,另一方面又不能对系统做太大的改动,影响进度计划。这种情况往往是与客户的沟通出现了问题,说明在需求阶段做的不够好,同时在实施过程中没有与客户有密切的联系。
如何在诸多不确定因素和限制条件下,按时完成项目任务?
项目成功与否受太多的风险因素影响。所谓“风险”,是损失的不确定性;是给定情况下,一定时期内可能发生的各种结果间的差异。它的两个基本特征是不确定性和损失。项目开发是一项可能损失的活动,不管开发过程如何进行,都有可能超出预算或时间延迟。很少有人能保证开发工作一定成功,都要冒一定的风险,也就需要进行项目风险分析。在进行项目风险分析时,重要的是要量化不确定的程度和每个风险的损失程度。潜在的问题都可能会对项目的计划、成本、技术、产品的质量及团队的士气产生负面的影响。风险管理就是在这些潜在的问题对项目造成破坏之前识别、处理和排除。
如何在完成项目任务同时,保证甚至提高交付结果的质量?
笔者的同事曾经做过一个项目,按计划按预算完成了,但是系统不稳定,某些关键技术指标不能满足国标。造成这种情况的原因有:没有划分清晰功能模块和接口关系,成员相互指责,最终难以定位不稳定的根源,;没有成立质保组,没能很好地实施项目过程控制;过分注重项目的时间进度,忽略或隐瞒了前期的小问题。
如何成为优秀的项目主管?
笔者认为:一个优秀的项目主管首先是一个乐观而自信的人。他凡事都从正面考虑,不把失败当失败,反而将其看作成功之母,吸取经验教训,在那里跌倒又在哪里爬起。优秀的项目主管不一定要很有经验,但是要有强烈的进取心和明确的目标,并能够与他人良好沟通,鼓舞他人为共同的目标一起努力。
IT项目管理的特征探讨
IT项目具有非常明显的特点:紧迫性、独特性和不确定性。下面分别讨论一下这些特点含义和项目管理的相应对策。
紧迫性
IT项目的紧迫性决定了项目的历时有限,具有明确的起点或终点,当实现了目标或被迫终止时,项目即结束。随着信息技术的飞速发展,IT项目的生命周期越来越短。有的项目时间甚至是决定性因素,因为市场时机稍纵即逝,如果项目的实施阶段耗时过长,市场份额将被竞争对手抢走。
在开始一个项目前,主管就必须明白项目的时间约束。具体到每个人、执行项目中的每一个任务都必须明确时间要求。一旦没有按照进度完成,必须要有充分的客观理由,否则就要追究相关人员的责任。
独特性
IT项目的独特性在IT服务领域表现得非常突出,厂商不仅向客户提供产品,更重要是根据其要求提供不同的解决方案。即使有现成的解决方案,也需要根据客户的特殊要求进行一定的客户化工作,因此可以说每个项目都有区别。
项目的这种独特性对实际项目管理有非常重要的指导意义。项目主管必须在项目开始前通过合同(或等同文件)明确地描述或定义最终的产品是什么。如果刚开始要提供什么没能定义清楚,或未达成一致,则最终交付产品或服务时将很容易发生纠纷,造成不必要的商务和名誉损失。即便是定义清楚了项目的目标,但是客户单位仍然会经常调整实现指标,这种变更很难控制,这就需要项目组与客户单位有良好的沟通渠道,否则改来改去,永远改不完。
不确定性
IT项目的不确定性是指项目不可能完全在规定的时间内、按规定的预算由规定的人员完成。这是因为项目计划和预算本质上是一种预测,在执行过程中与实际情况可定会有差异。另外,在执行过程中还会遇到各种始料未及的“风险”,使得项目不能按原有的预测来运行。
针对不确定性,在项目管理中就要注意制定切实可行的计划。笔者在工作中就发现科研工作,特别是国家级的项目,往往有一个“后墙不倒”原则。也就是说,设定一个项目的最终完成时间,具体的实施过程中,时间进度的安排就没有计划。在具体实施中,这种方法的最终结果是要么后墙倒了,要么后墙勉强没倒,做出来的产品满足不了质量要求。
还有一种不好的做法是过度计划,即将项目中非常微小的事情都考虑清楚才动手,但如此“详细的计划”其实是在试图精确地预测未来,也是不切实际的,在执行中会发现难以与实际一致,而不得不频繁地进行调整。具体问题具体分析。尽管有项目计划,执行过程中仍会碰到各种各样意想不到的问题,且往往没有现成的处理方法,这就要求项目经理必须掌握必要的工具方法,掌握整体过程和关键要素,灵活面对,妥善解决。
几个迫切需要重视的问题
项目管理有一些规律,但是还要具体问题具体分析,如果照搬硬套肯定会事倍功半。下面三个案例就是笔者在管理中遇到过的,现在拿出来一起探讨。
管理新手的重要性
一个项目组除了主管,全是新手!其实能有几个项目主管会如此幸运,项目组成员全都身经百战经验丰富。很多人认为,新手加入在短时间内对项目毫无益处,不仅帮不上忙,还需要别人来传帮带。笔者认为恰好相反:新人的加入是将会给整个项目组带来一些新鲜的想法,挖掘和引导这种的想法对新人的培训和很快的上手工作是非常关键的。公司花了钱招来的新人往往经过了人事部门的过滤,都具备了一些基本知识,主管可以先给他们分配一些具体的工作,调动他们的积极性非常关键。
在培训新人时就应该注意:
项目内容培训,让他尽快了解项目组的工作内容,项目的方向、目的,用到的知识、技能;
给他在项目组中的角色做个定位,明确他的职责,并提供必要的支持;
告诉他项目组管理方面须注意的问题,让他尽快融入到项目组里来;
尽量与目前项目组的工作结合起来培训,如让他尽快熟悉项目已经完成的工作,告诉他以后的计划,以及他马上要做的工作等等;
保持良好的沟通,了解他的进展,根据实际情况调整培训计划。
管理文档的重要性
让项目主管最痛苦的事情莫过于:当一个重要成员半途离开项目组时,才发现他根本就没有留下任何可用的文档。天下没有不散的宴席,项目组的成员也是在动态调整中,文档就是成员之间交接的重要工具。很多主管很容易陷quot;重技术实现,轻文档"的误区。他们总是认为项目实施时间紧迫,为了节省时间,可以在项目收尾阶段突击写文档。要是项目周期稍长,到了最后,成员还会记得清清楚楚每个实现细节吗?没有文档的项目铁定是一个失败的项目。
从过程控制的角度看,项目的实施质量控制,最重要的就是文档的管理控制。通过文档来显示表明每个基线,每个成员的工作量和完成质量,达到项目的风险最小化。
管理平台的重要性
笔者最初的几个项目都没有管理平台,所以没有量化的概念,管理手段非常落后。去年笔者在公司率先引入了微软PROJECT2000作为核心的项目管理软件,并根据项目的需求,以现有的计算机网络系统(Network)为基础,建立了内部的INTRANET项目管理平台。经过一年多的使用达到了以下效果:
使用PROJECT2000建立项目计划信息共享门户,使技术人员、主管随时看到与自己相关的任务信息,并通过建立状态报告,达到了解技术人员各自工作完成情况;
利用研发内部网站、电子公告板等共享信息系统,提供有效的信息沟通途径;
根据项目计划,建立动态提醒机制;
建立项目数据管理系统(Data):对与项目有关的数据和与数据有关的过程,进行有效地管理;
电子文档管理系统(Document),对图纸、文件、资料等文档,采用集中管理的方式,进行有序地组织,实现充分的共享和重复使用,实现了通过IE浏览器访问项目文档功能;
建立数据记录体现变更控制记录,项目文档记录。
结束语
就中国现状而言,项目管理还是一个全新的尚待开发的领域,很多项目管理人员和笔者一样都是在实践中不断摸索和思考。
从现实来看,只有那些跨国公司和国内的大型企业才对项目管理提出要求;从教育来看,项目管理的系统教育基本上就是空白,甚至目前中国还没有项目管理这一学科设置。同时,在中国,你所能够获得的有关项目管理的出版物以及资料都极其有限。
好在国内的教育部门已经发现了这个问题,各种PMP的培训班广告也开始出现在各类媒体中。那么我们是否都需要这个一个证书呢?
曾记得庄子在《庄子·养生主》中谈到的解牛的庖丁,在外人看来,技艺高超的庖丁解牛时,一招一式,轻松自如,姿势优美,其节奏如美妙音乐的旋律。而庖丁自己在历经多年的实践后,解释他的高超技艺的境界是:"以神遇而不以目视,官欲止而神欲行,依乎天理,批大隙,导大,因其固然quot;
项目管理还是有"天理"可循,假如有机会还是应该带着实践中的问题多看书多学习,最终会达到所谓的管理艺术。(IT工程技术网)
项目的定义:
美国的项目管理协会定义:项目是为完成某一独特的产品或服务所做的一次性努力,项目就是一系列的相关工作。
中国的定义:项目是一个特殊的将被完成的有限任务。它是在一定时间内满足一系列特定目标的多项相关工作的总称。
1 项目是一个有待完成的任务,有特定的环境和要求。
2 有一定的组织机构内,利用有限资源(人力,物力,财力),在规定时间内为特定用户完成特定目标的阶段性任务。
3 任务要满足一定的性能,质量,数量。
项目的基本特性:
1 项目的独特性
2 项目的一次性
3项目的组织性
4 项目的生命期:项目启动阶段,项目计划阶段,项目实施阶段,项目收尾阶段
5 项目的资源消耗性
6 项目的目标冲突性,三约束:范围,时间,成本。
7 项目后果的不确定性。
项目管理,在项目活动中运用一系列的知识,技能,工具和技术,以满足或超过相关利益者对项目的要求。
1 管理活动,一种有意识的按照项目的特点和规律,对项目进行组织管理的活动
2 管理学科,以项目管理为研究对象的一门学科。探求项目活动科学组织管理的理论与方法
项目管理就是在项目活动中运用专门的知识,技能,工具和方法,是项目达到预期的目标的过程,是以项目作为管理对象,通过一个临时性的,专门的组织,对项目进行计划,组织,执行和控制,并在时间,成本,性能,质量等方面达到预期目标的一种系统管理方法。项目管理贯穿整个项目的生命期,是对项目的全过程管理。
导语:关于软件项目的管理流程,相关人员来了解一下吧。下面是我收集整理的软件项目管理流程,供各位阅读和参考。
一、 风险评估
软件项目风险是指在整个项目周期中所涉及的成本预算、开发进度、技术难度、经济可行性、安全管理等各方面的问题,以及由这些问题而对项目所产生的影响。项目的风险与其可行性成反比,其可行性越高,风险越低。软件项目的可行性分为经济可行性、业务可行性、技术可行性、法律可行性等四个方面。而软件项目风险则分为产品规模风险、需要风险、相关性风险、管理风险、安全风险等六个方面:
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 80 、NET Framework 40等)
五、 面向对象程序设计(略)
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) 项目的最终成果
以上就是关于怎样科学地管理IT项目的质量全部的内容,包括:怎样科学地管理IT项目的质量、如何进行IT项目管理 、项目管理:IT软件项目管理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)