软件项目管理相关论文Word下载.docx
《软件项目管理相关论文Word下载.docx》由会员分享,可在线阅读,更多相关《软件项目管理相关论文Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
⑤详细设计;
⑥测试。
而创业项目的生命周期也是从①创业项目定义;
③成本/效益分析;
④总体项目规划设计;
⑤具体实施;
⑥实施评估。
创业项目生命周期整个过程和软件生命周期同样满足瀑布模型。
三、基于软件工程学的大学生创业项目管理
1.软件项目管理
1.1软件项目管理的概念
从概念上讲,软件项目管理是根据管理科学的理论,结合软件产品开发的实际,保证工程化系统开发方法顺利实施的管理实践,为了使软件项目能够按照预定的成本、进度、质量顺利完成,从而对成本、人员、进度、质量、风险、文档等进行分析、管理和控制的一系列活动。
实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。
软件项目的开发不同于其他产品的制造,软件开发的整个过程都是以设计过程为主(几乎没有制造过程);
另外,软件开发不需要使用大量的物质资源,而主要使用的是人力资源;
并且,软件项目开发的产品大多数是程序代码和技术文档,并没有其他的物质结果。
基于上述特点,软件项目管理与其他项目管理相比,具有很大的独特性。
1.2软件项目管理的目的
随着信息技术的飞速发展,计算机软件产品的规模和复杂度也随之增加。
个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。
与此同时,软件项目中“项目黑洞”也应运而生:
项目无法按期完成、项目合作方的工作难以协调、用户需求经常变动、工作质量难以保证,给企业带来为了愈来愈多的损失。
这种情况说明了软件项目开发及管理过程中,存在着许多的问题,需要更多的重视和研究。
没有运用软件项目管理是面临如此众多问题主要原因之一。
软件项目管理作为一种科学的管理手段,是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的一系列活动。
因此,对于以“项目”为基本运作单位的各软件开发企业,都在积极地将软件项目管理引人开发活动中,对软件开发实行有效的管理。
因此,决定一个软件项目实施成功与否,软件项目管理无疑起着举足轻重的作用,软件项目管理已经是公认的软件开发企业的核心竞争力之一。
1.3、软件项目管理的原则
(1)平衡原则
在我们讨论软件项目为什么会失败时可以列出很多的原因,如管理问题、技术问题、人员问题等等,但是有一个根本的思想问题是最容易忽视的,也是软件系统的用户、软件开发商、销售代理商最不想正视的,那就是:
需求、资源、工期、质量这四个要素之间的平衡关系问题。
需求定义了“做什么”,定义了系统的范围与规模,资源决定了项目的投人(人、财、物),工期定义了项目的交付日期,质量定义了做出的系统好到什么程度,这四个要素之间是有制约平衡关系的。
如果需求范围很大,要在较少的资源投人下,很短的工期内,很高的质量要求来完成某个项目,那是不现实的,要么需要增加投资,要么工程延期;
如果需求界定清楚了,资源固定了,对系统的质量要求很高,则可能需求延长工期。
对于上述四个要素之间的平衡关系最容易犯的一个错误,就是鼓吹“多快好省”四个字。
正视这四个要素之间的平衡关系是软件用户、开发商、代理商成熟理智的表现,否则系统的成功就失去了一块最坚实的理念基础。
(2)高效原则
在需求、资源、工期、质量四个要素中,很多的项目决策者是将进度放在首位的,现在市场的竞争越来越激烈,“产品早上市一天,就早挣一天钱,挣的就比花的多,所以一定要多挣”,基于这样一个理念,软件开发越来越追求开发效率,大家从技术、工具、管理上寻求更多更好的解决之道。
基于高效的原则,对项目的管理需要从几个方面来考虑:
要选择精英成员;
目标要明确,范围要清楚;
沟通要及时、充分;
要在激励成员上下工夫。
(3)分解原则
“化繁为简,各个击破”是自古以来解决复杂问题的不二法门,对于软件项目来讲,可以将大的项目划分成几个小项目来做,将周期长的项目化分成几个明确的阶段。
项目越大对项目组的管理人员、开发人员的要求越高,参与的人员越多,需要协调沟通的渠道越多,周期越长,开发人员也容易疲劳,将大项目拆分成几个小项目,可以降低对项目管理人员的要求,减少项目的管理风险,而且能够充分地将项目管理的权力下放,充分调动人员的积极性,目标会比较具体明确,易于取得阶段性的成果,使开发人员有成就感。
(4)实时控制原则
实时控制项目进度的机制,依靠一套规范的过程来保证实时监控项目的进度,以实现实时控制项目的进展,将项目的进展情况完全的实时的置于你的控制之下。
实时控制确保项目经理能够及时发现问题、解决问题,保证项目具有很高的可见度,保证项目的正常进展。
(5)分类管理原则
对于不同的软件项目其项目目标差别很大,项目规模也是不同的,应用领域是不同的,采用的技术路线差别也很大,因而,针对每个项目的不同特点,其管理的方法、管理的侧重点应该是不同的。
就像古人讲的,“因材施教”,“对症下药”。
项目经理需要根据项目的特点,制订不同的项目管理的方针政策。
(6)简单有效原则
项目经理在进行项目管理的过程中,往往会得到开发人员这样的抱怨“太麻烦了,浪费时间,没有用处”,这是很普遍的一种现象。
当然这样的抱怨要从两个方面来分析,一方面从开发人员本身可能存在不理解,或者逆反心理的情况,另一方面,项目经理也要反思:
我所采取的管理措施是否简单有效?
搞管理不是搞学术研究,没有完美的管理,只有有效的管理,而项目经理往往试图堵住所有的漏洞,解决所有的问题,恰恰是这种理想,会使项目的管理陷人一个误区,作茧自缚,最后无法实施有效的管理,导致项目的失败。
(7)规模控制原则
该原则是和上面提到的其他原则相配合使用的,即要控制项目组的规模,不要人数太多,人数多了,进行沟通的渠道就多了,管理的复杂度就高了,对项目经理的要求也就高了。
在微软的MSF中,有一个很明确的原则就是要控制项目组的人数不要超过10人,当然这不是绝对的,也和项目经理的水平有很大关系。
但是人员“贵精而不贵多”,这是一个基本的原则,这和我们上面提到的高效原则、分解原则是相辅相成的。
(8)组织的知识积累原则
有效的积累知识的方法是:
人员专业化培养,知识与载体分离。
具体的做法是,把需要度量的知识实体分为固定知识(项目成果)和流动知识(参与人员),再把知识实体的价值体现划分成不同的度量平面。
根据所有知识实体在不同度量平面上的知识度量值,可以形成不同的知识平面指数和公司知识指数,并可根据此知识指数体系来全面分析公司的知识积累状况,并迅速做出恰当的反应。
知识与载体分离体现的是,在组织中人力资本与组织资本是有区别的,简单地说,人力资本属于员工个人,企业只可租借使用;
而组织资本就是8小时以外员工带不回家的企业资产,它为公司所有。
对企业来说,相比于人力资本,组织资本更为重要。
一个管理者(领导者)必须知道如何容纳和积累知识,使之为公司所有。
软件项目管理是在经历了若干个大型软件工程项目的失败之后,人们才逐渐认识到软件项目管理的重要性和特殊性。
事实上,这些项目的失败并不是由于从事软件开发工作的软件工程师的无能,正相反,他们之中的绝大多数是当时杰出的技术专家。
这些工程项目的失败主要是因为管理不善。
所谓管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,已达到既定目标的过程。
软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期中。
软件项目管理过程从一组项目计划活动开始,而制定计划的基础是工作量估算和完成期限估算。
为了估算项目的工作量和完成期限,首先需要估算软件的规模、工作量估算,然后是进度计划,人员组织,质量保证。
2.基于软件项目管理的大学生创业项目管理
大学生的一个创业项目是一项独特而现实性很强的工作,这个工作往往是需要遵从一定的规范和标准去生产某种新产品或提供某种服务的工作。
这种工作应在限定的时间、成本费用、人力资源及资财等项目参数内完成。
这与软件工程的三要素:
成本、效率,质量及其类似。
项目有三个要素,即技术目标、完成期限和预算。
项目的成功实现通常受四个因素的制约,即工作范围、成本、进度计划和客户满意度。
首先明确了大学生创业项目的工作范围,在确定整个项目的工作范围的时候必须充分考虑到自身的技术和服务优势。
项目的工作范围如果设定得比较大那么在项目的推动过程中就要密切关注成本是否超过承受值。
2.1成本估算
在软件工程学中涉及到的成本估算方法有:
代码行技术、任务分解技术、自动估计成本技术、任务分解法WBS。
这些方法中只有人物分解法适合大学生创业项目的成本估算。
WBS:
任务分解法(WorkBreakdownStructure)即利用WBS方法,先把项目任务进行合理的细分,分到可以确认的程度,如某种材料,某种设备,某一活动单元等。
然后估算每个WBS要素的费用。
采用这一方法的前提条件或先决步骤是:
①对项目需求作出一个完整的限定;
②制定完成任务所必需的逻辑步骤;
③编制WBS表。
在进度表和WBS表完成之后,开始进行创业项目成本估算。
创业项目成本估算的结果报告需要包括一下要点:
①每个WBS要素的详细费用估算;
②每个部门的计划工时曲线图;
③每月的工时费用总结;
④每年费用分配表;
⑤硬件支出预算。
这种方法的准确度较高,用这种方法作出的这些报表不仅仅是成本估算的表述,还可以用来作为项目控制的依据。
最高管理层则可以用这些报表来选择和批准项目,评定项目的优先性。
2.2人员组织
通常创业项目要成功,很重要的一项工作是成立创业项目组。
挑选到合适的项目组成员并让他们来项目组任职,是项目成功的关键。
大学生创业项目要获得成功,同样离不开一个好的创业团队。
创业成功需要具备多方面的综合知识和经验,如管理知识、营销知识、财务知识、法律知识,甚至产品技术知识。
而大部分青年大学生没有这方面的实践,经验更是匮乏,很难做到全才。
因此懂技术的有必要找一个懂管理的的做搭档,懂管理的也有必要找懂技术的做搭档。
创业者在组建团队的时候必须选择志同道合而且能独当一面的精兵强将加入团队,明确团队成员职责。
作为团队的领导者——创业者还必须掌握沟通技巧,学会倾听、感化和商谈,来保持与巩固整个团队的战斗力和工作效率。
2.3创业项目管理
创业项目的管理,就是首先制定创业项目计划,然后按计划一步一步执行。
由于环境的变化、可能出现的进度延时、认识的偏差、能力的不足等原因,造成了实际状况与计划的偏离。
而要保证项目围绕预选制定的计划开展,就得用到项目进度管理的适度调整。
项目管理以一定的标准为依据,定期或不定期地监控项目,发现项目活动与标准以及进度之间的偏差,并采取必要措施进行处理。
要对创业项目进展、费用、质量、风险等都进行监控和管理。
大学生在创业的活动过程中应经常检查和评估自己的计划执行情况,是否按计划推进,进展比预想的快还是慢了,比如时间过去1/3的计划时间了,而市场拓展才1/5;
或者费用过半了,而业务量才做到1/3等,这些也进度严重违背的问题都需要及时发现,及时检讨,以求迅速提出解决办法加以纠正。
四、以“高校实验教学管理系统”为例的项目管理模型及实践
信息系统以及相关软件项目的设计开发已经不是企业运作管理中的一部分了,各软件企业都在积极地将软件项目管理引人开发活动中,对软件项目开发实行有效的管理。
目前,中国的软件企业正处于高速发展、急需规范管理并以项目为主导的环境中。
企业每天所面对的不仅仅是几个越来越大的大型项目,而将是成百上千不断发生和进行的项目。
产生这种变化的因素是多方面的,这包括客户需求的不断提高导致产品生命周期缩短;
产品开发项目数量大增;
新技术导致了对研究和开发项目需求的增加;
为了提高业务赢利能力,改进业务模式的项目需求大增等。
在这种多项目并发、技术含量高、变化速度快、资源有限的环境下,如何对企业、项目、资源实施科学的管理,加强团队能力,实现软件企业的生产规模化、规范化、国际化,是当前我国软件业面临的最大挑战。
中国目前软件业的落后状况,实际已经不是技术本身的问题,而是科学管理的问题,软件工程理论与软件项目管理的实际应用与经验,是我国软件企业急待学习与渴求的。
中国软件业各个层次上的管理问题,目前可以说已经制约了中国软件业走向国际化的进程。
1,大中型软件开发的主要难题不是技术而是管理。
有了科学严谨而行之有效的管理,才能让先进的技术方法和开发工具真正发挥出作用,生产出优秀的软件作品。
在软件项目管理知识软件项目与工程管理论文的基础上,论文结合目标系统的特点,给出了一种更加灵活的项目管理方法,阐述了质量、进度两个方面的管理理念和方法,特别是如何对该项目进行跟踪、监控和度量,以保证系统按进度高质量地完成、交付、使用。
实验教学是高校教学的重要环节,然而目前高校实验教学方面普遍使用的是各实验室彼此独立的实验信息管理系统,这给学校的实验监督工作带来了很大的困难。
目前国内尚未出现面向全校所有实验室的类似系统,究其原因,最重要的一点就是项目管理难度大。
仅从需求而言,实验室多而且各具特点,导致需求难以全面覆盖和深入挖掘,这样就很难梳理出一套标准和科学的管理模型,且系统开发极具不可预知性。
系统共分为四个平台:
教务处、实验室、教师和学生,利用科学有效的数据库设计技术和长期服务高校教育教学的经验技巧、以动态定制方式解决实验室(中心)个性化需求问题。
本系统的特点可以概括为以下三点:
(1)该系统有多种用户,多种管理员;
对于每个实验室,该系统都是一个小型的实验教学管理系统;
(2)各个实验室运行模式差异性大,需求多样化;
(3)用户群体庞大,对于系统数据的及时准确性要求较高。
上述特点决定了本系统项目管理工作的难度必定很大。
从项目管理的角度来说,开发模型体现了软件开发管理者在管理模式上的变化,目前也存在多种开发模型。
然而,传统的项目管理是选择一种软件开发模型,在开发的各个阶段实施管理。
另外,考虑到开发模型越简化,管理工作就会越容易,大多数管理者会采用传统的瀑布模型。
瀑布式生命周期的开发过程是顺序行进的;
活动流向基本是单向的;
这种模型的缺点也是很明显的,各个阶段的划分完全固定,早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
那么,本系统将会不拘泥于现有的开发模型,针对系统的特点,采用一套行之有效的开发管理方法,合理有效的推动项目的研发进程。
2“高校实验教学管理系统”项目管理模型
该系统是在传统瀑布模型的基础上加以修改,添加原型和迭代。
即首先做出原型,向用户展示,然后根据用户提出的修改意见,不断改善系统,直到用户满意。
采用这种管理方式的优点:
可强迫开发人员采用规范的方法;
原型系统已经通过与用户交互,在一定程度上可以减少开发过程中的返工;
开发人员通过建立原型已经学到了很多东西,在设计和编码阶段发生错误的可能性降低;
每个阶段交出的所有产品都经过负责人的仔细验证,可保证符合文档的要求;
依据采用的开发模型,将该系统的开发阶段分为需求分析、系统设计、编码实施、测试、系统试运行,在每个开发阶段中进行质量、团队和进度管理,主要从文档、工具、沟通、制度、合作四个角度进行。
3“高校实验教学管理系统”项目管理实践
3.1制定团队规范
团队开发,永远不是一个人在行动,因此需要制定团队规范,来约束大家的行为,以保证进度和质量,团队规范的内容主要包括:
每个开发人员每天晚上汇报当天工作进度;
每周末总结本周工作,制定下周进度计划;
遇到问题及时沟通,充分利用团队优势;
不能完成任务或提前完成任务及时告知负责人;
个人独立解决一个问题的时间不能超过半小时,半小时之后未解决应及时与其他成员商讨;
阶段性的技术总结、团队内部技术、经验交流;
保证充分可靠的文档;
周期执行检查工作。
3.2需求获取
全面的需求获取是保证系统开发少走弯路的前提。
该系统采用多种方法从不同角度获取每个平台的不同需求。
比如:
方法调查表、定期召开研讨会、原型展示。
对于每一次的调查和会议,都要有专门人员做好全程记录,会后及时做好应对策略。
3.3开发过程管理
采用MicrosoftProject制定项目管理计划。
在制定计划时要注意保证计划的可行性,明确责任划分。
项目管理计划随着系统的进行不断细化,不断调整。
对于影响系统整体进度的调整,要召开小组会议并和老师交流商量。
3.4系统设计和编码
在系统设计阶段,给出详细设计文档和界面原型,阶段性地将设计内容反馈给用户。
在充分理解需求文档的基础上,每个开发成员给出详细设计和界面原型。
并在阶段性的时间点以研讨会的形式展示界面原型,根据用户要求完善系统设计。
对于四个平台的功能模块,根据功能难度、开发成员的编程能力和项目经验进行划分。
比如排实验,由于功能复杂,要考虑和验证的情况很多,这块功能分配给编程老练、心思缜密的开发成员完成。
在编码实施阶段,采用源代码管理工具VSS,制定统一编码规范文档,统一编码风格,降低开发和维护的风险及难度。
3.5测试和试运行
测试阶段:
制定好测试计划、编写测试用例,测试过程做好测试报告,收集测试结果。
测试时测试人员要认真细致,对测试中发现的问题做好记录。
测试用例设计要基于需求,避免测试自己编写的模块,输入数据包括合理的和不合理的,测试数据具有代表性。
试运行阶段:
首先在小范围内试运行,根据反馈完善系统;
然后大范围试用。
试运行之前准备数据,要求数据能够尽可能的展示各个实验室的情况;
制作培训PPT;
对于操作较复杂的界面录制视频;
召开用户培训会,使实验室负责人熟悉该系统,同时发现潜在的问题;
公布用户反馈方式,及时、最大限度的获取用户反馈意见。
在多个学院试运行期间,准备两套系统,一套试运行数据,一套正式运行数据。
学生和教师的培训工作由实验室负责。
根据系统的特点灵活使用传统的管理模型,采取用原型去引导用户,通过实践来了解目标系统的概貌,从而不断获知和细化用户的真正需求,明白系统应该做什么,不应该做什么。
在项目实现过程中,制定合理规范的管理制度,不仅保证项目按质向前推进,同时使团队每位成员在项目开发的整个过程中都切实负起责任,增强团队合作意识,保证用户的真实需求得到满足。
通过近一年时间的开发,目前本系统已经开始在几个学院展开使用,且取得较好的反响,证明该系统采取的管理方法是合理有效的,其开发模型和管理模式是值得借鉴的。
五、从管理和技术两方面来保证软件工程的实施
软件规模的不断扩大引发了“软件危机”,使得人们对软件的发展提出了置疑,怎样才能有效的控制软件的开发过程,怎样才能设计出高质量的软件而不是无法预知的去依赖开发人员的个人经验和努力。
为了解决上述问题,人们提出了软件能力成熟度模型(CMM)和净室软件工程,能力成熟度模型注重于软件生产的管理和组织,定义了5个软件成熟度级别,而净室软件工程则侧重于技术和实践,从工程的角度将软件生产过程化,从而实现对软件生产进行可预期的控制和管理。
软件能力成熟度模型和净室软件工程是互相支持的,从管理和技术两个方面来保证软件工程的成功实施。
本文将针对净室软件工程谈谈自己的认识。
1 软件开发的工程化
在传统的软件开发模式下无法对软件开发的过程进行有效的控制和管理,所有的工作处于一种无序状态,程序经常需要返工,开发效率低下,无法保证软件的预期产出,尤其在大型的软件生产中更为突出。
这些问题的解决均需要有一套系统的适合于软件生产的工程方法来保证。
而净室软件工程的目标之一就是实现软件开发的工程化,通过工程化的软件开发过程,有效的控制软件开发中的任何一个步骤,从而实现可预期的软件产出。
2软件失效控制
怎样控制软件的失效,减少程序的返工是软件工程中的重要主题。
净室软件工程的目标即是改变以往在软件开发后期来改正失效的做法,通过增量开发、严格的开发规范及设计和基于统计学的可靠性测量来达到软件零失效的目标。
3 管理过程
在项目规划过程中,依据项目要求裁剪净室过程,制定和维护软件开发计划。
在项目管理过程中,管理和控制增量开发和认证,定义净室质量目标。
在性能改进过程中,从开发计划、过程控制等方面来评估项目性能,并提交改进办法。
在工程变化过程中,为工程实施中可能的出现的变化制定相应的策略和记录,并评价其影响大小。
4 规范过程
能规范过程中,基于需求定义软件功能的外部规范。
在使用规范过程中,定义软件用户对软件的使用方式及使用环境。
在结构规范过程中,明确软件的系统结构,并分析所用系统结构怎样在本次软件计划中体现其优越性。
在增量计划过程中,建立软件的增量式开发和认证计划,以组件的方式逐步实现用户功能,对软件质量实现分步控制,最终形成目标系统。
5 开发过程
在软件再工程过程中,实现软件的重用,避免同一功能重复开发从而增加软件失效的概率。
在增量设计过程中,为特定的软件功能分配一系列增量,并根据整个项目结构和进度来安排这些增量的开发。
在正确性验证过程中,初步找出在增量开发中出现的软件失效并加以改正。
6 认证过程
在建模测试计划过程中,建立模型用于软件的测试和认证,并使用模型来产生测试用例。
在统计测试和认证过程中,将测试纳入软件开发的全过程,并认证软件的正确性,评价其性能。
六、总结
大学生创业是大学生自主解决就业问题的一个值得鼓励的尝试,当前的在校的大学生普遍怀揣创业梦想,但有志于创业的大学生必须清醒地认识到创业是有风险的。
成功创业需要详细的规划的细致的调研,成功创业必须要有一定的财力和创业能力做保障。
成功创业还需要完整的项目管理的全程的项目控制并及时做纠正偏差。
借鉴软件工程学的相关理论和方法来规划和管理创业项目可以明显高大学生创业成功率,最大限度地避免盲目和盲从。
[1]琼•努特森艾拉•比茨:
怎样当好项目经理[M].上海人民出版社,1995.11
[2]李