开发项目总结(通用4篇)
软件项目管理是为了使软件项目尤其是大型项目整体软件生命周期都在管理者的控制下,按照预期的成本,完成软件的交付。软件项目管理最早出现在70年代中期,目前中国软件项目管理上处于落后状态,很多已经不是技术能够解决的问题了,主要问题存在于管理上。软件项目管理是根据科学理论的,结合软件产品的实际情况,保证工程管理系统得到有效实施,能够使得软件项目按照预期的成本、进度、质量完成。软件行业是一个很有挑战力行业,是一个非常复杂的,牵扯较广的系统工程。
一、软件项目管理中常见的问题
在软件开发主要有几个阶段,需求分析阶段、概要阶段、详细设计阶段、编码阶段、测试阶段、安装和维护阶段。项目管理缺乏有效的系统培训和项目计划意识,在软件项目管理中,没有招聘专门的项目管理专业人才进行有效的管理。在管理人员的技术上可以很好的进行工作,但是在管理中缺乏相应的管理能力。在管理上没有接受专业系统的项目管理,具有专业的管理知识是非常重要的,软件项目管理知识要和管理经验相结合,会提高软件项目管理的水平。项目负责人对项目的总体计划没有很好的认识,对软件的计划的制定不严格,不能进行有效的管理和控制,导致在管理上脱节。在制定计划时要提高项目负责人的计划意识,加强对开发计划的有效性评估。
软件项目管理十分重要,在实施过程中并不容易,软件与客户有很好的相互性,合理的需求与合理的软件项目能够很好的与客户交流。在软件项目的实施过程中常常面临技术应用、业务需求的情况等会影响到整个软件项目的管理。软件项目管理要有一定的原则性,在软件的管理上遵循的原则有:用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能够清楚地审查;开发小组地人员应该少而精;承认不断改进软件工程实践的必要性。这是著名软件工程专家B.W.Boehm总结出了软件开发时需遵循的几条基本原则,也成为了我们在软件项目管理上是要遵循的原则。
在软件开发中最重要的是人员的配置和安排,人员的管理能力是决定软件项目的质量的重要因素。由于软件质量上和客户的需求有所差距会导致项目范围模糊给评价带来困难,没有合理的安排和相关人员,从而导致的软件项目不合理安全性得不到保证,影响到了整个项目的进度,是软件项目中存在的问题。项目团队中没有明确的分工协作能力,导致没有很好管理,责任相互推诿。人与人之间的责任分工存在较大的差异。这些现象导致软件开发和项目管理上内部资源的消耗,从而阻碍项目管理的发展。
二、解决软件项目管理中常见问题的方法
在软件项目管理中要制定符合实际情况的计划,计划的制定要在一定的条件限制下不断的完善,提高项目负责人的计划意识,制定相关的知识,技术和工具加强对软件项目的管理和管理计划。计划的制定不一定要面面俱到,但是一定要将各种问题的应急方式快速的作出表达,要用智慧去应对各种问题和面临的风险。项目的成本一般较高,要有很好的控制力度,将项目做到精细化,制定相符的项目计划。对于软件开发而言,控制是相当重要的管理活动。控制是保证质量和配置的重要保证,软件质量保证是在软件过程中每一步都进行的保护性活动。软件的评审是保证软件质量的作用之一,它可以有效的保证软件质量。
保证项目软件的分工明确,项目负责人应该对项目成员的责任进行合理的说明并分配,项目团队中的分工要明确,要相互协作,共同完善。将项目分配到工作人员中去,要强调不同的环节有不同的分工,在各个阶段上还是有一定的联系。通过对各个阶段的交付,可以清晰的了解下一阶段的工作。在通过检验时,要对上一阶段的工作结果进行调整。在这种分工协作下,要做好沟通,不仅仅和工作人员进行交流,还要与客户进行沟通。沟通的时间就是成本,为这些时间买单的就是客户。了解客户所需要的`,充分理解并解决客户的困难。在整个项目的进行中要通过交流协调各方面,减少项目各个方面的困难,来确保项目的成功。
加强风险管理意识和总结项目经验。项目的负责人要掌握项目风险管理,加强对项目的审核,提高项目实施中可行性。总结行业内部的常见问题,对项目的风险有一定的总结和认识。也可以通过学习项目管理的相关知识来掌握项目风险必备的知识,强化项目负责人的风险意识。注意总结软件管理中经验,使得项目经验具有指导意义,为以后的项目管理提供借鉴意义。
三、结语
虽然很多的公司制定了一些软件开发管理模式,但没有从根本上解决软件项目管理上的一系列问题。在软件项目管理中,要规范有关人员的管理,只有规范化的管理,才能在项目管理中起到重大的作用。在管理中要分工合作,加强沟通意识和规避风险的能力,在项目管理中要重视经验的总结。进一步完善软件项目管理在软件企业中的实施,提高软件项目管理的能力和软件项目的质量标准。
一、引言
软件工程是建立在计算机科学基础上、指导计算机软件开发和维护的工程学科。本课程已成为计算机及信息学科相关专业最重要的专业基础课之一,在计算机科学专业和软件工程专业的人才培养上发挥着非常重要的作用。
软件工程是一门研究研究软件开发与维护的普遍原理和技术的工程学科,其研究的范围非常广泛,包括技术方法、工具和管理的等多个方面,软件项目的过程、组织和管理涉及面广,理论性、技术性、工程性都很强。软件工程自身的抽象性与应用性都很强,在目前教与学的双向过程中存在不少问题,致使教学效果很不理想。如何提高“软件工程”的教学水平和学生的学习效果,是国内外学者广泛探讨的话题。我从软件工程教学中存在的问题出发,在更新教学内容、激发学生的学习兴趣、改进教学方法与手段、加强实践环节、改革考试方式等方面提出了一些具体的建议。
二、目前教学中存在的问题
1.教学内容陈旧。
近年来,软件工程中的WEB应用开发技术、软件重用技术、原型开发方法、软件构件、集成化CASE工具与环境等领域取得了显著的进展,而国内各高校使用的教材,因编写时间的限制,在先进技术的跟进、知识结构、内容取材及实践环节等方面或多或少存在缺陷,有的甚至还停留在对面向过程的结构化方法上,却忽略了目前更适用更流行的面向对象方法,有的教材连项目组织、软件成熟度、软件构架、项目风险等十分重要的内容都未给予足够的论述。同时,软件工程作为一门正在飞速发展的学科,目前大部分教材难以及时、全面、准确地反映当前一些新方法新技术和新工具。
2.教学方法不当。
目前有些高校仍然把软件工程列为纯理论课程,教学的工具就是一张嘴、一支粉笔和几乎是教课书内容翻版的教学课件,使得学生往往是被动地接受知识,非常地枯燥乏味,很难激发学习兴趣。另外软件工程课程的教学内容是针对较大规模的软件项目开发而设计的,十分庞杂,涉及面非常广,很多知识建立在实践经验基础之上,这种“填鸭式”的教学方法,对于尚未踏入社会、没有项目经验的学生而言,很难理解该课程的精髓,很容易对该课程产生虚无缥缈的感觉,使整个教学过程流于形式,该课程变成需要死记硬背的课程,学生在学习完课程后将一无所获。
3.学生学习中存在的问题。
在传统的教学过程中,软件工程往往是一门独立的理论性课,学生对软件工程的抽象理论容易感到枯燥乏味。这门课不涉及具体软件项目,不怎么涉及软件算法,没什么逻辑推理,不像程序设计课程那样能带给学生智力上的,激发学生的学习兴趣和热情。不少学生认为软件工程就是一些条条框框,由于缺乏实践经验,缺乏合作开发软件的感性体会,他们在学习过程中难以理解软件工程的精髓,很难在头脑中将软件工程的抽象理论和实际联系起来,因此较难对这门课程产生学习兴趣。
4.教学实践环节薄弱。
软件工程的理论并不是空洞的理论,它的许多理论及规范均来自于实际需要和前人的经验总结,它的目标是实实在在地做出一个满足用户要求的系统出来,这是一个很具体的实践过程。通过学习,学生应该具备从事工程实践的技能,包括软件项目的系统分析、编写文档、源码设计与控制、使用工具等基本技能。因此,教师需要将基本概念、原理和实现技术与具体的软件项目相结合,以实例增进学生理解,以实践锻炼学生的工程能力。然而,在当前的教学中,普遍存在理论教学与具体实践脱节的现象,有时甚至缺乏进行教学实践的场所与环境,这样势必造成学生无法真正理解软件工程的精髓,更难以做到学以致用。
三、软件工程教学改革建议
以上分析了当前软件工程课程在教学中存在的一些问题。随着教学改革的不断深入,软件工程的教学改革在迫在眉睫。下面我就软件工程课程的教学改革谈一些建议。
1.更新教学内容。
在教学实践中,应该结合软件工程的发展和国内外软件企业的人才需求现状,不断更新教学内容,更要注重一些新方法新技术的讲授。例如,关于软件工程方法学,重点讲授面向对象方法学,略讲传统的结构化方法,注重面向对象方法在内的一些新方法新技术,让学生尽快熟悉和掌握软件重用、快速原型、集成化CASE环境等,同时要保持教学内容对先进技术的跟进,介绍一些目前已经推出或比较成熟的新方法,如:基于组件的方法、面向Agent方法、敏捷软件方法等。而对一些没有长久生命力的,并且在今后的项目实践中又很少用到的知识,尽量少讲,这样既有助于开拓学生的视野和培养创新意识与开发能力,又能使他们步入工作岗位的时候而不落伍。
2.提高学生的学习兴趣。
“兴趣是最好的老师”,是学生求知欲的源泉,是思维发展的动力。教师应从教材实际出发,讲究教学方法,激发出学生对本课程的学习兴趣,这对于教学效果的保障具有重要的意义。“软件工程”包含了较多的理论内容,且大多数学生都是第一次接触,是一门理论联系实际的综合性很强的课程。所以教师应通过多媒体动画等教学手段生动地剖析基本概念和基本原理,并以基本概念和基本原理贯穿软件工程知识体系的方式组织教学内容,让学生深入理解基本概念和基本原理背后的深刻内涵,并让学生系统地掌握各知识点之间的.逻辑关系。要鼓励学生主动地提出问题、分析问题、解决问题,激发学生的主动学习兴趣。
课堂讨论也是一个提高学生学习兴趣的有效途径。教师在每堂课讲完之后应该给学生留出5分钟时间,要求学生通过讨论对所学知识进行总结归纳,然后进行评价。评价方式可以是学生相互交换自己总结的内容并进行讨论,最后由教师补充、纠正和提炼知识点。这种方法不仅能提高学生总结归纳能力,而且能激发出学生的学习兴趣,使学生主动地参与到教学当中。
3.加强实践和工程训练,提高学生的实践能力。
软件工程是一门实践性很强的课程,实践环节能使学生对整门课程中的方法、技术、工具等有亲身的体验和系统理论知识的梳理,对整个教学质量的检验具有举足轻重的作用。抓好实践环节,对培养新型的合格的软件人才具有十分重要的意义。因此在努力提高课程教学质量的同时,还应该加强实践环节的管理。
软件工程的实践以课程设计为主,教师可根据学生的能力,设计一套完整的课程设计方案。课程设计的目标是通过在课程实践的一系列环节中,如需求分析、设计、编码和测试,让学生提高其综合运用软件工程的方法、技术、工具、过程进行软件开发和软件项目管理的能力,并培养其团队协作的精神。
课程设计要求完成的项目必须具有一定的规模和复杂性,教师可将学生划分为6―8人的项目小组,项目组成员相互合作共同来完成一个项目。各项目小组应严格按软件工程各阶段的要求来完成该项目,在项目开发的各关键阶段(可行性研究、需求分析、总体设计、详细设计、测试和项目开发总结),各小组都要进行报告,由老师和其他小组现场提问,最后教师给出点评,这种阶段评审有利于各小组开发进度和质量的保障。
在课程设计结束时,每个项目组应提交软件产品和规范的软件开发文档(项目开发计划、需求说明书、总体设计说明书、详细设计说明书、测试分析报告和项目开发总结报告等)。课程设计完成后必须进行现场答辩,在答辩过程中,不仅对学生进行评分,而且指出学生的不足,提出改进的意见和建议。通过现场答辩的方式可以让学生进一步明确今后需要改进的方向,使自身在分析问题、解决问题、交流沟通、团队协作、谈判沟通、适应发展等方面的能力获得较大的提高。
4.教学方式与教学手段的改革。
软件工程的原理、方法、技术若不与实际项目结合,学生往往难以有深刻的体会。因此,为增强授课效果,提高学生学习的积极性,课堂讲授应引入项目式教学法。教师可设计一个完整的、规模适中、难易适度的软件项目,在讲授软件工程基本知识点时结合该项目进行重点讲解,即以该项目作为贯穿整个软件工程授课的主线。
为了提高课程教学质量,激发学生的学习兴趣,不仅可以采用多媒体教学方式,而且可以建立软件工程课程的教学网站。软件工程课程网站中不仅有该课程的介绍,而且有大量的教学资源(多媒体课件、实验指导、自测题、试卷库、常用软件工程新技术介绍、新工具介绍和演示、有价值的参考书籍和网址等),学生还可在网站上提出自己在学习过程中遇到问题或者对本课程的教学好的建议,教师或其他学生则可进行回答或共同探讨,为广大师生学习、交流、提高提供很好的途径。
5.考核方式的改革
很多高校软件工程课程传统的考核方式以期末书面理论考试为主,但软件工程是一门实践性非常强的课程,原有的考核方式使学生不注重实践能力的提高,倾向于被动地接受理论知识,学习缺乏兴趣和主动性,只是在考试前突击复习来应付考试。理论考试成绩不是重点,主要是看学生能否在软件开发过程中贯彻软件工程学的思想和方法。因此,要加大实践考核的比重,如课堂出勤占10%;课堂表现占10%,为力避学生考前突击现象,本课程在平时课堂教学中采取课堂提问方式或者进行一些基础理论的测验,帮助学生循序渐进地巩固基础知识点;课程设计占40%;期末考试占40%。采用以上考评方法,学生们将非常重视课堂上的发言,以及知识的运用和创新,主动学习的积极性将会大大地提高。
总而言之,要改进软件工程的课程教学,除了要遵循教育学的普遍规律、合理安排好课程内容外,还要培养学生的学习兴趣,重视理论与实践的结合。
一、软件工程开发中常见的问题
软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。包括:付出较低开发成本;达到要求的软件功能;取得较好的软件性能;软件易于移植;维护费用较低;能按时完成开发任务;软件可靠性高等。在软件工程开发中遇到的具体问题可以总结为如下几点:
(1)软件模块开发过于独立,各模块没有统一的开发标准,造成系统功能重复,开发平台不统一,系统整合难度大;
(2)系统开发往往针对某一特定功能,没有形成一个完整的系统结构;
(3)总体设计不够细致,各个子系统功能模块风格不统一;
(4)开发人员技术水平、开发能力和时间有限,开发手段相对原始,代码的可重用性低、可读性差;
(5)缺乏有效的软件文档管理。这些问题集中体现在软件项目开发的每一模块中,导致整个项目开发过程中,开发费用超出原定计划,生产的软件系统不能满足用户需求,系统难以简易维护,系统无法高效运行等问题。这里既有技术层面的因素,即开发平台不统一;也有软件开发的组织与管理层面的因素,即程序员对系统功能的定义、规划和设计不明确,往往是开发人员摸着石头过河,仅仅从自己开发的这部分模块来考虑问题,另外开发人员和测试人员不能很好的协调,这些都说明了软件项目管理这一角色的欠缺。
二、项目管理针对软件工程开发的优势
项目管理包括时间、质量、成本三大要素,三者相辅相成,相互制约。时间可等价于软件项目开发中的开发生命周期,即在最终达到开发目标前的各个阶段的总用时。质量可等价于最终开发软件系统的功能性,可用性与达到的客户满意度。成本相当于软件项目开发中的费用,包括人力、地点、工具、系统故障处理等方面的开销。统筹时间、质量、成本三要素,即统筹软件项目开发周期、软件使用客户满意度和开发费用之间的平衡关系,不因忽略某一项指标而导致项目开发目的实现不了或中途中断,也不会为了实现较高的效率,而忽略成本的牺牲,让所有项目开发过程中,所涉及到的因素都可有条不紊地进行。
SPPT是项目管理另一层面上概括的四要素,分别为:战略(Strategy)、人(People)、次序和安排(Process)、工具(Tool)。战略对于软件项目来说,主要概括为模块开发的开发方式,配合方法等;人,毫无疑问,指的是项目开发中的参与者;次序则是项目如何划分模块,以及模块开发的先后次序;工具,即使用工具,包括:辅导设计程序系统、文档编写系统、资源管理系统等。对这四要素的稳定地统筹把握,能更好的协调好项目开发过程中涉及的'多个方面,而又不造成某一方面的缺失,导致项目最终目的实现不了或效果不明显。
三、项目管理思想与软件工程开发的结合
根据上述项目管理要素与软件工程开发要素的结合,平衡项目开发过程中的开发要素,能更加简洁高效地完成项目开发目标。IT软件企业处于项目为主导的环境中,每天所面对的将是成百上千不断发生、进行的项目。在这种多项目并发、高技术、快速变化、资源有限的环境下,为了试图满足不断变化的市场需求及应对各种挑战,必须考虑改进项目管理。
以项目为中心有效地将所有资源结合在一起的工作方式将是软件企业,特别是项目经理或企业主管必须面对的、认真思考的课题。一个成熟的软件项目,必须具有一位项目经理做到:了解软件开发项目完整流程;掌握如何制定完整精炼的软件项目计划书;掌握项目管理体系中的各个要素;学会进行项目的跟踪和总结等。除此之外,一个软件项目能否最终达到成功,最关键的是进度控制。对于进度控制而言,计划尤为重要,它影响到资源是否被合理使用,项目能否顺利进行,直接关系到项目的成败。有两个重要方法可以应用到该控制中,一个是里程碑设置,以周为一个小里程碑,以月为中里程碑,以项目初验为一个大里程碑,允许在一定范围内存在进度偏移度。另一个是项目定期汇报。提交工作项目周报,包括项目名称、项目负责人、项目开始时间、项目计划初验时间、項目计划偏移度等。最后,制定周例会制度、建立配置管理和监督体系,也尤为重要。
软件公司项目管理主要是指为了保证某一项目目标的实现,从而开展的前期项目开展计划、全程的项目管理、项目的绩效考评等。项目管理质量的好坏主要依据项目的整体绩效、项目投入成本、项目完成周期以及项目涉及范围等几方面,在这几个主要评价指标中,能够进行有效管理控制的只有项目成本,通过对软件公司某一项目成本进行核算,可以准确的评估项目的开展状况,并能够进一步确认项目的收益。此外,通过核算项目成本,确保项目进度以及项目范围处于合理的控制范围内,确保项目能够取得应有的收益。因此,强化软件公司项目管理,必须强化针对项目成本的核算,从而提高项目整体管理水平。
一、项目成本核算主要内容分析
现阶段,项目成本核算的内容主要包括直接成本以及间接成本两部分,直接成本主要包括项目开展材料费用、人工费用以及其他各类直接费用,间接成本主要包括参与项目开发的各种管理费用、员工福利支出以及员工保险费用等。对于软件公司的项目开发而言,由于主要是由员工利用计算机进行技术研发,所以成本主要是由人工成本所构成的,人工成本的高低也是决定项目开发经济效益的关键因素。
二、软件公司项目开发成本核算问题分析
1.人工成本核算困难
由于软件公司在项目开发过程中人工成本是最难以准确核算的部分,而且人工成本在总成本中的比重最大部分,项目在开展过程中,迫于时间和质量的要求,必须在项目开展过程中追加人力,这就造成了人力资源的使用超出了原计划的预算,造成项目开发成本的提高以及整体利润的降低。
2.软件公司项目成本核算体系不健全
软件行业作为一种新兴的行业,与其他领域相比较,在成本核算方面理论体系是相当不成熟的。而且现阶段大部分的软件公司成本核算并不是根据单独的项目进行核算,而是结合部门进行统一核算的。由于一个部门可以承担多个项目,因此难以根据某一项目的财务管理数据开展项目核算工作。
3.我国相应的企业会计准则中针对项目成本核算缺乏明确的规定
现阶段在软件公司项目成本核算过程中,究竟是作为无形资产、在建工程或者是存货,进行核算,缺乏一致的认识,以项目作为核算中心的财务体系不健全,导致项目成本核算存在较多问题。
三、项目成本核算管理
强化软件开发过程中的项目成本核算管理,已经成为项目开发管理的主要内容,项目成本主要通过以下几方面进行核算管理:
1.软件公司项目开发工时统计
(1)建立健全项目管理相应的数据信息。对于参与项目信息管理收集的单位组成及人员主要包括开发的部门、人员组成、项目编号的设置以及项目的具体开展阶段,进而对项目开展进行全方位的动态监控,同时也可以以此为依据核算出不同时期项目开发所耗费的总工时,将工时与原先预算时候的项目指标进行科学比对,从而明确项目管理的实际状况以及是否发生偏差,可以根据不同的情况对项目开发的步骤或者是预算进行调整管理。
(2)软件公司项目开发工时的统计。工时统计直接关系到软件公司项目开发成本核算的准确程度,这一部分是软件公司项目管理中的核心环节,因此软件公司的各个管理层都应当强化重视工时统计工作,并针对工时统计表、相关负责人审批、主管部门整理汇总以及最后的分析比较等。对于项目开发过程中的工时统计方法主要有以下两方面:通过相应的管理软件,并结合员工的考勤平台填报;手工填报法,并将表中的统计数据准确地录进系统中,再通过统计分析得出相关人员的单位项目耗时。
2.项目人工成本计算
在这一部分的核算中需要将每个人的人工工时与其相对应的工时工资相乘来获得,也就是把参与某一个项目的人员的总的人工成本进行累计相加,以此获得这个管理开发项目的直接人工成本。
3.间接人工成本的分配
一般情况下,项目开发的间接费用是根据具体的项目管理部门来核算的。 软件公司在进行项目开发过程中的研发部门的职工福利费、社会保险以及内部管理、培训学习所耗人工成本都属于间接人工成本;而房租、水电、固定资产折旧等都是其他间接费用。对于这些间接成本的核算,应当汇总至部门管理费用之中,在项目开发结束时同意分配结转到各合同项目成本中。对于分配方式的选择,可以根据部门所承担的各合同项目人工成本占所承担所有合同项目的人工成本之和的比重来分配。 在软件开发项目结束时,根据间接费用的分配计算结果作分配结转分录,将研发部门的间接费用分配到各个合同项目中。通常情况下采用财务软件核算的公司期末只需算出分配率,再利用软件期末自动结转分配的功能设置结转分录,由系统自动结转间接费用即可。
4.软件公司项目成本的归集以及结转
一般情况下,软件公司开发某个管理项目需要耗费较长的时间,不少的项目成本在进行会计核算时常常会跨域某一个会计期间,在多个会计期间内核算。在这种情况下,就需要新设置一个相应会计科目来整理归集软件公司的项目成本,在会计周期末,软件公司可以根据项目的实际开发进度合理地确定项目的完工比例,并对收入和费用进行科学结转。
首先,在进行软件开发项目的'成本核算过程中,应该针对资产类会计科目中增设“项目成本”科目,通过项目成本这一科目来汇总软件公司项目开发过程中所发生的所有的直接成本以及所有的间接成本并且在设置相应科目时应当尽量细化具体,将科目落实明确到具体的部门或者项目,现阶段,较多的采用一些具有辅助核算功能的管理软件来进行项目成本的核算,进而明确项目参与各部门的总的项目成本,以此可以实现科学合理的项目绩效评价。
其次,在软件公司项目核算中还需要遵循成本费用配比原则以及权责发生制原则,在进行相应成本的结转时要确保与相关收入金额匹配,可以依据完工百分比法确认项目收入情况,并依据收入结转比重结转成本,计算利润。
再次,项目开发过程中,公司财务人员还可以以积极参与公司管理,通过向业务考核部门提供相应的项目进展数据以及绩效评价财务信息等,帮助管理层提升管理能力,并以此深化部门项目业绩考核,强化项目监管和控制,提升管理效率和效益。
四、结语
软件公司作为以科技为核心的技术型企业,主要是针对科技知识以及信息的生产、处理以及应用,作为以知识资源为基础的知识经济的代表,传统的项目管理的理论以及观念已经难以适应。必须对软件公司的项目管理进行深入的研究。因此,软件公司在进行项目管理过程中,必须充分认识到项目成本核算的作用,并分析项目成本核算的主要难点,按部就班的开展项目成本核算,提高项目管理水平,确保软件公司项目开发的顺利进行。