对于这个问题的回答,有各种各样的答案,总结起来,大概是这么几种:
用户需求变化太快,无法把握
选用技术路线有误,遇到了技术难关
项目管理错误,软件失去了控制
由于某些人员变化而引起项目失败。
目前为止,一般都笼统地总结成"由于软件工程的水平低下",然后开出的药方就是"采用软件工程的模式进行开发",可是具体来说,软件工程又有许多流派,许多模型,许多方法,而且这些方法又都是相互矛盾,相互抵触的,又该何去何从呢?于是开发人员就这样陷入了软件开发的泥潭之中,左冲右突,不能自拔,越是大型项目,时间越长,人员越多,情况就越是如此。
我认为,问题的本质并不在于上面提到的几种原因,而在于在软件开发的过程中,人与人的关系被人为地扭曲了,这才是造成许多软件项目失败的根本原因。下面详细说明人与人的关系是如何一步一步被扭曲的。
一.开发商和客户的关系
本来开发商和客户之间是软件产品的提供者和使用者之间的关系,一个卖东西,一个买东西,两者之间的关系是平等的,公平交易,童叟无欺,这才是两者之间的正常合理的关系,可是现在呢?
现在开发商和用户之间的关系是严重不平等的,开发商为了得到订单,往往委屈求全,放弃自己应该坚持的原则,在竞标时相互压价,甚至采用某些不够光明正大的手段来得到订单,自己把自己放到了一个被动的地位。许多开发商都有这样的口号"以客户为中心",他们不仅是这样说的,而且也是这样做的,问题是,一种不平等的关系,能够长期坚持下去吗?我从网上看到说,某个项目竞标,某开发商提供的标书有一大箱子,需要两个人才能抬到会场上。请问,这种标书有谁会看呢?难道开发商连这点起码的常识都没有了吗?既然没有人看,那么为什么要写呢?难道开发商真的以为客户会傻到不知道你在欺骗他吗?那么写这种标书欺骗的是谁呢?恐怕是自己欺骗自己吧!
考察这种不正常的情况出现的原因,既有开发商的原因,又有用户的原因。
开发商的原因,一方面是经济大环境的影响,大家都这样干,随大流而已,另一方面就是企图用这种方式来讨好客户,给客户留一个好影响,这样才好拿到订单。
而客户的原因,则往往出于对于计算机的无知和恐惧,唯恐自己吃亏上当担责任,所以天生对开发商不够信任,有敌对情绪,心理上有挑毛病,找问题的倾向。
结果就是这样,麻杆打狼,两头害怕,两者在开始接触的时候,就小心翼翼,唯恐出现问题,一旦发生冲突,开发商就盲目退却,而客户就得寸进尺,最后事情弄的一团糟。
开发商怕得罪客户,却没有认识到有时和客户冲突是不可避免的,客户怕开发商来欺骗自己,于是一次一次进行试探,开发商越让步,客户越认为自己受到了欺骗。开发商的让步往往换不来客户的信任,而是换来了客户的更加不信任。由于开发商自己不相信自己,自己欺骗自己,最后也无法得到客户的信任。
文章来源于领测软件测试网 https://www.ltesting.net/