導(dǎo)致嵌入式系統(tǒng)項(xiàng)目失敗的7個(gè)隱形殺手
對(duì)工程師而言,沒(méi)有什么事情比投入大量心力、汗水和淚水到一個(gè)項(xiàng)目,但最終卻只得到一個(gè)失敗的結(jié)果這件事,來(lái)得令人沮喪。對(duì)那些參與項(xiàng)目開發(fā)的人來(lái)說(shuō),失敗確實(shí)可以增長(zhǎng)其洞察力和經(jīng)驗(yàn),但所時(shí)間和心力的損失卻也是毀滅性的一擊。有許多理由可以讓嵌入式系統(tǒng)的項(xiàng)目最終以失敗收?qǐng)?,但?個(gè)隱形殺手會(huì)讓一個(gè)項(xiàng)目在不知不覺中慢慢地且不聲不響地走上失敗之路,任何項(xiàng)目的領(lǐng)導(dǎo)者或其中的成員對(duì)它們千萬(wàn)不可等閑視之。
本文引用地址:http://www.ex-cimer.com/article/201808/387934.htm#7 – 成員流動(dòng)(team turnover)
每家公司都會(huì)經(jīng)歷員工或承包商的流動(dòng),但關(guān)鍵人物太過(guò)于經(jīng)常變動(dòng),可能是一個(gè)項(xiàng)目注定失敗的領(lǐng)先指標(biāo)。有很多原因可以說(shuō)明為什么人員流動(dòng)對(duì)項(xiàng)目會(huì)有不利的影響。第一,它會(huì)造成其他團(tuán)隊(duì)成員心理上的影響,而降低生產(chǎn)力。其次,失去關(guān)鍵人物可能會(huì)導(dǎo)致歷史性和重要的信息會(huì)永遠(yuǎn)遺失,這會(huì)放緩發(fā)展的腳步。最后,替換隊(duì)員需要對(duì)新的成員進(jìn)行訓(xùn)練,并跟上團(tuán)隊(duì)的腳步。這是一個(gè)會(huì)使人分心的工作,會(huì)讓其他成員放下手邊的開發(fā)工作來(lái)教導(dǎo)新的成員,結(jié)果會(huì)導(dǎo)致開發(fā)成本的增加和延長(zhǎng)交付時(shí)間。
#6 – 走走停停癥候群
孩子被教導(dǎo)說(shuō),“不要喊狼來(lái)了。”這話是一個(gè)警告,不要誤發(fā)假警報(bào)。這種警告有一種“進(jìn)行!停止!進(jìn)行!”的周期,在項(xiàng)目中很容易被忽略。一位經(jīng)理、客戶,或其他一些單位猛烈地催促他的團(tuán)隊(duì),聲稱該項(xiàng)目要在某一日之前完成。開發(fā)人員因此周末加班,投注更多的心力。然后,就像這股來(lái)得很快的催促之力,突然之間卻又嘎然而止。個(gè)月后,它又再次告急。 “快點(diǎn),我們必須在X之前出貨!” 然后同樣的事情又再次發(fā)生。
項(xiàng)目這種走走停停一再重復(fù)的緊迫性將會(huì)對(duì)開發(fā)團(tuán)隊(duì)造成心理層面的影響。開發(fā)人員不再相信任何的迫切性。事實(shí)上,他們會(huì)有一種心態(tài),開始覺得這個(gè)項(xiàng)目并不是一個(gè)需要認(rèn)真對(duì)待的項(xiàng)目,它很快將再次停止,那么為什么還要投入任何的努力?
所以,不要對(duì)項(xiàng)目喊狼來(lái)了!
#5 - 完美主義者的態(tài)度
許多工程師都有一種完美主義者的態(tài)度。這種態(tài)度所帶來(lái)的問(wèn)題是,不可能開發(fā)出完美的系統(tǒng),撰寫出完美的代碼,或者在最適當(dāng)?shù)臅r(shí)間推出產(chǎn)品。完美主義是鏡花水月,如果完美主義是公司文化的一部分,它將會(huì)是產(chǎn)品可能會(huì)不斷修正,直到公司破產(chǎn)倒閉的標(biāo)志。
正確的心態(tài)不是完美,而是成功。為了可以成功地推出產(chǎn)品,什么是最低的成功標(biāo)準(zhǔn)?設(shè)下成功的標(biāo)準(zhǔn),并在一旦達(dá)成后,立即推出產(chǎn)品。之后可以用啟動(dòng)加載器(boot-loader)來(lái)添加功能并解決那些小錯(cuò)誤。
#4 - 加速的時(shí)間表
要迅速地開發(fā)出一個(gè)嵌入式系統(tǒng),事實(shí)上,設(shè)計(jì)團(tuán)隊(duì)事實(shí)上要放慢腳步,這似乎違反直覺。但依據(jù)加速的時(shí)間表(accelerated timetable)工作,會(huì)因?yàn)閴毫?,更重要的是,有比較高的可能性會(huì)產(chǎn)生錯(cuò)誤,而使得效率降低。錯(cuò)誤將直接影響小缺陷的數(shù)量,而這些小缺陷隨后又會(huì)增加測(cè)試時(shí)間和返工的時(shí)間。
另一個(gè)問(wèn)題是,當(dāng)開發(fā)人員都搶著和努力滿足加速的時(shí)間表時(shí),他們會(huì)圖省事而走快捷方式。比如,代碼沒(méi)有批注及說(shuō)明。像是架構(gòu)圖和流程圖等設(shè)計(jì)文件也付之闕如。相反地,設(shè)計(jì)只留存在程序設(shè)人員的心中。放慢腳步,把事情做正確,會(huì)更快地得到最終的解決方案。
#3 – 不良的結(jié)構(gòu)化軟件
嵌入式軟件是嵌入式系統(tǒng)的血液;沒(méi)有了它,產(chǎn)品就無(wú)法運(yùn)作。不良的結(jié)構(gòu)化軟件是一個(gè)很明確的失敗征兆。嵌入式系統(tǒng)的系統(tǒng)結(jié)構(gòu)需要具有靈活性,以便未來(lái)成長(zhǎng)之用。它要有用于測(cè)試、除錯(cuò)和進(jìn)行日志記錄的空間。一個(gè)架構(gòu)不佳的系統(tǒng)將會(huì)使得施作不良,而導(dǎo)致該軟件錯(cuò)誤百出而難以管理,從而注定要將它的歲月花在除錯(cuò)上,直至項(xiàng)目最終死亡為止。
#2 - 本末倒置
開發(fā)一個(gè)新產(chǎn)品是一種會(huì)令人興奮的奮斗過(guò)程。其中有很多事情要做,而公司通常是急著想把產(chǎn)品從概念化成可以生產(chǎn)的產(chǎn)品。這種匆促的舉動(dòng)是極其危險(xiǎn)的,尤其是當(dāng)生產(chǎn)決定浮現(xiàn)時(shí)。
當(dāng)產(chǎn)品的機(jī)械設(shè)計(jì)或外觀和感覺被拿來(lái)推動(dòng)其電氣需求時(shí),這就是一個(gè)很好的例子。在工作的電氣和軟件原型被驗(yàn)證之前,生產(chǎn)工具就準(zhǔn)備好要生產(chǎn)了。在這種情況下,似乎總是有電路板沒(méi)有檢查,需要進(jìn)行調(diào)整的問(wèn)題。對(duì)那些匆匆忙忙、且太快就試著要把所有的事情同時(shí)拉在一起的項(xiàng)目,最終結(jié)果總是由于修改而落入花更長(zhǎng)時(shí)間和更多成本的結(jié)果。
#1 - 范圍潛變
每個(gè)項(xiàng)目都有范圍潛變(scope creep),但范圍潛變的程度可以是該項(xiàng)目是否會(huì)成功或失敗的決定性因素。范圍潛變最危險(xiǎn)的一個(gè)領(lǐng)域是,它是暗中為害的。某天在電路板上增加了一個(gè)簡(jiǎn)單的傳感器,幾個(gè)月后再加一些上去,這些看起來(lái)完全無(wú)害。但他們可能是致命的。
范圍潛變的最大問(wèn)題是,變化通常是微小的。乍看之下,改變看起來(lái)只是短短幾天的工作。但是,每次加一點(diǎn)點(diǎn),系統(tǒng)的復(fù)雜性也隨之增加了。復(fù)雜的系統(tǒng)需要更多的測(cè)試,可能也需要更多的除錯(cuò)。隨著時(shí)間的發(fā)展,范圍潛變可以將系統(tǒng)改變到使原來(lái)的軟件體系結(jié)構(gòu)和設(shè)計(jì)變得過(guò)時(shí),或甚至變成是不正確的解決方案!最終的結(jié)果是使一個(gè)項(xiàng)目變得遠(yuǎn)遠(yuǎn)地超出其預(yù)算范圍,實(shí)際進(jìn)度落在交貨日期之后,此一項(xiàng)目很少或幾乎沒(méi)有結(jié)束的跡象。
結(jié)論
在開發(fā)新的嵌入式系統(tǒng),并沒(méi)有確保其一定成功的保證,有很多因素會(huì)影響到項(xiàng)目的成功或失敗。這是筆者所看到的7大項(xiàng)目隱形殺手。你可以從這些細(xì)微的線索判斷出你的項(xiàng)目是否正走在一條緩慢且邁向失敗的發(fā)展之路上。任何項(xiàng)目的領(lǐng)導(dǎo)者或其中的成員對(duì)它們千萬(wàn)不可等閑視之。
評(píng)論