最近项目的滥事一件接着一件,虽然应付的焦头烂额,有时候也激动的要发脾气,但是我发现自己已经不是像以前那样,每次火气要爆发时总是能及时制止住,虎的那几个刚刚工作的同事一愣一愣地,估计心里直纳闷“明明这家伙要发火,怎么转眼又好了”。脾气好是一个原因,另外一个重要的原因是我认识到发火不但使得自己事后处理更加麻烦,对自己的心情也是很坏的影响的,一个人长期处在坏的心情下,很容易得抑郁症的,既然我不想被别人叫做什么、什么来者,那么保持一个好的心情是很重要的。做应用软件也有不短时间了,谈谈自己的感受吧,这些只是我单方面想法,对于某些骨灰级的老鸟来说,就羞于起齿了,这里只想起一个抛砖引玉的作用吧,至于她能不能是块“砖“,就看我的造化了。
如果强行将ERP的“生产”和使用过程分割几个阶段。那么最为明显的设置恐怕就是下面三个了:1:市场:前期市场销售、谈判、洽谈、签订合同、商务。2:研发:客户需求调研、系统(业务技术)架构、软件业务设计、正式研发、测试 。3:实施,售后:试安装,试运行,用户熟悉测试,用户培训,全面实施推广。
既然我是一个搞研发起家的,那么对于第一点和第三点是个门外汉的,本来没有说话的权利,但是为了使得这篇文章完整点,我还是捎带说说吧。现在网上比较说了一个笑话,说用户对ERP认识分成三个阶段,可用三个字概括“啊!哦!呸!”。“啊”:ERP啊,多么先进啊?!给我们也上一套吧。“哦”:原来这就是ERP啊。“呸”:什么乱玩意啊。我想这个“啊”往往出现在第一个阶段,用户往往对于信息化,ERP还是处在一个从下往上的视角中,往往抱着仰慕的神情(不然人也不会化几十万,几百万了),而且市场人员为了能够拿下单子,盲目吹嘘现有软件的功能和规模。往往刚刚有一套底层,就说有成熟的产品;刚刚实现了某个领域的管理,就吹嘘说我们有完善的产品线,本来市场人员为了销售业绩,这样做似乎无可非议。但是这样客户会认为你的基础或者准备工作已经很强,只要稍加改造,就能上来,所以一方面可能产生压价的念头,另外一个最重要的结果给后期的研发和实施留下来一个严厉的条件(主要是时间,其次是产品质量)。这就牵引出我写这篇短文的主题:做软件,过于不过都是一件不妙的事,只有做的刚刚好才能事半功倍,所以作软件过程中不断在找各个平衡点,但是往往这个平衡点往往很难找,我们只有在夹缝中求生存。
好了,我们现在直接切入正题,我想做ERP研发,最重要俩条线:业务和技术,这里我将业务放在技术前面,等于说是业务比技术重要,这里并不是说做ERP不需要什么技术,相反技术也是很重要的,我也很尊重那些有着良好技术背景的人,我也向往成为一个技术牛人(不知何年何月得偿所愿),但是因为ERP在研发这个阶段来说,她是属于应用软件范畴,只有了解业务,了解客户真正需要的,才能做出来客户能用的软件,客户才能把钱给你。搞业务分析的人我想或多或少有着一个通病,喜欢将业务系统设计的非常通用和全面,不管你用户提出什么要求,我都能满足。这个问题很大程度上有点个人成就感、个人英雄主义因素在里面,但是这样设计后带来可能后果是:1业务逻辑复杂,程序员实现起来既费事又费力,开发周期大大加大。2:用户不能轻易明白软件所要表达的意图,不知道怎么用,尽管有专业的实施人员辅导,学习起来也是困难重重,形成曲高和寡态势。3:实施使用中需要初始大量基础数据。实施推广工作自然是难上加难,所以这样就产生了,开发时期不断托期,开发出来的软件也是BUG多多,也不好使用,到用户现场用户学习困难,实施推广困难,用户整个过程体验很差。这样是不是说:客户说什么就给做什么,也不是这样的,大部分情况下,客户对自己的需求是暂时的,盲目的,除非客户有对企业信息化有着非常深的理解,客户的需求往往只是一时只需,如果你按着他的想法做了,一方面由于沟通的差异性,你做出来的东西和客户需要的差别有多大是个问号,即使你准确理解了客户的意图,严格按着客户的要求来做了,但是过段时间,他的想法又变了,此时你又要跟着后面修改,因为你前期的程序是唯客户需求的,所以改动起来大部分情况是动一发而牵全身,推倒,不断重来就成了家常便饭了,而且现在地环境下,不给用户改需求的还是少数,毕竟这个行业还是买方市场。所以你是做产品的,那么多多考虑你的产品在业务上的兼容性,尽量考虑的充分而且全面,因为以后你卖的主要是产品,大部分情况是用户适应你的软件;如果是做项目的,一方面要充分理解用户的业务逻辑和需求,然后按着客户需求为主线设计业务系统,在能流出可扩展接口的地方留下余地,就是说在满足客户需求的基础上尽量将软件做的通用性广一些。说起来容易但是实际做起来往往难度很高。只有把握住客户特殊需求和软件通用性中间的关键点,做起项目来才不至于很狼狈,正所谓在夹缝中求得一线之际。
软件行业另外一个重要因素技术也是存在类似问题,在软件的开发效率和软件的使用效率上取平衡,这个问题也是很广的一个议题,留着以后慢慢说吧(待续)