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