您的位置:軟件測試 > 軟件項目管理 > 進(jìn)度管理 >
軟件為什么失敗
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/4/27 14:28:24 ] 推薦標(biāo)簽:

  我從事軟件開發(fā)工作已經(jīng)有三年了,這三年中,親眼所見,親耳所聞,報紙,雜志,網(wǎng)絡(luò)上有各種各樣軟件項目開發(fā)的經(jīng)驗和教訓(xùn),總的感覺是,成功的少,而失敗的多,有的是部分失敗,有的是完全失敗,那么軟件為什么會失敗呢?

  對于這個問題的回答,有各種各樣的答案,總結(jié)起來,大概是這么幾種:

  用戶需求變化太快,無法把握
  選用技術(shù)路線有誤,遇到了技術(shù)難關(guān)
  項目管理錯誤,軟件失去了控制
  由于某些人員變化而引起項目失敗.

  目前為止,一般都籠統(tǒng)地總結(jié)成"由于軟件工程的水平低下",然后開出的藥方是"采用軟件工程的模式進(jìn)行開發(fā)",可是具體來說,軟件工程又有許多流派,許多模型,許多方法,而且這些方法又都是相互矛盾,相互抵觸的,又該何去何從呢?于是開發(fā)人員這樣陷入了軟件開發(fā)的泥潭之中,左沖右突,不能自拔,越是大型項目,時間越長,人員越多,情況越是如此.

  我認(rèn)為,問題的本質(zhì)并不在于上面提到的幾種原因,而在于在軟件開發(fā)的過程中,人與人的關(guān)系被人為地扭曲了,這才是造成許多軟件項目失敗的根本原因.下面詳細(xì)說明人與人的關(guān)系是如何一步一步被扭曲的.

一.開發(fā)商和客戶的關(guān)系

  本來開發(fā)商和客戶之間是軟件產(chǎn)品的提供者和使用者之間的關(guān)系,一個賣東西,一個買東西,兩者之間的關(guān)系是平等的,公平交易,童叟無欺,這才是兩者之間的正常合理的關(guān)系,可是現(xiàn)在呢?

  現(xiàn)在開發(fā)商和用戶之間的關(guān)系是嚴(yán)重不平等的,開發(fā)商為了得到訂單,往往委屈求全,放棄自己應(yīng)該堅持的原則,在競標(biāo)時相互壓價,甚至采用某些不夠光明正大的手段來得到訂單,自己把自己放到了一個被動的地位.許多開發(fā)商都有這樣的口號"以客戶為中心",他們不僅是這樣說的,而且也是這樣做的,問題是,一種不平等的關(guān)系,能夠長期堅持下去嗎?我從網(wǎng)上看到說,某個項目競標(biāo),某開發(fā)商提供的標(biāo)書有一大箱子,需要兩個人才能抬到會場上.請問,這種標(biāo)書有誰會看呢?難道開發(fā)商連這點起碼的常識都沒有了嗎?既然沒有人看,那么為什么要寫呢?難道開發(fā)商真的以為客戶會傻到不知道你在欺騙他嗎?那么寫這種標(biāo)書欺騙的是誰呢?恐怕是自己欺騙自己吧!

  考察這種不正常的情況出現(xiàn)的原因,既有開發(fā)商的原因,又有用戶的原因.

  開發(fā)商的原因,一方面是經(jīng)濟(jì)大環(huán)境的影響,大家都這樣干,隨大流而已,另一方面是企圖用這種方式來討好客戶,給客戶留一個好影響,這樣才好拿到訂單.

  而客戶的原因,則往往出于對于計算機(jī)的無知和恐懼,唯恐自己吃虧上當(dāng)擔(dān)責(zé)任,所以天生對開發(fā)商不夠信任,有敵對情緒,心理上有挑毛病,找問題的傾向.

  結(jié)果是這樣,麻桿打狼,兩頭害怕,兩者在開始接觸的時候,小心翼翼,唯恐出現(xiàn)問題,一旦發(fā)生沖突,開發(fā)商盲目退卻,而客戶得寸進(jìn)尺,后事情弄的一團(tuán)糟.

  開發(fā)商怕得罪客戶,卻沒有認(rèn)識到有時和客戶沖突是不可避免的,客戶怕開發(fā)商來欺騙自己,于是一次一次進(jìn)行試探,開發(fā)商越讓步,客戶越認(rèn)為自己受到了欺騙.開發(fā)商的讓步往往換不來客戶的信任,而是換來了客戶的更加不信任.由于開發(fā)商自己不相信自己,自己欺騙自己,后也無法得到客戶的信任.

  畢竟軟件開發(fā)是由開發(fā)商來完成的,那么應(yīng)該也必須由開發(fā)商來決定項目的進(jìn)展和內(nèi)容,可是現(xiàn)在卻往往由于客戶的壓力而妥協(xié),放棄自己的原則,這樣來做軟件開發(fā),能成功嗎?失敗是必然的,成功才是僥幸.

  結(jié)論是,在軟件開發(fā)中,應(yīng)當(dāng)以開發(fā)商為中心,而不是以客戶為中心,客戶的意見只是參考和借鑒,而不是金科玉律,不應(yīng)該害怕和客戶發(fā)生沖突,而應(yīng)該分析沖突產(chǎn)生的原因,把沖突看成問題的征兆,而不是單純來消除沖突本身.

  打個比喻,開發(fā)商好比醫(yī)生,而客戶好比病人,病人有病來找醫(yī)生,那么醫(yī)生開藥方時能否由病人來決定呢?病人如果對醫(yī)生的醫(yī)術(shù)有懷疑,拒絕和醫(yī)生合作,自己的病只能加深,而不能治愈.

  開發(fā)商和客戶之間的關(guān)系,是一種良好的合作關(guān)系,而不應(yīng)該是爾虞我詐的生意場上的競爭關(guān)系,雙方的目標(biāo)是一致的,而不是對立的.雙方之間的矛盾是共同利益基礎(chǔ)上的矛盾,而不是不可調(diào)和的敵我矛盾,必欲去之而后快.否定了這一點,軟件是不可能成功的.

  我們通常提到的"需求經(jīng)常變化",往往是開發(fā)商和客戶之間沒有擺正相互關(guān)系所造成的,需求并沒有變化,而是開發(fā)商接受了客戶提出的錯誤需求,而不敢提出異議,等到木已成舟,才發(fā)現(xiàn)雙方的理解有問題.

二.銷售人員和技術(shù)人員之間的關(guān)系

  俗話說,屁股決定大腦,一個人擔(dān)任的角色不同,他考慮問題自然會更多考慮到自己的切身利益,至于這樣做可能會給同事帶來的麻煩,管不了那么多了.在開發(fā)商內(nèi)部,銷售人員和技術(shù)人員之間的關(guān)系也非常奇特.在許多公司,為了提高銷售人員的工作積極性,對銷售人員采用提成的方式進(jìn)行獎勵,而將底薪定得很低,這樣一來,銷售人員為了拿到項目的訂單,往往會屈從于客戶的壓力,許下許多難以兌現(xiàn)的諾言,或者由于對于技術(shù)的不了解而隨意答應(yīng)客戶的要求.等到合同簽訂完畢,進(jìn)入項目開發(fā)階段時,客戶會拿這些諾言來要求開發(fā)人員進(jìn)行兌現(xiàn),結(jié)果是開發(fā)人員非常被動,對銷售人員怨氣沖天,于是告訴客戶這些要求無法滿足,而客戶也勃然大怒,你們這些人怎么一拿到錢變了臉了呢?問題是,由于銷售人員不考慮技術(shù)人員將來的實現(xiàn),從而許下了過高的諾言,這樣做的結(jié)果也許可以拿到訂單,可是由于銷售人員和技術(shù)人員的口徑不一樣,后客戶無所適從,感到自己受到了欺騙,接著將一腔怒火發(fā)到了技術(shù)人員頭上,兩者之間的合作和信任關(guān)系逐漸變成了對抗和欺騙的關(guān)系.

  有,有人對我說了個笑話,說計算機(jī)公司里三分之一是干活的,三分之一是混飯的,三分之一是騙子.后的三分之一是指銷售,請問,當(dāng)公司的銷售被別人當(dāng)成騙子時,豈不代表整個公司是騙子?和騙子做生意可能成功嗎?項目的失敗不也很正常了嗎?

  銷售人員和技術(shù)人員應(yīng)該是一個自行車的兩個輪子,他們的關(guān)系必須是相互合作,相互支持的,而不應(yīng)該是互相拆臺,相互對抗的,一旦他們之間相互對抗,那么會給整個公司的聲譽(yù)帶來災(zāi)難性的后果.

三.項目管理者和開發(fā)人員之間的關(guān)系

  項目管理者和開發(fā)人員之間的關(guān)系,本來應(yīng)該是相互團(tuán)結(jié),相互幫助,共同面對問題的關(guān)系,可是許多項目管理者把這種關(guān)系扭曲成了管理與被管理的強(qiáng)制性關(guān)系,用種種規(guī)章制度,種種管理方法來強(qiáng)迫開發(fā)人員接受,把自己放到了開發(fā)人員的對立面,和開發(fā)人員離心離德,甚至還美其名曰"量化管理,科學(xué)管理".在這種糟糕的管理下,開發(fā)人員沒有任何辦法,要么被動接受糟糕的管理,要么辭職以抗議.一旦一個項目發(fā)生了這種情況,它想成功非常難了.

  這種問題原來并不明顯,現(xiàn)在隨著各種MBA,印度經(jīng)驗,軟件工廠等似是而非的理論的泛濫,許多人,尤其是許多根本不懂軟件開發(fā)的管理者,更加變本加歷,用近乎苛刻的手段來加強(qiáng)對開發(fā)人員的管理,提出種種令人發(fā)笑的量化指標(biāo)來對開發(fā)人員進(jìn)行度量,還加上理論的依據(jù),對于敢于反抗他們這種做法的開發(fā)人員,一律以開除來解決問題,造成的一個非;恼Q的現(xiàn)實是,許多公司里寧愿使用剛剛畢業(yè)沒有任何經(jīng)驗的學(xué)生,不要有工作經(jīng)驗的工程師,美其名曰:易于管理,哈,容易上當(dāng)受騙而已.請問,在這種管理者和開發(fā)人員之間的關(guān)系作用下,軟件項目有可能獲得成功嗎?

  我個人并不反對嘗試性的使用各種開發(fā)方法來進(jìn)行管理,也不反對MBA來管理開發(fā)人員,我反對的是軟件開發(fā)中的強(qiáng)權(quán)行為,完全剝奪了開發(fā)人員應(yīng)當(dāng)具有的對于項目的發(fā)言權(quán)和建議權(quán),完全不考慮軟件開發(fā)作為高強(qiáng)度腦力勞動的特殊性,用外行來管理內(nèi)行并不可怕,可怕的是這個外行偏偏認(rèn)為自己是內(nèi)行,這才是事情的可怕之處.外行是外行,不能因為處在管理者的位置上,認(rèn)為自己一下子變成了內(nèi)行,誰敢反對我誰走人,用這樣的人來管理軟件開發(fā),怎么可能成功呢?

  項目管理者和開發(fā)人員并沒有本質(zhì)的區(qū)別,他們只是所處的崗位不同,擔(dān)任的責(zé)任不同而已,在軟件開發(fā)的問題上,尤其在具體的技術(shù)細(xì)節(jié)上,往往管理者不甚精通,如果他不能吸納開發(fā)人員的智慧,而是自己一個人拍腦袋來做決策,那么失敗在眼前了.

  總的來說,在軟件開發(fā)中,無論采用那種模型,那種工具,都離不開人的參與,離不開人與人之間的關(guān)系,如果不能正確對待人與人之間的關(guān)系,把本來正常的,平等的,合作的人與人之間的關(guān)系變成了不正常的,不平等的,對抗的人與人之間的關(guān)系,那么還希望項目能夠成功,無異于緣木求魚,南轅北轍了.如果人與人之間可以相互信任,相互理解,相互支持,相互合作,那么沒有什么事情是辦不成的,而如果人與人之間相互欺騙,相互猜忌,相互詆毀,相互斗爭,那么沒有什么事情是可以辦成的.

  <<大話西游>>中唐僧說,我們師徒四人這次西天取經(jīng),之所以不能夠成功,原因是我們不夠團(tuán)結(jié).依我看來,軟件開發(fā)之所以出現(xiàn)這么多問題,根本的原因也是人們不團(tuán)結(jié).

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd