如何做好一个项目
从毕业至今,大小的项目做了不少,有不少成功的,也有很多失败的经历。于是就想将自己的感受写出来,希望与他们进行讨论。文字之间,有不少的错漏,请见谅。
项目的定义:这个标题太大了,项目千千万万种,。我这里所说的项目,主要指应用软件厂商为企业定做的应用软件这样一种项目,其中也包含系统集成的项目,这两者目前基本上是密不可分的。
项目成功的定义:项目怎么样才能算做好了,也是各人有各人的看法,我对项目成功的定义为,“三赢”的项目,才算是真正成功的项目。三赢包括,一赢是为用户服务,让用户满意。二赢是让公司满意;三赢是让项目参与人员满意。
为用户服务、让用户满意:用户指提供资金并且最终使用项目的结果的所有有关人员,项目的开发过程和最终结果,要让用户认可、使用,并让用户说好。此为一赢。
让公司满意:项目开发要按时,保质保量的完成,并且还要为公司积累项目经验、知识储备,包括项目、人才、技术、市场等各方面的储备。此为二赢。
让项目参与人员满意:开发人员指参与此项目的所有应用厂商人员和在项目中所需的设备、软件等其他供应商。要让开发人员在项目中专注的完成任务,免受项目之外的因素干扰,正常,优秀的完成项目,对开发人员本身也是一种巨大的鼓励。要让供应商深知其设备、软件的使用情况,让项目的成功成为供应商的成功,为下一次的更好合作打下基础。此为三赢。
项目在每一个过程中都要反应出,如何实现此三赢。为了实现此三赢,都分别需要做些什么。
////////////////////////////////
如何做好一个项目(之二)
首先我们来分析一下一个项目的大致过程。
一般一个软件的项目,按软件工程的理论,分为可行性研究、需求调查分析、系统设计与编码、系统测试、系统维护、系统结束几个阶段。这样一个理论,对由大公司、国家等投资进行研究的项目,是非常有效的;但对目前国内的应用软件市场的行为来讲,则不是很适合的。原因在于,目前绝大多数的应用软件项目的来源是应用软件厂商通过市场行为找回来的,带有很浓厚的商业意味。
目前的需要进行企业信息化建设的企业,它们都对计算机系统懂一些,但相对于应用厂商,则又不是很懂,对做一个软件项目,通常是懂一些概念,又不完全知道该怎么样做完一个项目。在这样一种情况下,应用软件厂商在开始接触客户之前,公司对怎么样做一个项目,包括项目的整个过程要心中有数,然后首先要做的一件事情是,让客户接受公司做项目的方式和方法。这一点要在与客户的第一次接触时就要把握时机让客户了解。
一个较完整的项目周期应该把市场行为也包含在内,市场行为的最终结果是签订一纸合同,该合同决定了双方的责、权、利,对一个项目的顺利进行,起了很重要的作用。因为,必须把市场行为中对项目有影响的部分纳入项目管理中。项目的周期包括:制定售前技术方案、售前用户调查、然后才是软件工程理论的部分。在售前的技术方案中,要向客户表明,我们的系统能做什么,我们的项目将会如何开展;在售前的用户调查中,要向用户调查该企业是否具备使用该应用系统的条件和决心。如果不做这一步的工作,很难想象一个拍脑袋工程能够顺利的完成,或者一家只有一群小学生水平的企业能够使用一套ERP系统。
越写越觉得,自己做是一回事情,要想写明白,又是另一回事情。希望大家能多提意见,让我能写得更好。
我的电子邮件地址:wenjl@163.net。
//////////////////////////
如何做好一个项目之三
项目人员构成
项目的人员构成包括:项目领导小组、售前工程师、项目执行经理、系统分析员、程序员。
项目领导小组通常由公司的高级管理人员组成,对应与企业的负责该项目的最高负责人联系的。
售前工程师:与市场人员一起,完成售前的工作。
项目执行经理:项目执行过程中的执行人。
系统分析员:对整个应用系统进行分析。
程序员:完成系统分析员的分析。
这里所指的每一项工作,都可能在实际的执行过程中被分解成若干工作。
//////////////////////////////
如何做好一个项目 之四
项目的第一阶段—售前
正式访问客户前的,应该先了解一下客户是做什么的,在行业上有些什么成就,它大致需要什么样的IT服务以及公司能够提供什么服务,这样的服务能够为企业带来什么好处。最好还能准备同类的企业的例子,以及带来的好处。
正式访问开始后,应该先了解一下企业具体想通过这个项目得到什么,能否实现了,该企业为了达到此目的,已经开始准备了些什么或将要准备做些什么。了解企业内部的管理,包括企业目前的组织机构划分,职责、权利的划分。
售前调查方案
序号
项目
说明
1
企业需要达到什么目的
2
本项目完成后能提供什么
通过项目来达到企业的目的,通过具体的要求来体现企业的目的。
3
企业目前的现状
得到企业的现状与将要达到的目的之间的差异,以确定项目要求企业作出的变化。包括企业的软、硬件、管理、人员素质等现状
4
企业为达到此目的都作了些什么准备
企业要想改变,必须是主动的。
5
企业还将能提供什么
如果有的变化是涉及到人员或者是管理人员的,要需要企业更高层的管理人员来干预,企业在此项目中的负责人能否具有此种能力。
通过对客户的了解,制定出解决方案,包括管理上、技术上、资金上的方案。说明通过本项目的实行,能达到企业的目的。
解决方案,最能体现出应用软件厂商的功力,因为有许多问题,并不总是通过技术一定能实现的。比如,一个企业要上一套办公自动化系统,来提办公效率。经过调查,发现企业内部还没有一个网络化的信息系统,许多管理层的人员的办公室,计算机都还没有一台,企业内部办公,都是通过人工和电话来处理,随意性大。这样一个企业做办公自动化系统,解决方案上,必须要先注重管理方案,再是人员培训上,然后才能技术上的实现。否则,做得再好的系统,也会被客户的要求,变得面目全非。
当然,这样做客户很有可能不接受;也就要求,企业在接单时,要从项目的成功点来考虑;企业自身条件具备,项目就可能很快的,很成功的完成。企业条件很不成熟,项目周期会很长,项目中的参与人员,必然会很大部分等不到成功的那一天就要离开了。
//////////////////////////////////////////
如何做好一个项目 之五
项目的转折点之一 --签约
项目的签约:签约就意味着客户将此项工程交给你们公司来做了。合同中最重要的是费用,应用软件公司最关心的是对方能拿出多少钱来,但要想做好一个项目,费用只能是合同中的一部分。合同中还应该说明的,还有双方的责任和权利外,工作的范围、工作的进度等。双方正式签约后,项目就可以开始。
项目的开发条件:合同中还有一个重要的组成部分,就是项目中的开发环境和条件问题。现在通行的开发方式之一,就是应用软件公司在开发过程中,将用户购买硬件设备的费用,先购买几台开发机器,然后是大队开发人员亲自到客户所在地,进行现场开发。
项目的后勤保障:我曾遇见过一个公司,在签合同时什么要求都没有提(除了整个项目的费用外),等到合同签完了,正式开始开发了,把大批的开发人员送到客户所在地,才发现,开发的场地对方没有条件提供,开发人员的住宿对方没有答应无偿提供,开发人员的吃饭对方也没有考虑。项目负责人为了开发的场地、吃饭、住宿,与对方的高层又进行了较长时间的磋商,最终也还是自行解决了事。项目中的后勤工作,很显然要计算入项目成本之中,各个公司要把握好工程的报价,将这些因素考虑进去,至于如何体现,既可以在合同中单独体现,也可以总的在合同的总价上反映。
项目的前期准备工作:项目要开始了,开发人员所需工作场地、工作的机器,系统运行所需的最小模拟环境,网络设施,开发用的系统软件、应用软件等。
开发人员的培训:系统分析人员要准备进行需求调查,准备好进行需求调查的文档;开发人员要进行应用软件开发所用的工具的培训,编程风格规范的培训,文档制作的培训。系统将会用到的工具,技术难题等,都要开始组织人力去突破,让个别的突出的开发人员进行研究,等研究成果出来了,马上组织其他开发人员进行学习,千万不能毫无准备的就开始投入开发,到真正碰上技术难题时,对进度的影响就大了许多。
/////////////////////////////////
如何做好一个项目 之六
项目的第三个阶段—需求调查分析
项目开始的第一件事是作需求调查分析:
需求调查要做的事情是两件事,调查清楚系统所需要做的部分,企业现在做这些事情的人和事。系统需求调查的结果是一份系统需求调查报告。在此报告中,要将企业目前做这些事情所涉及到的内部、外部的人员或企业,在其中的地位作用,以及事情做好的整一个流程。一般的调查表如下:
企业结构表:要描述出企业的管理架构,如是金字塔型的,还是矩阵式的。
XXXX岗位描述表
岗位名称
素质要求
所做具体工作
XXXX工作描述表
事情名称
上一步
下一步
来源数据及要求
来源的人员或方式
送出的数据及要求
送去的人员或方式
如何处理及时间等要求
处理的人员及具备的能力
中间数据,指即不送出仅作为该环节使用
系统调查完毕后,应该进行系统分析。系统分析应该得出的是与系统需求一样的东西,只是它描绘的是系统做好也后的情况,也就是可能包含需求对企业的管理结构,各个工作岗位、工作流程、工作性质进行改变。
/////////////////////////////////
如何做好一个项目 之六
项目的第四个阶段—系统设计
系统需求分析完成后,就要进行系统的设计。系统设计的任务是将需求分析得出来的结论用计算机怎么来实现,其中必须包含的所有需求分析的内容,还必须加入一些计算机编程必备的,如程序的可扩展性、系统的可维护性、数据安全等;还必须注意的是,应该尽可能的参考国际标准、国家标准、行业标准。系统设计可能没有一定之规,很大程度决定设计人员的水平了。系统设计还应该包括界面设计,界面设计出来了,就等于用户将来的操作也来了。
系统设计包括:数据结构设计、界面设计、硬件系统设计、网络结构设计、操作系统使用设计、数据库系统设计、文件系统设计、安全设计、原系统数据转换设计。
界面设计的原则:
//////////////////////////
如何做好一个项目 之八
项目的第三个阶段—编码
系统设计完成了,下一步就是进行编码,将设计思想体现出来。在此前,要先定好编程的风格、命名的规范、开发程序代码的存储、备份;订出编码的期限、进度。
/////////////////////
如何做好一个项目 之九
项目的第六个阶段—测试
编码完成后,马上要进行测试;测试前先要按系统分析的要求,准备好测试数据、测试记录。实际对程序进行测试,并对出现的问题进行记录。
//////////////
如何做好一个项目 之十
项目的第七个阶段—运行
项目测试结束就可以开始运行。运行可分为试运行、系统数据转换、正式运行、验收四个阶段。
试运行是将系统建设在真实环境或模拟环境上,让用户将实际的业务在上面使用。
试运行报告
试运行起始时间
试运行结束时间
试运行参与人员
试运行模块
试运行发现的问题
原设计时的处理办法
建议修改办法
试运行期间修改情况
系统数据转换:企业原来的业务数据,按系统要求,必须将一部分或全部数据转进来。
正式运行:系统基础数据一但准备完毕,就可以开始运行。
正式运行报告
正式运行起始时间
正式运行结束时间
系统总模块
系统总修改处
正式运行参与人员
正式运行模块
正式运行发现的问题
原设计时的处理办法
建议修改办法
试运行期间修改情况
正式运行一段时间,系统较为稳定就可以进行验收。
///////////////////////////
如何做好一个项目 之十一
项目的第八个阶段—维护
系统维护:维护记录
系统维护记录表
时间
模块
出现的问题
原设计的处理情况
将修改的处理情况
修改人