软件项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。为使软件项目开发获得成功,关键问题是必须对软件项目的工作范围、可能风险、需要资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等做到心中有数。这种管理在技术工作开始之前就应开始,在软件从概念到实现的过程中继续进行,当软件工程过程最后结束时才终止软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。
软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。而研究软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则,方法,同时避免前人的失误。
软件项目管理的提出是在20世纪70年代中期的美国,当时美国国防部专门研究了软件开发不能按时提交,预算超支和质量达不到用户要求的原因,结果发现70%的项目是因为管理不善引起的,而非技术原因。于是软件开发者开始逐渐重视起软件开发中的各项管理。到了20世纪90年代中期,软件研发项目管理不善的问题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。
1995年,据统计,美国共取消了810亿美元的商业软件项目,其中31%的项目未做完就被取消,53%的软件项目进度通常要延长50%的时间,只有9%的软件项目能够及时交付并且费用也控制在预算之内。
软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。Windows这样的操作系统有1500万行以上的代码,同时有数千个程序员在进行开发,项目经理都有上百个。这样庞大的系统如果没有很好的管理,其软件质量是难以想象的。
软件项目管理的内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过程能力评估,软件配置管理等。
什么是软件项目管理
软件项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。 为使软件项目开发获得成功,关键问题是必须对软件项目的工作范围、可能风险、需要资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等做到心中有数。 这种管理在技术工作开始之前就应开始,在软件从概念到实现的过程中继续进行,当软件工程过程最后结束时才终止
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。 软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。而研究软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则,方法,同时避免前人的失误。 软件项目管理的提出是在20世纪70年代中期的美国,当时美国国防部专门研究了软件开发不能按时提交,预算超支和质量达不到用户要求的原因,结果发现70%的项目是因为管理不善引起的,而非技术原因。于是软件开发者开始逐渐重视起软件开发中的各项管理。到了20世纪90年代中期,软件研发项目管理不善的问题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。 1995年,据统计,美国共取消了810亿美元的商业软件项目,其中31%的项目未做完就被取消,53%的软件项目进度通常要延长50%的时间,只有9%的软件项目能够及时交付并且费用也控制在预算之内。 软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。Windows这样的操作系统有1500万行以上的代码,同时有数千个程序员在进行开发,项目经理都有上百个。这样庞大的系统如果没有很好的管理,其软件质量是难以想象的。 软件项目管理的内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过程能力评估,软件配置管理等。
国内都有哪些项目管理软件?最好是免费的。
楼主所说的问题我们公司之前也遇到过,所以在这里给你推荐一下我们公司目前使用的项目管理软件,希望能帮到你!
我们采用的国内最有名气的AceTeamwork的项目管理软件!
起先只是觉得口碑不错而且可以在线体验,才决定适用一下,后来才发现真的
帮我们解决公司项目管理过程中: 项目任务进度,项目任务计划和反馈;项目工时统计,员工忙闲监控,项目人力成本和非人力成本核算与控制等方面的问题。
此软件比较稳定,尤其在界面和体验方面做得相当有水准,现在已经成为很多软件公司模仿、追随和研究的对象了。想了解更多去百度搜索一下吧!
软件项目的整个项目周期是什么?
1.需求调研
2.需求分析(出相应的需求文档[需求规格说明书,概要设计文档,详细设计文档])
3.系统设计
4.系统功能开发
5.系统测试(单元测试,功能测试,集成测试,性能测试等)
6.系统交付
7.后期维护
软件项目的特点是什么?什么是项目管理?
(1)软件项目的特点
软件产品与其他任何产业的产品不同,它是无形的,完全没有物理属性。对于这样看不见,摸不着的产品,难以理解,难于架驭。但它确实是把思想、概念、算法、流程、组织、效率、优化等融合在一起了。因此,要开发这样的产品,在许多情况下,用户一开始给不出明确的想法,提不出确切的要求。他说不清究竟他需要的是什么。在开发的过程中,程序与其相关的文档常常需要修改。在修改的过程中又可能产生新的问题,并且这些问题很可能在过了相当长的时间以后才会发现。文档编制的工作量在整个项目研制过程中占有很大的比重。但从实践中看出,人们对它不感兴趣、认为是不得不做的苦差事,不愿认真地去做。因而直接影响了软件的质量。软件开发工作技术性很强,要求参加工作的人员具有一定的技术水平和实际工作的经验。但事实上,人员的流动对工作的影响很大。离去的人员不但带走了重要的信息,还带走了工作经验。
(2)什么是项目管理?
所谓项目管理,就是项目的管理者,在有限的资源约束下,运用系统的观点、方法和理论,对项目涉及的全部工作进行有效地管理。即从项目的启动开始到项目结束的全过程,从项目的立项,启动,计划,监控和结束。
软件项目经验:什么是做项目?其实就是学习!
软件、项目也是如此。软件或者项目其实都给人提供一种服务。在给客户提供服务的时候,如果我们把提供服务的成本降低了,或者让客户更满意了。那么我们就算是把事情做得更好了。那么我们如何能做到了?个人觉得最关键的因素就是我们要会学习。大家都知道,做项目从大体上可以分为需求调研、设计开发、系统维护三个步骤。对于整个项目来说,三个步骤都是同等重要的,缺一不可。而对于做项目的人来说,需要掌握两个东西,一是技术,二是需求,这两个东西是缺一不可的。 显而易见,技术是做任何软件项目的基础,如果在一个项目组中没有任何人掌握该项目所需要的技术,那么自然就没有办法做这个项目。对于一般的项目来说,技术是存在着普遍性的。那就是很多项目都使用相同的技术,有相同技术背景的人可以参与所有的使用该技术的项目。比如说,一般B/S结构的项目大都可以用java来实现。也就是说,如果一个技术人员对java已经掌握到一定的程度,那他就参与这些项目。至于项目的大小、涉及范围以及项目所在行业都与技术没有直接的关系。当然,如果技术人员有过类似项目的背景,做起来自然会更好一点。 即使在某些特定的项目需要使用一些特殊的细节,可能这个开发人员恰好在以前的经验又没有接触这个细节,这也不要紧,只要开发人员在项目的开发过程中通过进一步的学习,肯定都能掌握该项目所需要的技术。比如有一个项目需要使用到hibernation、spring,即使技术人员从来都没有接触过hibernation、spring也不是问题。在技术方面的学习,对于开发人员来说,他们不仅有学习能力,而且大都还有着非常浓厚的兴趣。 这里强调一下,不管是怎么学习,是基本上掌握一门语言后进一步精通这门语言,还是学一门语言后再学另外一门语言,学习的过程总是免不了的。虽然并不是一件很难事情,但是也是需要付出一定的时间和精力的。 掌握做项目所需要的技术以后,剩下的事情就是对需求的理解与掌握,这也是做好项目的重中之中。对于技术人员来说,需求可以说是千变万化,不仅是不同的行业项目所需要解决的问题相差很远,而且即使相同行业的项目所需要解决的问题也可能大不相同。所以在组建项目团队一般可以要求团队成员必须有相同的技术背景,但是不可能要求团队成员有相同的业务背景。因为各种各样的项目实在太多了,相同的业务背景实在很难,另外实践证明也没有必要。 很多的项目经理或者技术人员对于技术的学习都是十分的重视,但是对于业务的学习与理解往往很容易被忽略。有人甚至认为只要掌握了技术,剩下的事情就好解决了。忽视客户需求往往很容易就导致客户不满、项目出问题甚至整个项目失败。 本人曾经接触过一个招标管理系统。系统用.net做的,其中用到一个类似于nhiberntion框架。整个系统无论是整体框架还是具体的代码风格都非常好。但是这个系统在试运行时问题就很多,导致客户非常不满意。主要是软件功能与客户要求相距甚远,客户这个时候又提出来,原来需求发生了新的变化。但客户的要求几乎没有得到过及时的回应,甚至技术人员还疑惑,客户怎么会有那么多这样那样的要求啊?最后这个系统停止使用,项目失败。回过头来想想,如果足够重视客户的需求,多花时间去理解和领悟客户的需求,对于项目的每一个细节、客户的每一个想法开发人员都予以积极的回应。即便开发人员是刚入门的新手,开发进度即是延长一点,整个项目也不至于最终失败。我们也知道,项目所使用的技术,客户几乎是不关心的。因此。对于一个技术团队或者一个项目组来说,要做好一个项目,其实关键因素不是团队的技术实力有多强,而是对需求的理解是否透彻,正确的理解、把握需求才是项目成功的关键所在。 如何理解、把握好项目的业务,个人感觉也是一种学习,是一种领悟。客户的业务对于技术人员或者项目经理来说都是一个未知领域。我们所做的项目一般来说都来自不同的行业。一个项目来自医院的,而下一个项目可能就是来自银行的,项目与项目之间的需求一般来说都没有任何相似性。这是我们技术所经常需要面对的问题,也正是因为我们所的项目之间相距遥远,所以这就要求,我们技术人员在面对各个行业的业务时,必须具备一种快速的学习和领悟的能力;理解和掌握能把客户的业务后,通过技术手段来实现客户的业务。 就拿医院的管理系统来说吧,我们知道,一个普通病人去医院看病大体流程都是挂号、看病、检查、拿药。所以我们在需求调研我们需要掌握不仅整个流程,而且我们还应该知道每一个环节的细节。比如在病人挂号的时候,挂号员应该了解病人的哪些具体信息,病人第一次去医院与第二次去医院又有什么区别。这都是在做需求调研所必须了解的。只有理解医院所有环节以及每个环节的详细细节后,我们才能做相应的系统设计。至于系统设计好以后,如何保存挂号信息,如何查询挂号人数等等,那只是基本的技术手段而已,无非是数据库的添加、删除、修改等。 不管是项目经理还是做调研的技术人员,每把一个项目了解得差不多的时候,总是有意、无意的对这个项目所在的行业就已经有了深刻的理解。记得小学时候有篇课文叫----钢铁是怎么练成的,大家都知道,课文内容与钢铁并没有什么关系。当我在一个钢铁厂做一段时间的项目后,就真正的知道钢铁是怎么炼成的了。不仅明白什么是巴西球,而且也明白烧结厂是干什么的。当理解各个炼铁工序后,某些报表含义自然就明白了。无非是各个工序中的各种原料投入与成品产出比例之类的。 如果所做的项目总在一个行业中,那他就很容易的成为行业专家。在一定的时间内去理解和掌握一个完全陌生的领域,当然绝非一件易事。其中的道路自然是漫长而曲折。其实做任何事情都是这样。不经一番冰霜苦,哪得梅花放清香。 因此,当我们总是面临不同行业的项目的时候,我们就需要培养和提高我们对陌生行业的学习能力和领悟能力。 罗罗嗦嗦写了这么多,对我自己来说是算个总结,也希望能给同行的朋友带来一点点帮助.还有文章内容仅仅是个人感受而已,或许里面还有许多不尽正确之处,请不吝赐教。
软件项目管理与一般项目管理的区别是什么
通常意义上来说,
软件项目管理是指软件开发过程的管理,来源是项目的立项报告和开发任务书,结果是可部署的软件系统。
软件工程是软件开发遵循的一般性指导,是项目经理和开发人员必须掌握的,一般都作为一门课程教学,ISO9002和CMM是我们经常具体使用的指南。
IT项目管理涉及面就较广了,不但要考虑软件系统,还要涉及网络基础设计、软硬件平台、运行维护管理等。
软件估算的戒律
(1)不要追求完美:就像没有人能预测出未来,如果还没有完成,就不要企图完美的结果。更何况估算的太精确,反而会失去灵活机动的空间。
(2)不要为满足预算而估算:如果这个项目的预算根本不能完成100%的任务,那么就不要让你的团队委曲求全。正确地反映客观现状,不仅可以争取应得的权利,而且是完成任务的前提。
(3)不要随意削减估算结果:有很多老板喜欢把项目经理递交的估算,不假思索地砍掉一部分。这是一种不负责任的做法,如果要削减一定要有理由。
(4)客观地估算,不贪多不偷减:就像老板不能随便削减你的估算一样,你也同样不能在估算的时候,贪多或是偷减。贪多必然导致会浪费,偷减必然导致不足。这两个结果恐怕都不是一个合格的项目经理的作为。
(5)客观利用过去的经验:对于以往估算的经验,当然是宝贵的财富,但是如果财富用错了地方就会变成垃圾。在使用经验时,要注意现在和参考经验之间的差异。不要忘记,随着时间的推移,
计算机领域技术的更新,许多观念都在发生着改变。
(6)不要以客户目标作为估算的结果:客户是上帝,软件公司一定要尽力实现客户的需求。但我们要实现的是合理的目标,况且不能为了完成目标而去堆积数字,这样岂不是因果倒置了。
(7)不要隐匿不确定的成本:软件开发中存在潜在风险,是很正常的事情。现在风险就会带来潜在的成本,如:突然一位程序员离职,导致工作进度路落后。我们不可能估算到任何一种可能发生的情况,但有责任把可能出现的一些关键环节列出来。
软件开发项目中,过程管理文档都包括什么?
在软件项目开发过程中,应该按软件开发要求撰写十三类文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性!
需求阶段
1、可行性分析报告
说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。
2、项目开发计划
为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。
3、软件需求说明书(软件规格说明书)
对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。该说明书应给出数据逻辑和数据采集的各项要求,为生成和维护系统数据文件做好准备。
设计阶段
4、概要设计说明书
该说明书是概要实际阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。
5、详细设计说明书
着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。
开发阶段
6、开发进度月报
该月报系软件人员按月向管理部门提交的项目进展情况报告,报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月的打算等。
测试阶段
7、测试计划
为做好集成测试和验收测试,需为如何组织测试制订实施计划。计划应包括测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。
8、测试分析报告
测试工作完成以后,应提交测试计划执行情况的说明,对测试结果加以分析,并提出测试的结论意见。
收尾阶段
9、用户操作手册
本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。
10、项目开发总结报告
软件项目开发完成以后,应与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力,此外,还需对开发工作做出评价,总结出经验和教训。
11、软件维护手册
主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护过程的说明,便于软件的维护。
维护阶段
12、软件问题报告
指出软件问题的登记情况,如日期、发现人、状态、问题所属模块等,为软
件修改提供准备文档。
13、软件修改报告
软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以及修改的影响作出详细的描述,提交审批。
转载请注明出处51数据库 » 软件项目都有什么 什么是软件项目
丿灬岩