工作这天,老板不经意间问起一个问题:我们怎么评估一个项目的大小呢?
是啊,这的确是个有意思的问题,当时包括我在内三个项目经理在场,可一时还真的不好回答,从有限的阅读经历来考虑,脑子几乎是一片空白,无言以对。我想,老板关心的不是一个项目结束后对项目规模的评估,而是项目启动之前在与客户进行售前商务谈判过程中,如何准确把握项目的规模,从而准确估计出项目成本的问题。如果是前者,倒勉强可以借鉴一资料,类似Delphi法则什么的,但对于后者,更多的恐怕要自己思考、判断了。反复琢磨,觉得在项目前期,从以下几个方面入手也许是有实际价值的。
任何软件产品都离不开其赖以生存的运行环境,而且从一个项目的生命周期来看,运行环境又有开发环境、集成运行环境、测试环境、预生产环境、生产环境等,一个项目最终交付的产品运行的实际环境是首要因素,其次,另几个环境也直接决定了项目实施过程中的成本问题。当然环境越复杂,成本越高,极复杂的环境,可能同时会对人力成本构成较高要求。比如:开发环境的管理、测试环境的管理等。
对于环境的考虑,主要可以从硬件环境、网络环境、软件环境三个方面入手。硬件是环境中的首要因素,硬件环境中第一需要考虑的是服务器类型,具体可以分为大型机、中型机、小型机,一般软件产品是与服务器同级别运行的,也就是说一个大型应用系统不会在与之不对称的服务器上运行,反之亦然。硬件环境中另外需要考虑的无非是客户端硬件及其他,如果项目交付的产品是客户端硬件要求较高型的,则客户端硬件有可能成为首要因素。另外,硬件的数量是一个衡量的指标,服务器端可能产生群集管理、客户端数量可能直接决定了系统压力等相关技术指标。
网络环境也是现在软件产品大都要面对的问题,包括什么样路由器、什么样的带宽、什么样的防火墙、什么样的网络层次结构等。软件环境恐怕是必须关心的,什么样的操作系统、什么样的数据库系统、是否要关联其他系统同时运行等。
如果简单的说对最终用户群体的分析甚至可以直接决定项目的总成本或许有些过了,但也是有一定的道理的。对用户群体的分析,第一要看数量,用户数量直接决定了系统的容量。第二要看并发情况,或许这一点在售前阶段较难得到,属于锦上添花的事吧。第三要看用户的地理分布,集中密集型与分散均匀型显然有着不同,如果分散较大,譬如全国范围,有时甚至需要考虑到文化差异会造成使用习惯的不同。第四要考虑用户的结构,是扁平型还是层次(树状)型呢?往往层次越深涉及的权限管理越是复杂。第五需要考虑的是用户信息化水平了,用户信息化水平直接决定的了用户对产品的期望值,开惯宝马的用户给他一辆牛车是不行的,反之呢?或许亦然。
一个项目,一家实施单位独立完成和两家实施单位共同完成有着质的区别,当然如果是三家或者更多的实施单位共同完成的话,以我们当前的中国特色的实情来看,项目管理成本会是什么,大概每个做过类似项目的项目经理心知肚明吧。通过以往的经验来看,项目进度会是一个较大的挑战,再有就是面对风险的时候,或许倾刻即显现出商场如战场。由此可以想象,实施单位的组成对项目成本有着重要的影响。
往往,在此阶段仅能够获得概要性需求,有时甚至无法得到用户的真实需求,或许此时公司以往同类项目的实施经验会起到最为突出的作用。
这也是必须考虑的问题,如果采用已有的成熟的架构完成项目实施,成本会低的多,反之,则至少会是倍增的成本。有时架构本身的成本会大幅超出业务需求本身的成本。
往往是标书中有明确规定的内容,如:系统性能指标、系统容量、系统健壮性、数据质量、系统安全性等。一个项目在合同签定之前,运行环境、用户情况是最有可能清晰获得的,除此之外,任何一项内容都不确定,所以在此也对这两个方面想的较多,其他内容还是具体项目具体分析吧。
想过这些事情之后,我想最为重要的是事情还是好好读书,补充一下相关知识吧。
发表评论(对文章涉及的知识点还有疑问,可以在这里留言,老高看到后会及时回复的。)