论软件项目的质量管理(共8篇)
论软件项目的质量管理 篇1
项目管理师论文之我见
听闻许多考友论文没过,实在可惜。我这次论文50分,不算高,勉强过关。我曾经参加过系统分析师考试,论文没过,这次选择了项目管理师。这两个考试作为高工级别,要求当然高,和大家分享一点经验:
1、你一定要写一个大项目,不能写小项目。如果项目不够大,你的高工职称就令人质疑了。你或许会问:我在的公司里就没有大项目,怎么办?去了解啊,了解亲戚、朋友的公司里有没有大项目,争取拿到资料。
2、你一定要在论文中把自己描述成一个项目中的主要管理者,可以不是项目经理,但级别不能太低。级别太低,你的高工职称就令人质疑了。你或许会问:我的级别就是低啊,只是一般的程序员。那没关系,去了解你的上司的工作,在论文中把自己描述成你的上司。
3、一定要围绕指定教材中的纲要来写,比如今年下半年的考题,论项目风险管理,论项目质量管理,教材中都有专门的章节,在论文中一定要把这些理论阐述出来。不 能自己写自己的,全然不管教材里怎么讲。大家如果有看过今年上半年的试题分析,就一定记得在论文的解答中,特别强调“要有……,要有……”,这都是教材中 的理论,如果没有,就没分了。
4、项目管理师的论文题目不外乎教材中的那主要的几章内容,猜都能猜得到,事先一定要构思好,考试时写论文的时间很短,到时再作考虑时间肯定来不及。
5、字迹要工整,平常多写,也是锻炼。大家都是做电脑的,多年没写字了,打字比写字还快。可是考试还是要写字,大家有空时还是再练练字吧!
一点心得,个人观点,仅供参考。
[摘要]
我目前担任中国石化加油IC卡试点工程江苏省项目的软件技术总监,并承担了软件的需求分析和部分的软件开发工作,该工程浩大,复杂,但至关重要的是该系统的核心软件的开发工作,该核心软件跨平台、跨地区、基于网络,既有联时交易,又有脱机交易,是基于网络、大型关系数据库的实时分布系统,由加油站后台管理子系统、发卡充值网点子系统、加油站前台POS消费子系统、加油站前台卡机联动系统、清算结算子系统、零售管理与数据分析子系统等组成,为了保证软件按时保质保量的完成,提高软件的质量与效率,作为技术总监,我分析了决定软件和影响软件质量的因素,制定了合适的质量管理策略,通过加强项目管理和采取诸多针对性的做法,取得了较好的效果,具体叙述如下
质量控制的主要活动:技术评审、代码走查、代码评审、单元测试、集成测试、压力测试、系统测试、验收测试、缺陷跟踪。
[正文]
一、基于对软件质量管理的认识与分析
我认为,影响软件质量的因素有很多,通常有:人的因素、软件需求、质量问题可能出现在开发过程的各个环节上、测试的局限性、质量管理的困难、质量管理未能给予足够的重视、软件人员的传统习惯、开发规范、开发工具的支持不够等。对于象石化加油卡工程的核心软件之类的大型软件,涉及平台多,开发环境多,开发人员庞大,在全国尚无大规模的同行业省级应用模式可以参考。因此,我认为软件要能够恰合需求是最为首要的质量因素;其次,对于庞大的开发人员,对他们培养和树立软件质量意识,按软件工程标准规范开发流程,因此,质量管理和开发过程控制也十分重要;再次,该核心软件庞大、复杂、功能多、子系统多、接口多,我认为,要在软件开发生命周期内重视软件测试也至为关键。
目前,在业界影响较深的McCALL质量模型、ISO软件质量评价模型以及SSC软件质量度量模型,都比较共同地列举了软件的质量特性,如正确性、可靠性、完整性、优化与效率、可维护性、可测试性、容错性、文档完备性、复用性、健壮性等等,要想使提交的软件在各项指标方面具有较高的性能和度量指标,在软件开发过程中,须采用切实可行和有针对性的措施方可达到要求。以下结合我工作中针对提高石化加油卡核心软件质量谈谈具体的管理策略、思维和做法。
二、具体实施的管理策略及做法
1、质量管理策略的展开与实施
首先,我向公司的决策层强调了软件质量的重要性,并提交了具体的实施办法。从组织上,我公司成立了软件质理管理领导小组,下设办公室,有2名专职质量管理人员,我作为办公室主任。最主要开展了公司的集成资质认证和ISO9001软件开发质量认证的取证工作,并最终获得成功,同时开展了全体开发人员的软件质量意识教育,对开发人员进行了系统的软件工程软件工程开发规范和相关标准教育。这些工作都是全员行动,涉及到的每个部门、每个开发小组以及个人,都要按照质量管理规范要求开展各自的工作,这也是开发工作的基础准备工作。
2、高素质软件人才战略
我始终认识到软件行业中人才的重要性以及人才在软件质量的重要作用,通过各种渠道,我们招聘了大量高素质人员,但要使其发挥工作积极性,激发其工作热情和责任感,通过我的努力和建议,人事部门制定了比较公平、公正、有效率的薪金激励体系,例如建立了将开发人员分为系统分析员、高级程序员、程序员等五档次十个级差的工资体系,最高人员可达月薪25000元/月,最底为2600元/月,同时给予人员以晋升和发展的空间,由于软件开发行业的特殊性,我们还十分重视人员素质提高与技术学习和交流,积极提倡和鼓励人员参与中软考和各类认证考试以及职称评审,这样在公司内形成了十分良好的积极进取向上的科研与学习气氛。
3、系统分析方法与模型选择、开发平台的选择以及中间件开发平台的引入
对于石油销售行业,需求并不经常变动,只是各地的需求和销售策略有所不用,我认为宜采用传统的结构化分析方法为主,结合面向对象的分析方法,在需求分析前期,以结构化分析方法,摸清系统的原有业务流程以及数据流,在设计阶段,在充分理解需求规格说明书的基础上,应采用面向对象的分析与设计方法,这样方可提高软件的可靠性、复用性、可维护性等,也就提高了软件的质量。在开发平台的选择上,由于加油卡清费数据量巨大,首先是基本大型关系数据库的应用,我们选择了SYBASE,开发工具采用了DELPHI
6、cylix分别用于WINDOWS平台和LINUX平台的开发,由于整个系统是采用集中式基于网络的应用,充值发卡为联机交易而加油站加油卡数据是在油站产生通过拨号上传的。为了保证操作事务的完整性,解决异构和跨平台的困难,采用了现今流行的中间件(BEA TUXEDO)开发技术,利用交易中间件实现联机交易,利用通讯中间件解决加油站数据上传,通过中间件中的两阶段提交技术,合理地利用了网络带宽,不至于与联机交易相冲突,也保证了网络不易拥塞而使数据不能上传。
另外,我们还采用了各类CASE工具,用于软件的建模、文档管理、版本管理、方案演示等。
4、收集需求的多种做法
在软件从分析到编码设计以及测试的全过程,我们反复采用了“请进来、走下去”的做法,即分析和开发人员一定要亲临业务现场,切身体会其中的业务操作,我们甚至要求与他们与业务人员打成一片,我们称之为走下去,目的就是为了更准确地把握需求。在开发时系统有了初步的软件原型后,我们又将各地石油分公司的专业人员、业务人员请过来,请他们谈谈对新原型的看法和意见,并按照他们的意见再次对开发工作进行修正,我们称之?quot;请进来“,目的是使确保软件提交后能尽快地获得用户方满意。这个过程,是循环反复,螺旋演进的,通过这个过程,我们的软件逐步达到了功能丰富、操作简便易用、运行效率高、速度快的高质量要求。据我们不完全统计,我们采用的”请进来,走下去“的做法涉及到数百个人次,参与分析与开发的人员不但结交了很多朋友,而且也切身体会到这种做法对保证软件质量的重要之处。
5、基于”应用微内核“模块的可扩展开发模式和思维的全面贯彻
虽然系统庞大,我们认为软件中最为基础的是加油IC卡的核心支付模块,是整个系统核心的核心,我称之为大系统的”应用微内核“,是其他系统的数据源,其他模块如清算结算子系统、油站零售管理与数据分析子系统,都是基于其上的扩展开发。因此,我要求,在核心级应用内核采用最为严格的软件工程开发规范,并在其中留有足够的数据库的表中的数据元(字段),以便应付多需求情况以及将来需求的可变性,这样,可使应用内微具有较大的灵活性。例如,加油站累计消费优惠,在各市公司采用不用的优惠措施,有的是累计积分奖励礼品,有的是累计现金,各地分公司由于经营上的需要,还执行了不同的油品价格政策,利用应用内核中的扩展字段很方便即可解决这个各地不同需求问题。应用微内核的采用还为其他系统提供了清晰的接口,例如,石化系统目前是正在作ERP软件的试点,该软件作为ERP底层数据源,十分方便地溶入了ERP系统中。微内核还提高了系统的运行效率,微内核代码经过了系统中最为严格的测试,有的模块和代码段一般都经历了四版以上才定稿,有的甚至在经历了十次以上的版本。我们还在开发前开展了较为有趣的编程优化大赛,谁的程序效率高、算法优、速度快,就选其中的人员参与到微内核开发组,并在薪水和奖金给予这些人员适当的上浮。
6、加强测试
为了提高软件质量,我们还十分重视软件的测试工作,成立了专业的测试小组,用于测试开发的软件和厂商提交的加油机卡机联动样机、消费POS、充值POS等,由于为全行业工程,中国石化统一了加油IC卡卡规范、重新修订了加油机通讯协议,这些都需要进行测试,方可准予厂商进场作业,为此开发部门还编制了相关的测试软件,通过测试后,方可发证与厂商。对核心软件,除了我们内部进行单元测试和集成测试和初步系统α测试外,我们还委托中国计算机软件测评中心这样的专业测评机构进行最终确认测试。在试用版投入试点过程中,我们还与各地石油分司共同建立了测试维护制度与维护操作办法,落实了具体人员,收集了大量测试数据,全面地进行了β版测试,此举也从运行现场发现了很多开发环境下所没有发现的问题,对提高软件质量起到了重要的作用。
三、完成的效果与评价
加强软件质量管理的做法还有很多,对其中的一些细节本文也不再讨论。如上所述,其做法基本上源于我参与多年的软件开发项目和项目管理的经验所得,当然在这个项目中我们也有所创新,如”应用微内核"的开发思想和思维的实施。这些做法从总体上保证了软件的高质量。当然,质量管理的内容与做法也要与时俱进。
但由于自己不是公司的决策层,仅负责软件技术方面的工作,对部分骨干人员的出走以及因项目各方利益的关系,从而影响了软件的开发和进度也无能为力。从这个项目来看,软件的开发仍然是整个工程推进的瓶颈,其开发进度与提交对整体加油卡工程进度影响很大,传统的软件开发问题在这个项目中也依然遇到。近些年来,软件行业的CMM认证较为流行,可使公司软件过程能力成熟度得到较大提高,我想这也是将来在软件质量方面的努力之处。总之,对于软件项目开发,人的作用和质量管理的作用都十分的重要,我也期待着在将来能不断提高自已的技术与管理水平,也能够希望更多的专业人员投入到软件质量管理的研究中来,为提高我国软件产业的软件质量而奋斗。
论软件项目的质量管理 篇2
1. 高素质软件人才战略
影响软件项目质量的因素主要是“人、过程、技术”。首先要明确的是这三个因素中, 人是第一位的。我始终认识到软件行业中人才的重要性以及人才在软件质量的重要作用, 特别是领头人的作用。一个项目的主管、开发经理、实施经理对项目的把控水平、相互之间的沟通、协调、配合, 以及项目中其它人员之间的合作, 是项目质量保证的关键。为此要充分调动项目成员的积极性、主动性, 激发其工作热情和责任感。除了采用目标激励、信任激励、职务激励等精神激励外, 还要采取相应的物质激励手段, 人事部门应制定比较公平、公正、有效率的薪金激励体系。由于软件开发行业的特殊性, 还应十分重视人员素质提高与技术学习和交流, 积极提倡和鼓励人员参与软考和各类认证考试以及职称评审, 这样可以在公司内形成了十分良好的积极进取向上的科研与学习气氛, 有效地提高各成员业务水平。
2. 项目研发各阶段的质量确保
a、需求分析
需求分析是研发人员对系统需要做什么和怎样做的定义过程。从系统分析的经验来看, 这个过程往往是个循序渐进的过程, 一次性对系统形成完整的认识是非常困难的。只有不断地和客户领域专家进行交流确认, 方能逐步明了用户的需求。从系统研发的过程得知, 系统分析时犯下的错误, 会在接下来的阶段被成倍的放大, 越是在研发的后期, 纠正分析时犯下的错误所花费的代价越是昂贵, 也越发影响系统的工期和系统的质量。所以需求分析一定要做好、做细, 确保需求分析的准确性, 并做好需求变更风险评估与需求变更记录。
b、系统设计
优良的体系结构应当具备可扩展性和可配置性, 而好的体系结构则需要好的设计方法, 自然设计选型成为了系统设计首要的工作, 究竟是采用哪种设计方法好呢?
对于设计选型不能一概而论, 需要针对项目的结构、项目的特征和用户的需求来分析, 同样也要考虑到参与项目小组成员的素质。除设计选型, 更有一个容易被忽视的问题, 就是公共类研发。公共类研发不仅能够减少工作中的重复工作, 降低研发成本, 更重要是可以使程序结构更加科学, 软件质量提高。这需要我们在设计阶段通过对用户需求的仔细研究, 尽可能的识别出公共类, 并进行定义, 指定专人负责设计, 通知其他设计人员, 以减少重复工作, 保证软件质量。
c、实现
实现也就是代码的生产过程。这里不但包括代码的产生, 同时也包括测试用例的产生。针对上一阶段提供周详设计, 程式员开始编码并且调试程式。好的编程习惯是程序代码质量的保证。程序员在编写代码时, 要思路清晰, 认真负责, 好的程序是高内聚、低耦合, 同时也是条理分明, 结构科学的, 同时程式员调试完程式, 提交测试人员进行程式正确性检测。同时在对测试出现的问题进行修改时, 要考虑周详。曾经有一个项目, 程序员在修改问题时, 一不小心, 改错了, 不仅原来问题没解决, 反而引起更多其它问题, 造成一时不小的混乱。
d、文档管理
保存适度的文档, 使其真正为项目的质量提供保证。详细、准确的文档, 不仅可以记录软件项目开发过程中一些重要事件, 同时, 当发生人员变动时, 仍可保证软件项目按原定计划保质保量进行, 减少对人员的的依赖性。
3. 加强测试
为了提高软件质量, 要十分重视测试工作。通常情况下测试能够分为如下几种类型, 如:正确性测试、功能性测试、性能测试、安全测试和系统测试等。测试是程序进行正常运行之前的最后一道关口, 一定要把好此关, 充分、详细地做好各类测试, 以免正式运行后, 发现太多问题, 引起用户的反感, 从而引发信任危机, 阻碍项目的有序推进。
当然测试不可能发现所有潜在的问题, 一些小的功能或操作方面的问题在使用过程中一段时间会出现, 这是不可避免的, 需要向使用人员事先进行说明, 但是大的功能性问题不应该进行正式运行阶段。
加强软件质量管理的做法还有很多, 对其中的一些细节本文也不再讨论。当然, 质量管理的内容与做法也要与时俱进, 要针对不同的项目采取不同的最适合本项目的方法, 以便取得最好的效果。
摘要:本文列举了各种影响软件项目质量的因素, 详细分析了其对质量影响的程度, 着重指出在各种因素中人是第一位的, 并进一步说明质量管理的内容与做法也要与时俱进, 要针对不同的项目采取不同的最适合本项目的方法。
关键词:质量,需求,设计,测试
参考文献
[1]《IT执行力---IT项目管理实践》作者:刘慧, 陈虔等编著, 电子工业出版社出版.
论软件项目的质量管理 篇3
关键词:软件项目质量;软件项目质量管理;需求;测试
1.软件项目质量管理相关背景
1.1 相关案例
美国项目管理专家资质认证委员会主席Paul Grace说过,在当今社会中,一切都是项目,一切也将成为项目。项目管理学科的发展,不管在国内还是国外,都进入了一个以超乎寻常的速度发展的阶段。软件项目管理作为一个新兴领域随着软件产业的蓬勃发展而愈发受人瞩目。而软件项目的质量如何对于这个软件而言是尤为重要的,所以想要提高软件项目的质量,就必须在项目的质量管理上狠下功夫。
在2005年的时候,日本东京证券交易所当时发生了一次非常严重的系统事故,导致所有的证券交易全部崩溃,在很短的时间里就造成了几千亿元的亏损。后来经过仔细调查,导致事故的原因竟然是当月交易系统的更新出现了问题。耗资如此巨大的软件系统本来就是为了进一步提高企业的工作效率,为企业创造更大的价值,更多的利润,但没想到因为一个小小的系统更新问题导致了如此惨重的损失,这一切都源于一个问题,就是项目的软件质量,如果软件质量出现了一点小问题,那么它造成的将是大后果。
1.2 相关概念
说到软件项目的质量管理,首先要弄清楚什么是质量。国际标准组织ISO9000对质量的定义是“一个实体的性能总和,它可以凭借自己的能力去满足对它的明示或暗示的需求”。所谓软件项目的质量,就是“软件项目能够满足已确定的全部需求的特征集合”,是能够满足软件项目在项目开始阶段确定的功能、性能等特点的总和[1]。它反映在一下三方面的信息特点:能达到客户的所有需求;运用合理的质量标准体系,来引导软件的开发;能否满足客户的隐性需求[2]。质量是构成社会财富的物质内容,没有质量就没有数量,也没有经济价值。
软件项目的质量管理的主要目的就是确保项目满足它所应满足的需求。从用户需求出发,保证最终交付的软件要满足客户的期望。质量管理的重点在事前的预防,而不是时候的检查,这就需要管理者在项目执行的全过程中持续坚持质量管理的理念,不断改进,使最终交付的软件产品满足客户明确需求、隐含需求的所有特性。
2.提高项目质量管理的方法
2.1加强人员的执行力和技术
对软件的项目质量造成影响的有这么几个原因,分别是技术、过程、人,而人大影响在这几个因素里是最大的很多时候导致企业缺乏核心竞争力的原因是执行力太差。对质量管理目的的偏差,是造成执行力低这一问题的很大因素。我们总是常常提到利润最大化这个词,如果开发公司不断盲目强调收益,而且是"用最小的投入获得最大的利益"。这会导致开发团队不得不最大限度地、甚至不择手段地去取得财务的增长,从而大大降低了他们的执行力。质量的目的只是为了解决销售,质量管理真正实现的根基就不存在。我们应当逐步让公司企业选择一种更和谐的盈利方式。使自己的开发团队去注重用户的感受,选择与客户、合作伙伴的长远利益。
人员的技术永远是质量过硬的最高保障,企业应当鼓励和奖励内部员工多去参加软件类的培训以及各种认证资格的考试,形成一个良性的竞争和学习环境,优胜略太,可以很大程度的提高企业员工的技术水平。
2.2清晰客户需求
清晰把握客户的需求是尤为重要的,在很多不成功的案例当中,很大程度就是由于企业不能清晰把握客户的需求。软件项目的需求决定了软件项目的功能和目标,目标不明确就没法制定下一阶段的工作计划,从而不能按质量完成整个软件项目。所以,如何真正把握客户的需求,是提高和确保软件项目质量的重中之重。
此外,软件项目负责人和需求的提出者应该尽可能早地分析项目的相关业务逻辑、明确软件项目的需求。项目需求明确的越早,就能够越早的制定开发计划,软件项目的开发质量就越容易得到保证。在项目的实施阶段,还需要对每个阶段的需求进行进一步明确,制定每个阶段的子计划,从而使得软件项目的开发得以分解。保证了每个子计划的开发质量,就能够保证整个项目的开发质量。
2.3 实施软件检测
在软件项目的质量管理工作当中,对于软件的检测是对软件的质量又有效的保障和最后的屏障。因为很多项目在实行的过程当中并不是十分规范,所以对于软件检测这一环节就更为重要[3]。检测一个软件项目在实行过程能否达到需求的逆向过程,是在整个软件开发过程中非常重要的环节。通过不同的检测环节,检测出各种错误环节来确保整个软件项目的质量,从而交付一个满意的项目成果给客户。
然而软件检测并不能发现所有的潜在问题,有些小的操作或功能方面的问题也许会在后期使用过程中出现,这是难以避免的,应该向使用人员提前说明,但是大的操作或功能性的问题绝不应该出现在正式运行过程中,是质量管理应当解决的问题。
2.4 进行代码走查
代码的质量很大程度上决定的软件的质量。编程人员在编写代码的时候,要高度认真负责,思路清晰明确,高质量的程序必须是高内聚,低耦合,同时也要结构合理,条理清晰。但由于在工作组中每个编程人员的编写代码习惯不同,能力差异,所编写出来的代码质量也有差异。所以,在软件开发过程中引入代码走查是相当重要的环节。在严格规定的时间内,让编程人员对其所编写的代码进行讲解和分析,不仅能促进编程人员提高编程水平,而且也可以经常内部交流,相互学习,更好的配合,从而提高和促进软件质量的提高。
3.结论
本文通过介绍了软件项目质量管理的重要性以及软件项目质量管理的内容, 重点研究了如何提高软件项目质量管理的方法,包括加强企业员工的的技术和执行力、清晰客户需求、实行软件测检测和进行代码走查这四种方法。近年来, 项目质量管理逐渐得到企业的重视, 但是要将项目质量管理更好的运用在实际的项目中,还有待于软件行业的不断发展和规范。加强软件质量管理的做法还有很多,质量管理的内容与执行也要时刻紧跟时代步伐,我们应当针对不同的项目采取不同的最适合本项目的方法,从而达到最好的效果。(作者单位:贵州财经大学MBA中心)
参考文献
[1]吴吉义.软件项目管理理论与案例分析 [M] .北京:中国电力出版社,2007:165.
[2]陈淦.也谈软件项目管理中的质量保证[J].福建电脑, 2006 (10): 4. http: //www cnki com cn/Article/CJFDTotal-FJDN200610027 htm.
如何做好软件项目的验收管理? 篇4
项目验收,也称范围核实或移交(Cutover)。它是核查项目计划规定范围内各项工作或活动是否已经全部完成,可交付成果是否令人满意,并将核查结果记录在验收文件中的一系列活动。怎样做好软件项目验收管理工作是本文的重点,根据多年验收管理经验,总结了做好软件项目验收管理的一些方法,希望能给大家带来帮助。
1、在软件项目实施过程中注重里程碑的确定,制定阶段性目标
如果要做好一个软件项目,完成项目的验收条件,主要还是以业务是否可用作为衡量的。不是一定得实现所有用户的需求(这里指的是口头上的需求,如果落实到文字上的还是要实现的),也不是只有将一些所谓的技术难点解决用户就会同意验收,而是可以完成一定的阶段应用业务目标。
进行需求调研的时候就要主动控制项目的边界,将一个一个业务流根据客户方的实际情况合理组织实施顺序,形成软件项目实施计划中的里程碑点,明确达到里程碑点的条件,并得到双方一致正式认可。
没有双方高度达成一致的里程碑认可,也就是没有项目目标约定,没有目标约定的项目实施计划一定会经常变更内容、变更初始设定目标,导致计划不可控制,更谈不上验收。
很多人希望通过详细的系统需求规格说明书来定义项目要实现的内容和业务目标,这是很有必要的,但需求规格说明书得到认可并非是通过用户审核就可以的结果,应该想办法让用户一起参与到需求规格说明书的制定过程中来,变成用户自己推导出来的业务实施目标,未来才不容易变形。
2、积极主动地与客户进行沟通
项目中一定要有沟通策略,和高管如何汇报工作进展,取得支持?和中层如何就业务目标不断确认,逐步清晰?和基层如何就项目应用操作模式达成一致,持续改进?都需要通过沟通反馈完成。
沟通的作用对于高管是让他们清楚项目一直按照目标前进,每个阶段工作进展是否顺利,影响项目正常运做原因是什么,需要哪些资源帮助。和高管沟通比较多的话,第一个好处是高管经常听汇报就知道项目进展程度,可以安排反馈检查,看是否具备项目所说的进展,这样一旦认可了各个阶段目标后,最终要求高管签字确认也就顺理成章了。
给高管汇报技巧就是简洁明了,真实客观,有理有据分析问题,提出对策建议请其决策即可。中层往往是项目主要的推动力量和实际执行者,也往往是对具体业务需求最主要的要求者,他们对企业实际运做过程最清楚,提出要求最具体,而且项目验收与否没有中层的同意往往也是不太容易做到的。
往往通过前期业务调研只能对企业项目目标有一个大的,宏观的认识,但如何细化并最终落实并非是一步到位的过程。因此在整个项目过程中,双方项目组要不断沟通,特别是企业中层沟通,才能逐步认识越来越深刻,最终达成一致。
和基层的沟通主要体现对最终用户的关怀,定期主动和最终用户沟通,消除一些怨气,让用户能坚持用下去,这个时候往往发现很多用户真的是非常好相处,尽管软件还有很多值得改进的地方,但他们一旦认可团队,反而会尽心尽力帮助推动项目的进行。
目前一般要求每个项目经理在项目进行中都要填写详尽的项目月报,反映项目的进度,与计划的偏差,完成的项目内容,投入人力,目前项目存在的问题,以及预计项目下月的进度等等。将进度月报交部门负责人、项目管理中心、总经办审阅。
类似地也要制定针对客户的月报甚至是周报,将相关的信息反应到客户方的负责人,及相关高层。可以先发邮件,然后还要电话落实收到并口头简要汇报,特别是高管层,千万不要以为发了就等于别人会去看,一定要口头跟进汇报一次,保证客户各方面负责人对项目进展做到心中有数。
在项目的过程中,也需要注意平时做人的积累,比如要做到讲诚信,讲原则。主要是三条:1)做不到的事情千万别随意承诺;2)承诺的事情一定要努力做到;3)每次做到的事情都进步一点点。按这三条做事,即使在系统的使用过程中总会有这样或那样的一些不方便,用户也会慢慢接受稍微长一点的响应周期,也会用更多积极性眼光看现在的问题,也相信问题一定有人响应,也一定可以得到解决。进而使卖方和客户之间形成一种较为和谐的关系。
3、验收阶段的准备工作及注意事项
当系统经过一段试运行,具备验收的各项条件之后,就需要着手验收阶段的准备工作了。首先需要把到目前为止完成的工作进行一个总结,列出已经完成的各项目工作成果、各类文档,对合同以及各类约定的技术文档中的相关内容进行自查,要彻底了解系统目前完成的情况如何,是否已经完成了与客户方达成的各项书面约定以及口头约定,没有完成的,如果是书面约定,准备采取什么策略去进一步完成。
做一个详细的验收计划是非常必要的,可以用来作为验收阶段的工作指导。这就需要与客户进行详细的沟通,再次明确验收前需要完成的工作,尽量避免客户方在此阶段提出过多的更改需求,这是极为重要的。验收计划中不光要有需要继续完成的工作,还需要有一个相对固定的工期,使双方都继续朝着这个方向去努力,防止无限制的拖延。
项目验收对任何一个项目管理者都是一个极大的挑战,即使已经采取本文提到的几种手段,也不能保证项目能够顺利验收,本文中提出的这些建议,是希望能够起到抛砖引玉的效果,希望各位同仁可以提出更多更好的方法来促进项目如期验收。
4、写好备忘录和问题跟踪记录
在一个漫长项目周期中,很多工作做了也就做了,认可了也就认可了,时间一长也就忘记了很多承诺和约定,到了验收的时候就可能重新翻出来,这种事情很多人可能都经历过,明明说可以先不做的内容最终验收的时候又成了必要条件。
软件项目管理 篇5
许多人都以为项目经理总是与“理想与光荣”相伴的,其实作为一个有志于改进中国软件开发流程的项目经理来说,他们承担的更多的是“艰辛与痛苦”。
一个优秀的软件项目经理应该具备以下素质。
一、执着
可以这么说,在中国如果不执着是做不成任何事情的,因为在软件开发流程中推行各种规范和管理制度的时候,你可能遇到各种各样的阻力和障碍,如果没有应付挫折的思想和准备,你是很难推行成功的。要知道这样一个基本事实,项目管理成败的关键是:如果你不坚持,谁也不会坚持下去的。指望领导的扶持和群众的自觉是不可能的。只有坚定信念,努力打动别人,才能成功。
坚持到成功为止。只要决定上管理流程了,就不要后悔,唯有坚持,因为你拼命努力而实现了99%,你却不知,最后当你决定放弃的时候也许就是你要成功之时。要知道你准备放弃的时候可能正是对方也准备放弃之时,唯有坚持,你才能成功
二、亲和力
亲和力是指你和团队相互依赖,相互信任能力的大小。亲和力是你领导团队走向成功的基础,如果一个团队的向心力不够,各自为政,那么失败就会在身边陪伴你。要团队的每个成员都信任你,你必须要做到关心下属,主动与下属沟通,为下属争取合法权利等。关心下属就是在日常工作中对下属的工作状况,发展方向进行指导,避免其走弯路;在生活中也对其身体状况进行关心,促进身体和心理健康的恢复。
多找下属沟通是消除误会的润滑剂,同时也是了解下属内心真实想法唯一捷径。做项目经理的人,在某些事情上的处理的确会与人不同,也难以令人理解。这个时候只有多与下属沟通,逐步达成共识,争取大家的理解和支持。记住,没有下属的理解和支持,你永远无法实现项目管理的规范化。另外就是了解下属的真实想法,经常了解一下下属的真实想法有利于我们不断改进和调整流程,使生产流程更加符合本团队的实际。切记一点,做领导的一定要多尊重下属的想法,并且与之沟通,若一味等下属找自己,那么是一般下属与之水火不容要摊牌时,才会与你沟通,这样悔之晚矣。
为下属争取合法权利是项目经理的一项重要职责。敢负责任是项目经理基本素质,如果你不经常研究工作数据保障下属的合法权益时,你就很难让你的团队保持高效率。
三、品德高尚
“一撇一捺是个人,世世代代学做人。”在这个世界上最难做的就是做个品德高尚的人。试想一个思想猥亵的人很难取得成功,即使靠钻营取得也只是暂时的,他不可能取得长久的成功。只有品德高尚的人才能感染周围的人,使团队具有向心力,从成功走向成功。
人有三种,一种是仗势欺人,一种是持才压人,最后一种是以德服人。仗势欺人的人自持地位高而指三道四,自然是不可能团结人,更不可能获得成功;持才压人的人自持学识高而盛气凌人,或咄咄逼人。殊不知“闻到有先后,术业有专攻”,“尺有所长,寸有所短”,难以学到更高的知识,也就难以取得更大的成功。只有以德服人的人以自己的修养和品德感染人,勇于吃亏,乐于助人,以德报怨,只有这样才能使你对立面德人都不忍心伤害你,团结到一切可以团结到的人,拥有这样的环境,你怎么可能不成功。
勇于吃亏,首先要放下私心,如果一个人始终 围着自己转的人是不可能做到的。“人不为己,天诛地灭”是八十年代后出生的人心灵普遍反应;但是要记住人首先是社会中的人,如果脱离了社会,人恐怕已不会成其为人了。因此只有当你抛弃私心,主动为人,别人才会反过来支持你,帮助你。
乐于助人,是人类的一个良好品质,就象一首歌中所唱的“人字的结构就是相互支撑”。管理流程是不可能靠项目经理一个人维持的,必须要大家支持你。但是这却需要你多帮助别人,别人才会帮助你。不管团队成员发生什么事情,你要尽你所能去帮助他,这样团队才可能继续前进。
以德报怨,可能是人最难做到的。中国人就强调“人若犯我,我必犯人”,其实在这回中不会有真正的仇敌,大家明争暗斗的结果如果过20年后再去看的时候,保准一大半的人都会觉得不值得,许多人赌得就是一口气,将自己成功的希望给湮灭了。当你能用宽容喝善良对待你对立面的人的时候,还有什么东西能阻挡你成功?
“得道多助,失道寡助;多助之至,天下顺之,失道之至,亲戚叛之;以天下之所顺,攻亲戚之所叛;故君子有不战,战必胜矣。”
四、口才
良好的口才是项目经理打动项目成员的必备武器,当你拥有良好的口才将会使你无往不利。当年希特勒就是用他那天才般的口才征服了德国,使他的《我的奋斗》贯彻到每一个德国人的心中,从而成立了第三帝国。
要使自己的项目管理思想贯彻到每一个项目成员心中,就必须要做到以下的演讲原则:
1.根据项目成员的共同目标象他们制定演讲内容,只有让他们信服你才有意义;
2.调动听众的这种感官,诉之触觉、视觉、听觉,用黑板、姿势来辅助你的内容。
3.不断的总结效果,改进自己演讲宣传的接受度,如果效果不理想,尝试换一个方式来表达.调动听众的这种感官,诉之触觉、视觉、听觉,用黑板、姿势来辅助你的内容。
3.不断的总结效果,改进自己演讲宣传的接受度,如果效果不理想,尝试换一个方式来表达和描述。
4.让听众学以至用,只有他们积极反馈,才能更深入的听你的思想。
五、循序渐进
循序渐进,不急于求成是项目经理在项目管理中必需具备的品质,在中国CMM过程改进的热潮中,真正实现CMM管理的企业屈指可数,而以CMM改进过程实质性为企业带来质量提升和效益改进的公司更是寥落晨星。
为什么会出现这种情况?难道CMM真的不适应中国过情吗?不是,绝对不是。是这些企业的项目经理太心急,连CMM2还不知道怎么回事就直奔CMM3,他们忽视了事务发展的客观规律,凡事必须循序渐进。如果有一个企业在2年内通过了CMM4,我有十足的信心说,那是花钱买征;如果乐观一点,一个中小企业从CMM1走到CMM2大约要2年时间,大型企业只会更长,不会更短,因为他们需要在培训和沟通上付出更大的代价。
“循序渐进,循序渐进,再循序渐进。”这句巴斯德德经典名言同样适用于我们项目管理领域,他将逐步把我们带向成功。
六、持久求学
“书到用时方恨少,学至成时始知卑。”学无止境,我在生产实践中发现,整个项目管理过程改进就是“学习-培训-实施-发现问题-再学习”的循环过程,项目经理如果不学习将不能解决现实工作中出现的新问题,更不可能站在一个战略的角度来解决问题。
事实上,求学也不能没有目标,否则学到的知识太庞杂,而不能融会贯通,这样的知识对实际工作指导甚少,真正的知识是一个目标体系,严格按照流程来一步步的掌握我们所需要的知识。
最后,我总结一下中国项目经理所必需掌握的知识:
1.专业知识:数据结构、关系数据库、操作系统、软件工程、编译原理。(外国的项目经理可能不需要掌握)
2.管理知识:项目计划、项目配置管理、成本核算、风险预估、绩效考核。这是项目经理必须掌握的内容。
3.网络知识:服务器的架构、各种服务的配置。因为管理的大厦是基于软件的管理,没有一个服务管理的网络配合是不可以想象的。
4.“越过高峰,另一峰却又现”,这是中国项目经理在持续求学中会不停的挑战自我,向更高的山峰迈进。
七、敢负责任
一个人因为有责任才有生存的意义。一个人随着年龄的增长,责任感也会愈来愈重。成年时,法律也会赋予一些年少时没有的责任。同时地位逐渐提高,责任也会相对加重。
一个人惟有负责,才能产生做人的价值。所负责任愈大,价值就愈高。换句话说,有责任,生命才有意义。如果没有感受到自己该负的责任,即使年龄超过20岁,也不算是一个成年人。
因此,经理就是要负责任,如果不负责任就可以不要经理了!项目经理关系到一个项目的成败;对于公司他必须要承担及时汇报项目进度、成本核算和质量系数的责任,同时也必须保证项目组成员绩效考核,政策落实,预留人才储备等责任,是整个项目中责任最大的人,如果没有良好的心理素质和应对能力是无法担负责任的。
实际工作中项目经理主要要负责项目组的人员安排调度、工作分配、工作审核、工作跟踪、项目计划、项目汇报总结、成本核算、利润分配等职责。
八、以身作则
项目管理的一个重要工作就是定义各种规范和制定,但是这些规范和制度的执行除了靠项目经理的执着推行,口才宣传,力主培训、惩戒得当之外,关键还是在于项目经理的以身作则。如果项目经理自己都违反自己定义的条款的话,那么就别指望团队会自觉遵守这些规定。
作为一个管理者以身作则是最基本的素质,千万不要为自己违反规范和制度找各种借口,例如我我是公司只属考核,我因为某某更重要的事情而不得不违反。“只许周宫放火,不许百姓点灯”的话,是无法将规范和制度推入人心的。项目经理如果违反了规范,只有当众加重处罚,别无他法。
因此,鉴于规范制度的权威性主要还是靠项目经理自己,只有坚持以身作则,才能将自己优秀的管理思想贯穿下去,取得开发过程改进的成功。
九、要有威信
一个项目经理说话有没有人听,必须要靠威信,这种威信是靠自身的素质,而不是狐假虎威。靠高层领导的支持来强迫团队执行项目制度过程的话,是注定会失败的。因为团队成员不信任你,表面服从,实际消极怠工,就足以让流程实质瘫痪。
做事要有信用,说一不二,不能因为朋友关心就讲情面。公是公,私是私。平时可以稀稀拉拉,关键问题决不手软,不因为朋友关系妥协,这样才能树立威信,便于工作。
威信除了必要的威信之外,最主要的还是信用,项目经理在做事没有绝对把握的时候千万不要承诺,一旦承诺就无论如何一定要实现。否则,当实现不成功而丢失信用之后,再想让团队相信你,信任你就是非常困难的事情了。
十、善于总结
项目经理要善于总结,只有不断的总结才能不停的完善自己,成功的事情总结经验,失败的事情要总结教训,总结的过程就是不断改进的过程,这也是CMM规范所必需的素质。
总结
软件应用对项目成本管理的作用 篇6
随着建筑施工行业的平均利润率不断降低,加强施工过程的成本控制越来越被施工企业所重视。一些具有实力的软件公司在深入研究施工项目成本控制客观规律的基础上,研制开发了适用于施工项目成本管理的软件系统,以在数据、流程、决策等3个层面以及准确实时的项目成本核算、权责明确的过程控制、动态的“盈亏分析”、改变人的工作状态等4方面进行提升。
“三个层面”变化
一是数据的信息化。长久以来项目部成本数据的归集都倚靠手工操作进行,部门之间成本数据的交互倚靠纸介质进行,无法进行成本数据的统计、查询、分析,而一般的工具软件可以方便地进行成本数据的归集、分析、查询,但满足不了项目成本管理的系统性要求。软件系统将各种与成本相关的数据如消耗材料的进库、出库、退库、报损;周转材料的进场、出场、报损等等都以一定的数据格式录入到计算机里,以数字的形式保存起来,可以随时进行成本的归集、查询、分析。此外,各相关部门的成本数据通过局域网络传输,实现成本数据的共享,从而实现了数据的信息化。
二是流程的规范化。目前,建筑企业在项目成本管理工作中面临的一个普遍现象是操作流程不规范,造成了成本浪费的隐患、成本管理的低效及管理漏洞。软件系统作为一种管理手段,辅助企业的管理制度,将企业已经规范的一些科学的项目成本管理流程以软件程序的方式固化下来,使得流程所涉及岗位员工的工作更加规范高效,加强了成本管理中的约束,减少人为控制和“拍脑袋”的管理行为,堵塞了管理上的漏洞。
三是决策的科学化。在落后管理模式下,决策缺乏对成本对象的“定量”分析,只能作“定性”的分析,使得决策往往依靠管理者个人积累的经验。而且管理者要等每个月报表出来后才知道哪儿超了、哪儿省了,若要等此时才决策为时已晚,根本无法控制住项目成本。此外,由于项目成本管理的“一次性”特点,也在客观上决定了决策的“一次性”,决策失误无“后悔药”可吃。软件系统通过对那些成本原始数据进行科学的加工处理,运用一定的计算模型,实现了项目成本管理的事前计划、事中控制、事后分析等全过程的“定性”、“定量”分析,更重要的是通过这些分析使项目管理者对成本过程控制中的“薄弱环节”作到心中有数,及早应对。所有这些从理论上保证了决策的科学性。此外,这套软件系统可实时动态的进行成本数据归集、查询,从而真正起到对项目成本管理科学决策的支持作用,从某种意义上来说,这套系统也是项目成本管理的决策支持系统——辅助项目管理者科学决策。
解决的四个主要问题
第一是准确、实时的项目成本核算。软件系统本身就是一个业务平台,从根本上消除了各业务部门的“隔离”,财务部门不但能了解项目成本产生的全部过程,而且伴随着各相关业务部门的每一个作业,财务都有相应的反应。如材料部门在记录一笔材料出库、退库的同时,财务也得到了这个信息,并将相应的材料费用计入实际成本;经营部门对分包商每完成一笔结算,财务就产生相应的应付款等等。可以看出正是这种成本数据信息的通畅、透明,才保障了项目成本的准确、实时成本核算才成为可能。
第二是权责明确的过程控制。项目部不仅要进行管理范围内的权责划分,还要处理外部错综复杂的权责关系:项目部建筑主材往往由公司或甲方供应;专业分包中公司与甲方也往往参与其中;项目部对公司的承包方式多种多样等等。哪些成本由材料部门负责,哪些由机械部门负责;哪些成本是由公司负责,哪些由项目部负责;哪些成本由A分包队负责哪些由B分包队负责等等。而且,在市场经济条件下要作到权责明确还必须进行“量价分离”,如公司供应主材时“价”对项目部是不可控的,而“量”是可控的,此时这种材料的成本就由公司和项目部共同产生。对项目部来说就要对所有这些权责进行划分并跟踪,否则,成本的“过程控制”将无法控制好。已往在某些建筑企业也实行了“全员、全过程成本管理”,但由于成本管理手段的落后及制度方面的原因,使得责任成本制定容易、跟踪难、考核更是难上难,这就造成项目成本谁都负责,而实际上又谁都不负责的局面。
软件系统可以很方便地帮助项目部进行目标成本分解,依实际情况将目标成本明晰地划分为“可控”及“不可控”部分,对“不可控”部分成本的盈亏项目部能说明盈亏的原因,对“可控”部分成本进行进一步的权责划分,将其落实到责任部门及责任人,实时利用计算机系统对其发生成本进行计算、数据归集、分析,并对其进行跟踪,使得成本的“过程控制”“有章可循、有据可查”,配合项目部相关成本管理制度使“成本谁都负责,谁又都不负责”这个局面得以彻底改观。
第三是动态的盈亏分析。项目管理者关心在项目实施过程中到底是盈了还是亏了,盈了——盈了多少,亏了——亏了多少,这在过去往往是谁也说不清,其中一个重要的原因是——项目施工环境的“动态性”。在项目施工过程中的不可预见因素很多,各关键因素又是紧密关联的,如进度、成本、质量三者中某一因素发生变化都会导致其它因素发生变化。如在施工过程中进度计划发生了延误,这将导致一系列的变化,控制工期的关键工序可能发生变化,为保证工期可能要改变施工方法又会导致材料、机械等资源使用计划的变化等等,这是一个复杂的、系统的逻辑、数学模型。动态的施工环境决定了施工过程中的“盈亏分析”必然是动态的,单靠人手工计算及已往的经验积累就会出现“盈亏谁也说不清”的现象。
软件系统利用计算机强大的数据处理功能,将与项目成本有关的各因素按成本费用的逻辑关系,建立起数学模型,采用人机结合方式,面对施工环境的动态变化系统自动进行成本的归集。现在,用户在应用了此套软件系统后,随时都可进行准确的成本的“盈亏分析”。前面也提到项目部随时可面对投影仪(计算机)显示屏进行“成本核算”,其实它同时也可进行成本的“盈亏分析”,它的过程同样可以作到实时、动态。
第四是改变人的工作状态。软件系统集项目施工现场管理与成本管理于一体,它以提高项目部成本管理的整体水平为目标,不仅从业务上保证成本管理的更趋科学和规范,同时从人的角度对提高整体水平也有重要作用,如该软件系统构成一个人与人之间、部门与部门之间、员工与领导之间沟通的平台,提高了工作效率。由于这套软件系统将项目成本形成过程“透明化”及“可控化”使得项目部员工能积极参与到项目成本的管理中来,增强了员工的成本责任感。项目管理者在决策时可以掌握更为详尽的信息,也就减少了决策失误产生的可能。同时由于成本形成过程“透明化”及流程“规范化”,堵塞了管理上的漏洞,使少数人不能“浑水摸鱼”。并营造了一种沟通、参与、信任、高效、权责分明的氛围,保证和促进了项目部成本整体管理水平的提高。
论软件项目需求管理 篇7
关键词:软件项目,需求工程,需求开发,需求管理
1. 软件项目需求管理的概念
软件项目需求管理是指软件项目的开发团队了解、挖掘用户的“需要”, 对这些“需要”进行系统有效的跟踪、管理, 最终通过软件将这些“需要”实现, 满足用户期望的过程。软件需求来源于用户的需要和期望, 这些“需要”被清洗、梳理、分析、抽象、整理后形成文档, 详细地说明了软件产品“必须做什么”或“应当做什么”, 是用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
2. 软件项目需求工程与管理
2.1 软件需求的层次与组成
软件项目需求工程是一个系统工程, 在实际开发过程中, 需求可分为4个层次:
原始问题:用户口头、书面提出的要解决的问题, 它是软件需求的基础;
用户需求:开发团队用自然语言、图表给出的, 软件系统将要提供的服务及操作的约束;
系统需求:是用户需求的映射, 可通过软件原型给用户一个直观印象, 并在此基础上开展下一步的工作;一般算法较简单的软件采用水平原型, 需要体现复杂算法的则用垂直原型;
软件设计描述:以上三个层次说明了“做什么”, 这个层次则说明“如何做”, 是软件详细设计和实现的基础。
在了解以上4个层次的基础上, 我们就可以进一步理解软件需求工程的组成:需求开发和需求管理。
2.2 需求开发
(1) 需求捕获
需求捕获是需求工程的主体, 它描述了用户通过软件系统需要完成的任务。改过程归纳、整理了用户提出的各种问题和要求, 厘清用户希望通过软件达到的目的, 并使用工具和方法描述用户提出的实际需求, 以界定软件的作用范围, 最终弄明白要“做什么”。
实施需求捕获首先要确定用户类型, 寻找每一类型用户的涉众代表及需求的决策者。需求捕获的方法有:理解用户单位的组织架构;调查各部门的业务活动;与用户交谈;向用户群体发放调查问卷;分析用户工作流转的表单、文件;参观用户的工作流程, 观察用户的操作;召集用户代表会议;场景实例分析;跟班作业等。建议在捕获前需求管理人员应事先建立一份基本词汇表, 其中主要描述用户行业的专业术语, 包含了一些用户日常工作的基本流程及其解释。这样做的好处, 一是给用户一个良好的第一印象, 让用户认为你很专业, 对你很放心, 双方有更多的共同语言;二是能帮助项目开发团队正确领会用户相关干系人的意图。
(2) 需求分析
需求分析是指在需求开发过程中, 对所获取的需求信息进行分析, 及时排除错误和弥补不足, 弄清楚问题的要求。确保需求文档正确地反映用户的真实意图。需求分析方法大体有两类:一类是常识性的方法, 简单易用, 另一类技术性很强, 在此不做讲解。
(3) 需求规格说明书
需求规格说明书 (SRS) 用以描述用户需求和系统需求。SRS不仅要正确地反映用户的真实意图, 而且用词应该简单明了, 清楚易懂, 尽量使用前文提及的基本词汇表中的语言, 另外还应该力求全面具体, 具有可操作性与可验证性, 只有这样的需求规格说明书才能最终帮助我们进行科学的需求管理。
(4) 需求验证
需求验证目的是为了确保SRS准确、完整地表达了必要的质量特点。此时, 应会同用户方的决策、业务、技术人员一起验证, 其目的有二:一是让用户了解、明白SRS是否正确地描述了他们的需求;二是通过此文档, 确保需求提出者与需求分析人员、开发人员、测试人员及其也干系人对需求达成共识, 并把需求固化, 作为基线, 控制用户在需求方面的变更。验证的内容有:审查SRS、测试用例、测试覆盖、产品验收标准等是否与用户需求一致、完备。
2.3 需求管理
(1) 变更管理
用户需求变更在项目实施过程中是永远存在的, 但客户并不永远是对的, 也就是说需求变更要加以正确的管理和控制。如何对需求变更进行管理呢?
首先, 要对需求变更进行分类, 区别对待。一类是关键性变更, 它影响到项目的正常交付使用, 这种需求是必须满足的;二是改良型变更, 它不影响系统的交付, 但如果不被满足会令整体项目工作的价值下降。
其次, 所有的变更必须通过变更控制流程实现, 绝对不能因为变更范围小、容易实现, 或碍于面子, 就随口答应, 或不通过配置管理就进行随意改动, 有时一个小小的变更就会导致项目的失败。
(2) 版本控制
版本控制用于跟踪记录整个软件的开发过程, 包括软件本身和相关文档。通过版本控制在空间上可以保证配置项的集中管理, 解决一致性和冗余问题, 让版本具有可回溯性, 它不仅是开发团队并行开发、提高开发效率的基础, 也是管理需求变更的手段。
(3) 需求跟踪
需求跟踪建立和维护了从用户需求 (包括变更的需求) 到测试的一致性与完整性, 即建立“需求-设计-编码-测试”之间的一致性, 确保所有的工作成果符合用户需求。
3. 几种需求管理工具
一个好的工具可以让需求管理工作事半功倍。这里我推荐几种管理系统:Rational Requisite Pro:集成易用的需求管理工具;IBM Rational DOORS:老牌的需求管理套件;Cloudtopo Topo:国产需求管理平台;Visual Source Safe:一个常用的、易上手的配置管理 (版本控制) 软件;
需求管理是软件项目开发工作的一个重要领域, 关系到整个项目的成败与质量, 尽可能准确的获取客户需求, 尽量一次做对, 编写出高质量的SRS, 加强需求管理, 有效防范和减少不必要的需求变更, 跟踪、控制需求在整个软件开发生命周期中的作用, 努力降低因需求变更对项目的范围、成本、质量和进度造成的影响。
参考文献
[1]万文杰, 李振中, 任伟, 高瑞年, 卢旭.探析软件开发中的项目需求管理[J].电脑编程技巧与维护, 2010, 10.
浅析软件项目中的质量管理 篇8
[关键词] 软件项目 软件质量 软件质量管理 软件项目管理
一、引言
软件产品是软件项目的最终结果,与其相关的质量问题主要来自项目开发过程。但软件是一个纯智力的特殊产品,描述软件质量的定义则比描述实际物品质量定义面临着更多的潜在因素。所以,保证软件质量比保证设备质量更具挑战性和不确定性。
国际化标准组织ISO在ISOPIEC9126中将软件质量定义为:“反映软件产品满足规定需求和潜在需求能力的特征和特征的总和”。而M. J . Fisher 将软件质量定义为:“所有描述计算机软件优秀程度的特性的组合”。目前,对软件质量的研究主要从两方面展开:一是软件开发过程的质量保证,以过程文档化和管理科学化为内容;二是软件过程和产品的质量评估,包括中间产品和最终产品,采用软件度量技术作为软件质量特性量化的主要技术。本文将就第一个方面展开讨论,通过给出或设计一些符合文档化开发标准的管理规范和文档模板,以达到使软件质量满足之前用户对各项功能或性能的精确定义的目的。
二、项目概况及背景
某船厂在信息集成系统CIMS第一期结束后,初步建立起企业的基础信息资源的共享平台,并将物资管理与财务管理进行了整合。但在第一期CIMS平台中没有对其涂装生产管理建立相应的系统。为尽快解决涂装生产管理的问题,项目组在进行一个月的需求调研后就进入了开发。但是由于前期需求阶段没有细化需求,涉众范围太小,在开发阶段代码管理松散,导致项目在开始不久后,就处于一边开发一边继续需求分析细化的状态,并伴随不断的需求变更,最后在拖期半年后才交付了一个带有隐患的产品,而且原定两周的试运行期因为修改不断发现的缺陷也延长为两个月。
在完成涂装项目后,项目组又接到船厂关于开发生产安全监管系统的任务,为了避免同样的问题发生和提高软件质量,项目组认为要在软件开发项目过程中引入完善的质量管理,并针对船厂项目特点,结合实际情况重点覆盖需求、编码、测试三个阶段。
三、分析及应对措施
1.定义合适的项目过程
软件过程是指开发和维护软件产品的活动、技术和实践的集合。在以计算机网络为基础的现代社会信息化背景下,过程管理作为现代企业管理的先进思想和有效工具,随着外部环境与组织模式的变化而变化。因此,作为一个好的软件项目过程,必须针对企业和项目的实际情况,确定软件项目运作流程,定义软件功能及相关性能,明确各阶段的进入条件和退出条件,进行有效的过程控制与管理,在提高软件开发的效率和项目的成功率的基础上进一步保证所开发软件的质量。
在现阶段主流的软件工程过程主要是RUP(Rational Unified Process)和XP(Extreme Programming)。由于新项目的需求明确,并且项目组成员的构成方式是新老搭配,在经过综合考虑后,我们决定采用RUP方法。最后,项目组根据项目实际情况对传统的RUP模式进行按需裁剪,具体方案是将“需求与分析”和“设计”两个活动合并为“需求分析”,将“配置”和“变更管理”统一纳入“项目管理”,移除“环境活动”环节。
2.明确项目需求
对于任何软件项目过程而言,需求不仅是一个不可避免的环节,也是软件开发的基础。往往用户需求明确、变更少的项目的成功率就高,而那些用户需求混乱、变更频繁的项目几乎从一开始就注定了失败的命运。但是,在现实生活中,用户需求总是在开发进入中后期时,因为各种不同的原因而发生变化。这就给软件项目过程实施带来不确定因素。在涂装项目中,由于前期需求不明确以及随意变更需求,导致项目组在开发阶段不停的返工,进而造成代码质量低下,测试拖期等一系列问题。因此,在项目实施过程中,为了保证软件开发的顺利进行和最后交付的产品质量,应该对项目需求变更进行管理。
(1)需求说明书要描述明确、详尽。由于与用户沟通的需求人员并不是最后的开发人员,所以有可能导致开发人员对需求说明书的理解与用户真正的意图会产生一定的偏差。另外,当项目在进行到开发(编码)阶段时,由于记忆的缺失,对当初所作的需求说明书的理解也会产生偏差。
(2)要对需求变更进行管理。通常需求分析完成后项目就进入开发阶段,用户可能会因为市场或策略的变化而提出需求变更的要求。此时,若是合理变更则有利于项目实施,但有时所作的变更可能会影响项目整体的设计和开发,造成项目进度的延期。对于这一情况,项目组应该积极与用户沟通,制订需求变更说明书,在双方都认可的情况下方可实施。
(3)在项目开发过程中要尽早明确用户需求,有些内容一时无法确定则应该暂缓该部分的开发,尽量降低因需求变更而带来的风险。
3.代码走查
软件质量在很大程度上依赖于代码质量。在实际环境中对于同一项目而言,由于项目组成员的编程能力、习惯、风格、对需求的理解和个性的不同,所开发的代码质量也不尽相同。再加上一些难以预测的人为因素,由此带来的隐患将严重影响代码质量,最终造成软件质量低下,使得用户无法正常使用并为以后的维护带来更大的工作量和难度。
考虑到项目进度以及实际情况,要进行完整的代码评审不太现实,因此,在软件开发过程中可以根据需要引进代码走查。每周在规定的时间内,轮流让程序员讲解其所开发代码的主要部分。这项措施一方面可以从侧面促使程序员本人注意所开发代码的质量,另一方面在走查过程中可以获得他人的意見进一步改善代码效率,使开发成员共享项目实施过程中问题解决的思路和方法,同时还可以促进项目组成员之间的交流并加深对需求的理解,关注软件开发过程中的各个环节,并进行过程改善的讨论,使得软件质量更有保障。
4.进行正式的测试,并形成制度
测试就是对软件产品的检验。软件测试的目的是根据用户需求检查系统是否符合项目合同与任务书规定的要求。项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试、性能-效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等活动。测试过程通常在模拟环境中进行。只有通过了上述全部测试的软件,才可以称之为符合用户质量要求的合格的软件。
测试活动要尽可能覆盖整改项目过程,从最初的需求到部署阶段,都应该制订详细的计划并编制相应的文档,如测试计划、测试用例文档、测试报告等。通过测试活动,尽可能早得发现每个阶段中软件存在的缺陷,以方便后续阶段的实施。在这测试活动过程中,我们应该遵守一条基本原则——按照用户需求进行测试。我们即不能为求速度而缩短测试规模,也不能忽视用户需求而提高测试要求。总之,一切测试应该符合用户需求。
四、结论
除了上述几个方面外,对于软件产品的质量管理还有其他要考虑的因素,如风险控制、变更管理和配置管理等等。其实,美国软件工程研究所(SEI)开发的软件过程能力成熟度模型(CMMI)和ISO9001标准,都着眼与质量和过程管理。而且在组织结构方面,国外成熟的软件企业一般都设有单独的QA(Quality Assure)部门,它与开发部门独立,负责监督流程的执行。但是,对于任何一个具体项目的实施都应制订合适的质量管理方案,不能生搬硬套,而这些需要项目经验的积累以及不断的学习新知识。
参考文献
[1]殷立欣:软件开发中的质量管理,软件质量管理,200~3
[2]赵京胜:软件企业实施CMM改进软件过程的研究,计算机工程与设计,2006~3
[3]李健:软件过程质量度量与控制,清华大学出版社,2006~1
[4]罗铁清:软件项目管理流程分析与设计,计算技术与自动化,2005~9
【论软件项目的质量管理】推荐阅读:
论软件开发的成本管理07-15
软件项目的项目管理12-11
软件项目的质量管理09-19
软件项目的沟通管理06-26
软件项目的进度管理05-18
软件项目管理的理论与实践08-17
详解软件项目管理流程的每一步12-01
软件项目过程质量09-26
软件项目产品质量管理07-28