软件行业不同于传统的制造业的生产过程。通常传统制造业在产品规格、工艺规程、材料规格标准化的前提下进行大批量连续制造。现在,小编就整理出软件工程软件项目管理方法以及相关知识。
软件项目管理技术
1.CMM。CMM是美国卡纳基梅隆*软件工程研究所(CMU /SEI)提出的软件研发项目管理的一系列方法,它基于组织对关键过程域的支持,定义了软件过程成熟度的五个级别。级别1 (初始级)描述了不成熟,或者说是未定义过程的组织。级别2 (可重复级) ,级别3 (已定义级) ,级别4 (已管理级)和级别5 (优化级)分别描述了软件过程成熟度级别递增的组织。和这些级别相关的KPA是:级别2:需求管理,软件项目计划,软件项目跟踪和监控,软件子合同管理,软件质量保证,软件配置管理。级别3:组织级过程焦点,组织级过程定义,培训大纲,集成软件管理,软件产品工程,组间协调,同行评审。级别4:定量过程管理,软件质量管理。级别5:缺陷预防,技术更新管理,过程更改管理。
2.CMMI。CMM I被看作是把各种CMM集成为一个系列的模型中。CMM I的基础源模型包括: 软件CMM2. 0版(草稿C) , EIA - 731系统工程,以及IPD CMM( IPD) 0. 98a版。CMM I也描述了5个不同的成熟度级别:级别1 (初始级)代表了以不可预测结果为特征的过程成熟度。过程包括了一些特别的方法、符号、工作和反应管理,成功主要取决于团队的技能。级别2 (已管理级)代表了以可重复项目执行为特征的过程成熟度。组织使用基本纪律进行需求管理、项目计划、项目监督和控制、供应商协议管理、产品和过程质量保证、配置管理、以及度量和分析。
3.PSP。PSP ( Personal Software Process,个体软件过程)是由CMU /SE I开发出来的,它的推出在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段, PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计约束准则,而不是设计方法的选择。因此, PSP保障软件产品质量的一个重要途径是提高设计质量。
国内软件项目管理存在的普遍问题
(一)软件质量不可控。与具体软件开发人员的个人能力直接相关。开发人员如果技术精湛,则开发出来的软件可能是精品软件;开发人员如果技术低微,则开发出来的软件可能是垃圾软件。而且极易存在一个技术骨干离职,则技术就被带走的现象(尤其对于小企业,影响更为明显),从而导致小则项目无法延续,大则企业可能面临倒闭。
(二)开发过程中,因人员调动,没有留下有用文档,致使接手者无法继续开展工作。文档还容易造成恶性循环,延续下去,对项目后续开展带来极大危害。没有规范的文档管理的项目,注定是一个失败的项目。
(三)软件开发过程由于缺乏有效的项目管理,处于一种混沌的状态。软件开发的性质,使得项目问题缺乏可视性,导致许多问题难以暴露出来,因此许多问题直到给用户实施时才显现出来,其后果是直接影响了客户的满意度。
(四)项目管理过程中,对于风险的预防措施和缓冲资源没有进行合理的规划和事先的预测。
(五)项目控制中,对于团队人员之间的沟通和交流、与客户的经常沟通和意见交换不够重视,觉得是浪费时间。
(六)需求的不断变化和更新,使得项目逐步失控。需求方可能由于相关技术或知识的缺乏,对于自己的需求经常是走一步算一步,不断提出新的需求和更改需求。但对于这些需求是否合理、影响范围有多大、是否应该变更等问题,没有恰当的人来控制,因而对需求缺乏控制必然导致项目的延期、甚至失败。
软件项目管理分析
(1)对项目管理的认识不足。一些项目经理认为按照项目管理来做项目计划,纯粹是浪费时间和精力,是*,计划赶不上变化,甚至项目完成后再对项目计划书进行完善。这就造成了计划与控制管理脱节,无法有效的对进度进行控制管理。甚至由于计划不足,在开发过程中发现某个任务无法按时完成,导致项目延期或质量下降。其实制定计划的过程就是一个对项目逐渐了解掌握的过程,通过认真的制定计划,项目管理人员可以理清哪些要素是明确的重要的,哪些是需要逐渐明确的次要的。通过项目计划的不断完善,以达到在进度、资源和范围之间寻求一种平衡。
(2)不合实际的期待。往往很多时候,客户对他要求的软件系统有很高的期待,但实际交付的时候很难达到他们的期望。其实这就暴露了软件公司在项目管理上的薄弱以及对客户沟通的不足。这就要求我们在项目展开之前就应该做好项目设计、规划、风险评估并于客户沟通提高他们对软件的认知水平。甚至有时候,项目人员本身没有按照项目管理过程对其进行实际分析而凭想象构筑出很高的期待,结果导致项目进行中困难重重。
(3)沟通不畅。在项目中一些重要信息没有进行及时有效的沟通,造成各做各事、重复劳动,甚至造成不必要的损失。例如在制定计划、意见反馈、技术问题等方面沟通不畅,往往造成制定的计划不符合项目成员的实际情况,相关人员没有及时按照反馈意见做事,重复劳动等问题。
(4)应对风险的策略不成熟。项目人员没有充分分析项目开发过程中可能遇到的风险,对付风险的策略比较简单。对风险管理的重要性认识不足,不能提前预知规避风险,造成遇到风险时捉襟见肘甚至导致项目延期或失败。