当前,在整个软件行业的激烈竞争下,项目开发的成败将关系到软件企业的生存与发展,而项目的开发只能建立在自我不断创新和高质量满足客户要求的基础上。建立这种基础的前提就是要具备很强的对“需求、问题或机会”的识别能力以及提出相应解决方案的能力,这也是项目开发的前提条件及项目管理者和领导者应该具备的能力。
下面,就项目的开发过程进行简单的阐述。
首先,进行一个项目开发之前,要明确客户的需求。客户的需求往往是潜在的,要使这种需求明确化,相关部门和项目组管理者和领导者需要在对客户情况准确判断的基础上,自己提出需求建议书和相应的解决方案申请书(所有人员必须对客户的需求业务和本项目组的软件技术能力非常了解,然后提供切实可行的需求解决方案)。这一工作完成的是否出色对获取客户合同以及能否成功完成项目的开发和产品的推广至关重要。目前软件业中普遍存在的产品与技术大多重在突出技术特点本身而忽视了对客户需求的调查及自己如何满足客户,造成了与客户观念上的一些脱节。我个人认为先对需求进行分析、总结和概括,然后提出准确可行的解决方案是非常重要的。因为只用这样才能明确项目的内容和目标。
完成了项目建议书和解决方案申请书后,根据实际需求和市场实际运作效果,我们就可以确定是开始进行项目产品开发还是进行其它研发或者根据新的客户需求完善本项目。所有这些取决于市场的反馈信息,根据不同的市场反馈做出不同的开发计划,只有这样才能避免闭着眼睛走路,同时项目更有了明确的开发目标。一旦项目列入开发计划,我们就应该集中技术人员、成立项目组、确定项目负责人进行实质性的项目开发工作。
在项目实现过程中,所有的依据应该原于客户的需求和当前技术允许范围。客户的需求在目前阶段体现为上述解决方案;而技术允许范围是指根据当前项目组的技术水平来估计项目组的技术能力,保证应用的方案必须是可行的,否则项目开发就此中止,导致整个项目在此阶段失败。同时,必须在此阶段对整个项目过程中的难点进行预测和估计,并能对可能发生的突发情况做出准备并提供相应的解决方法。总之,在此阶段必须对项目做好充分的准备,为项目的顺利进行提供保障。实际上,此过程为一个将具体问题进行抽象和建模的过程,然后对模型进行可行性分析,得出结论。为下面的项目实现做出充分准备。
项目可行性分析完成以后,则开始进行软件实现。主要包括以下几部分:系统结构设计(大体体现和概括了业务逻辑和业务流程)、软件结构设计(软件的体系结构、性能分析、瓶颈问题解决方案、子系统划分等)、软件模块分配、编写代码、软件模块集成、软件子系统集成、软件子系统测试、系统联调、软件系统整体测试、软件发行。以上各个步骤,为典型的软件设计过程,在这里我就不再阐述。但是值得提出的一点是:软件实现过程越规范,效率和软件质量越高,项目可维护性就越好。
上面已经开始了一个项目的实际开发实现。至于项目成功与否,在目前阶段最大的因素取决于项目组成员间的合作、工作效率和士气。优秀的项目领导者、有效工作的项目团队、对项目管理有利的组织结构,是一切项目成功的理想环境。项目团队往往因为缺乏充分的授权和支持,造成逐渐衰落并最终导致项目的失败。
既然是一个团队,如何保持整个团队的状态和团结呢?我认为最为重要的是如何处理和协调项目组成员间的关系以及如何保证整个团队的目标不发生偏离。首先,项目成员间必须相互信任,成员间只有彼此相互信任,才有可能达成共同的目标,才可能成功的进行项目开发。其次,调动项目成员的积极性。项目成员间必须要多交流和沟通,包括技术交流和感情沟通。第三,每个项目成员都应有责任感,必须敢于承担责任,整个项目团队是一个整体,每一个成员只是团队这部机器的一个零件。综上,我认为团队的合作主要包括以下两个方面:首先是关于合作的态度和精神。软件产业本身的发展在于有一个让所有从事软件业的人共同认可的文化平台,在这个平台上,当每个人强调自己聪明才智的时候,实际上他们也在最大程度地分享别人的成果,使知识、信息极大共享,使大家都能得到很快的提高。所以有人讲,搞软件或搞知识产业的人可以在短时间内创造奇迹,而创造这个奇迹的前提就是每个人开放的思想和互相合作、互相促进、互相交流的行为。其次是关于创新。我们从事软件业不应把创新习惯性地理解为纯粹的技术创新,这样往往在市场上就不能表现出很强的竞争能力。创新,应该表现在从技术的产生到技术的市场应用的一系列过程。
最后我想说的是:软件业以人为本,软件企业必须为从事软件产业的个人创造出一种激发他们乐于奋斗、并且能够在其中充分体现个人价值的环境和文化。
[@more@]