本文结合现阶段中小软件企业蓬勃发展的背景,结合软件开发的流程分析及管理中的成本、进度、质量分析。分析了中小软件企业项目中存在的问题并提出了相应的解决办法。 项目管理-[飞诺网FENO.CN]
随着我国信息产业特别是软件产业的蓬勃发展,一批批中小软件企业不断涌现。大大推动了我国软件产业的发展。但是不可忽视的是,有相当部分的软件企业特别是中小型企业在项目管理方面存在着先天的不足,大多仍然处于一种手工作坊式运营阶段,处于有章不循和无章可循的混沌阶段,缺乏科学化、系统化的管理,质量和效率都不强。由于处于企业的初创期,中小软件企业忙于找项目、揽项目,从而忽视了自身的实力和行业专攻,从而造成了什么项目都接、什么活都做的局面,且公司人员较少,分工不明确从而造成了此类软件企业管理流程混乱,重编码轻设计,甚至到编码完成后再回头编写、应付各种文档资料,无论从哪个角度来说,这是没有任何意义的。软件项目的开发流程不规范,项目延期、失败层出不穷。所以如何有效地对项目进行管理,有章可循,对于中小软件企业来说,是非常有现实意义的。对于广大的中小软件企业而言,如何能有效且比较简单地对自己的软件项目流程进行管理呢?
项目流程管理在软件项目的开发过程中是非常重要的一环,它贯穿着整个过程,所以有时它也被称为软件产品生命周期管理,主要内容包括:立项、策划、分析、实现、测试、发布、维护等环节。
首先我们从软件工程角度来谈谈这个问题。我们来说一下软件工程中开发模型的概念,无论大小,每个项目都必定要遵循一定的开发模型。软件常用的开发模型包括:瀑布模型、螺旋模型、渐进模型。那么具体到中小软件企业,在这几种模型中,我们要注意些什么呢?下面我们针对这几种常见的模型做一下分析。
一般而言,瀑布模型常用于在开发时间内需求没有或很少变化、分析设计人员对应用领域很熟悉、用户应用环境稳定、用户除提出需求以外,很少参与开发工作、需求使用面向过程的语言或编程工具且风险较低的项目。
螺旋模型常用于在项目开发早期需求可能有变化、分析设计人员对应用领域很熟悉、用户可不同程度地参与整个项目的开发过程、使用面向对象的浯言或第四代语言、中等风险项目。
渐进模型主要应用于在整个项目开发过程中需求都可能发生变化、分析设计人员对应用领域不熟悉、用户可参与整个软件开发过程中、使用面向对象的语言或第四代语言且高风险项目。
生存期定义可视软件项目特性识别和所选软件开发模型而异,对于软件生命周期的几个环节来说,他们并不是孤立的、时间层次非常明显的,它们之间也存在着时间的重叠交叉甚至错位。
对于项目管理人员来说,要注意区分这几个阶段并在不同的阶段定义不同的工作内容并严格执行。而具体到中小型软件企业,由于人员较少,各种工程外小组不太健全。所以,针对这种情况,我们对各个流程进行分解大致分为调查阶段、立项阶段、策划阶段、分析设计阶段、实现阶段、测试阶段、发布阶段、维护阶段。
在调查阶段:我们要采集用户需求信息、拟定立项建议最后要生成用户需求文档及立项建议书。
在立项阶段:我们需要编制可行性分析报告、立项申请报告并进行评审最后要形成评审记录。
在策划阶段:我们要任命项目经理、建立项目组。并对需求进行分析、评审。根据需求情况对项目进行资源准备(人、财、物)。在此阶段要形成软件需求规格说明书及测试大纲及需求评审记录。
在分析设计阶段:我们要进行下面的工作系统设计(含数据库、界面设计)、设计评审、用例准备、测试计划评审、项目计划修订、复用元素提取根据情况要形成系统设计文档、集成和验证测试计划、系统设计评审记录、测试计划评审记录、项目计划修订记录。
在实现阶段,我们要进行详细设计、详细设计评审、构造软件(编码、自测)、模块测试、组装测试要形成详细设计文档,评审记录、源程序、相关的测试数据和记录。
在测试阶段,我们要进行集成测试、界面冻结、编写用户使用手册、填写发布申请单之后进行发布申请评审要形成集成测试测试记录、报告、安装母盘、用户使用手册子版)及产品介绍。
在发布阶段,我们要编写培训教材、进行产品包装设计、母盘准备、服务人员培训、光盘刻制、资料印刷、产品包装、发布产品检验、产品发布和交付井进行项目总结。
在维护阶段,我们要采集产品问题反馈单、登录问题反馈台账、编发产品问题的E—mail、采集、登录问题反馈跟踪记录表、编报问题反馈跟踪月汇总表、产品问题审核、分类和交付、产品问题回复、本版本产品问题维护、新版产品母盘制作、编、发产品更改公告、问题维护审核、新需求台账登录。
众所周知.影响项目进展的三个维度是成本、进度和质量。如何平衡它们之间的关系,尽力做到快、好、省?在有限资源的情况下将结果处理得最优?这就是项目中管理的学问了。任何项目要被视为成功,都要必须达到几个目的,这其中包括质量要求、截止期及成本限制。质量规定给出了一个最终的定义包括项目的形式、适配性和功能,它定义了项目提交给用户时的最终状态,而且要确保项目符合这些规定。
同时项目的进度也是非常重要的,项目管理的一个重要的职责就是要确定一个合理的交付日期。这就是一处平衡的过程,协调好这三个方面的工作,同时所谓一个项目,进度是主线,其他的因素是围绕它来做的,同时进度也是项目管理的标尺。所以在项目中一旦将会期确定下来,就要将它转化为进度表的形式,并告诉你的项目组成员。当编制进度表时,头脑中要牢记住这个日期。如果你的团队知道要求完成项目的实际期限,他们将受到更大的激励,对他们会更有帮助:当团队成员知道进度的情况时,他们将能够加快自己的步伐,从而为项目的顺利完成做出更大贡献。合理的进度,不应该让项目组成员感到紧张。紧张是个人绩效的一个主要杀手。紧张的人更有可能犯错误,而且一般来说其表现不如最佳状态:一个人犯的错误越多,他对其工作及对其本人的感觉就越糟糕,他就越有可能死火。高死火率意味着高的人员离职率,意味着你要花更多的时间用于更新雇人和重新培训。紧张的工作环境导致雇员的紧张,他们反过来又导致环境更加紧张。这是一种恶性循环,对于人员短缺的中小软件企业而言,这显然是不希望被看到的。
作为一个项目来说,如果没有一个明确的目标。对有些人来说,这种情况可能造成令人难以置信的放松,而对另外一些人来说,它又可能造成难以置信的紧张。那些不知道自己的工作到底是什么的雇员,容易变得紧张;他们拿不准为什么来这里,这意味着不能担保明天他们还会出现。如果你向你的团队成员提出了足够明确的目标,并向
他们展示实现目标的途径,你的雇员不仅不会紧张,而会真的感觉自己是该项目的一部分。可能还会对自己取得的结果感到自豪。而当项目经理用富有挑战性的工作和专门技术来影响员工的时候,项目成果的机率就会增大。
你不仅应当向你的团队成员说明目标,而且你应当让他们参与确定这些目标。并且一般来说让他们参与计划的编制,这是绝对必要的。如果你让团队成员帮助编制计划,你将更有可能提早发现可能发生问题的领域。团队成员也感觉到对项目承担了更大的义务,因为在使项目启动方面,他们有某种利害关系。
同时,在执行项目时,项目经理一定会面对这样的要求,即不超出某种成本限制。作为项目经理,应该制定一个比较详细的预算、计划,你应当告知你的公司或客户这项工作确切地说要花费多少成本:出于你的团队是执行项目的人此时也应该像客户一样,也需要尽可能地了解有关成本的信息,所以我们考虑软件的项目管理的时候,都必须在这几方面对其加以界定及规范,在日常的项目管理工作中要注重这几方面的协调、平衡。
一个项目组,我们也要关注于组织的建设。一个软件项目的成功,团队间的合作及有效沟通也是非常重要的。在交流的过程中,要有效的减少噪音,提高沟通的效率。几乎在所有的项目管理中,沟通问题是必不可免的,对于一些项目经理来说,沟通不佳意味着“没人听我的”,而对于另外的一些经理来说,沟通不畅意味着项目组成员每天到晚一直忙,却不见多少成绩,好多人做着重复的工作,因为彼此之间没有进行有效的沟通。沟通的方式很多,比如说会议、电话、电邮、甚至行为等等。
如果团队成员看起来不愿意沟通,这并不一定表明他们不愿意合作。相反,他们仅仅可能是不愿意以自己不适应的方式进行沟通。所以,为了鼓励沟通,我们必须清楚应该选择哪种沟通渠道,应该选择哪些条件组合,以得到我们所期望的反应。
在项目工作中,万不能对他人颐指气使。维持团队的关系以促进项目组成员齐心协力地工作这才是项目经理所要取得的目标。如果项目经理过多地用权力、金钱或者处罚的手段来影响项目组成员的话,项目失败的几率会很大。和其他方面的管理一样,项目管理既是一门科学又是一门艺术。在平时的管理工作当中,我们不仅要善于将相关的管理知识及管理理论有意识的应用到管理实践中,我们更要发展艺术性的思维。没有完全相同的项目环境,外部环境和内部环境是不断变化的,我们只有在不断的实践中探索才能深刻的体会到项目管理的精髓,不断的成长。同时作为一个项目经理,要有大局观,要具有系统思维。不要受单一项目的局限,要在一个更大的组织视野下考虑项目的实施。