第一篇:软件项目管理总结
《软件项目管理》
学 号:专 业:软件姓 名:任课教师:日 期:
实 验 报 告
1311班
2016.4.6
实验1:假设你是软件项目经理,如何有效的管理项目及其团队成员
我作为软件工程专业的一名学生,知道在软件项目开发中团队合作的重要性。对于项目管理来说,项目团队作为一个任务单元,不仅可以高效地利用有限的人力资源,而且有助于加强员工间的交流与协作。但是一个项目团队离不开一个有能力的项目经理,而项目经理对项目的成败起着关键性的作用。
1.作为项目经理应该具有的管理能力
假如我是软件项目经理,我就必须管理好我的软件项目和我的成员。作为一个项目经理,自己一定要有管理一个团队的能力。能力有可以分为两种:基本能力和基础能力。其中基本能力主要有时间管理、成本管理、人力资源管理、交流管理、质量管理、风险管理等。而基础能力包括:沟通能力、体察能力、理解能力、分析能力、总结能力、协调能力、组织能力等。我认为项目经理的技术能力可以不是很强,当然前提是他要有一个技术很好的搭档,但是他的逻辑思维能力,沟通能力和协调能力等都必须很强,总而言之,项目经理是一个综合能力很强的人,他应该懂得因地制宜,因势导利,能够把控全局,掌控整个工程项目。
案例:沟通能力很重要
老张是某个系统集成公司的项目经理。他身边的员工开始抱怨公司的工作氛围不好,沟通不足。所以他就想每周开一次开会,但他又不知道例会具体因该如何规定。很快项目组成员开始抱怨例会目的不明,时间太长,效率太低,效果太差等,有时在例会上成员意见不一致,很多成员相互争吵,甚至影响到了人际关系的融洽。
通过这个案例我们可以看出团队的沟通出了问题。这个项目经理缺乏对项目团队成员的沟通和沟通风格的分析,沟通方式单一,没有进行冲突管理。我认为他可以这样解决问题:
对项目团队的成员进行沟通风格分析,对成员的沟通风格采用不同的沟通方式,可以使用非正式的沟通方式,引入一些标准的沟通模板,注意冲突的管理等。良好的沟通是一个软件项目成功的前提条件。在软件项目管理中沟通是整个活动过程中的神经中枢,顺畅有效的沟通是项目成功的基础。要科学地组织、指挥、协调和控制项目的实施过程,就必须进行信息沟通。有效的信息沟通,对于整个项目的进度控制、风险预测、需求确定以及人际关系的改善都起着促进的作用。当然,除了沟通,其他的能力,项目经理也应具备。
案例:
A公司是一家系统集成商,李某是A公司的一名高级项目经理,现正在负责某市开发区的办公网络项目的管理工作,该项目划分为综合布线、网络工程和软件开发三个子项目,需要3个项目经理分别负责。李某很快找到了负责综合布线、网络工程的项目经理,而负责软件开发的项目经理一直没有合适的人选。原来由于A公司近年业务快速发展,承揽的项目逐年增多,现有的项目经理人手不够。李某建议从在公司工作2年以上业务骨干中选拔项目经理。结果王某被李某选中负责该项目的软件开发子项目。在项目初期,依照公司的管理规定,王某带领几名项目团队成员刻苦工作,项目进展顺利。随着项目的进一步展开,项目成员的逐步增加,王某在项目团队管理方面遇到很多困难。他领导的团队因经常返工而效率低下、团队成员对发生的错误互相推诿、开会时人员从来没有到齐过,甚至王某因忙于自己负责的模块开会时都迟到过。大家向王某汇报项目的实际进度、成本时往往言过其实,直到王某对自己负责的模块进行接口调试时才发现这些问题。
案例分析:
王某是从技术骨干升为项目经理的,从实际工作结果看,显然王某本身尚未具备管理项目和团队的基本素质,没有培训和锻炼,仓促上阵。王某的这方面劣势本应在项目的风险管理中充分考虑并制定相应的预案。现阶段,如果项目的时间充足,李某可采用指导型的管理手段,王某的团队工作安排要全面及时汇报给李某,不论大小。正确的方案不加干涉,加强过程和结果的追踪,欠妥的地方,找王某单独沟通,让他在工作中成长。如果项目时间不够,则要采取参与式的管理手段,重要的工作安排,李某直接参与,但保持与王某的充分沟通,使之充分理解李某的方案为什么更优,其目的也是在工作中成长。不管哪种方案,前提是减轻王某的技术工作负荷,使他有时间学习和思考项目管理的方法。
2.项目经理对项目和成员的管理
项目经理不仅要管理好他的团队,还要管理项目。目前就我的角度讲,从项目经理接到一个项目开始,就要先和客户交流,必须了解到用户的需求,当然有时用户知道自己需要什么,但表达不出来,这是我就要提前假设许多种情况,来询问用户当遇到这些情况,他觉得应该怎样解决。然后把这些都要写入需求分析里。和用户谈完后,我会和团队成员一起讨论,然后根据用户的需求写需求分析。写完需求分析后,要开始分工协作开发该项目,在开发过程中,当成员遇到困难我会尽自己所能帮他解决。当然,每一个项目都有规定的开发日期,为了项目能够如期完成,我会提前制定一个开发阶段时间表,说明项目实施阶段划分,规定不同的阶段完成什么任务,按照计划进行。不能说把项目任务分配后就对成员不闻不问,我会每天在一个时间点了解成员的开发进度,进而进行项目进度的调整。
3.项目管理者和开发人员之间要团结互助
项目管理者和开发人员之间的关系,本来应该是相互团结,相互帮助,共同面对问题的关系,可是许多项目管理者把这种关系扭曲成了管理与被管理的强制性关系,用种种规章制度,种种管理方法来强迫开发人员接受,把自己放到了开发人员的对立面,和开发人员离心离德,甚至还美其名曰“量化管理,科学管理”.在这种糟糕的管理下,开发人员没有任何办法,要么被动接受糟糕的管理,要么辞职以抗议.一旦一个项目发生了这种情况,它想成功就非常难了。我反对的是软件开发中的强权行为,完全剥夺了开发人员应当具有的对于项目的发言权和建议权,完全不考虑软件开发作为高强度脑力劳动的特殊性。
项目管理者和开发人员并没有本质的区别,他们只是所处的岗位不同,担任的责任不同而已,在软件开发的问题上,尤其在具体的技术细节上,往往管理者不甚精通,如果他不能吸纳开发人员的智慧,而是自己一个人拍脑袋来做决策,那么失败就在眼前了.
总的来说,在软件开发中,无论采用那种模型,那种工具,都离不开人的参与,离不开人与人之间的关系,如果不能正确对待人与人之间的关系,把本来正常的,平等的,合作的人与人之间的关系变成了不正常的,不平等的,对抗的人与人之间的关系,那么还希望项目能够成功,无异于缘木求鱼,南辕北辙了.如果人与人之间可以相互信任,相互理解,相互支持,相互合作,那么没有什么事情是办不成的,而如果人与人之间相互欺骗,相互猜忌,相互诋毁,相互斗争,那么没有什么事情是可以办成的。
4.项目经理应该具备的品质
我认为在项目管理中,项目经理的行为准则会影响到其他成员,管理流程是不可能靠项目经理一个人维持的,必须得到大家的支持。在团队管理中,一定要公平公正,要廉洁自律。在项目中一定要有正确的利益观,在尽量保证其它成员的利益、至少是不损害其它成员利益的基础上来争取自己个人合理利益。尤其要公正公平地评估项目团队成员间的利益,否则很可能因为利益分配问题导致整个团队的崩溃。在团队中我一定会坚持一些原则:不损人利己、不可或缺、集思广益、换位思考等!在团队交流中多方面的思考问题,多采纳团队中有利的建议。所以品德高尚成为项目经理首先需具备的条件。
5.当代项目经理应该具备的能力与素质
当代软件项目管理进入新的阶段。由于信息产业的技术含量高,软件开发项目经常会遇到需求多变、技术更新和所处的环境变化快和人员流动频繁。软件技术人员的管理特点等情况,影响项目管理的因素日趋增多,信息软件开发行业也就更加需要科学规范的项目管理。由于这些原因,要求软件开发项目经理应该是一个具有很强逻辑思维、推理能力和社会经验丰富的综合素质全面的管理者,缺乏职业素养的项目管理者会因自身的职业能力的局限性缺乏细节和深度地计划一个项目,使得预测潜在问题很困难,难以去管理资源,合理评估时间和成本,以及编制出可操作的时间计划,不会或不能很好地处理诸多冲突和变更。在这样的项目管理者带领下的项目团队最终只能丧失控制力。当前我国行业现实是绝大多数项目经理是技术人员出身,因为技术工作的性质和特点造成此类项目经理在任职之前人文能力不强。因此,中国传统的学而优则仕的观点在项目经理的选拔中需要格外注意,同时要加强职业培训及自我的实践总结和提高。
实验2:作为软件项目团队成员的你,应该如何有效的配合项目组成员完成工作
在软件开发项目中,许多组织采用合作开发的方式,这种方式的优点在于合作各方可以各取所长。由于在合作方式下,项目团队成员来自不同的组织,在项目实施过程中的冲突就往往不可避免,充分的沟通和参与是有效的激励机制。
1.个人在团队开发中沟通的重要性
在合作项目中,对于涉及到项目进度和人力资源调度这样一些问题而言,充分的沟通是一个关键性的管理手段。尽管定期和不定期的项目评估能够在一定程度上解决一些问题,但需要记住的是,只有那些具体负责某项工作的团队成员对有关的工作才最有发言权,也只有他们的行动才最终决定了某些计划或决策的执行效果。如果在计划制定过程中缺乏沟通,那些持有不同意见的项目团队成员就可能在执行中降低努力水平。所以在项目开发过程中,我会把自己的疑问提出,多和团队成员交流,把疑问解决,发表自己对该项目的认识,和团队成员交流自己的想法,是否能够达到项目的需求,自己的理解是否出现了偏差,而导致对团队产生不利的影响。
2.在团队开发中自己一定要参与到项目中并且努力完成任务
而对软件开发这样的项目而言,团队成员的努力才是保证项目成功的最关键的因素之一。“参与”是激励机制中的重要一环,每个团队成员都应当在计划制定过程中发表意见,不仅是因为经过充分讨论后的计划才能更加切合实际,更重要的是,团队成员在执行其“自己的计划”过程中会更加努力。在软件开发项目中,团队成员大多是技术人员,对于技术人员而言,通过新工具和新技术的使用能够提高其专业水平,因此在软件项目实施过程中适当引进新工具和新的开发环境有时也是一种良好的激励手段,当然这种手段的采用要有两个前提:相关的工具确实有效,同时需要提供一定的培训以保证工作的效率。作为一个项目团队的成员,会参与团队的项目,在项目开发的过程中,大家在项目经理的指导下都会有各自的任务,一个团队的计划是一个大计划,相当于一个概要设计,而每一个成员制定自己的任务计划就相当于详细设计。我在做自己的任务之前肯定会制定一个进度计划,按照计划进行。在此过程中遇到问题会和成员们沟通解决。
除此之外,我还会提高个人职业能力:强调持续不断的学习能力,并通过实践提升个人的专业技能,从而提高项目管理的水平。在团队合作中,我会努力做到尊重个人在信仰、文化和行为习惯方面的差异,与团队成员建立好沟通与联系,努力建设一个协作的,氛围良好的开发环境。3.在开发团队中要多发现别人的优点
著名心理学家荣格曾列出一个公式:I+We=Fully I。意思是说,一个人只有把自己融入集体中,才能最大程度地实现个人价值,绽放出完美绚丽的人生。认识自己的不足,善于看到别人——尤其是同事——的长处,是具有良好的团队精神的基础。
在一个团队中,每个成员的优缺点都不尽相同,你应该去积极寻找团队成员中积极的品质,并且学习它,让自己的缺点和消极品质在团队合作中被消灭。团队强调的是协同工作,较少有命令和指示,所以团队的工作气氛很重要,它直接影响团队的工作效率。如果团队的每位成员都去积极寻找其他成员的积极品质,那么团队的协作就会变得很顺畅,团队整体的工作效率就会提高。
每个人都有被别人重视的需要,特别是那些具有创造性思维的知识型员工更是如此。有时一句小小的鼓励和赞许就可以使他释放出无限的工作热情,并且,当你对别人寄予希望时,别人也同样会对你寄予希望。4.在开发团队中要多检查自己的缺点
自己应该时常的检查一下自己的缺点,比如自己是不是还是那么对人冷漠,或者还是那么言辞锋利。这些缺点在单兵作战时可能还能被人忍受,但在团队合作中会成为你进一步成长的障碍。团队工作中需要成员在一起不断地讨论,如果你固执己见,无法听取他人的意见,或无法和他人达成一致,就不可能融入团队,团队的工作就无法进展下去。如果你意识到了自己的缺点,不妨就在某次讨论中将它就坦诚地讲出来,承认自己的缺点,让大家共同帮助你改进,这是最有效的方法。当然,承认自己的缺点可能会让你感到尴尬,但你不必担心别人的嘲笑,你只会得到他们的理解和帮助。
4.每一个团队成员都要明确自己的任务
每一个团队成员应该确实知道他们每天的工作是什么,以致团队可以实现他们的目标。没有仔细的分类,团队成员容易在工作中互相误解,以及相互限制。
团队成员的交叉角色应该在开始行动之前就仔细想清楚,随着团队前进,他们可以更加精确。
团队精神不反对个性张扬,但个性必须与团队的行动一致,要有整体意识、全局观念,考虑团队的需要。它要求团队成员互相帮助,互相照顾,互相配合,为集体的目标而共同努力。
案例:
曾经有这样两个大学生:他们共同承担一个项目,但其中有分工。其中一位在完成任务的过程中遇到了技术上的难题,此时他只会自己冥思苦想乱翻书,却不屑于向坐在旁边的高手请教一下。而这位高手此时不是把他当做是共荣共辱的合作伙伴,而是坐在旁边等着看笑话。这是我们应该吸取的教训。所以在工作期间,要有意识地培养全局观念。比如要建设一个优秀班组,就不能只考虑自己的需要而不关注别人的感受。要建设一个优秀部门,每个人就不能借口自己有这样那样的事情而不参与集体组织的活动,否则将会像一盘散沙,优秀集体难以形成,自己也很难从中受益。
6.在开发过程中要注意团结合作 案例:
每到秋季来临,天空中就会有成群结队的大雁向南方迁徙,而这南飞的雁群就是一支完美的团队,是值得我们学习的团队楷模。雁群是由许多有着共同迁徙目标的大雁组成的。在组织中,它们有明确的分工合作,当队伍中途飞累了停下休息时,它们中有负责觅食、照顾年幼或老龄大雁的青壮派,有负责雁群安全的巡视放哨的大雁,有负责安静休息、调整体力的领头雁。在雁群进食的时候,巡视放哨的大雁一旦发现有敌人靠近,便会长鸣一声给出警示信号,群雁便整齐地冲向蓝天,列队远去。而那只放哨的大雁,在别人都进食的时候自己不吃不喝,非常警惕,恪尽职守,具有牺牲精神。据科学研究表明,大雁组队飞行要比单独飞行提高22%的速度,比单独飞行多出12%的距离。飞行中的大雁两翼可形成一个相对的真空状态,而飞翔的头雁是没有谁给它真空的,但漫长的迁徙过程中总得有人带头搏击,这同样是一种牺牲精神。在飞行过程中,雁群大声嘶叫以相互激励,通过共同扇动翅膀来形成气流,为后面的队友提供了“向上之风”,而且V字队形可以增加雁群70%的飞行范围。如果在雁群中,有任何一只大雁受伤或生病而不能继续飞行,雁群中会有两只大雁自发地留下来守护照看受伤或生病的大雁,直至其恢复或死亡,然后它们再加入到新的雁阵,继续南飞直至目的地,完成它们的迁徙。
大雁成群结队迁徙,在迁徙过程中任务分工明确,作为一个整体团结合作,最后飞往目的地,一个大雁群体既是这样团结合作,作为一个更需要团结合作的软件项目开发团体,我觉得更需要这种团结合作的精神。
软件开发并不是一件简单的工作,不是一个人可以完成的,一般都是多人或多个团队合作来完成,有需求分析、产品架构定位、设计与结构、编码、测试、打包等等,里面每个成员的分工都是明确,整个项目是大家互相配合、互相协作下完成。
学号:
姓名: 日期:
第二篇:软件项目管理总结
《软件项目管理》学习总结报告
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展。
项目风险管理是指为了最好的达到项目的目标,识别、分配、应对项目生命周期内风险的科学与艺术。项目风险管理的目标是使潜在机会或回报最大化,使潜在风险最小化。
1.项目管理在软件开发中的应用的成因
目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成完全适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件
后期的维护、升级出现麻烦,同时最终也会损害用户的利益。
随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重
视。
2.软件项目管理常见问题及解决方案
(1)缺乏项目管理系统培训
在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理,被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比
较缺乏。
解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项
目经理的项目管理水平。
(2)项目计划意识问题
项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有
效的进度控制管理。
解决方案:计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计
划、阶段计划的有效性进行事前事后的评估。
(3)管理意识问题
部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方
法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载
均衡”。
解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素
质,丰富项目管理经验,提高项目管理意识。
(4)沟通意识问题
在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必
要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。
3.软件项目管理的现状分析
软件项目管理的提出是在20世纪70年代中期的美国,当时美国国防部专门研究了软件开发不能按时提交,预算超支和质量达不到用户要求的原因,结果发现70%的项目是因为管理不善引起的,而非技术原因。于是软件开发者开始逐渐重视起软件开发中的各项管理。到了20世纪90年代中期,软件研发项目管理不善的问题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预测,大约只有10%的项目能够在预定的费用
和进度下交付。
1995年,据统计,美国共取消了810亿美元的商业软件项目,其中31%的项目未做完就被取消,53%的软件项目进度通常要延长50%的时间,只有9%的软件项目能够及时
交付并且费用也控制在预算之内。
软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。Windows这样的操作系统有1500万行以上的代码,同时有数千个程序员在进行开发,项目经理都有上百个。这样庞大的系统如果没有
很好的管理,其软件质量是难以想象的。
4.我国软件项目管理的前景
应该很清楚地意识到,项目管理在中国起步较晚,项目管理水平与高速增长的经济建设不相适应,也不利于参与国际竞争,必须奋起直追,赶超国际先进水平。展望未来,我们
面临的不仅有广阔市场的大好机遇,还有必须认真对待的严峻挑战:
(1)、随着中国加入WTO,工程建设市场竞争时代的来临,加大项目管理力度势在必行。只有稳定提高实力,迅速熟悉并掌握国际规则,主动溶人贸易体系,不断加强竞争实
力和项目管理水平,才不会在激烈的市场竞争中失败。
(2)、随着中国宏观控制体制调整和市场经济改革的深化,工程公司、项目管理公司和工程咨询公司等企业必须进一步深化管理体制和运行机制改革,加快重组,与世界接轨,建立现代企业制度,才能成为自主经营、自担风险、自负盈亏和自我发展的良好经济实体,在项目管理中提供高质量、有针对性、有竞争力的服务。
(3)、目前,中国建设市场在管理体制、法制建设、运行机制、中介服务、价格政策和社会习惯等方面仍有许多有待改进的工作要做。中国必须建立法制的、政府监督的、自我约
束的管理体系,建立公开、公平、公正的投资中介市场,加大投资中介服务的法律责任,为
工程咨询和项目管理创造更好的市场环境。
(4)、中国公司应该进一步加强与美国、欧洲和澳大利亚的国际项目管理机构和协会之间的合作与交流。充分利用理工大学和学院加强项目管理的理论与实践研究,建立自己的项目管理体系,引进和开发先进的项目管理软件系统,提高项目管理水平,为工程公司、项目
管理公司和工程咨询公司的发展提供更好的环境。
(5)、中国必须培养自己的优秀项目管理专业人员,大力提高项目管理水平。专业人才匮乏是影响中国项目管理快速发展的主要因素,中国应当把培训和建立一支优秀项目管理专业人员队伍作为战略任务来抓。中国项目管理人力资源结构必须通过国内国际相关培训和认
证机构以及项目管理实践来改进。
只有采取上述的措施,中国企业才能适应可持续发展要求并在激烈的市场竞争中立于不败之地。刚刚在9月1日,邦永科技于广东亚洲国际大酒店召开首届渠道峰会,被业内同行称之为“来势汹汹”。此会议共在全国招募了30多个地区总代理商,11月份正式启动市场。据了解,邦永的产品定位为中低端,价位在5万到40万元之间。邦永目前加紧平面营销渠道建设的同时,还在酝酿许多与行业主管部门的技术合作,似乎对打造国内项目管理行业标准胸有成竹。无怪乎邦永拿出这么大的举措:据资料显示,2002年中国政府拨3000亿元专款用于各类政策性项目,省、市地方政府捐助至少1000亿元的专款,全国每年至少有2000个新的1亿元以上的大中型项目。如果这些项目都采用软件来进行管理的话,市场非常可观。邦永对这个市场充满信心,尽管项目管理软件市场在中国仍然处于启动阶段,但市场已经很大,高中端市场的容量在一亿元以上,3-5年内将达到6亿元左右。这还是一个
比较保守的数字。
总而言之,软件项目管理领域仍然是一个比较新的领域,竞争态势还远未达到白热化的程度,但前景十分可观。需要不断的去开发与研讨,才能让软件充分的发挥在项目管理的领域,但在软件项目管理中,存在在的各种风险管理应该根据不同的因素而做出不同的解决措施,让项目管理可以发挥到一定的程度,使之更加的完善。最后感谢张冰峰老师一学期来的教导。
第三篇:软件项目管理总结
软件项目管理项目管理过程
软件项目管理的对象是软件工程项目。涉及的范围覆盖了整个软件工程过程。
项目管理是指“在项目活动中运用专门的知识、技能、工具和方法,使项目能够实现或超过项目干系人的需要和期限。”
项目的核心知识是范围、时间、成本和质量。辅助知识是人力资源管理、风险管理和采购管理。项目启动
接受项目的第一步工作就是界定项目。项目启动应做如下工作:
1)设定目标:收集事实、信息、意见、需求;探讨假设情况;确定应包括的内容和应排除的东西。
2)SWOT分析:S(优势)W(劣势)
O(机会)
T(威胁)
3)确定需要进行的主要工作及需要的技能和资源,即明确项目的资源和范围。4)考虑可能的解决方案,标明技术上和管理上的限制。
2.1 制定计划工作:度量
什么是度量? IEEE 定义度量是 “对一个系统、构件或过程具有的某个给定属性的一个定量测量”。进行度量工作,是为了了解产品开发的技术过程和产品本身。(1)度量开发过程的目的是为了改进过程;(2)度量产品的目的是为了提高产品质量。度量的作用是为有效地定量地进行管理。
2.2 制定计划工作:估算
在软件项目管理过程中关键的活动就是制定项目计划。在做计划时必须就需要的人力(以人月为单位)、项目持续时间(以年份或月份为单位)、成本(以元为单位)做出估算。
(1)在软件项目管理过程中关键的活动就是制定项目计划。(2)在做计划时必须就需要的人力(以人月为单位)、项目持续时间(以年份或月份为单位)、(3)成本(以元为单位)做出估算。
2.3 制定计划工作:风险分析
所谓风险分析实际上就是一系列风险管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监督。这些步骤贯穿在软件工程过程中。2.4 制定计划工作:进度安排
每个软件项目都要求制定一个进度安排,但不是所有进度都得一样安排。2.5 追踪和控制
一旦建立了开发进度安排,就可以开始着手追踪和控制活动。由项目管理人员负责追踪在进度安排中标明的每一个任务。如果任务实际完成日期滞后于进度安排,则管理人员可以使用一种自动的项目进度安排工具来确定在项目的中间里程碑上进度误期所造成的影响。
(1)可对资源重新定向
(2)对任务重新安排(做为最坏的结果)可以修改交付日期以调整已经暴露的问题。用这种方式可以较好地控制软件的开发。
软件生产率和质量的度量
生产率与质量的度量是以投入工作量为依据的软件开发过程的度量和软件产品质量的度量。面向规模的度量面向功能的度量软件质量的度量 软件度量分为两类:直接度量与间接度量。
软件过程的直接度量包括所投入的成本和工作量。软件产品的直接度量包括产生的代码行数(LOC)、执行速度、存储量大小、在某种时间周期中报告的差错数。
软件产品的间接度量包括功能性、复杂性、效率、可靠性、可维护性和许多其他质量特性。
3.1 面向规模的度量
面向规模的度量是对软件和软件开发过程的直接度量。3.2 面向功能的度量
面向功能的软件度量是对软件和软件开发过程的间接度量,主要考虑程序的 “功能性” 和 “实用性”,而不是对 LOC计数。
该度量是一种叫做功能点方法的生产率度量,利用软件信息域中的一些计数和软件复杂性估 功能点度量是为信息系统应用而设计的。
特征点度量(Feature Points)可以用于系统和工程软件应用。特征点度量适合于算法复杂性高的应用,如实时处理、过程控制、嵌入式软件。
3.4 软件质量的度量
质量度量贯穿于软件工程的全过程中以及软件交付用户使用之后。
使用得最广泛软件质量的事后度量包括正确性、可维护性、完整性和可使用性。
(1)正确性:一个程序必须正确地运行,并为它的用户提供某些输出。正确性要求软件执行所要求的功能。正确性的度量是每千代码行(KLOC)的差错数,其中将差错定义为已被证实是不符合需求的缺陷。
(2)可维护性:软件维护比其它的软件工程活动需要更多的工作量。还没有一种方法可以直接度量可维护性,必须采取间接度量。
一种简单的面向时间的度量:
平均变更等待时间MTTC。这个时间包括分析变更要求、设计适当修改、实现变更并测试、把变更发送给所有用户。一个可维护的程序与不可维护的程序相比,应有较低的MTTC。
(3)完整性:完整性度量一个系统抗拒对它的安全性攻击(事故的和人为的)的能力。程序、数据和文档都会遭到攻击。
度量完整性,需要定义两个附加的属性:危险性和安全性。危险性是特定类型的攻击将在一给定时间内发生的概率,安全性是排除特定类型攻击的概率。
一个系统的完整性可定义为
完整性=∑(1-危险性×(1-安全性))(4)可使用性:如果程序不具有用户友好性,即使它所执行的功能很有价值也常常会失败。
4.2 软件开发成本估算方法
对于绝大多数项目,主要的成本是工作成本。
软件成本计算的目的是要精确地、客观地预测软件承包商的开发成本。软件的开发成本是以一次性开发过程所花费的代价来计算的。要进行一系列的估算处理。主要靠分解和类推。
1.自顶向下的估算方法
这种方法的主要思想是从项目的整体出发,进行类推。
估算人员根据以前已完成项目所消耗的总成本(或总工作量),推算将要开发的软件的总成本(或总工作量),然后按比例将它分配到各开发任务单元中去,再来检验它是否能满足要求。
2.自底向上的估算方法
这种方法的主要思想是把待开发的软件细分,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发的总工作量。它的优点是估算各个部分的准确性高。缺点是缺少各项子任务之间相互联系所需要的工作量,还缺少许多与软件开发有关的系统级工作量.3.差别估计法
这种方法综合了上述两种方法的优点,其主要思想是把待开发的软件项目与过去已完成的软件项目进行类比,从其开发的各个子任务中区分出类似的部分和不同的部分。类似的部分按实际量进行计算,不同的部分则采用相应方法进行估算。
4.专家判定技术
由多位专家进行估算,取得多个估算值。再把这些估算值合成一个估算值。
一种合成方法是求各估算值的中值或平均值。其优点是简便。缺点是可能会由于受一、二个极端估算值的影响而产生严重的偏差。另一种合成方法是召开小组会,使各位专家们统一于或至少同意某一个估算值。优点是可以摈弃蒙昧无知的估算值,缺点是一些组员可能会受权威或政治因素的影响。
5.标准Deiphi技术
A组织者发给每位专家一份软件系统规格说明书和一张记录估算值的表格,请他们估算。B专家详细研究软件规格说明书的内容,对该软件提出三个规模的估算值,即:ai(最小), mi(可能), bi(最大), 无记名地填写表格。C组织者整理专家们填在表格中的答复:
(1)计算各专家估算的期望值 Ei
Ei =(ai+4mi+bi)/6(2)对专家的估算结果分类摘要。
D在综合专家估算结果的基础上,组织专家再次无记名地填写表格。比较两次估算的结果。若差异很大,要通过查询找出差异的原因。
E上述过程可重复多次。最终可获得一个得到多数专家共识的软件规模(源代码行数)。
.最后,通过与历史资料进行类比,根据过去完成软件项目的规模和成本等信息,推算出该软件每行源代码所需要的成本。然后再乘以该软件源代码行数的估算值,就可得到该软件的成本估算值。
4.3 软件开发成本估算的经验模型
软件开发成本估算是依据开发成本估算模型进行估算的。
1.IBM模型(Walston-Felix)静态单变量模型
2.其他静态单变量模型 3.Putnam 模型
动态多变量模型。
4.COCOMO模型 结构型成本估算模型是一种精确、易于使用的成本估算方法。软件开发项目的总体类型: 组织型
不涉及硬件的开发
嵌入型
完全与硬件结合的开发
半独立型
介于上述两者之间
COCOMO模型按其详细程度分成三级:
基本COCOMO模型
中间COCOMO模型
详细COCOMO模型
基本COCOMO模型是静态单变量模型,用源代码行数(LOC)为自变量的经验函数计算软件开发工作量。
中间COCOMO模型在用LOC为自变量的函数计算软件开发工作量(称为名义工作量)的基础上,用涉及产品、硬件、人员、项目等方面的影响因素调整工作量估算。详细COCOMO模型包括中间COCO MO模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中每一步骤(分析、设计等)的影响。15种影响软件工作量的因素 fi:
产品因素:软件可靠性、数据库规模、产品复杂性
硬件因素:执行时间限制、存储限制、虚拟机易变性、环境周转时间
人的因素:分析员能力、应用领域实际经验、程序员能力、虚拟机使用经验、程序语言使用经验
项目因素:现代程序设计技术、软件工具的使用、开发进度限制
6.1 软件范围
软件范围包括功能、性能、限制、接口和可靠性。估算开始时应对软件功能进行评价,对其进行适当的细化以便提供更详细的细节。由于成本和进度的估算都与功能有关,因此常采用某种程度的功能分解。性能的考虑包括处理和响应时间的需求。
约束条件则标识产品成本、外部硬件、可用存储或其它现有系统对软件的限制。现成的用以支持软件开发的工具(硬件工具及软件工具);最基本的资源(人);通常,对每一种资源,应说明以下四个特性:资源的描述、资源的有效性说明、资源在何时开始需要、使用资源的持续时间。最后两个特性统称为时间窗口。
6.4 风险分析
风险分析的主要活动有风险识别、风险估算、风险评价和风险管理。
风险分项目风险、技术风险和商业风险。
项目风险是指(1)潜在的预算、进度、人员和组织、资源、用户、需求方面的问题,以及它们对软件项目的影响。(2)项目的复杂性、规模、结构的不确定性。技术风险是指(1)潜在的设计、实现、接口、检验和维护方面的问题。(2)规约的二义性、技术陈旧或太先进。
第四篇:学习软件项目管理总结
学习软件项目管理和制作时光网上商城系统总结
这学期通过宋老师讲授软件项目管理这门课程,自己学到了很多东西。最初在单位做设计是一个盲目的过程,无计划、无框架设计,拿来需求大家把模块分摊,就开始埋头写代码,总认为设计代码是最重要的事情,但是经过几次尝试,每次做出的东西不是很理想,自己也不知道原因为什么会不理想呢,自己做的东西是按领导拿来的需求书上的要求做的,可为什么用户不满意呢。
通过学习软件项目管理这门课程后,我知道我们做开发失败的问题了。我自己总结了几点:
一、项目接到手,没有根据软件项目开发的流程进行分析、设计。
二、项目需求说明书、概要设计说明书、可行性报告、详细说明书、数据库设计说明书、软件详细设计说明书,测试报告这些文档东西应该是在设计过程中产生的,但我们工作中都是软件做完了,为了项目的验收急急忙忙赶制出来的。这些说明书已经失去了他们的意义。
三、人员的配合、管理也是很重要的。我们单位中领导就是项目经理,但是这个项目经理没有达标,有项目了他带领大家开会讨论,在会议上就把此项目的可行性和工作分工就安排好了。会下大家就埋头写代码,大家之间的交流也很少,直到模块要合并时,出现问题了大家才把自己的设计理念讲一下,再修改再合并。后期的修改合并工作是一个最费时的事情,把设计中的大多时间花在了这里,如果大家在最初按照流程走,定期交流,项目经理监控、督促就不会出现这样的事情。
四、做项目每个人员的态度认真也是很重要的。自己习惯了大企业中的慢生
活,我们开发软件都是快到项目验收了,才加班加点的工作,这样怎么能做出好软件呢。
宋老师还给我们布置了项目开发作业。我们小组设计了“时光网上商城系统” 我这次所经历的项目更让我明确了这点。在这个小项目里,虽然我们一个月完成了这个软件设计,但存在很多问题。“时光网上商城系统”包括9个模块,我在这个项目里,我参与了概要设计、详细设计、软件测试文档的编辑和会员管理模块、商品展示模块的设计。这两个模块的设计对于自己来说没有什么问题,因为在单位就是做这个的,但是在前期的概要设计说明和详细设计说明对自己有点困难,因为以前没有这样做过,没有什么设计框架,这时自己拿出宋老师讲的笔记和图书进行学习,再和队友交流,终于有了自己的框架。所以、在这个过程中我明确了技术的实在意义,明确了项目管理对我的指导,同时也明确了自己的今后项目开发应该怎样做。
整个项目进行的过程中,我一直在边学习边制作,每周与其他同学定时交流,整个过程我收获很多。
一、项目小组人员都职责明确,每周定时交流沟通工作进度,随时更新方便开发人员、测试人员之间的交流。
二、细致的计划可以让项目进行避免弯路。
三、项目经理时光的组织、督促和监督,小组人员的齐心,这个项目才顺利能完成。
四、这个项目制作把绕老师和陈老师讲的内容也都应用在初期系统构建和中期、后期的软件测试中。
五、通过学习认真分清了软件管理与软件工程的关系和项目管理知识体系。
通过本学期的学习,我感受到软件项目管理是一门非常需要学习的课程。我们所做的虽然是个小项目,但是在小组共同开发的时候还是需要用到项目的管理。如人员分配、时间、进度的计划、沟通计划、项目执行变更管理,以及质量管理控制等多种管理。自己对这门课程学到不是很好,但我相信在今后的工作中,能够更好的体验和感受项目管理的精髓,对软件项目管理有更深入的了解。
第五篇:软件项目管理知识点总结
第一章概述
1项目是指在一定约束条件下具有特定目标的一项一次性任务。
2.项目的特点
一次性;有确定的起点和终点
目标明确性:成果性目标,约束性目标;
整体性:开展的活动密切相关
独特性:每个项目都是唯一的不可逆转性:无论结果如何,项目结束,结果确定。
3.项目的生命周期:项目启动、项目计划、项目实施、项目结束。
4.项目管理的要素:客户满意度、工作范围、组织、时间、质量、成本
TQC:时间质量成本成功因素:TQC+范围
5软件项目管理的定义
根据PMI项目管理的定义总结:在软件项目活动中运用一系列的知识、技能、工具和技术,以满足软件需求方的整体要求。
6.项目管理特点:综合性、创造性、时间性第二章软件项目需求管理
1软件需求的抽象层次:原始问题空间(原始问题描述、用户需求);解决方案空间(系统需求、软件设计描述)
2软件需求:用户需求和系统需求:
①用户需求:从用户角度描述系统的需求,只描述系统的外部行为,并且只通过自然语言、图表、图形等叙述
②系统需求:从开发人员角度描述系统的需求,是系统实现的依据,通常采用结构化语言、PDL过程设计语言等描述。
系统需求:功能需求、非功能需求、领域需求
3、需求工程的组成:需求开发和需求管理
需求开发:需求的获取、需求分析、规格说明和需求验证
需求管理:变更管理、版本控制、需求跟踪和版本状态
4需求管理的必要性
①需求供求双方固有的矛盾
②需求具有易变性和难以表达性
③需求错误出现的高频性和修复的高昂成本
5需求管理的目标:是在客户与项目组织之间建立对客户需求的共同理解。
①使软件需求受控,并建立供软件工程和管理使用的需求基线;
②使软件计划、产品和活动与软件需求保持一致。
6、需求变更的原因
①在项目的早期所有的问题不可能完全定义;
②随着软件项目的进行,开发人员对问题的理解发生变化,这些变化反馈到需求中;
③大型系统的需求可能是冲突或是矛盾的,系统需求是它们之间的妥协,这种妥协可能发生变化;④系统购买者和最终用户很少是同一人;
7、需求变更管理过程
首先要建立变更控制委员会,分析、讨论、评审、执行。
第三章软件项目的成本管理
1软件项目的成本:为完成软件项目而支付的货币量
2软件项目的时间估算点:客户需求产品定义系统设计系统实现系统运行
3对软件规模的估计要从软件的分解开始。软件的分层结构对应工作分解结构(WBS)4软件规模的度量标准:LOC代码行和FP功能点
5成本估算方法:专家判定、类比、自顶向下、自底向上、算法模型(cocom(自底向上)、cocomoⅡ、putnam(自顶向下))
6、三层次的产品分级结构:模块、子系统、系统
7、估算的时机和精度是相互矛盾的。第四章软件配置管理
1软件项目配置管理:是识别定义系统中的配置项,在软件生命周期中控制他们的变更,记录并报告配置项和变更请求的状态,并验证他们的完整性和正确性的一个过程。2软件配置项:SCI出于配置管理的目的而为软件要素设置的单位。
3基线:开发过程的里程碑,以一个或多个软件配置项的交付为标准;基线由通过正式评审的软件配置项组成,是进一步开发的基础;基线只有通过正式的变更控制过程才能改变。4基线的两个基本功能:①对基线进行适当控制,禁止任何来源的交互②为程序员提供灵活的服务,确保他们能够比较容易地对自己的代码进行修改测试
5软件配置管理主要功能:配置标识、配置控制、配置状态报告及配置审核
6配置控制委员会:CCB 负责评审和批准对基线的变更
7软件的配置项组成:正确性、一致性、完备性、有效性、可追踪性。
8确定变更是否正确的措施:正式技术审核和软件配置审核.9配置审核的种类:过程审核、功能审核、物理审核、质量系统审核
第五章人力资源管理
1、软件项目中的人力资源管理包括:所有的项目干系人:资助者、客户、项目组成员、支持人员及供应商等。
人力资源管理就是有效地发挥每个项目干系人作用的过程。
2软件开发中人员与时间具有非线性替换关系。第六章质量管理
1软件质量六大特性:功能性、可靠性、可用性、效率、可维护性、可移植性
2、过程质量控制是主动的、系统的、先期的;
产品质量控制是被动的、个体的、后期的;两者都要重视。
3.CMM的5个等级:初始级、可重复级、已定义级、已管理级、优化级
4.CMMI的两种表示方式:连续性表示和分阶表示
5软件过程能力等级(连续性表示法):不完备级、已执行级、收管理级、已定义级、定量管理
级、持续优化级。
第七章风险管理
1.风险的定义:损失的可能性
2.风险的属性:可能性损失
3软件风险:就是有关软件项目风险、软件开发过程风险和软件产品风险。
4.风险管理过程:风险识别、风险分析、风险计划、风险跟踪、风险应对(风险最小化,机会最大化)
5.风险应对策略包括:避免、转移、缓解、接受、研究、储备以及退避。
6软件项目管理的主要风险类别:①资源风险②需求风险③项目接口风险④设计风险⑤管理风险⑥开发过程风险⑦项目集成风险。