《项目管理中的一些问题(共7页).docx》由会员分享,可在线阅读,更多相关《项目管理中的一些问题(共7页).docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上项目管理中的一些问题一、为什么要实施CMMI?一个软件项目能够成功的最基本特征就是整个软件项目是在一个合理的计划指导下,有序地完成各项规定的任务。这包括十个最基本的因素。这些因素都可通过建立CMM/CMMI模型所获得的。它们是:l 建立一个清楚的视野。包括明确整个和各阶段要实现的目标,以及可能存在的各种风险等。这些可通过科学地评估和周密的策划所得到。l 获得一个相对稳定和完整的书面需求。需求的变更是导致软件产品质量下降和开发工作混乱的主要原因之一。通过需求管理可以最大限度地降低这项风险。l 建立一个有效的与客户之间沟通的渠道和方法。与客户沟通的有效性,直接影响着客户对
2、产品的满意以及对尽可能降低开发成本和风险,缩短开发周期。l 实施有效项目开发过程管理和控制。严格执行项目开发计划,并及时解决出现各种技术和管理问题。在此过程中还要不断收集产品、过程和体系产生的各种数据。为今后有效开展改进工作奠定基础。l 准确和快速识别开发工作中所出现的各种问题。采取纠正和预防措施,防止问题再次产生。l 持续改进。软件产品开发活动本身带有许多无法克服的困难和障碍。持续对开发过程、方法和手段是必不可少。因此必须建立一个持续改进的机制。l 有效地和严格地控制开发活动中的变更。变更是软件开发活动中必不可少和典型的活动。是影响团队协调的重要因素。严格和有效地控制变更活动,确保软件产品的
3、完整性。l 确保软件开发活动中技术与管理两类活动的有效结合。技术与管理是一辆车的两个“轮子”。只有两者有机地结合,才能最经济地开发出用户满意的产品。l 严格控制内外部接口。特别是软件开发过程中的分包活动。清楚地和有效地了解、掌握以及控制分包方的工作及产品。l 独立地和客观地评估各项开发活动及产品,确保不受外部其它因素的干扰二、实施CMMI的好处1、 提高公司国际竞争力,获得更多的商业机会。当然在招投标中也有相应的好处。2、 规范公司的开发流程及管理。更好的积累经验,保留过程资产。3、 帮助公司重新审视自己的公司,是一个公司开发能力成熟度的一种表现。所谓知己知彼百战百胜也就是这个道理吧。4、 通
4、过实施规范的流程,对问题、风险进行管理,可以降低软件开发过程中的风险。因此,CMMI有助于企业建立自身和品牌的良好形象,在企业营销上也具有良好的商业价值。5、 在CMMI的推进过中可以找到自身的优缺点,推进过程改进从而提高产品质量、控制成本、提高劳动生产率。三、实施CMMI的步骤在评估计划已提交、Readiness Review进行完毕并对ATM进行过培训后可以进入正式评估阶段,大致过程如下(当然具体过程与主任评估师的安排有关,评估前主任评估师会与受评单位沟通确定正式评估现场流程安排)1、 文档证据评审,主要是审查PIID中的文档证据;2、 相关人员访谈,包括项目经理、开发人员(需求、开发、测
5、试)、支持组(QA、配置人员)、EPG、OT、中高层、出资人ATM及LA记录访谈证据;3、 整理证据,顺序为个人、小组、评估组依次评审,形成对评估结果的初步认定;4、 预发布,会将整理好的结果分为管理层与开发与支持层两组进行发布(这里只是公布发现的证据,包括描述与强弱项等,但不会发布评估的结果),预发布后收集补充证据,受访者可就描述有异议处提交补充证据说明;5、 根据最终收集的证据对各SG进行评分,得到评估结果;6、 正式评估结果发布;7、 就下一步改进建议与高层沟通四、QA的工作内容?1、 制定SQA计划 2、 软件过程和规程培训3、 进行产品审核和活动评审4、 报告不符项,并确定纠正措施和
6、期限5、 跟踪纠正措施的执行6、 填写周工作报告并抄送项目组7、 进行阶段和项目的工作总结并上报主管。五、QA在项目组中的作用QA到底是什么?它是做什么的?能带来什么好处?相信接触过CMM的人对其中这个核心角色应该不感到陌生,可能也或多或少地知道它的一些工作内容。尽管如此,很多人对这个角色的价值以及必要性可能还并不真正地理解,这里作者结合多年的质量管理经验总结了QA的十大价值所在,希望能帮助大家更进一步地了解QA。 (1) 保障制度体系(2) 促使过程改进(3) 指导项目实施(4) 增加透明度(5) 评审项目活动(6) 审核工作产品(7) 协助问题解决(8) 提供决策参考(9) 进行缺陷预防(
7、10) 实现质量目标1、保障制度体系 无论是CMM/CMMI还是ISO9000等其他管理思想,它都是强调法治而非人治,实施CMM也是希望能通过它将一些优秀的软件工程化开发经验用一套合理、规范的制度沉淀固化下来,使项目的成功不再成为一种偶然。这其中体现了一个三权分立的思想:SEPG(软件工程过程组)相当于是立法机构,负责建立、维护、改进企业的开发过程体系;SEG(软件工程组)则是执行机构,来执行这套开发过程,按照软件工程化的思想来实施项目;而QA则是督促这些规范贯彻实施的监督机构了。 作为一个国家,监督机构的必要性和重要性不必多说。同样,作为一个企业,监督机构也是非常必要的。试想一下,如果企业花
8、了大量的人力物力建立了一套规范的开发制度,每个项目启动时也制定了各种周密的计划,却缺少相应的机构来进行督促,那么项目在实施过程中是很容易由于这样或那样的原因而偏离既定轨道的,导致项目难于得到有效地控制。而企业的制度、项目的计划也就变得形同虚设。企业的制度实际上就相当于企业的法律,如果有法不依,执法不严,违法不究,久而久之这套制度就只是一纸空文了,浪费了大量的人力物力来建立却毫无用处。所以就非常需要存在QA这么一个机构来维护企业开发制度的权威性,并督促项目计划得到有效地实施。 2、促使过程改进 SEPG建立了一套规范过程后,并不表示这个过程就一成不变了,规范自身也必须不断地得到改进才能保证它的正
9、确性和有效性。虽然过程规范在发布之前都必须经过评审,但并不表示只要通过评审就能发现所有的问题,还必须经过实践的检验才行。正所谓没有最好只有更好,所以过程的改进也是永无止境的。它的改变往往是来自两个方面,一方面可能是这个过程本身存在的缺陷和错误暴露出来了,促使SEPG必须去完善性的改进;另一方面可能是当时过程制定所依赖的情况发生了变化,现有的过程已不适应当前项目实施的需要,甚至还阻碍了项目的发展,这也会促使SEPG去进行适应性的改进。 但是改进的来源从哪来呢?表面上好像项目组可以向SEPG提出, SEPG自己也可以去发现。但是实际情况往往是一方面项目组成员尤其是成熟度等级较低企业的项目组成员缺乏
10、质量意识,只关注与自身相关的开发工作,对过程改进工作缺乏应有的认识,提不出问题或者有问题也不愿提出来。而另一方面SEPG却又往往苦于不了解项目情况而找不到关键问题所在。 而QA的存在恰好就可以解决这一矛盾,因为QA经常要参与过程改进工作,又常常参与项目的活动,既熟悉过程体系又熟悉项目情况,刚好起到充当SEPG和项目组之间桥梁的作用。QA在项目实施过程中经常会发现很多问题,有些问题有些是因为项目组本身执行得不够规范而产生的,而另一些问题则是由于过程本身存在着一些缺陷引起的,如可操作性不强或前后矛盾等而让项目组无法实施。所以QA在工作当中,会将这些问题记录下来并反映给SEPG,以促使过程改进。另外
11、项目实施过程中值得借鉴的一些经验做法QA也反映给SEPG,以便SEPG在企业范围内进行推广。如果过程完善了,反过来也会更好促进项目工作的开展,这就是一个良性循环。 3、 指导项目实施 QA对项目有督促的作用,但是仅仅督促是不够的,还需要给予项目组在过程实施上的指导。虽然在项目过程实施之前会要接受相应的培训,但是工作的顺利开展并不是光靠几堂理论课就能解决问题的,很多具体的做法需要在实践中才能真正理解应用,而且每个项目组成员接受培训的程度不同,对过程的理解可能存在一些偏差。因此还需要QA人员在项目实施过程中给以解答和指导,将这些规范真正地贯彻下去。 QA对于项目组来说就象一把双刃剑,既有监督的一面
12、也有指导的一面。既能帮助项目顺利的开展工作,也能使不规范不合格的项目暂停甚至关闭。这其中项目经理的指导思想非常重要,如果项目经理是抱着积极合作的态度,决心要真正按企业规范化过程来实施项目的话,那么QA将成为最有力的帮手和支持者。如果项目经理抱着消极对抗的态度,置企业管理制度不顾,欺上瞒下自行一套的话,则QA就是他们最大的障碍和绊脚石。 4、增加透明度 软件开发活动存在于人的大脑中,不象工业生产中在流水线上的工作情况令人一目了然。正是因为这一特点使得软件项目难于控制。而QA的存在则可以提高这种透明度、增加项目的可视性。让高级经理和相关工作人员能从项目组以外的第三方得到一个独立的视角和渠道,能从多
13、方面客观地了解项目的过程、产品、服务等情况,以便做出正确的判断,及时发现问题及时进行纠正,使项目尽可能朝着良性的方向发展。 5、评审项目活动 评审项目活动是QA的核心工作之一,也是QA实施质量保证的一个重要手段,评审项目活动的目的是为了检查项目的活动是否符合企业制定的规范和项目既定的计划,及早发现可能存在的问题,并通报给相关人员以便及时纠正。 虽然质量保证的最终目的是希望能保证质量,但质量是过程、人、技术三者的函数,除了过程外,还与人员、技术有关,而人员素质和技术水平的提高并不是依赖QA就能保证的,所以QA虽名为质量保证,实际上它直接保证的是决定质量好坏的一个重要因素过程。过程不仅仅指活动,它
14、还包括了产品,产品是一系列活动后的产物,所以保证过程要先从活动开始入手,因为控制得越早,发现问题越早,所付出的代价就越小,当产品出来之后再去控制就已经晚了。虽然单有好的过程不一定就会有产生好的质量,它还必须依赖人员和技术这两大因素,但是一个不好的过程肯定难产生好的质量,因为过程、人员、技术这个质量铁三角缺一不可。所以QA需要评审项目的活动,从保证活动入手来保证过程进而保证最终的质量。 QA评审项目活动时应该做到独立、客观、公正,评审的时机和频率可按预定的检查点进行抽查。 需要指出的一点是QA评审项目活动和同行评审不同,同行评审是指同行评审人员从技术角度对产品进行评审,而QA评审项目活动则是从规
15、范角度对活动进行评审,这两者有本质的区别。 6、审核工作产品 评审完项目的活动,那么QA接下来就需要审核活动的产物产品了,审核工作产品是QA的另一个核心工作。项目组在开发过程中会产生大量的工作产品,如需求、设计、代码、用户文档等。同行评审、测试等手段可以从技术角度对产品质量进行把关。而过程方面的质量,如符合性、规范性、一致性等则需要由QA来把关,产品的技术性与规范性不可或缺。 最终的产品质量是由单个的软件工作产品质量组成的,所以QA也必须从审核单个的软件工作产品开始来保证最终的产品质量。审核产品也应该做到独立、客观、公正,它的重点在于产品规范性、符合性、一致性、完整性、可追溯性等方面。对于同一
16、工作产品,如果QA代表参加该产品的同行评审工作,则可以视情况不对该产品进行独立QA审核,以免重复工作。 7、协助问题解决 QA无论是评审项目活动还是审核工作产品,都是为了发现问题并及早解决。QA发现问题后会将问题记录在报告中并提交给项目经理确认。然后还会协助项目经理一起找出问题的原因。如果在项目一级问题能得到妥善解决则应尽量在项目内解决,如果项目组一级不能解决,则QA会上报给高级经理以寻求更高一级的支持。QA问题的上报并不能看成是在向高级经理打小报告。其出发点也是为了更好地协助项目解决问题,有问题要及时发现,发现了问题就要及时解决,越早越好,否则小问题发展成大问题很可能就会给项目和企业带来无可
17、挽回的损失。 QA应客观地报告问题,报告用语应做到客观、公正、规范、严谨、准确、清楚。并且跟踪这些问题直到它们被妥当地解决为止。8、提供决策参考 在那些没有专职度量分析人员的软件企业中,QA还承担了数据采集、统计、分析的工作。在项目一级,QA采集项目相关的数据并对其进行统计和分析。从分析的结果项目经理可以看出现阶段哪些方面做得还不够,哪些方面还存在着问题,哪些方面还需要改进,并为项目下一步的工作重点提供决策参考。在组织层面,QA也会收集组织的过程数据,并将统计分析的结果反馈到高层领导,用数据说话,用事实说话,为高层的决策提供有力的参考和依据。 9、进行缺陷预防 从长远来看,企业要降低成本、提高
18、质量就必须要进行缺陷预防。消除产生缺陷和问题的根本原因并且防止将来这类缺陷和问题的再次发生,以优化项目及企业的规范过程。缺陷预防并不是简单对缺陷进行发现和纠正。等到缺陷被发现时,实际上缺陷已经发生过了,对节省项目成本和控制进度来说作用并不是显得特别大,缺陷预防重在预防,防范于未然才真正有效。通常的做法是要求在开发周期的每个阶段实施缺陷预防和原因分析,吸取其他项目或本项目前期的一些经验教训,并使原因分析和缺陷预防成为一种机制。 在项目过程实施当中,QA会指导并协助项目组积极地开展缺陷预防活动,采集问题和缺陷相关数据,并对缺陷和问题的类型进行分析,了解问题的趋势,确定这些缺陷的根源和将带来的影响,
19、并通过共同决策分析,得出所需要采取的措施并具体去实施。 10、实现质量目标 经过了一系列质量相关的活动后,最根本目的还是要通过这些活动来达到项目乃至组织的预期质量目标。只有达到目标了,一切的努力才没有白费,工作才显现了应有的价值。项目启动时,QA会和项目经理一起结合企业的过程能力基线来制定项目的质量目标。在项目实施过程中,QA会指导项目按阶段、里程碑等控制点对质量目标进行定量控制,定期将项目运行情况和质量目标进行比较,及时发现偏差,及时进行调整,以保证项目最终能达到质量目标。如果项目的质量目标都达到了,那么企业的质量目标也就容易实现了,并提升了整个企业的能力基线。 经过总结,大家可能已经认识到QA在企业中是一个不可缺少的角色了。但是从理论上来说,当企业的成熟度发展到很高等级,人人都具有很强的质量意识,人人都能自觉提维护质量体系,人人都充当起QA角色的时候,也许就不需要专职的QA了。正如国家机器的功能会随着社会文明的高速发展变得弱化甚至是消亡的道理一样。但是,就目前来说这还仅仅只是一种理想的状态,正如国家机器在若干年之后都不会退出历史的舞台一样,作为企业机器的QA在相当长的时间内也应该还会继续存在。而且随着我国软件业工程化思想的普及,软件企业对QA的需求也会相应地增大,QA这一新兴岗位也将越来越有发展前途。专心-专注-专业
限制150内